@sunbird-cb/toc 0.0.26 → 0.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/esm2022/public-api.mjs
CHANGED
|
@@ -75,4 +75,5 @@ export * from './lib/_collection/_common/toc-kpi-values/toc-kpi-values.component
|
|
|
75
75
|
//collection common modules
|
|
76
76
|
export * from './lib/_collection/_common/card-competency/card-competency.component';
|
|
77
77
|
export * from './lib/_collection/_common/card-competency/card-competency.module';
|
|
78
|
-
|
|
78
|
+
export * from './lib/services/access-control.service';
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjO0FBQ2QsY0FBYywwQkFBMEIsQ0FBQTtBQUV4QyxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMseUJBQXlCLENBQUE7QUFFdkMsbUZBQW1GO0FBQ25GLHdEQUF3RDtBQUV4RCxXQUFXO0FBQ1gsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUM5QyxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsK0JBQStCLENBQUE7QUFDN0MsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLHNDQUFzQyxDQUFBO0FBQ3BELGNBQWMsOEJBQThCLENBQUE7QUFDNUMsY0FBYyxrQ0FBa0MsQ0FBQTtBQUNoRCxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELFNBQVM7QUFDVCxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsc0NBQXNDLENBQUE7QUFDcEQsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLDJCQUEyQixDQUFBO0FBRXpDLFlBQVk7QUFDWixjQUFjLDBDQUEwQyxDQUFBO0FBQ3hELGNBQWMsK0NBQStDLENBQUE7QUFDN0QsY0FBYywyREFBMkQsQ0FBQTtBQUN6RSxjQUFjLHVEQUF1RCxDQUFBO0FBQ3JFLGNBQWMscURBQXFELENBQUE7QUFDbkUsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLDBDQUEwQyxDQUFBO0FBQ3hELGNBQWMsc0RBQXNELENBQUE7QUFFcEUsYUFBYTtBQUNiLGNBQWMsMERBQTBELENBQUE7QUFDeEUsY0FBYyw0REFBNEQsQ0FBQTtBQUMxRSxjQUFjLHNFQUFzRSxDQUFBO0FBQ3BGLGNBQWMsa0VBQWtFLENBQUE7QUFDaEYsY0FBYyxrRkFBa0YsQ0FBQTtBQUNoRyxjQUFjLDhEQUE4RCxDQUFBO0FBQzVFLGNBQWMsNEVBQTRFLENBQUE7QUFDMUYsY0FBYyxzRUFBc0UsQ0FBQTtBQUNwRixjQUFjLDhEQUE4RCxDQUFBO0FBQzVFLGNBQWMsb0VBQW9FLENBQUE7QUFDbEYsY0FBYyw0REFBNEQsQ0FBQTtBQUMxRSxjQUFjLGdFQUFnRSxDQUFBO0FBQzlFLGNBQWMsa0ZBQWtGLENBQUE7QUFDaEcsY0FBYyxvRUFBb0UsQ0FBQTtBQUNsRixjQUFjLHNFQUFzRSxDQUFBO0FBQ3BGLGNBQWMsb0VBQW9FLENBQUE7QUFDbEYsY0FBYyw4RUFBOEUsQ0FBQTtBQUM1RixjQUFjLDBFQUEwRSxDQUFBO0FBQ3hGLGNBQWMsa0VBQWtFLENBQUE7QUFDaEYsY0FBYyxzRUFBc0UsQ0FBQTtBQUNwRixjQUFjLG9FQUFvRSxDQUFBO0FBRWxGLG1CQUFtQjtBQUNuQixjQUFjLGtEQUFrRCxDQUFBO0FBR2hFLG1CQUFtQjtBQUNuQixjQUFjLGtDQUFrQyxDQUFBO0FBQ2hELGNBQWMsK0NBQStDLENBQUE7QUFFN0Qsc0JBQXNCO0FBQ3RCLGNBQWMsMERBQTBELENBQUE7QUFDeEUsY0FBYyw2REFBNkQsQ0FBQTtBQUMzRSxjQUFjLGlGQUFpRixDQUFBO0FBQy9GLGNBQWMsNkVBQTZFLENBQUE7QUFDM0YsY0FBYyxpRkFBaUYsQ0FBQTtBQUMvRixjQUFjLCtGQUErRixDQUFBO0FBQzdHLGNBQWMscUdBQXFHLENBQUE7QUFDbkgsY0FBYyx3Q0FBd0MsQ0FBQTtBQUN0RCxjQUFjLHFDQUFxQyxDQUFBO0FBRW5ELHNCQUFzQjtBQUN0QixjQUFjLHdFQUF3RSxDQUFBO0FBQ3RGLGNBQWMsMkVBQTJFLENBQUE7QUFDekYsY0FBYyxnRUFBZ0UsQ0FBQTtBQUM5RSxjQUFjLG1FQUFtRSxDQUFBO0FBRWpGLDJCQUEyQjtBQUMzQixjQUFjLHFFQUFxRSxDQUFBO0FBQ25GLGNBQWMsa0VBQWtFLENBQUE7QUFHaEYsY0FBYyx1Q0FBdUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdG9jXG4gKi9cblxuLy8gTWFpbiBtb2R1bGVcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcC10b2MtbGliLm1vZHVsZSdcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVnaXN0cmF0aW9uLXRvYy1saWIuY29uZmlnJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbi5jb25maWcnXG5cbi8vIFJvdXRpbmcgbW9kdWxlIChPUFRJT05BTCAtIG9ubHkgaW1wb3J0IGlmIHlvdSB3YW50IHRvIHVzZSBwcmUtY29uZmlndXJlZCByb3V0ZXMpXG4vLyBZb3UgY2FuIGNvbmZpZ3VyZSByb3V0aW5nIGluIHlvdXIgYXBwbGljYXRpb24gaW5zdGVhZFxuXG4vLyBTZXJ2aWNlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXBwLXRvYy5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXBwLXRvYy12Mi5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYWN0aW9uLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9sb2FkLWNoZWNrLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9yZXNldC1yYXRpbmdzLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90aW1lci5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdGl0bGUtdGFnLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy92aWV3ZXItdXRpbC5zZXJ2aWNlJ1xuLy8gTW9kZWxzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYXBwLXRvYy5tb2RlbCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9hcHAtdG9jLWFuYWx5dGljcy5tb2RlbCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9tZXRhLXRhZy5tb2RlbCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yYXRpbmcubW9kZWwnXG5cbi8vIFJlc29sdmVyc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzb2x2ZXJzL2FwcC10b2MtcmVzb2x2ZXIuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jlc29sdmVycy9hcHAtdG9jLWNpb3MtcmVzb2x2ZXIuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jlc29sdmVycy9hcHAtdG9jLWNpb3MtdXNlci1lbnJvbGwtcmVzb2x2ZXIuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jlc29sdmVycy9hcHAtdG9jLWNvbnRlbnQtcmVhZC1yZXNvbHZlci5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzb2x2ZXJzL2FwcC10b2MtZXh0LXB1YmxpYy1yZXNvbHZlci5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzb2x2ZXJzL2NvbmZpZy1yZXNvbHZlci5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzb2x2ZXJzL3Byb2ZpbGUtcmVzb2x2ZXIuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jlc29sdmVycy9yZXN0cmljdGVkLWZlYXR1cmVzLXJlc29sdmVyLnNlcnZpY2UnXG5cbi8vIENvbXBvbmVudHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXBwLXRvYy1iYW5uZXIvYXBwLXRvYy1iYW5uZXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hcHAtdG9jLWNvaG9ydHMvYXBwLXRvYy1jb2hvcnRzLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXBwLXRvYy1jb250ZW50LWNhcmQvYXBwLXRvYy1jb250ZW50LWNhcmQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hcHAtdG9jLWRpc2N1c3Npb24vYXBwLXRvYy1kaXNjdXNzaW9uLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXBwLXRvYy1kaWFsb2ctaW50cm8tdmlkZW8vYXBwLXRvYy1kaWFsb2ctaW50cm8tdmlkZW8uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hcHAtdG9jLW92ZXJ2aWV3L2FwcC10b2Mtb3ZlcnZpZXcuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hcHAtdG9jLWFuYWx5dGljcy10aWxlcy9hcHAtdG9jLWFuYWx5dGljcy10aWxlcy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FwcC10b2Mtc2Vzc2lvbi1jYXJkL2FwcC10b2Mtc2Vzc2lvbi1jYXJkLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXBwLXRvYy1zZXNzaW9ucy9hcHAtdG9jLXNlc3Npb25zLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXBwLXRvYy1zaW5nbGUtcGFnZS9hcHAtdG9jLXNpbmdsZS1wYWdlLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXBwLXRvYy1ob21lLXYyL2FwcC10b2MtaG9tZS12Mi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FwcC10b2MtY2lvcy1ob21lL2FwcC10b2MtY2lvcy1ob21lLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva25vd2xlZGdlLWFydGlmYWN0LWRldGFpbHMva25vd2xlZGdlLWFydGlmYWN0LWRldGFpbHMuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jcmVhdGUtYmF0Y2gtZGlhbG9nL2NyZWF0ZS1iYXRjaC1kaWFsb2cuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9lbnJvbGwtcXVlc3Rpb25uYWlyZS9lbnJvbGwtcXVlc3Rpb25uYWlyZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Vucm9sbC1wcm9maWxlLWZvcm0vZW5yb2xsLXByb2ZpbGUtZm9ybS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Vucm9sbC1sYW5ndWFnZS1kaWFsb2d1ZS9lbnJvbGwtbGFuZ3VhZ2UtZGlhbG9ndWUuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb21wbGV0aW9uLXN1cnZleS1mb3JtL2NvbXBsZXRpb24tc3VydmV5LWZvcm0uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9wdWJsaWMtc3VydmV5LWZvcm0vcHVibGljLXN1cnZleS1mb3JtLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3VydmV5LWZvcm0tcXVlc3Rpb24vc3VydmV5LWZvcm0tcXVlc3Rpb24uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdXJ2ZXktZm9ybS1zZWN0aW9uL3N1cnZleS1mb3JtLXNlY3Rpb24uY29tcG9uZW50J1xuXG4vLyBSb3V0ZSBDb21wb25lbnRzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yb3V0ZXMvYXBwLXRvYy1ob21lL2FwcC10b2MtaG9tZS5jb21wb25lbnQnXG5cblxuLy8gU2hhcmUgVE9DIG1vZHVsZVxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmUtdG9jL3NoYXJlLXRvYy5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZS10b2Mvc2hhcmUtdG9jL3NoYXJlLXRvYy5jb21wb25lbnQnXG5cbi8vIENvbnRlbnQgVE9DIG1vZHVsZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb2xsZWN0aW9uL19jb21tb24vY29udGVudC10b2MvY29udGVudC10b2MubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbGxlY3Rpb24vX2NvbW1vbi9jb250ZW50LXRvYy9jb250ZW50LXRvYy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29sbGVjdGlvbi9fY29tbW9uL2NvbnRlbnQtdG9jL3Jldmlld3MtY29udGVudC9yZXZpZXdzLWNvbnRlbnQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbGxlY3Rpb24vX2NvbW1vbi9jb250ZW50LXRvYy9hcHAtdG9jLWFib3V0L2FwcC10b2MtYWJvdXQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbGxlY3Rpb24vX2NvbW1vbi9jb250ZW50LXRvYy9hcHAtdG9jLWNvbnRlbnQvYXBwLXRvYy1jb250ZW50LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb2xsZWN0aW9uL19jb21tb24vY29udGVudC10b2MvYXBwLXRvYy10ZWFjaGVycy1ub3Rlcy9hcHAtdG9jLXRlYWNoZXJzLW5vdGVzLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb2xsZWN0aW9uL19jb21tb24vY29udGVudC10b2MvYXBwLXRvYy1iYXRjaC1hc3NpZ25tZW50cy9hcHAtdG9jLWJhdGNoLWFzc2lnbm1lbnRzLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19zZXJ2aWNlcy93aWRnZXQtY29udGVudC5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2Rpc2N1c3Npb24tZm9ydW0ubW9kZWwnXG5cbi8vIEthcm1hIFBvaW50cyBtb2R1bGVcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb2xsZWN0aW9uL19jb21tb24vY29udGVudC10b2Mva2FybWEtcG9pbnRzL2thcm1hLXBvaW50cy5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29sbGVjdGlvbi9fY29tbW9uL2NvbnRlbnQtdG9jL2thcm1hLXBvaW50cy9rYXJtYS1wb2ludHMuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbGxlY3Rpb24vX2NvbW1vbi90b2Mta3BpLXZhbHVlcy90b2Mta3BpLXZhbHVlcy5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29sbGVjdGlvbi9fY29tbW9uL3RvYy1rcGktdmFsdWVzL3RvYy1rcGktdmFsdWVzLmNvbXBvbmVudCdcblxuLy9jb2xsZWN0aW9uIGNvbW1vbiBtb2R1bGVzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29sbGVjdGlvbi9fY29tbW9uL2NhcmQtY29tcGV0ZW5jeS9jYXJkLWNvbXBldGVuY3kuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbGxlY3Rpb24vX2NvbW1vbi9jYXJkLWNvbXBldGVuY3kvY2FyZC1jb21wZXRlbmN5Lm1vZHVsZSdcblxuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hY2Nlc3MtY29udHJvbC5zZXJ2aWNlJyJdfQ==
|
|
@@ -12112,11 +12112,11 @@ class AiTutorComponent {
|
|
|
12112
12112
|
this.maximize = true;
|
|
12113
12113
|
}
|
|
12114
12114
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AiTutorComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i2$1.ConfigurationsService }, { token: i2$1.EventService }, { token: i0.Renderer2 }, { token: RootService }, { token: WebSocketService }, { token: i1$3.MatLegacyDialog }, { token: i6$2.MatSnackBar }, { token: i2$1.UtilityService }, { token: "environment" }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12115
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AiTutorComponent, selector: "ws-widget-ai-tutor", inputs: { from: "from", content: "content", userJourney: "userJourney" }, outputs: { closeAIPopup: "closeAIPopup" }, viewQueries: [{ propertyName: "textArea", first: true, predicate: ["autoResizeTextarea"], descendants: true }], ngImport: i0, template: "<!-- <div class=\"tutor-container\">\n<div class=\"learning-type-container\">\n <mat-form-field appearance=\"none\">\n <select matNativeControl required class=\"section-dd\" >\n <option value=\"\">Select learning type here </option>\n <option value=\"\">None</option>\n <option value=\"\">Socratic</option>\n <option value=\"\">Story Telling</option>\n <option value=\"\">Summarisation</option>\n </select>\n </mat-form-field>\n</div>\n<div [ngClass]=\"from === 'chatbot' ? 'ai-tutor-container-chatbot':'ai-tutor-container'\" #scrollMe>\n <div class=\"message-container\" #scrollMe>\n <div class=\"start-chat\" *ngIf=\"aiTutorResultArr?.length === 0\">\n <h2 class=\"hey\">Hey<span *ngIf=\"userInfo?.firstName\">, {{userInfo?.firstName}}</span> </h2>\n <p>Welcome to Ai Tutor,\u2028Get instant explanations, step-by-step learning guidance, and customised learning tailored just for you.</p>\n </div>\n <ng-container *ngFor=\"let chat of aiTutorResultArr; let i =index\">\n <ng-container *ngIf=\"chat.type === 'incoming'\">\n <ng-container *ngIf=\"chat?.answer\">\n <div class=\"flex row-start incoming-msg margin-bottom-s\">\n <div class=\"system-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/chatbot-ai-new.svg\"></div>\n \n <div class=\"system-msg padding-xs\" *ngIf=\"chat?.wordsCount <= 30\" [innerHTML]=\"chat.answer\">\n </div>\n <div class=\"system-msg padding-xs\">\n <div *ngIf=\"chat?.wordsCount > 30\" [innerHTML]=\"chat?.showLess ? chat.shortAnswer : chat.answer\"></div>\n <a class=\"link\" href=\"javascript:void(0)\" *ngIf=\"!chat?.showLess\" (click)=\"toggleShow(i, 'less')\">Show Less</a>\n <a class=\"link\" href=\"javascript:void(0)\" *ngIf=\"chat?.showLess\" (click)=\"toggleShow(i, 'more')\">Show More</a>\n </div>\n \n\n </div>\n <ng-container *ngFor=\"let item of chat?.result; let ci=index\">\n <div class=\"system-msg-mimetype flex flex-col\" *ngIf=\"item?.contentType === 'Resource'\">\n <ng-container *ngIf=\"item?.mimeType === 'application/pdf'\">\n <div class=\"resource-icon\"><a [href]=\"item?.resourceLink\" target=\"_blank\"><img src=\"/assets/icons/ai-pdf-icon.jpg\"></a></div>\n <div class=\"resource-link\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">Open Resource Link</a>\n </div>\n </ng-container>\n <ng-container *ngIf=\"item?.mimeType === 'video/mp4'\">\n \n <div class=\"position-relative\">\n <div class=\"position-relative\">\n <img src=\"/assets/icons/ai-video-icon.jpg\">\n\n </div>\n <div class=\"content-duration\" *ngIf=\"item?.contentStart || item?.contentEnd\">\n <span *ngIf=\"item?.contentStart\">{{item?.contentStart}}</span>\n <span *ngIf=\"item?.contentEnd\">:{{item?.contentEnd}}</span>\n </div>\n </div>\n <div class=\"resource-link\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">Open Resource Link</a>\n </div>\n </ng-container>\n </div>\n <div class=\"recommended-question my-5px\" [ngClass]=\"{'margin-left-5': item?.message }\">\n <div class=\"my-5px mr-2\">\n <ng-container *ngIf=\"item?.contentType !== 'Resource'\">\n <div class=\"btn-default\" (click)=\"redirectToToc(item)\">{{item?.title}}\n <mat-icon class=\"vertical-middle\">navigate_next</mat-icon>\n </div>\n <div>\n {{item?.description | slice : 0:50}}\n </div>\n </ng-container>\n </div>\n <div class=\"flex flex-row font-12\">\n <div class=\"cursor-pointer\" (click)=\"copyPath(item, ci)\">\n <mat-icon matTooltip=\"Copy\" aria-label=\"Copy\">content_copy</mat-icon>\n <span *ngIf=\"copiedIndex === ci\" class=\"copied-tooltip\">Link Copied!</span>\n </div>\n <div class=\"ml-2 mr-2\"><img alt=\"ai-icon\" src=\"/assets/ai-tutor/ai-icon.svg\"></div>\n <div class=\"ai-generated-content ml-2\">These are AI generated results</div>\n </div>\n </div>\n </ng-container>\n \n \n </ng-container>\n <ng-container *ngIf=\"!chat?.answer\">\n <div class=\"flex row-start incoming-msg margin-bottom-s\">\n <div class=\"system-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/chatbot-ai-new.svg\"></div>\n <div class=\"loading-bar-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/loading_bar.gif\"></div>\n </div>\n \n </ng-container>\n </ng-container>\n \n <ng-container *ngIf=\"chat.type === 'sendMsg'\">\n <div class=\"flex width-1-1 row-end padding-top-l padding-bottom-m\">\n <div class=\"user-seleted-question padding-xs\">\n {{chat?.question}}\n </div>\n <div class=\"user-icon\" *ngIf=\"userIcon\">\n <img alt=\"ai-icon\" src=\"{{userIcon}}\">\n </div>\n <div class=\"circle-s user-icon\" *ngIf=\"!userIcon\" [ngStyle]=\"{'background-color': circleColor }\">\n <div class=\"initials\" i18n-aria-label>\n {{ userInitials }} \n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div> \n</div>\n<div class=\"control-container\">\n <div class=\"border-gradient-rounded\">\n <div class=\"flex flex-row mx-5 justify-between\">\n\n <div class=\"query-box\">\n <input class=\"width-500\" type=\"text\" placeholder=\"Ask anything...\" [(ngModel)]=\"searchQueryAItutor\" (keydown.enter)=\"submitSearchQuery()\"/>\n \n </div>\n\n <div>\n <button type=\"button\" class=\"flex-auto-display send-btn\" (click)=\"submitSearchQuery()\" [disabled]=\"!searchQueryAItutor\">\n <mat-icon class=\"send-btn-icon\">send</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>\n</div> -->\n\n<div class=\"overflow-y-hidden\" [ngClass]=\"(isMobile && !maximize ? 'ai-tutor-popup-minimize' : (isMobile ? 'ai-tutor-popup': ''))\">\n<div *ngIf=\"isMobile\">\n <div class=\"flex flex-row ai-tutor-mobile-header\">\n <div class=\"flex flex-row\">\n <div class=\"flex\">\n <span class=\"font-bold\">AI Tutor</span>\n </div> \n <div class=\"red-circle ml-5\">\n New\n </div>\n </div>\n <div class=\"flex flex-row justify-end\">\n <div *ngIf=\"maximize\" (click)=\"minimizeAITutor()\">\n <mat-icon>minimize</mat-icon>\n </div>\n <div *ngIf=\"!maximize\" (click)=\"maximizeAITutor()\">\n <mat-icon>maximize</mat-icon>\n </div>\n <div (click)=\"closeAITutorPopup()\">\n <mat-icon>close</mat-icon>\n </div>\n </div>\n \n \n </div>\n</div>\n<div [hidden]=\"!maximize\">\n<div class=\"header\">\n <!-- <mat-form-field appearance=\"none\" style=\"width:100%\">\n <select matNativeControl required class=\"section-dd\" >\n <option value=\"\">You can also choose a learning style that suits you best from here.</option>\n <option value=\"\">None</option>\n <option value=\"\">Socratic</option>\n <option value=\"\">Story Telling</option>\n <option value=\"\">Summarisation</option>\n </select>\n </mat-form-field> -->\n <mat-form-field class=\"multiline-select\" appearance=\"fill\" style=\"width: 100%; height: 80px;\" floatLabel=\"never\">\n <mat-select class=\"multiline-select-box\" required [(value)]=\"selectedLearningStyle\" (selectionChange)=\"getLearningStyle()\">\n <mat-select-trigger class=\"multiline-select-box-trigger\">\n <div class=\"option-content\">\n <div class=\"title\">{{ selectedLearningStyle?.title }}</div>\n <div class=\"subtitle\">{{ selectedLearningStyle?.subtitle }}</div>\n </div>\n </mat-select-trigger>\n <mat-option class=\"multiline-select-option\" value=\"\" *ngFor=\"let item of learningStyle\" [value]=\"item\">\n <div class=\"option-content\">\n <div class=\"title\">{{item?.title}}</div>\n <div class=\"subtitle\">{{item?.subtitle}}</div>\n </div>\n </mat-option>\n </mat-select>\n </mat-form-field>\n \n</div>\n\n<div class=\"container-none\" id=\"container-none\">\n <div [ngClass]=\"from === 'chatbot' ? 'ai-tutor-container-chatbot':'ai-tutor-container'\">\n <div class=\"message-container\" #scrollMe>\n <div class=\"start-chat\" *ngIf=\"aiTutorResultArr?.length === 0\">\n <h2 class=\"hey\">Hey<span *ngIf=\"userInfo?.firstName\">, {{userInfo?.firstName}}</span> </h2>\n <p>Welcome to AI Tutor,\u2028Get instant explanations, step-by-step learning guidance, and customised learning tailored just for you.</p>\n </div>\n <ng-container *ngFor=\"let chat of aiTutorResultArr; let i =index\">\n <ng-container *ngIf=\"chat.type === 'incoming'\">\n <ng-container *ngIf=\"chat?.answer || chat?.showFromInternet\">\n <div class=\"flex row-start incoming-msg margin-bottom-s\" *ngIf=\"chat?.answer\">\n <div class=\"system-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/bot-chat-small.svg\"></div>\n \n <!-- <div class=\"system-msg padding-xs\" *ngIf=\"chat?.wordsCount <= 30\" [innerHTML]=\"chat.answer\">\n </div> -->\n <div class=\"flex row-start incoming-msg margin-bottom-s\" *ngIf=\"chat?.showFromInternet\">\n <div class=\"system-msg padding-xs mx-10\">\n I couldn\u2019t find any relevant results for your query. Would you like me to search outside the iGOT platform for more information?\n </div>\n \n </div>\n <ng-container *ngIf=\"chat?.answer\">\n <div class=\"system-msg padding-xs\" *ngIf=\"chat?.wordsCount <= 30\">\n <markdown [data]=\"chat?.answer\"></markdown>\n </div>\n \n <div class=\"system-msg padding-xs\" *ngIf=\"chat?.wordsCount > 30\" >\n <!-- <div [innerHTML]=\"chat?.showLess ? chat.shortAnswer : chat.answer\"></div> -->\n <markdown [data]=\"chat?.answer\"></markdown>\n <!-- <markdown [data]=\"chat?.showLess ? chat.shortAnswer : chat.answer\"></markdown> -->\n <!-- <a class=\"link\" href=\"javascript:void(0)\" *ngIf=\"!chat?.showLess\" (click)=\"toggleShow(i, 'less')\">Show Less</a>\n <a class=\"link\" href=\"javascript:void(0)\" *ngIf=\"chat?.showLess\" (click)=\"toggleShow(i, 'more')\">Show More</a> -->\n </div>\n </ng-container>\n \n \n </div>\n \n <div *ngIf=\"chat?.showFromInternet\">\n <div class=\"flex row my-2 justify-start mx-10 my-5\">\n <div (click)=\"callFromInternet(chat, i)\">\n <button type=\"button\" class=\"web-button px-4 cursor-pointer\">\n <mat-icon class=\"web-search-icon\">search </mat-icon><span class=\"blue-color\">Search the web</span>\n </button>\n </div>\n <div (click)=\"rejectFromInternet(i)\" class=\"mx-2\">\n <button type=\"button\" class=\"web-button py-2 px-4 cursor-pointer\">\n <mat-icon class=\"web-close-icon\">close</mat-icon><span class=\"blue-color\">No</span>\n </button>\n </div>\n </div>\n </div>\n <ng-container *ngFor=\"let item of chat?.result; let ci=index\">\n <div class=\"system-msg-mimetype flex flex-col\" *ngIf=\"item?.contentType === 'Resource'\">\n <ng-container *ngIf=\"item?.mimeType === 'application/pdf'\">\n <!-- <div class=\"resource-icon\"><a [href]=\"item?.resourceLink\" target=\"_blank\" (click)=\"raiseTelemetryForResource(item)\">\n <img src=\"/assets/icons/ai-pdf-icon.jpg\"></a>\n </div> -->\n <div class=\"recommended-question-for-resource mx-10\" (click)=\"redirectToResource(item);raiseTelemetryForResource(item)\">\n <!-- <div class=\"resource-icon\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\" (click)=\"raiseTelemetryForResource(item)\">\n <img src=\"/assets/ai-tutor/pdf.svg\">\n </a>\n <p>{{item?.message}}</p>\n </div> -->\n <div class=\"btn-default mb-2\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">\n <img class=\"vertical-middle h-w-34\" src=\"/assets/ai-tutor/pdf.svg\">\n </a>\n {{item?.title}}\n <mat-icon class=\"vertical-middle\" *ngIf=\"!(item?.fromInternet)\">navigate_next</mat-icon>\n </div>\n </div>\n <!-- <div class=\"resource-link\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">Click to view</a>\n </div> -->\n </ng-container>\n <!-- <ng-container *ngIf=\"item?.mimeType === 'video/mp4'\">\n \n <div class=\"resource-icon\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\" (click)=\"raiseTelemetryForResource(item)\">\n <div class=\"position-relative\">\n <div class=\"position-relative\">\n <img src=\"/assets/icons/ai-video-icon.jpg\">\n \n </div>\n <div class=\"content-duration flex\" *ngIf=\"item?.contentStart > -1 && item?.contentEnd > -1 && !(item?.fromInternet)\">\n <span><mat-icon>access_time</mat-icon> </span>\n <span *ngIf=\"item?.contentStart > -1\">\n <span *ngIf=\"item?.contentStart > 0\">{{item?.contentStart | pipeDurationTransform: 'hms'}}</span>\n <span *ngIf=\"item.contentStart === '0'\">0</span>\n </span>\n <span *ngIf=\"item?.contentEnd > -1\"> - {{item?.contentEnd | pipeDurationTransform: 'hms'}}</span>\n </div>\n </div>\n \n \n </a>\n </div>\n </ng-container> -->\n <ng-container *ngIf=\"item?.mimeType === 'video/mp4'\">\n <div class=\"recommended-question-for-resource mx-10\" (click)=\"redirectToResource(item);raiseTelemetryForResource(item)\">\n \n <div class=\"btn-default mb-2\">\n <div class=\"flex flex-row\">\n <div>\n <a [href]=\"item?.resourceLink\" target=\"_blank\">\n <img class=\"vertical-middle h-w-34\" src=\"/assets/ai-tutor/video.svg\">\n </a>\n </div>\n <div class=\"ml-1\">\n <span>{{item?.title}} </span>\n </div>\n <div>\n <span class=\"content-duration flex ml-1\" *ngIf=\"item?.contentStart > -1 && item?.contentEnd > -1 && !(item?.fromInternet)\">\n <span><mat-icon>access_time</mat-icon> </span>\n <span *ngIf=\"item?.contentStart > -1\">\n <span *ngIf=\"item?.contentStart > 0\">{{item?.contentStart | pipeDurationTransform: 'hms'}}</span>\n <span *ngIf=\"item.contentStart === '0'\">0</span>\n </span>\n <span *ngIf=\"item?.contentEnd > -1\"> - {{item?.contentEnd | pipeDurationTransform: 'hms'}}</span>\n </span> \n </div>\n <div>\n <mat-icon class=\"vertical-middle\" *ngIf=\"!(item?.fromInternet)\">navigate_next</mat-icon>\n </div>\n </div>\n </div>\n <!-- <a [href]=\"item?.resourceLink\" target=\"_blank\" (click)=\"raiseTelemetryForResource(item)\">\n <div class=\"position-relative\">\n <div class=\"position-relative\">\n <img class=\"h-w-34\" src=\"/assets/ai-tutor/video.svg\">\n <p>{{item?.message}}</p>\n </div>\n <div class=\"content-duration flex\" *ngIf=\"item?.contentStart > -1 && item?.contentEnd > -1 && !(item?.fromInternet)\">\n <span><mat-icon>access_time</mat-icon> </span>\n <span *ngIf=\"item?.contentStart > -1\">\n <span *ngIf=\"item?.contentStart > 0\">{{item?.contentStart | pipeDurationTransform: 'hms'}}</span>\n <span *ngIf=\"item.contentStart === '0'\">0</span>\n </span>\n <span *ngIf=\"item?.contentEnd > -1\"> - {{item?.contentEnd | pipeDurationTransform: 'hms'}}</span>\n </div>\n </div>\n \n \n </a> -->\n </div>\n </ng-container>\n <div class=\"flex flex-row cursor-pointer\">\n <!-- <div class=\"resource-link\" *ngIf=\"!(item?.fromInternet)\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">Click to view</a>\n </div> -->\n <div class=\"cursor-pointer ml-10 mr-2 my-1\" (click)=\"copyPath(item, ci)\" *ngIf=\"item?.contentType === 'Resource' && !(item?.fromInternet)\">\n <mat-icon matTooltip=\"Copy\" aria-label=\"Copy\">content_copy</mat-icon>\n <span *ngIf=\"copiedIndex === ci\" class=\"copied-tooltip\">Link Copied!</span>\n </div>\n <!-- <div class=\"feefback-section flex flex-row my-1\" *ngIf=\"(item?.feedback)\">\n <div *ngIf=\"item?.feedback !== 'down'\"\n class=\"cursor-pointer feedback-icon mt-1\" [ngClass]=\"item?.feedback !== 'up' ? 'rotate-180' : ''\">\n <img *ngIf=\"item?.feedback !== 'up'\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback == 'up'\" src=\"/assets/ai-tutor/up.svg\">\n </div>\n <div *ngIf=\"item?.feedback !== 'up'\" class=\"ml-2 cursor-pointer feedback-icon\">\n <img src=\"/assets/ai-tutor/fill-down.svg\">\n </div>\n </div>\n <div class=\"feefback-section flex flex-row my-1\" *ngIf=\"item?.feedback === ''\">\n <div *ngIf=\"item?.feedback !== 'down'\" (click)=\"sharePositiveContentRating(item,i, ci)\"\n class=\"cursor-pointer feedback-icon\" [ngClass]=\"item?.feedback !== 'up' ? 'rotate-180' : ''\">\n <img *ngIf=\"item?.feedback !== 'up'\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback == 'up'\" src=\"/assets/ai-tutor/up.svg\">\n </div>\n <div *ngIf=\"item?.feedback !== 'up'\" (click)=\"openAIFeedbackPopup(item,i, ci)\" class=\"ml-2 cursor-pointer feedback-icon mt-1\">\n <img src=\"/assets/ai-tutor/down.svg\">\n </div>\n </div> -->\n <div class=\"feefback-section flex flex-row my-1\">\n <div (click)=\"sharePositiveContentRating(item,i, ci)\" class=\"cursor-pointer feedback-icon mt-1\" \n >\n <img [ngClass]=\"'rotate-180'\" *ngIf=\"item?.feedback !== 'up' && !item?.showLoaderForUp\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback === 'up' && !item?.showLoaderForUp\" src=\"/assets/ai-tutor/up.svg\">\n <img *ngIf=\"item?.showLoaderForUp\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n <div (click)=\"openAIFeedbackPopup(item,i, ci)\" class=\"ml-2 cursor-pointer feedback-icon mt-1\">\n <img *ngIf=\"item?.feedback !== 'down' && !item?.showLoaderForDown\" src=\"/assets/ai-tutor/down.svg\"> \n <img *ngIf=\"item?.feedback === 'down' && !item?.showLoaderForDown\" src=\"/assets/ai-tutor/fill-down.svg\"> \n <img *ngIf=\"item?.showLoaderForDown\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n </div>\n <!-- <div class=\"flex flex-row font-12 mt-1\">\n <div class=\"ml-2 mr-2 cu\"><img alt=\"ai-icon\" src=\"/assets/ai-tutor/ai-icon.svg\"></div>\n <div class=\"ai-generated-content ml-2\">These are <span *ngIf=\"item?.fromInternet\">Web</span><span *ngIf=\"!(item?.fromInternet)\">AI</span> generated results</div>\n </div> -->\n <!-- <div class=\"feefback-section flex flex-row\">\n \n <div *ngIf=\"item?.feedback !== 'down'\" (click)=\"sharePositiveContentRating(item,i, ci)\"\n class=\"cursor-pointer feedback-icon\" [ngClass]=\"item?.feedback !== 'up' ? 'rotate-180' : ''\">\n <img *ngIf=\"item?.feedback !== 'up'\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback == 'up'\" src=\"/assets/ai-tutor/up.svg\">\n </div>\n <div *ngIf=\"item?.feedback !== 'up'\" (click)=\"openAIFeedbackPopup(item,i, ci)\" class=\"ml-2 cursor-pointer feedback-icon\"><img src=\"/assets/ai-tutor/down.svg\"></div>\n </div> -->\n </div>\n \n </div>\n <div class=\"recommended-question\" [ngClass]=\"{'ml-10': item?.message }\">\n <div class=\"my-5px mr-2 w-92\">\n <ng-container *ngIf=\"item?.contentType !== 'Resource' && !(item?.fromInternet)\">\n <div class=\"btn-default\" (click)=\"redirectToToc(item)\">{{item?.title}}\n <mat-icon class=\"vertical-middle\" *ngIf=\"!(item?.fromInternet)\">navigate_next</mat-icon>\n </div>\n <div class=\"recommended-question-desc\" *ngIf=\"!(item?.fromInternet)\">\n <!-- {{item?.description}} -->\n <markdown [data]=\"item?.description\"></markdown>\n </div>\n </ng-container>\n </div>\n <div class=\"flex flex-row font-12 mb-2\">\n <div class=\"cursor-pointer\" (click)=\"copyPath(item, ci)\" *ngIf=\"item?.contentType !== 'Resource' && !(item?.fromInternet)\">\n <mat-icon matTooltip=\"Copy\" aria-label=\"Copy\">content_copy</mat-icon>\n <span *ngIf=\"copiedIndex === ci\" class=\"copied-tooltip\">Link Copied!</span>\n </div>\n <!-- <div class=\"feefback-section flex flex-row\" *ngIf=\"item?.contentType !== 'Resource'\">\n \n <div *ngIf=\"item?.feedback !== 'down'\" (click)=\"sharePositiveContentRating(item, i,ci)\" \n class=\"cursor-pointer feedback-icon\" [ngClass]=\"item?.feedback !== 'up' ? 'rotate-180' : ''\">\n <img *ngIf=\"item?.feedback !== 'up'\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback == 'up'\" src=\"/assets/ai-tutor/up.svg\">\n </div>\n <div *ngIf=\"item?.feedback !== 'up'\" (click)=\"openAIFeedbackPopup(item, i,ci)\" class=\"ml-2 cursor-pointer feedback-icon\"><img src=\"/assets/ai-tutor/down.svg\"></div>\n </div> -->\n <div class=\"feefback-section flex flex-row\" *ngIf=\"item?.contentType !== 'Resource'\">\n <div (click)=\"sharePositiveContentRating(item,i, ci)\" class=\"cursor-pointer feedback-icon mt-1\" \n >\n <img [ngClass]=\"'rotate-180'\" *ngIf=\"item?.feedback !== 'up' && !item?.showLoaderForUp\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback === 'up' && !item?.showLoaderForUp\" src=\"/assets/ai-tutor/up.svg\">\n <img *ngIf=\"item?.showLoaderForUp\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n <div (click)=\"openAIFeedbackPopup(item,i, ci)\" class=\"ml-2 cursor-pointer feedback-icon mt-1\">\n <img *ngIf=\"item?.feedback !== 'down' && !item?.showLoaderForDown\" src=\"/assets/ai-tutor/down.svg\"> \n <img *ngIf=\"item?.feedback === 'down' && !item?.showLoaderForDown\" src=\"/assets/ai-tutor/fill-down.svg\"> \n <img *ngIf=\"item?.showLoaderForDown\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n </div> \n </div>\n <!-- <div class=\"flex flex-row font-12 mt-1\" *ngIf=\"item?.contentType !== 'Resource'\">\n <div class=\"ml-2 mr-2 cu\"><img alt=\"ai-icon\" src=\"/assets/ai-tutor/ai-icon.svg\"></div>\n <div class=\"ai-generated-content ml-2\">These are <span *ngIf=\"item?.fromInternet\">Web</span><span *ngIf=\"!(item?.fromInternet)\">AI</span> generated results</div>\n </div> -->\n </div>\n </ng-container>\n <div class=\" flex flex-row ml-10\" *ngIf=\"chat?.answer && !(chat?.result?.length)\">\n <div (click)=\"sharePositiveContentRatingForAnswer(chat,i)\" class=\"cursor-pointer feedback-icon mt-1\" \n >\n <img [ngClass]=\"'rotate-180'\" *ngIf=\"chat?.feedback !== 'up' && !chat?.showLoaderForUp\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"chat?.feedback === 'up' && !chat?.showLoaderForUp\" src=\"/assets/ai-tutor/up.svg\">\n <img *ngIf=\"chat?.showLoaderForUp\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n <div (click)=\"openAIFeedbackPopupForAnswer(chat,i)\" class=\"ml-2 cursor-pointer feedback-icon mt-1\">\n <img *ngIf=\"chat?.feedback !== 'down' && !chat?.showLoaderForDown\" src=\"/assets/ai-tutor/down.svg\"> \n <img *ngIf=\"chat?.feedback === 'down' && !chat?.showLoaderForDown\" src=\"/assets/ai-tutor/fill-down.svg\"> \n <img *ngIf=\"chat?.showLoaderForDown\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n </div> \n <div class=\"flex flex-row font-12 mt-1 mb-1 ai-generated-content-container\" *ngIf=\"chat?.result?.length\">\n <div class=\"ml-5 mr-2 cu\"><img alt=\"ai-icon\" src=\"/assets/ai-tutor/ai-icon.svg\"></div>\n <div class=\"ai-generated-content ml-2\">These are <span *ngIf=\"item?.fromInternet\">Web</span><span *ngIf=\"!(item?.fromInternet)\">AI</span> generated results</div>\n </div>\n \n </ng-container>\n <ng-container>\n <div class=\"flex row-start incoming-msg margin-bottom-s\" *ngIf=\"chat?.newMessage === '' && !resultFetch\">\n <div class=\"system-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/bot-chat-small.svg\"></div>\n <div class=\"loading-bar-icon flex flex-row vertical-middle\">\n <div class=\"mt-2\"><span class=\"blue-color\">Retrieving Results</span></div>\n <div><img alt=\"ai-icon\" src=\"/assets/icons/loading_bar.gif\"></div>\n </div>\n </div>\n \n </ng-container>\n </ng-container>\n \n <ng-container *ngIf=\"chat.type === 'sendMsg'\">\n <div class=\"flex width-1-1 row-end padding-top-l padding-bottom-m\">\n <div class=\"user-seleted-question padding-xs\">\n {{chat?.question}}\n </div>\n <div class=\"user-icon\" *ngIf=\"userIcon\">\n <img alt=\"ai-icon\" src=\"{{userIcon}}\">\n </div>\n <div class=\"circle-s user-icon\" *ngIf=\"!userIcon\" [ngStyle]=\"{'background-color': circleColor }\">\n <div class=\"initials\" i18n-aria-label>\n {{ userInitials }} \n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div> \n </div>\n</div>\n\n<div class=\"footer\" [ngClass]=\"isMobile ? 'ai-popup-mobile-footer':''\">\n <div class=\"border-gradient-rounded\" [style.height.px]=\"containerHeight\">\n <div class=\"flex flex-row ml-5 mr-2 justify-between\">\n\n <div class=\"query-box\">\n <!-- <input class=\"width-500\" type=\"text\" placeholder=\"Ask anything...\" [(ngModel)]=\"searchQueryAItutor\" (keydown.enter)=\"submitSearchQuery()\"/> -->\n <textarea #autoResizeTextarea class=\"width-500\"\n placeholder=\"Ask Me Anything...\"\n (input)=\"resizeTextarea(autoResizeTextarea, 'fromInput')\"\n [(ngModel)]=\"searchQueryAItutor\" (keydown.enter)=\"submitSearchQuery(autoResizeTextarea, $event)\"\n rows=\"1\"\n >\n </textarea>\n \n </div>\n\n <div class=\"margin-top-2px\">\n <button type=\"button\" class=\"flex-auto-display send-btn\" (click)=\"submitSearchQuery('',$event)\" [disabled]=\"!searchQueryAItutor\">\n <mat-icon class=\"send-btn-icon\">send</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>\n</div>\n</div>", styles: [".hey{background:linear-gradient(90deg,#32b9dfde,#1b4ca1de);-webkit-background-clip:text;background-clip:text;color:transparent}.ai-generated-content{background:linear-gradient(90deg,#f3962f,#1b4ca1);-webkit-background-clip:text;background-clip:text;color:transparent}.ai-tutor-container .control-container{position:fixed;bottom:0;width:24%;z-index:2;background:#fff;height:40px}.ai-tutor-container-chatbot .control-container{position:fixed;bottom:100px;width:600px;margin:1%;z-index:2}.start-chat{text-align:center;padding-top:37.5%}.query-box{min-height:38px;transition:height .2s;width:100%}.query-box input{border:0;outline:0}.border-gradient-rounded{border:2px solid transparent;border-radius:20px;background:linear-gradient(to right,#fff,#fff),linear-gradient(to right,#efa34f,#4881e4);background-clip:padding-box,border-box;background-origin:padding-box,border-box;width:96%;min-height:36px;margin-left:1%;z-index:3}.send-btn{background-color:#fff!important;color:#1b4ca1!important;border:none!important;margin-left:14px}.ai-tutor-container-chatbot{background-image:url(/assets/ai-tutor/background.svg);height:90vh;width:525px}.message-container{z-index:2;position:relative;width:100%}.chatbot-icon-container{position:fixed;bottom:120px;right:0;cursor:pointer;height:90px;align-items:flex-start;display:flex;justify-content:center;width:auto;z-index:999999999}.chatbot-icon{position:absolute;right:30px;animation-delay:1s;transition:1s ease}.chatbot-icon-expanded{right:0}.expand-text{width:110px;display:flex;align-items:center;justify-content:center;background-color:#1b4ca1;color:#fff;font-size:18px;border-top:2px solid #fff;border-bottom:2px solid #fff;vertical-align:middle}.chatbot{width:610px;position:fixed;bottom:20px;right:50px;z-index:9999999999;border-radius:15px;background-color:#fff;box-shadow:0 6px 16px #0000003d;height:calc(100vh - 20%)}.cb-close{cursor:pointer}.cb-header{color:#fff!important;background-color:#1b4ca1;border-top-left-radius:15px;border-top-right-radius:15px;align-items:center;justify-content:space-between;position:absolute;width:100%;top:0}.cb-header .user-info-div{width:88%;justify-content:space-between}.cb-header .lang-select{height:32px;background-color:#fff;border-color:#00000029!important}.cb-header .user-name{padding-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:74%}.cb-content{background-color:#f0f3f4;overflow:auto}.cb-topics{padding:16px;background-color:#f5f5f5;overflow:auto}.cb-footer{border-bottom-left-radius:15px;border-bottom-right-radius:15px;background-color:#fff}.cb-footer .info{width:33%;padding:5px 0;align-items:center;display:flex;justify-content:center;flex-wrap:wrap;cursor:pointer}.cb-footer .info .info-text{font-size:10px;width:100%;text-align:center}.cb-footer .info .info-icon{height:24px}.br-br{border-bottom-right-radius:15px}.br-bl{border-bottom-left-radius:15px}.language{background-color:#0000000a}.active{background-color:#fbead1;border-top:3px solid rgb(239,149,30)}.active .mat-icon{color:#ef951e!important}.cat-list{margin:0;padding:0;width:100%;display:flex}.cat-item{padding:10px 16px;border-radius:21px;border:1px solid rgba(0,0,0,.16);background-color:#0000000a;opacity:1;color:#000000de;font-family:Lato-Regular,sans-serif;font-size:14px;font-weight:400;font-style:normal;letter-spacing:.25px;text-align:center;line-height:20px;width:fit-content;margin-right:12px;height:fit-content;cursor:pointer;white-space:nowrap}.lang-select{width:70px}.lang-select .mat-form-field-flex{background-color:#fff!important}.lang-select .mat-form-field-underline{background-color:transparent!important}.loader{position:absolute;left:50%;top:39%}.default-info .default-icon{width:60px;float:left;display:flex;flex-wrap:wrap}.default-info .default-msg{background-color:#0000000a;border:1px solid rgba(0,0,0,.16);border-radius:0 15px 15px;display:flex;flex-wrap:wrap}.chat-bot-icon{padding-top:8px}.row-start{justify-content:flex-start}.row-start .system-icon{padding-right:3px}.row-start .system-msg{background-color:#d1dbec;border:1px solid rgb(209,219,236);border-radius:0 15px 15px;display:flex;flex-wrap:wrap;min-width:auto;max-width:80%;height:100%;word-break:break-word}.row-start .system-msg ::ng-deep markdown *{margin:0}.recommended-question-desc ::ng-deep markdown *{margin:0;width:100%;word-wrap:break-word}.word-break{word-break:break-all;white-space:unset}.margin-left-5{margin-left:5%}.question-hint{font-weight:700}.recommended-question{display:flex;flex-wrap:wrap;height:fit-content}.recommended-question .rec-item{height:fit-content}.recommended-question .my-5px{margin-top:5px;margin-bottom:5px}.recommended-question .mr-5px{margin-right:5px}.recommended-question .btn-default{background:#d5c7c70a;border:1px solid #1B4CA1;color:#1b4ca1;padding:10px;font-size:14px;font-weight:700;cursor:pointer;border-radius:5px}.recommended-question .showmore-icon{align-items:flex-start}.recommended-question .btn-active{background:#000;border:1px solid rgba(0,0,0,.16);color:#fff}.btn-show-more,.btn-show-less{background:#1b4ca1;color:#fff;padding:10px 20px;font-size:14px;cursor:pointer;border-radius:40px}.row-end{justify-content:flex-end;height:100%}.row-end .user-seleted-question{background-color:#000;border-radius:15px 0 15px 15px;display:flex;flex-wrap:wrap;color:#fff;float:right;text-align:left;max-width:62%;word-break:break-word}.highlight-title{color:#1b4ca1}.incoming-msg{height:fit-content}.hint-text{color:#1b4ca1}@media only screen and (max-width: 600px){.chatbot{right:6px;bottom:67px}}@media only screen and (max-width: 390px){.chatbot{right:6px;bottom:67px}}.chatbot-wrapper{position:relative}.cb-content-wrapper{position:absolute;width:100%;top:64px;bottom:130px;max-height:100%;overflow:auto;box-sizing:border-box;background-color:#f0f3f4}.cb-footer-wrapper{position:absolute;width:100%;bottom:0}.my-5px{margin-top:5px;margin-bottom:5px}.mr-5px{margin-right:5px}*,:after,:before{box-sizing:border-box}::ng-deep .disable-scroll{overflow-x:hidden!important;overflow:hidden}@media only screen and (max-width: 600px){.chatbot{right:0;bottom:0;width:100%;height:100svh;z-index:999999999}.cb-footer-wrapper{bottom:0}.cb-content-wrapper{bottom:130px}.chatbot-icon-container{bottom:190px}.cb-header{border-top-left-radius:unset;border-top-right-radius:unset}.cb-footer{border-bottom-left-radius:unset;border-bottom-right-radius:unset}.br-br{border-bottom-right-radius:unset}.br-bl{border-bottom-left-radius:unset}}.feefback-section{margin-left:10px}.resource-icon{margin-left:10%}.resource-link{margin-left:40px}.resource-icon img{height:65px;width:115.25px}.font-12{font-size:12px}.vertical-middle{vertical-align:middle}.send-btn-icon{height:22px!important}.width-500{width:262px}.learning-type-container{width:98%}.section-dd{border:1px solid #ccc;padding:12px 16px;width:100%;height:65px;font-size:12px;font-weight:400;position:relative;z-index:2}.system-icon img{height:36px;width:36px}.circle-s{border-radius:50%;width:36px;height:36px;display:flex;justify-content:center;align-items:center;margin-left:4px}.circle-s img{border-radius:50%;width:100%;height:100%}.circle-s .initials{color:#fff;font-size:10px;line-height:12px;font-size:14px;letter-spacing:.2625px}.copied-tooltip{position:absolute;left:20%;transform:translate(-50%);background-color:#000;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;opacity:1;pointer-events:none;transition:opacity .3s ease;z-index:999}.loading-bar-icon img{height:50px;width:50px}.link{color:#1b4ca1;text-decoration:underline}.content-duration{position:relative;background:#f3962f;color:#fff;width:auto;border-radius:8px;text-align:center;bottom:11px;left:0;padding:0 5px;font-size:12px;display:flex;align-items:center;justify-content:center;margin-top:12px;white-space:nowrap}.content-duration .mat-icon{vertical-align:middle;color:#fff!important;height:14px!important;width:14px!important;font-size:14px}.position-relative{position:relative}.control-container{position:fixed;bottom:10px;z-index:2}.tutor-container{width:100%}.header{top:127px;width:100%;color:#fff;display:flex;align-items:flex-start;justify-content:flex-start}::ng-deep .header .mat-form-field{width:100%}.footer{bottom:0;width:100%;height:50px;color:#fff;display:flex;align-items:flex-end;justify-content:center;z-index:2}.container-none{margin-bottom:10px;padding:20px;height:calc(100vh - 261px);background:url(/assets/ai-tutor/background.svg);background-color:#f0f3f4;overflow-y:auto;overflow-x:hidden;position:relative;background-color:#ffffffe6;background-blend-mode:overlay}.option-content{display:flex;flex-direction:column;line-height:2}.option-content .title{font-weight:600}.option-content .subtitle{font-size:12px;color:gray}:host ::ng-deep .multiline-select .mat-mdc-select-value-text{white-space:pre-wrap!important}:host ::ng-deep .mat-pseudo-checkbox{display:none!important}:host ::ng-deep .mat-pseudo-checkbox-checked{display:none!important}:host ::ng-deep .multiline-select-option{background-color:#fff!important}:host ::ng-deep .player-content .mat-tab-label-active{opacity:1!important}.user-icon{margin-left:5px}.user-icon img{height:36px;width:36px;border-radius:50%}.w-92{width:92%}::ng-deep .copy-icon .material-icons{font-size:18px!important}::ng-deep .copy-icon .mat-icon{vertical-align:middle}.internet-result-query{background:#add8e6;border:1px solid #1B4CA1;color:#000;padding:10px;font-size:14px;font-weight:700;cursor:pointer;border-radius:5px}.blue-color{color:#1b4ca1;font-size:14px;font-weight:700}.web-button{background-color:#fff;color:#1b4ca1;border-radius:8px;padding:10px;border:1px solid #1B4CA1}.web-search-icon,.web-close-icon{color:#1b4ca1;vertical-align:middle}::ng-deep .mat-mdc-select-panel{background-color:#fff!important}.rotate-180{rotate:180deg}.feedback-icon{height:18px;width:18px}.recommended-question-for-resource{display:flex;flex-wrap:wrap;height:fit-content}.recommended-question-for-resource .rec-item{height:fit-content}.recommended-question-for-resource .my-5px{margin-top:5px;margin-bottom:5px}.recommended-question-for-resource .mr-5px{margin-right:5px}.recommended-question-for-resource .btn-default{background:#d5c7c70a;border:1px solid #F3962F;color:#1b4ca1;padding:10px;font-size:14px;font-weight:700;cursor:pointer;border-radius:5px}.recommended-question-for-resource .showmore-icon{align-items:flex-start}.recommended-question-for-resource .btn-active{background:#000;border:1px solid rgba(0,0,0,.16);color:#fff}.h-w-34{height:34px;width:34px}.border-gradient-rounded textarea{width:100%;border:none;resize:none;overflow:hidden;font-size:14px;font-family:Lato;box-sizing:border-box;min-height:32px;padding-top:5px}.border-gradient-rounded textarea:focus{outline:none;border:1px solid transparent}.overflow-y-hidden{overflow-y:hidden}.blue-loader-animation{width:18px;height:18px;animation:spin 2s linear infinite;transform-origin:center center}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.margin-top-2px{margin-top:2px}.recommended-question-desc ::ng-deep markdown pre{all:unset;display:revert;box-sizing:border-box;word-wrap:break-word;width:100%}.ai-tutor-popup{position:fixed;top:50px;z-index:999;background-color:#fff;width:100%}.ai-tutor-popup-minimize{position:fixed;bottom:65px;z-index:999;background-color:#fff;width:100%;border-top:3px solid #eff3f9}.ai-popup-mobile-footer{height:25px;bottom:70px;position:fixed}.ai-tutor-mobile-header{justify-content:space-between;padding:0 10px;border-bottom:1px solid #ccc;height:35px;margin-top:15px}.red-circle{background:red;opacity:1;color:#fff;padding:2px 10px;height:20px;width:50px;border-radius:2px;vertical-align:middle;display:flex;justify-content:center;align-items:center;margin-left:8px;margin-top:-10px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i10$1.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: i10$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5$2.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i11$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i12$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "directive", type: i12$1.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i13$2.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "pipe", type: i2$1.PipeDurationTransformPipe, name: "pipeDurationTransform" }] }); }
|
|
12115
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AiTutorComponent, selector: "ws-widget-ai-tutor", inputs: { from: "from", content: "content", userJourney: "userJourney" }, outputs: { closeAIPopup: "closeAIPopup" }, viewQueries: [{ propertyName: "textArea", first: true, predicate: ["autoResizeTextarea"], descendants: true }], ngImport: i0, template: "<!-- <div class=\"tutor-container\">\n<div class=\"learning-type-container\">\n <mat-form-field appearance=\"none\">\n <select matNativeControl required class=\"section-dd\" >\n <option value=\"\">Select learning type here </option>\n <option value=\"\">None</option>\n <option value=\"\">Socratic</option>\n <option value=\"\">Story Telling</option>\n <option value=\"\">Summarisation</option>\n </select>\n </mat-form-field>\n</div>\n<div [ngClass]=\"from === 'chatbot' ? 'ai-tutor-container-chatbot':'ai-tutor-container'\" #scrollMe>\n <div class=\"message-container\" #scrollMe>\n <div class=\"start-chat\" *ngIf=\"aiTutorResultArr?.length === 0\">\n <h2 class=\"hey\">Hey<span *ngIf=\"userInfo?.firstName\">, {{userInfo?.firstName}}</span> </h2>\n <p>Welcome to Ai Tutor,\u2028Get instant explanations, step-by-step learning guidance, and customised learning tailored just for you.</p>\n </div>\n <ng-container *ngFor=\"let chat of aiTutorResultArr; let i =index\">\n <ng-container *ngIf=\"chat.type === 'incoming'\">\n <ng-container *ngIf=\"chat?.answer\">\n <div class=\"flex row-start incoming-msg margin-bottom-s\">\n <div class=\"system-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/chatbot-ai-new.svg\"></div>\n \n <div class=\"system-msg padding-xs\" *ngIf=\"chat?.wordsCount <= 30\" [innerHTML]=\"chat.answer\">\n </div>\n <div class=\"system-msg padding-xs\">\n <div *ngIf=\"chat?.wordsCount > 30\" [innerHTML]=\"chat?.showLess ? chat.shortAnswer : chat.answer\"></div>\n <a class=\"link\" href=\"javascript:void(0)\" *ngIf=\"!chat?.showLess\" (click)=\"toggleShow(i, 'less')\">Show Less</a>\n <a class=\"link\" href=\"javascript:void(0)\" *ngIf=\"chat?.showLess\" (click)=\"toggleShow(i, 'more')\">Show More</a>\n </div>\n \n\n </div>\n <ng-container *ngFor=\"let item of chat?.result; let ci=index\">\n <div class=\"system-msg-mimetype flex flex-col\" *ngIf=\"item?.contentType === 'Resource'\">\n <ng-container *ngIf=\"item?.mimeType === 'application/pdf'\">\n <div class=\"resource-icon\"><a [href]=\"item?.resourceLink\" target=\"_blank\"><img src=\"/assets/icons/ai-pdf-icon.jpg\"></a></div>\n <div class=\"resource-link\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">Open Resource Link</a>\n </div>\n </ng-container>\n <ng-container *ngIf=\"item?.mimeType === 'video/mp4'\">\n \n <div class=\"position-relative\">\n <div class=\"position-relative\">\n <img src=\"/assets/icons/ai-video-icon.jpg\">\n\n </div>\n <div class=\"content-duration\" *ngIf=\"item?.contentStart || item?.contentEnd\">\n <span *ngIf=\"item?.contentStart\">{{item?.contentStart}}</span>\n <span *ngIf=\"item?.contentEnd\">:{{item?.contentEnd}}</span>\n </div>\n </div>\n <div class=\"resource-link\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">Open Resource Link</a>\n </div>\n </ng-container>\n </div>\n <div class=\"recommended-question my-5px\" [ngClass]=\"{'margin-left-5': item?.message }\">\n <div class=\"my-5px mr-2\">\n <ng-container *ngIf=\"item?.contentType !== 'Resource'\">\n <div class=\"btn-default\" (click)=\"redirectToToc(item)\">{{item?.title}}\n <mat-icon class=\"vertical-middle\">navigate_next</mat-icon>\n </div>\n <div>\n {{item?.description | slice : 0:50}}\n </div>\n </ng-container>\n </div>\n <div class=\"flex flex-row font-12\">\n <div class=\"cursor-pointer\" (click)=\"copyPath(item, ci)\">\n <mat-icon matTooltip=\"Copy\" aria-label=\"Copy\">content_copy</mat-icon>\n <span *ngIf=\"copiedIndex === ci\" class=\"copied-tooltip\">Link Copied!</span>\n </div>\n <div class=\"ml-2 mr-2\"><img alt=\"ai-icon\" src=\"/assets/ai-tutor/ai-icon.svg\"></div>\n <div class=\"ai-generated-content ml-2\">These are AI generated results</div>\n </div>\n </div>\n </ng-container>\n \n \n </ng-container>\n <ng-container *ngIf=\"!chat?.answer\">\n <div class=\"flex row-start incoming-msg margin-bottom-s\">\n <div class=\"system-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/chatbot-ai-new.svg\"></div>\n <div class=\"loading-bar-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/loading_bar.gif\"></div>\n </div>\n \n </ng-container>\n </ng-container>\n \n <ng-container *ngIf=\"chat.type === 'sendMsg'\">\n <div class=\"flex width-1-1 row-end padding-top-l padding-bottom-m\">\n <div class=\"user-seleted-question padding-xs\">\n {{chat?.question}}\n </div>\n <div class=\"user-icon\" *ngIf=\"userIcon\">\n <img alt=\"ai-icon\" src=\"{{userIcon}}\">\n </div>\n <div class=\"circle-s user-icon\" *ngIf=\"!userIcon\" [ngStyle]=\"{'background-color': circleColor }\">\n <div class=\"initials\" i18n-aria-label>\n {{ userInitials }} \n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div> \n</div>\n<div class=\"control-container\">\n <div class=\"border-gradient-rounded\">\n <div class=\"flex flex-row mx-5 justify-between\">\n\n <div class=\"query-box\">\n <input class=\"width-500\" type=\"text\" placeholder=\"Ask anything...\" [(ngModel)]=\"searchQueryAItutor\" (keydown.enter)=\"submitSearchQuery()\"/>\n \n </div>\n\n <div>\n <button type=\"button\" class=\"flex-auto-display send-btn\" (click)=\"submitSearchQuery()\" [disabled]=\"!searchQueryAItutor\">\n <mat-icon class=\"send-btn-icon\">send</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>\n</div> -->\n\n<div class=\"overflow-y-hidden\" [ngClass]=\"(isMobile && !maximize ? 'ai-tutor-popup-minimize' : (isMobile ? 'ai-tutor-popup': ''))\">\n<div *ngIf=\"isMobile\">\n <div class=\"flex flex-row ai-tutor-mobile-header\">\n <div class=\"flex flex-row\">\n <div class=\"flex\">\n <span class=\"font-bold\">AI Tutor</span>\n </div> \n <div class=\"red-circle ml-5\">\n New\n </div>\n </div>\n <div class=\"flex flex-row justify-end\">\n <div *ngIf=\"maximize\" (click)=\"minimizeAITutor()\">\n <mat-icon>minimize</mat-icon>\n </div>\n <div *ngIf=\"!maximize\" (click)=\"maximizeAITutor()\">\n <mat-icon>maximize</mat-icon>\n </div>\n <div (click)=\"closeAITutorPopup()\">\n <mat-icon>close</mat-icon>\n </div>\n </div>\n \n \n </div>\n</div>\n<div [hidden]=\"!maximize\">\n<div class=\"header\">\n <!-- <mat-form-field appearance=\"none\" style=\"width:100%\">\n <select matNativeControl required class=\"section-dd\" >\n <option value=\"\">You can also choose a learning style that suits you best from here.</option>\n <option value=\"\">None</option>\n <option value=\"\">Socratic</option>\n <option value=\"\">Story Telling</option>\n <option value=\"\">Summarisation</option>\n </select>\n </mat-form-field> -->\n <mat-form-field class=\"multiline-select\" appearance=\"fill\" style=\"width: 100%; height: 80px;\" floatLabel=\"never\">\n <mat-select class=\"multiline-select-box\" required [(value)]=\"selectedLearningStyle\" (selectionChange)=\"getLearningStyle()\">\n <mat-select-trigger class=\"multiline-select-box-trigger\">\n <div class=\"option-content\">\n <div class=\"title\">{{ selectedLearningStyle?.title }}</div>\n <div class=\"subtitle\">{{ selectedLearningStyle?.subtitle }}</div>\n </div>\n </mat-select-trigger>\n <mat-option class=\"multiline-select-option\" value=\"\" *ngFor=\"let item of learningStyle\" [value]=\"item\">\n <div class=\"option-content\">\n <div class=\"title\">{{item?.title}}</div>\n <div class=\"subtitle\">{{item?.subtitle}}</div>\n </div>\n </mat-option>\n </mat-select>\n </mat-form-field>\n \n</div>\n\n<div class=\"container-none\" id=\"container-none\">\n <div [ngClass]=\"from === 'chatbot' ? 'ai-tutor-container-chatbot':'ai-tutor-container'\">\n <div class=\"message-container\" #scrollMe>\n <div class=\"start-chat\" *ngIf=\"aiTutorResultArr?.length === 0\">\n <h2 class=\"hey\">Hey<span *ngIf=\"userInfo?.firstName\">, {{userInfo?.firstName}}</span> </h2>\n <p>Welcome to AI Tutor,\u2028Get instant explanations, step-by-step learning guidance, and customised learning tailored just for you.</p>\n </div>\n <ng-container *ngFor=\"let chat of aiTutorResultArr; let i =index\">\n <ng-container *ngIf=\"chat.type === 'incoming'\">\n <ng-container *ngIf=\"chat?.answer || chat?.showFromInternet\">\n <div class=\"flex row-start incoming-msg margin-bottom-s\" *ngIf=\"chat?.answer\">\n <div class=\"system-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/bot-chat-small.svg\"></div>\n \n <!-- <div class=\"system-msg padding-xs\" *ngIf=\"chat?.wordsCount <= 30\" [innerHTML]=\"chat.answer\">\n </div> -->\n <div class=\"flex row-start incoming-msg margin-bottom-s\" *ngIf=\"chat?.showFromInternet\">\n <div class=\"system-msg padding-xs mx-10\">\n I couldn\u2019t find any relevant results for your query. Would you like me to search outside the iGOT platform for more information?\n </div>\n \n </div>\n <ng-container *ngIf=\"chat?.answer\">\n <div class=\"system-msg padding-xs\" *ngIf=\"chat?.wordsCount <= 30\">\n <markdown [data]=\"chat?.answer\"></markdown>\n </div>\n \n <div class=\"system-msg padding-xs\" *ngIf=\"chat?.wordsCount > 30\" >\n <!-- <div [innerHTML]=\"chat?.showLess ? chat.shortAnswer : chat.answer\"></div> -->\n <markdown [data]=\"chat?.answer\"></markdown>\n <!-- <markdown [data]=\"chat?.showLess ? chat.shortAnswer : chat.answer\"></markdown> -->\n <!-- <a class=\"link\" href=\"javascript:void(0)\" *ngIf=\"!chat?.showLess\" (click)=\"toggleShow(i, 'less')\">Show Less</a>\n <a class=\"link\" href=\"javascript:void(0)\" *ngIf=\"chat?.showLess\" (click)=\"toggleShow(i, 'more')\">Show More</a> -->\n </div>\n </ng-container>\n \n \n </div>\n \n <div *ngIf=\"chat?.showFromInternet\">\n <div class=\"flex row my-2 justify-start mx-10 my-5\">\n <div (click)=\"callFromInternet(chat, i)\">\n <button type=\"button\" class=\"web-button px-4 cursor-pointer\">\n <mat-icon class=\"web-search-icon\">search </mat-icon><span class=\"blue-color\">Search the web</span>\n </button>\n </div>\n <div (click)=\"rejectFromInternet(i)\" class=\"mx-2\">\n <button type=\"button\" class=\"web-button py-2 px-4 cursor-pointer\">\n <mat-icon class=\"web-close-icon\">close</mat-icon><span class=\"blue-color\">No</span>\n </button>\n </div>\n </div>\n </div>\n <ng-container *ngFor=\"let item of chat?.result; let ci=index\">\n <div class=\"system-msg-mimetype flex flex-col\" *ngIf=\"item?.contentType === 'Resource'\">\n <ng-container *ngIf=\"item?.mimeType === 'application/pdf'\">\n <!-- <div class=\"resource-icon\"><a [href]=\"item?.resourceLink\" target=\"_blank\" (click)=\"raiseTelemetryForResource(item)\">\n <img src=\"/assets/icons/ai-pdf-icon.jpg\"></a>\n </div> -->\n <div class=\"recommended-question-for-resource mx-10\" (click)=\"redirectToResource(item);raiseTelemetryForResource(item)\">\n <!-- <div class=\"resource-icon\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\" (click)=\"raiseTelemetryForResource(item)\">\n <img src=\"/assets/ai-tutor/pdf.svg\">\n </a>\n <p>{{item?.message}}</p>\n </div> -->\n <div class=\"btn-default mb-2\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">\n <img class=\"vertical-middle h-w-34\" src=\"/assets/ai-tutor/pdf.svg\">\n </a>\n {{item?.title}}\n <mat-icon class=\"vertical-middle\" *ngIf=\"!(item?.fromInternet)\">navigate_next</mat-icon>\n </div>\n </div>\n <!-- <div class=\"resource-link\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">Click to view</a>\n </div> -->\n </ng-container>\n <!-- <ng-container *ngIf=\"item?.mimeType === 'video/mp4'\">\n \n <div class=\"resource-icon\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\" (click)=\"raiseTelemetryForResource(item)\">\n <div class=\"position-relative\">\n <div class=\"position-relative\">\n <img src=\"/assets/icons/ai-video-icon.jpg\">\n \n </div>\n <div class=\"content-duration flex\" *ngIf=\"item?.contentStart > -1 && item?.contentEnd > -1 && !(item?.fromInternet)\">\n <span><mat-icon>access_time</mat-icon> </span>\n <span *ngIf=\"item?.contentStart > -1\">\n <span *ngIf=\"item?.contentStart > 0\">{{item?.contentStart | pipeDurationTransform: 'hms'}}</span>\n <span *ngIf=\"item.contentStart === '0'\">0</span>\n </span>\n <span *ngIf=\"item?.contentEnd > -1\"> - {{item?.contentEnd | pipeDurationTransform: 'hms'}}</span>\n </div>\n </div>\n \n \n </a>\n </div>\n </ng-container> -->\n <ng-container *ngIf=\"item?.mimeType === 'video/mp4'\">\n <div class=\"recommended-question-for-resource mx-10\" (click)=\"redirectToResource(item);raiseTelemetryForResource(item)\">\n \n <div class=\"btn-default mb-2\">\n <div class=\"flex flex-row\">\n <div>\n <a [href]=\"item?.resourceLink\" target=\"_blank\">\n <img class=\"vertical-middle h-w-34\" src=\"/assets/ai-tutor/video.svg\">\n </a>\n </div>\n <div class=\"ml-1\">\n <span>{{item?.title}} </span>\n </div>\n <div>\n <span class=\"content-duration flex ml-1\" *ngIf=\"item?.contentStart > -1 && item?.contentEnd > -1 && !(item?.fromInternet)\">\n <span><mat-icon>access_time</mat-icon> </span>\n <span *ngIf=\"item?.contentStart > -1\">\n <span *ngIf=\"item?.contentStart > 0\">{{item?.contentStart | pipeDurationTransform: 'hms'}}</span>\n <span *ngIf=\"item.contentStart === '0'\">0</span>\n </span>\n <span *ngIf=\"item?.contentEnd > -1\"> - {{item?.contentEnd | pipeDurationTransform: 'hms'}}</span>\n </span> \n </div>\n <div>\n <mat-icon class=\"vertical-middle\" *ngIf=\"!(item?.fromInternet)\">navigate_next</mat-icon>\n </div>\n </div>\n </div>\n <!-- <a [href]=\"item?.resourceLink\" target=\"_blank\" (click)=\"raiseTelemetryForResource(item)\">\n <div class=\"position-relative\">\n <div class=\"position-relative\">\n <img class=\"h-w-34\" src=\"/assets/ai-tutor/video.svg\">\n <p>{{item?.message}}</p>\n </div>\n <div class=\"content-duration flex\" *ngIf=\"item?.contentStart > -1 && item?.contentEnd > -1 && !(item?.fromInternet)\">\n <span><mat-icon>access_time</mat-icon> </span>\n <span *ngIf=\"item?.contentStart > -1\">\n <span *ngIf=\"item?.contentStart > 0\">{{item?.contentStart | pipeDurationTransform: 'hms'}}</span>\n <span *ngIf=\"item.contentStart === '0'\">0</span>\n </span>\n <span *ngIf=\"item?.contentEnd > -1\"> - {{item?.contentEnd | pipeDurationTransform: 'hms'}}</span>\n </div>\n </div>\n \n \n </a> -->\n </div>\n </ng-container>\n <div class=\"flex flex-row cursor-pointer\">\n <!-- <div class=\"resource-link\" *ngIf=\"!(item?.fromInternet)\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">Click to view</a>\n </div> -->\n <div class=\"cursor-pointer ml-10 mr-2 my-1\" (click)=\"copyPath(item, ci)\" *ngIf=\"item?.contentType === 'Resource' && !(item?.fromInternet)\">\n <mat-icon matTooltip=\"Copy\" aria-label=\"Copy\">content_copy</mat-icon>\n <span *ngIf=\"copiedIndex === ci\" class=\"copied-tooltip\">Link Copied!</span>\n </div>\n <!-- <div class=\"feefback-section flex flex-row my-1\" *ngIf=\"(item?.feedback)\">\n <div *ngIf=\"item?.feedback !== 'down'\"\n class=\"cursor-pointer feedback-icon mt-1\" [ngClass]=\"item?.feedback !== 'up' ? 'rotate-180' : ''\">\n <img *ngIf=\"item?.feedback !== 'up'\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback == 'up'\" src=\"/assets/ai-tutor/up.svg\">\n </div>\n <div *ngIf=\"item?.feedback !== 'up'\" class=\"ml-2 cursor-pointer feedback-icon\">\n <img src=\"/assets/ai-tutor/fill-down.svg\">\n </div>\n </div>\n <div class=\"feefback-section flex flex-row my-1\" *ngIf=\"item?.feedback === ''\">\n <div *ngIf=\"item?.feedback !== 'down'\" (click)=\"sharePositiveContentRating(item,i, ci)\"\n class=\"cursor-pointer feedback-icon\" [ngClass]=\"item?.feedback !== 'up' ? 'rotate-180' : ''\">\n <img *ngIf=\"item?.feedback !== 'up'\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback == 'up'\" src=\"/assets/ai-tutor/up.svg\">\n </div>\n <div *ngIf=\"item?.feedback !== 'up'\" (click)=\"openAIFeedbackPopup(item,i, ci)\" class=\"ml-2 cursor-pointer feedback-icon mt-1\">\n <img src=\"/assets/ai-tutor/down.svg\">\n </div>\n </div> -->\n <div class=\"feefback-section flex flex-row my-1\">\n <div (click)=\"sharePositiveContentRating(item,i, ci)\" class=\"cursor-pointer feedback-icon mt-1\" \n >\n <img [ngClass]=\"'rotate-180'\" *ngIf=\"item?.feedback !== 'up' && !item?.showLoaderForUp\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback === 'up' && !item?.showLoaderForUp\" src=\"/assets/ai-tutor/up.svg\">\n <img *ngIf=\"item?.showLoaderForUp\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n <div (click)=\"openAIFeedbackPopup(item,i, ci)\" class=\"ml-2 cursor-pointer feedback-icon mt-1\">\n <img *ngIf=\"item?.feedback !== 'down' && !item?.showLoaderForDown\" src=\"/assets/ai-tutor/down.svg\"> \n <img *ngIf=\"item?.feedback === 'down' && !item?.showLoaderForDown\" src=\"/assets/ai-tutor/fill-down.svg\"> \n <img *ngIf=\"item?.showLoaderForDown\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n </div>\n <!-- <div class=\"flex flex-row font-12 mt-1\">\n <div class=\"ml-2 mr-2 cu\"><img alt=\"ai-icon\" src=\"/assets/ai-tutor/ai-icon.svg\"></div>\n <div class=\"ai-generated-content ml-2\">These are <span *ngIf=\"item?.fromInternet\">Web</span><span *ngIf=\"!(item?.fromInternet)\">AI</span> generated results</div>\n </div> -->\n <!-- <div class=\"feefback-section flex flex-row\">\n \n <div *ngIf=\"item?.feedback !== 'down'\" (click)=\"sharePositiveContentRating(item,i, ci)\"\n class=\"cursor-pointer feedback-icon\" [ngClass]=\"item?.feedback !== 'up' ? 'rotate-180' : ''\">\n <img *ngIf=\"item?.feedback !== 'up'\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback == 'up'\" src=\"/assets/ai-tutor/up.svg\">\n </div>\n <div *ngIf=\"item?.feedback !== 'up'\" (click)=\"openAIFeedbackPopup(item,i, ci)\" class=\"ml-2 cursor-pointer feedback-icon\"><img src=\"/assets/ai-tutor/down.svg\"></div>\n </div> -->\n </div>\n \n </div>\n <div class=\"recommended-question\" [ngClass]=\"{'ml-10': item?.message }\">\n <div class=\"my-5px mr-2 w-92\">\n <ng-container *ngIf=\"item?.contentType !== 'Resource' && !(item?.fromInternet)\">\n <div class=\"btn-default\" (click)=\"redirectToToc(item)\">{{item?.title}}\n <mat-icon class=\"vertical-middle\" *ngIf=\"!(item?.fromInternet)\">navigate_next</mat-icon>\n </div>\n <div class=\"recommended-question-desc\" *ngIf=\"!(item?.fromInternet)\">\n <!-- {{item?.description}} -->\n <markdown [data]=\"item?.description\"></markdown>\n </div>\n </ng-container>\n </div>\n <div class=\"flex flex-row font-12 mb-2\">\n <div class=\"cursor-pointer\" (click)=\"copyPath(item, ci)\" *ngIf=\"item?.contentType !== 'Resource' && !(item?.fromInternet)\">\n <mat-icon matTooltip=\"Copy\" aria-label=\"Copy\">content_copy</mat-icon>\n <span *ngIf=\"copiedIndex === ci\" class=\"copied-tooltip\">Link Copied!</span>\n </div>\n <!-- <div class=\"feefback-section flex flex-row\" *ngIf=\"item?.contentType !== 'Resource'\">\n \n <div *ngIf=\"item?.feedback !== 'down'\" (click)=\"sharePositiveContentRating(item, i,ci)\" \n class=\"cursor-pointer feedback-icon\" [ngClass]=\"item?.feedback !== 'up' ? 'rotate-180' : ''\">\n <img *ngIf=\"item?.feedback !== 'up'\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback == 'up'\" src=\"/assets/ai-tutor/up.svg\">\n </div>\n <div *ngIf=\"item?.feedback !== 'up'\" (click)=\"openAIFeedbackPopup(item, i,ci)\" class=\"ml-2 cursor-pointer feedback-icon\"><img src=\"/assets/ai-tutor/down.svg\"></div>\n </div> -->\n <div class=\"feefback-section flex flex-row\" *ngIf=\"item?.contentType !== 'Resource'\">\n <div (click)=\"sharePositiveContentRating(item,i, ci)\" class=\"cursor-pointer feedback-icon mt-1\" \n >\n <img [ngClass]=\"'rotate-180'\" *ngIf=\"item?.feedback !== 'up' && !item?.showLoaderForUp\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback === 'up' && !item?.showLoaderForUp\" src=\"/assets/ai-tutor/up.svg\">\n <img *ngIf=\"item?.showLoaderForUp\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n <div (click)=\"openAIFeedbackPopup(item,i, ci)\" class=\"ml-2 cursor-pointer feedback-icon mt-1\">\n <img *ngIf=\"item?.feedback !== 'down' && !item?.showLoaderForDown\" src=\"/assets/ai-tutor/down.svg\"> \n <img *ngIf=\"item?.feedback === 'down' && !item?.showLoaderForDown\" src=\"/assets/ai-tutor/fill-down.svg\"> \n <img *ngIf=\"item?.showLoaderForDown\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n </div> \n </div>\n <!-- <div class=\"flex flex-row font-12 mt-1\" *ngIf=\"item?.contentType !== 'Resource'\">\n <div class=\"ml-2 mr-2 cu\"><img alt=\"ai-icon\" src=\"/assets/ai-tutor/ai-icon.svg\"></div>\n <div class=\"ai-generated-content ml-2\">These are <span *ngIf=\"item?.fromInternet\">Web</span><span *ngIf=\"!(item?.fromInternet)\">AI</span> generated results</div>\n </div> -->\n </div>\n </ng-container>\n <div class=\" flex flex-row ml-10\" *ngIf=\"chat?.answer && !(chat?.result?.length)\">\n <div (click)=\"sharePositiveContentRatingForAnswer(chat,i)\" class=\"cursor-pointer feedback-icon mt-1\" \n >\n <img [ngClass]=\"'rotate-180'\" *ngIf=\"chat?.feedback !== 'up' && !chat?.showLoaderForUp\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"chat?.feedback === 'up' && !chat?.showLoaderForUp\" src=\"/assets/ai-tutor/up.svg\">\n <img *ngIf=\"chat?.showLoaderForUp\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n <div (click)=\"openAIFeedbackPopupForAnswer(chat,i)\" class=\"ml-2 cursor-pointer feedback-icon mt-1\">\n <img *ngIf=\"chat?.feedback !== 'down' && !chat?.showLoaderForDown\" src=\"/assets/ai-tutor/down.svg\"> \n <img *ngIf=\"chat?.feedback === 'down' && !chat?.showLoaderForDown\" src=\"/assets/ai-tutor/fill-down.svg\"> \n <img *ngIf=\"chat?.showLoaderForDown\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n </div> \n <div class=\"flex flex-row font-12 mt-1 mb-1 ai-generated-content-container\" *ngIf=\"chat?.result?.length\">\n <div class=\"ml-5 mr-2 cu\"><img alt=\"ai-icon\" src=\"/assets/ai-tutor/ai-icon.svg\"></div>\n <div class=\"ai-generated-content ml-2\">These are <span *ngIf=\"item?.fromInternet\">Web</span><span *ngIf=\"!(item?.fromInternet)\">AI</span> generated results</div>\n </div>\n \n </ng-container>\n <ng-container>\n <div class=\"flex row-start incoming-msg margin-bottom-s\" *ngIf=\"chat?.newMessage === '' && !resultFetch\">\n <div class=\"system-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/bot-chat-small.svg\"></div>\n <div class=\"loading-bar-icon flex flex-row vertical-middle\">\n <div class=\"mt-2\"><span class=\"blue-color\">Retrieving Results</span></div>\n <div><img alt=\"ai-icon\" src=\"/assets/icons/loading_bar.gif\"></div>\n </div>\n </div>\n \n </ng-container>\n </ng-container>\n \n <ng-container *ngIf=\"chat.type === 'sendMsg'\">\n <div class=\"flex width-1-1 row-end padding-top-l padding-bottom-m\">\n <div class=\"user-seleted-question padding-xs\">\n {{chat?.question}}\n </div>\n <div class=\"user-icon\" *ngIf=\"userIcon\">\n <img alt=\"ai-icon\" src=\"{{userIcon}}\">\n </div>\n <div class=\"circle-s user-icon\" *ngIf=\"!userIcon\" [ngStyle]=\"{'background-color': circleColor }\">\n <div class=\"initials\" i18n-aria-label>\n {{ userInitials }} \n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div> \n </div>\n</div>\n\n<div class=\"footer\" [ngClass]=\"isMobile ? 'ai-popup-mobile-footer':''\">\n <div class=\"border-gradient-rounded\" [style.height.px]=\"containerHeight\">\n <div class=\"flex flex-row ml-5 mr-2 justify-between\">\n\n <div class=\"query-box\">\n <!-- <input class=\"width-500\" type=\"text\" placeholder=\"Ask anything...\" [(ngModel)]=\"searchQueryAItutor\" (keydown.enter)=\"submitSearchQuery()\"/> -->\n <textarea #autoResizeTextarea class=\"width-500\"\n placeholder=\"Ask Me Anything...\"\n (input)=\"resizeTextarea(autoResizeTextarea, 'fromInput')\"\n [(ngModel)]=\"searchQueryAItutor\" (keydown.enter)=\"submitSearchQuery(autoResizeTextarea, $event)\"\n rows=\"1\"\n >\n </textarea>\n \n </div>\n\n <div class=\"margin-top-2px\">\n <button type=\"button\" class=\"flex-auto-display send-btn\" (click)=\"submitSearchQuery(autoResizeTextarea, $event)\" [disabled]=\"!searchQueryAItutor\">\n <mat-icon class=\"send-btn-icon\">send</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>\n</div>\n</div>", styles: [".hey{background:linear-gradient(90deg,#32b9dfde,#1b4ca1de);-webkit-background-clip:text;background-clip:text;color:transparent}.ai-generated-content{background:linear-gradient(90deg,#f3962f,#1b4ca1);-webkit-background-clip:text;background-clip:text;color:transparent}.ai-tutor-container .control-container{position:fixed;bottom:0;width:24%;z-index:2;background:#fff;height:40px}.ai-tutor-container-chatbot .control-container{position:fixed;bottom:100px;width:600px;margin:1%;z-index:2}.start-chat{text-align:center;padding-top:37.5%}.query-box{min-height:38px;transition:height .2s;width:100%}.query-box input{border:0;outline:0}.border-gradient-rounded{border:2px solid transparent;border-radius:20px;background:linear-gradient(to right,#fff,#fff),linear-gradient(to right,#efa34f,#4881e4);background-clip:padding-box,border-box;background-origin:padding-box,border-box;width:96%;min-height:36px;margin-left:1%;z-index:3}.send-btn{background-color:#fff!important;color:#1b4ca1!important;border:none!important;margin-left:14px}.ai-tutor-container-chatbot{background-image:url(/assets/ai-tutor/background.svg);height:90vh;width:525px}.message-container{z-index:2;position:relative;width:100%}.chatbot-icon-container{position:fixed;bottom:120px;right:0;cursor:pointer;height:90px;align-items:flex-start;display:flex;justify-content:center;width:auto;z-index:999999999}.chatbot-icon{position:absolute;right:30px;animation-delay:1s;transition:1s ease}.chatbot-icon-expanded{right:0}.expand-text{width:110px;display:flex;align-items:center;justify-content:center;background-color:#1b4ca1;color:#fff;font-size:18px;border-top:2px solid #fff;border-bottom:2px solid #fff;vertical-align:middle}.chatbot{width:610px;position:fixed;bottom:20px;right:50px;z-index:9999999999;border-radius:15px;background-color:#fff;box-shadow:0 6px 16px #0000003d;height:calc(100vh - 20%)}.cb-close{cursor:pointer}.cb-header{color:#fff!important;background-color:#1b4ca1;border-top-left-radius:15px;border-top-right-radius:15px;align-items:center;justify-content:space-between;position:absolute;width:100%;top:0}.cb-header .user-info-div{width:88%;justify-content:space-between}.cb-header .lang-select{height:32px;background-color:#fff;border-color:#00000029!important}.cb-header .user-name{padding-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:74%}.cb-content{background-color:#f0f3f4;overflow:auto}.cb-topics{padding:16px;background-color:#f5f5f5;overflow:auto}.cb-footer{border-bottom-left-radius:15px;border-bottom-right-radius:15px;background-color:#fff}.cb-footer .info{width:33%;padding:5px 0;align-items:center;display:flex;justify-content:center;flex-wrap:wrap;cursor:pointer}.cb-footer .info .info-text{font-size:10px;width:100%;text-align:center}.cb-footer .info .info-icon{height:24px}.br-br{border-bottom-right-radius:15px}.br-bl{border-bottom-left-radius:15px}.language{background-color:#0000000a}.active{background-color:#fbead1;border-top:3px solid rgb(239,149,30)}.active .mat-icon{color:#ef951e!important}.cat-list{margin:0;padding:0;width:100%;display:flex}.cat-item{padding:10px 16px;border-radius:21px;border:1px solid rgba(0,0,0,.16);background-color:#0000000a;opacity:1;color:#000000de;font-family:Lato-Regular,sans-serif;font-size:14px;font-weight:400;font-style:normal;letter-spacing:.25px;text-align:center;line-height:20px;width:fit-content;margin-right:12px;height:fit-content;cursor:pointer;white-space:nowrap}.lang-select{width:70px}.lang-select .mat-form-field-flex{background-color:#fff!important}.lang-select .mat-form-field-underline{background-color:transparent!important}.loader{position:absolute;left:50%;top:39%}.default-info .default-icon{width:60px;float:left;display:flex;flex-wrap:wrap}.default-info .default-msg{background-color:#0000000a;border:1px solid rgba(0,0,0,.16);border-radius:0 15px 15px;display:flex;flex-wrap:wrap}.chat-bot-icon{padding-top:8px}.row-start{justify-content:flex-start}.row-start .system-icon{padding-right:3px}.row-start .system-msg{background-color:#d1dbec;border:1px solid rgb(209,219,236);border-radius:0 15px 15px;display:flex;flex-wrap:wrap;min-width:auto;max-width:80%;height:100%;word-break:break-word}.row-start .system-msg ::ng-deep markdown *{margin:0}.recommended-question-desc ::ng-deep markdown *{margin:0;width:100%;word-wrap:break-word}.word-break{word-break:break-all;white-space:unset}.margin-left-5{margin-left:5%}.question-hint{font-weight:700}.recommended-question{display:flex;flex-wrap:wrap;height:fit-content}.recommended-question .rec-item{height:fit-content}.recommended-question .my-5px{margin-top:5px;margin-bottom:5px}.recommended-question .mr-5px{margin-right:5px}.recommended-question .btn-default{background:#d5c7c70a;border:1px solid #1B4CA1;color:#1b4ca1;padding:10px;font-size:14px;font-weight:700;cursor:pointer;border-radius:5px}.recommended-question .showmore-icon{align-items:flex-start}.recommended-question .btn-active{background:#000;border:1px solid rgba(0,0,0,.16);color:#fff}.btn-show-more,.btn-show-less{background:#1b4ca1;color:#fff;padding:10px 20px;font-size:14px;cursor:pointer;border-radius:40px}.row-end{justify-content:flex-end;height:100%}.row-end .user-seleted-question{background-color:#000;border-radius:15px 0 15px 15px;display:flex;flex-wrap:wrap;color:#fff;float:right;text-align:left;max-width:62%;word-break:break-word}.highlight-title{color:#1b4ca1}.incoming-msg{height:fit-content}.hint-text{color:#1b4ca1}@media only screen and (max-width: 600px){.chatbot{right:6px;bottom:67px}}@media only screen and (max-width: 390px){.chatbot{right:6px;bottom:67px}}.chatbot-wrapper{position:relative}.cb-content-wrapper{position:absolute;width:100%;top:64px;bottom:130px;max-height:100%;overflow:auto;box-sizing:border-box;background-color:#f0f3f4}.cb-footer-wrapper{position:absolute;width:100%;bottom:0}.my-5px{margin-top:5px;margin-bottom:5px}.mr-5px{margin-right:5px}*,:after,:before{box-sizing:border-box}::ng-deep .disable-scroll{overflow-x:hidden!important;overflow:hidden}@media only screen and (max-width: 600px){.chatbot{right:0;bottom:0;width:100%;height:100svh;z-index:999999999}.cb-footer-wrapper{bottom:0}.cb-content-wrapper{bottom:130px}.chatbot-icon-container{bottom:190px}.cb-header{border-top-left-radius:unset;border-top-right-radius:unset}.cb-footer{border-bottom-left-radius:unset;border-bottom-right-radius:unset}.br-br{border-bottom-right-radius:unset}.br-bl{border-bottom-left-radius:unset}}.feefback-section{margin-left:10px}.resource-icon{margin-left:10%}.resource-link{margin-left:40px}.resource-icon img{height:65px;width:115.25px}.font-12{font-size:12px}.vertical-middle{vertical-align:middle}.send-btn-icon{height:22px!important}.width-500{width:262px}.learning-type-container{width:98%}.section-dd{border:1px solid #ccc;padding:12px 16px;width:100%;height:65px;font-size:12px;font-weight:400;position:relative;z-index:2}.system-icon img{height:36px;width:36px}.circle-s{border-radius:50%;width:36px;height:36px;display:flex;justify-content:center;align-items:center;margin-left:4px}.circle-s img{border-radius:50%;width:100%;height:100%}.circle-s .initials{color:#fff;font-size:10px;line-height:12px;font-size:14px;letter-spacing:.2625px}.copied-tooltip{position:absolute;left:20%;transform:translate(-50%);background-color:#000;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;opacity:1;pointer-events:none;transition:opacity .3s ease;z-index:999}.loading-bar-icon img{height:50px;width:50px}.link{color:#1b4ca1;text-decoration:underline}.content-duration{position:relative;background:#f3962f;color:#fff;width:auto;border-radius:8px;text-align:center;bottom:11px;left:0;padding:0 5px;font-size:12px;display:flex;align-items:center;justify-content:center;margin-top:12px;white-space:nowrap}.content-duration .mat-icon{vertical-align:middle;color:#fff!important;height:14px!important;width:14px!important;font-size:14px}.position-relative{position:relative}.control-container{position:fixed;bottom:10px;z-index:2}.tutor-container{width:100%}.header{top:127px;width:100%;color:#fff;display:flex;align-items:flex-start;justify-content:flex-start}::ng-deep .header .mat-form-field{width:100%}.footer{bottom:0;width:100%;height:50px;color:#fff;display:flex;align-items:flex-end;justify-content:center;z-index:2}.container-none{margin-bottom:10px;padding:20px;height:calc(100vh - 261px);background:url(/assets/ai-tutor/background.svg);background-color:#f0f3f4;overflow-y:auto;overflow-x:hidden;position:relative;background-color:#ffffffe6;background-blend-mode:overlay}.option-content{display:flex;flex-direction:column;line-height:2}.option-content .title{font-weight:600}.option-content .subtitle{font-size:12px;color:gray}:host ::ng-deep .multiline-select .mat-mdc-select-value-text{white-space:pre-wrap!important}:host ::ng-deep .mat-pseudo-checkbox{display:none!important}:host ::ng-deep .mat-pseudo-checkbox-checked{display:none!important}:host ::ng-deep .multiline-select-option{background-color:#fff!important}:host ::ng-deep .player-content .mat-tab-label-active{opacity:1!important}.user-icon{margin-left:5px}.user-icon img{height:36px;width:36px;border-radius:50%}.w-92{width:92%}::ng-deep .copy-icon .material-icons{font-size:18px!important}::ng-deep .copy-icon .mat-icon{vertical-align:middle}.internet-result-query{background:#add8e6;border:1px solid #1B4CA1;color:#000;padding:10px;font-size:14px;font-weight:700;cursor:pointer;border-radius:5px}.blue-color{color:#1b4ca1;font-size:14px;font-weight:700}.web-button{background-color:#fff;color:#1b4ca1;border-radius:8px;padding:10px;border:1px solid #1B4CA1}.web-search-icon,.web-close-icon{color:#1b4ca1;vertical-align:middle}::ng-deep .mat-mdc-select-panel{background-color:#fff!important}.rotate-180{rotate:180deg}.feedback-icon{height:18px;width:18px}.recommended-question-for-resource{display:flex;flex-wrap:wrap;height:fit-content}.recommended-question-for-resource .rec-item{height:fit-content}.recommended-question-for-resource .my-5px{margin-top:5px;margin-bottom:5px}.recommended-question-for-resource .mr-5px{margin-right:5px}.recommended-question-for-resource .btn-default{background:#d5c7c70a;border:1px solid #F3962F;color:#1b4ca1;padding:10px;font-size:14px;font-weight:700;cursor:pointer;border-radius:5px}.recommended-question-for-resource .showmore-icon{align-items:flex-start}.recommended-question-for-resource .btn-active{background:#000;border:1px solid rgba(0,0,0,.16);color:#fff}.h-w-34{height:34px;width:34px}.border-gradient-rounded textarea{width:100%;border:none;resize:none;overflow:hidden;font-size:14px;font-family:Lato;box-sizing:border-box;min-height:32px;padding-top:5px}.border-gradient-rounded textarea:focus{outline:none;border:1px solid transparent}.overflow-y-hidden{overflow-y:hidden}.blue-loader-animation{width:18px;height:18px;animation:spin 2s linear infinite;transform-origin:center center}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.margin-top-2px{margin-top:2px}.recommended-question-desc ::ng-deep markdown pre{all:unset;display:revert;box-sizing:border-box;word-wrap:break-word;width:100%}.ai-tutor-popup{position:fixed;top:50px;z-index:999;background-color:#fff;width:100%}.ai-tutor-popup-minimize{position:fixed;bottom:65px;z-index:999;background-color:#fff;width:100%;border-top:3px solid #eff3f9}.ai-popup-mobile-footer{height:25px;bottom:70px;position:fixed}.ai-tutor-mobile-header{justify-content:space-between;padding:0 10px;border-bottom:1px solid #ccc;height:35px;margin-top:15px}.red-circle{background:red;opacity:1;color:#fff;padding:2px 10px;height:20px;width:50px;border-radius:2px;vertical-align:middle;display:flex;justify-content:center;align-items:center;margin-left:8px;margin-top:-10px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i10$1.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: i10$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5$2.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i11$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i12$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "directive", type: i12$1.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i13$2.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "pipe", type: i2$1.PipeDurationTransformPipe, name: "pipeDurationTransform" }] }); }
|
|
12116
12116
|
}
|
|
12117
12117
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AiTutorComponent, decorators: [{
|
|
12118
12118
|
type: Component,
|
|
12119
|
-
args: [{ selector: 'ws-widget-ai-tutor', template: "<!-- <div class=\"tutor-container\">\n<div class=\"learning-type-container\">\n <mat-form-field appearance=\"none\">\n <select matNativeControl required class=\"section-dd\" >\n <option value=\"\">Select learning type here </option>\n <option value=\"\">None</option>\n <option value=\"\">Socratic</option>\n <option value=\"\">Story Telling</option>\n <option value=\"\">Summarisation</option>\n </select>\n </mat-form-field>\n</div>\n<div [ngClass]=\"from === 'chatbot' ? 'ai-tutor-container-chatbot':'ai-tutor-container'\" #scrollMe>\n <div class=\"message-container\" #scrollMe>\n <div class=\"start-chat\" *ngIf=\"aiTutorResultArr?.length === 0\">\n <h2 class=\"hey\">Hey<span *ngIf=\"userInfo?.firstName\">, {{userInfo?.firstName}}</span> </h2>\n <p>Welcome to Ai Tutor,\u2028Get instant explanations, step-by-step learning guidance, and customised learning tailored just for you.</p>\n </div>\n <ng-container *ngFor=\"let chat of aiTutorResultArr; let i =index\">\n <ng-container *ngIf=\"chat.type === 'incoming'\">\n <ng-container *ngIf=\"chat?.answer\">\n <div class=\"flex row-start incoming-msg margin-bottom-s\">\n <div class=\"system-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/chatbot-ai-new.svg\"></div>\n \n <div class=\"system-msg padding-xs\" *ngIf=\"chat?.wordsCount <= 30\" [innerHTML]=\"chat.answer\">\n </div>\n <div class=\"system-msg padding-xs\">\n <div *ngIf=\"chat?.wordsCount > 30\" [innerHTML]=\"chat?.showLess ? chat.shortAnswer : chat.answer\"></div>\n <a class=\"link\" href=\"javascript:void(0)\" *ngIf=\"!chat?.showLess\" (click)=\"toggleShow(i, 'less')\">Show Less</a>\n <a class=\"link\" href=\"javascript:void(0)\" *ngIf=\"chat?.showLess\" (click)=\"toggleShow(i, 'more')\">Show More</a>\n </div>\n \n\n </div>\n <ng-container *ngFor=\"let item of chat?.result; let ci=index\">\n <div class=\"system-msg-mimetype flex flex-col\" *ngIf=\"item?.contentType === 'Resource'\">\n <ng-container *ngIf=\"item?.mimeType === 'application/pdf'\">\n <div class=\"resource-icon\"><a [href]=\"item?.resourceLink\" target=\"_blank\"><img src=\"/assets/icons/ai-pdf-icon.jpg\"></a></div>\n <div class=\"resource-link\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">Open Resource Link</a>\n </div>\n </ng-container>\n <ng-container *ngIf=\"item?.mimeType === 'video/mp4'\">\n \n <div class=\"position-relative\">\n <div class=\"position-relative\">\n <img src=\"/assets/icons/ai-video-icon.jpg\">\n\n </div>\n <div class=\"content-duration\" *ngIf=\"item?.contentStart || item?.contentEnd\">\n <span *ngIf=\"item?.contentStart\">{{item?.contentStart}}</span>\n <span *ngIf=\"item?.contentEnd\">:{{item?.contentEnd}}</span>\n </div>\n </div>\n <div class=\"resource-link\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">Open Resource Link</a>\n </div>\n </ng-container>\n </div>\n <div class=\"recommended-question my-5px\" [ngClass]=\"{'margin-left-5': item?.message }\">\n <div class=\"my-5px mr-2\">\n <ng-container *ngIf=\"item?.contentType !== 'Resource'\">\n <div class=\"btn-default\" (click)=\"redirectToToc(item)\">{{item?.title}}\n <mat-icon class=\"vertical-middle\">navigate_next</mat-icon>\n </div>\n <div>\n {{item?.description | slice : 0:50}}\n </div>\n </ng-container>\n </div>\n <div class=\"flex flex-row font-12\">\n <div class=\"cursor-pointer\" (click)=\"copyPath(item, ci)\">\n <mat-icon matTooltip=\"Copy\" aria-label=\"Copy\">content_copy</mat-icon>\n <span *ngIf=\"copiedIndex === ci\" class=\"copied-tooltip\">Link Copied!</span>\n </div>\n <div class=\"ml-2 mr-2\"><img alt=\"ai-icon\" src=\"/assets/ai-tutor/ai-icon.svg\"></div>\n <div class=\"ai-generated-content ml-2\">These are AI generated results</div>\n </div>\n </div>\n </ng-container>\n \n \n </ng-container>\n <ng-container *ngIf=\"!chat?.answer\">\n <div class=\"flex row-start incoming-msg margin-bottom-s\">\n <div class=\"system-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/chatbot-ai-new.svg\"></div>\n <div class=\"loading-bar-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/loading_bar.gif\"></div>\n </div>\n \n </ng-container>\n </ng-container>\n \n <ng-container *ngIf=\"chat.type === 'sendMsg'\">\n <div class=\"flex width-1-1 row-end padding-top-l padding-bottom-m\">\n <div class=\"user-seleted-question padding-xs\">\n {{chat?.question}}\n </div>\n <div class=\"user-icon\" *ngIf=\"userIcon\">\n <img alt=\"ai-icon\" src=\"{{userIcon}}\">\n </div>\n <div class=\"circle-s user-icon\" *ngIf=\"!userIcon\" [ngStyle]=\"{'background-color': circleColor }\">\n <div class=\"initials\" i18n-aria-label>\n {{ userInitials }} \n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div> \n</div>\n<div class=\"control-container\">\n <div class=\"border-gradient-rounded\">\n <div class=\"flex flex-row mx-5 justify-between\">\n\n <div class=\"query-box\">\n <input class=\"width-500\" type=\"text\" placeholder=\"Ask anything...\" [(ngModel)]=\"searchQueryAItutor\" (keydown.enter)=\"submitSearchQuery()\"/>\n \n </div>\n\n <div>\n <button type=\"button\" class=\"flex-auto-display send-btn\" (click)=\"submitSearchQuery()\" [disabled]=\"!searchQueryAItutor\">\n <mat-icon class=\"send-btn-icon\">send</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>\n</div> -->\n\n<div class=\"overflow-y-hidden\" [ngClass]=\"(isMobile && !maximize ? 'ai-tutor-popup-minimize' : (isMobile ? 'ai-tutor-popup': ''))\">\n<div *ngIf=\"isMobile\">\n <div class=\"flex flex-row ai-tutor-mobile-header\">\n <div class=\"flex flex-row\">\n <div class=\"flex\">\n <span class=\"font-bold\">AI Tutor</span>\n </div> \n <div class=\"red-circle ml-5\">\n New\n </div>\n </div>\n <div class=\"flex flex-row justify-end\">\n <div *ngIf=\"maximize\" (click)=\"minimizeAITutor()\">\n <mat-icon>minimize</mat-icon>\n </div>\n <div *ngIf=\"!maximize\" (click)=\"maximizeAITutor()\">\n <mat-icon>maximize</mat-icon>\n </div>\n <div (click)=\"closeAITutorPopup()\">\n <mat-icon>close</mat-icon>\n </div>\n </div>\n \n \n </div>\n</div>\n<div [hidden]=\"!maximize\">\n<div class=\"header\">\n <!-- <mat-form-field appearance=\"none\" style=\"width:100%\">\n <select matNativeControl required class=\"section-dd\" >\n <option value=\"\">You can also choose a learning style that suits you best from here.</option>\n <option value=\"\">None</option>\n <option value=\"\">Socratic</option>\n <option value=\"\">Story Telling</option>\n <option value=\"\">Summarisation</option>\n </select>\n </mat-form-field> -->\n <mat-form-field class=\"multiline-select\" appearance=\"fill\" style=\"width: 100%; height: 80px;\" floatLabel=\"never\">\n <mat-select class=\"multiline-select-box\" required [(value)]=\"selectedLearningStyle\" (selectionChange)=\"getLearningStyle()\">\n <mat-select-trigger class=\"multiline-select-box-trigger\">\n <div class=\"option-content\">\n <div class=\"title\">{{ selectedLearningStyle?.title }}</div>\n <div class=\"subtitle\">{{ selectedLearningStyle?.subtitle }}</div>\n </div>\n </mat-select-trigger>\n <mat-option class=\"multiline-select-option\" value=\"\" *ngFor=\"let item of learningStyle\" [value]=\"item\">\n <div class=\"option-content\">\n <div class=\"title\">{{item?.title}}</div>\n <div class=\"subtitle\">{{item?.subtitle}}</div>\n </div>\n </mat-option>\n </mat-select>\n </mat-form-field>\n \n</div>\n\n<div class=\"container-none\" id=\"container-none\">\n <div [ngClass]=\"from === 'chatbot' ? 'ai-tutor-container-chatbot':'ai-tutor-container'\">\n <div class=\"message-container\" #scrollMe>\n <div class=\"start-chat\" *ngIf=\"aiTutorResultArr?.length === 0\">\n <h2 class=\"hey\">Hey<span *ngIf=\"userInfo?.firstName\">, {{userInfo?.firstName}}</span> </h2>\n <p>Welcome to AI Tutor,\u2028Get instant explanations, step-by-step learning guidance, and customised learning tailored just for you.</p>\n </div>\n <ng-container *ngFor=\"let chat of aiTutorResultArr; let i =index\">\n <ng-container *ngIf=\"chat.type === 'incoming'\">\n <ng-container *ngIf=\"chat?.answer || chat?.showFromInternet\">\n <div class=\"flex row-start incoming-msg margin-bottom-s\" *ngIf=\"chat?.answer\">\n <div class=\"system-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/bot-chat-small.svg\"></div>\n \n <!-- <div class=\"system-msg padding-xs\" *ngIf=\"chat?.wordsCount <= 30\" [innerHTML]=\"chat.answer\">\n </div> -->\n <div class=\"flex row-start incoming-msg margin-bottom-s\" *ngIf=\"chat?.showFromInternet\">\n <div class=\"system-msg padding-xs mx-10\">\n I couldn\u2019t find any relevant results for your query. Would you like me to search outside the iGOT platform for more information?\n </div>\n \n </div>\n <ng-container *ngIf=\"chat?.answer\">\n <div class=\"system-msg padding-xs\" *ngIf=\"chat?.wordsCount <= 30\">\n <markdown [data]=\"chat?.answer\"></markdown>\n </div>\n \n <div class=\"system-msg padding-xs\" *ngIf=\"chat?.wordsCount > 30\" >\n <!-- <div [innerHTML]=\"chat?.showLess ? chat.shortAnswer : chat.answer\"></div> -->\n <markdown [data]=\"chat?.answer\"></markdown>\n <!-- <markdown [data]=\"chat?.showLess ? chat.shortAnswer : chat.answer\"></markdown> -->\n <!-- <a class=\"link\" href=\"javascript:void(0)\" *ngIf=\"!chat?.showLess\" (click)=\"toggleShow(i, 'less')\">Show Less</a>\n <a class=\"link\" href=\"javascript:void(0)\" *ngIf=\"chat?.showLess\" (click)=\"toggleShow(i, 'more')\">Show More</a> -->\n </div>\n </ng-container>\n \n \n </div>\n \n <div *ngIf=\"chat?.showFromInternet\">\n <div class=\"flex row my-2 justify-start mx-10 my-5\">\n <div (click)=\"callFromInternet(chat, i)\">\n <button type=\"button\" class=\"web-button px-4 cursor-pointer\">\n <mat-icon class=\"web-search-icon\">search </mat-icon><span class=\"blue-color\">Search the web</span>\n </button>\n </div>\n <div (click)=\"rejectFromInternet(i)\" class=\"mx-2\">\n <button type=\"button\" class=\"web-button py-2 px-4 cursor-pointer\">\n <mat-icon class=\"web-close-icon\">close</mat-icon><span class=\"blue-color\">No</span>\n </button>\n </div>\n </div>\n </div>\n <ng-container *ngFor=\"let item of chat?.result; let ci=index\">\n <div class=\"system-msg-mimetype flex flex-col\" *ngIf=\"item?.contentType === 'Resource'\">\n <ng-container *ngIf=\"item?.mimeType === 'application/pdf'\">\n <!-- <div class=\"resource-icon\"><a [href]=\"item?.resourceLink\" target=\"_blank\" (click)=\"raiseTelemetryForResource(item)\">\n <img src=\"/assets/icons/ai-pdf-icon.jpg\"></a>\n </div> -->\n <div class=\"recommended-question-for-resource mx-10\" (click)=\"redirectToResource(item);raiseTelemetryForResource(item)\">\n <!-- <div class=\"resource-icon\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\" (click)=\"raiseTelemetryForResource(item)\">\n <img src=\"/assets/ai-tutor/pdf.svg\">\n </a>\n <p>{{item?.message}}</p>\n </div> -->\n <div class=\"btn-default mb-2\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">\n <img class=\"vertical-middle h-w-34\" src=\"/assets/ai-tutor/pdf.svg\">\n </a>\n {{item?.title}}\n <mat-icon class=\"vertical-middle\" *ngIf=\"!(item?.fromInternet)\">navigate_next</mat-icon>\n </div>\n </div>\n <!-- <div class=\"resource-link\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">Click to view</a>\n </div> -->\n </ng-container>\n <!-- <ng-container *ngIf=\"item?.mimeType === 'video/mp4'\">\n \n <div class=\"resource-icon\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\" (click)=\"raiseTelemetryForResource(item)\">\n <div class=\"position-relative\">\n <div class=\"position-relative\">\n <img src=\"/assets/icons/ai-video-icon.jpg\">\n \n </div>\n <div class=\"content-duration flex\" *ngIf=\"item?.contentStart > -1 && item?.contentEnd > -1 && !(item?.fromInternet)\">\n <span><mat-icon>access_time</mat-icon> </span>\n <span *ngIf=\"item?.contentStart > -1\">\n <span *ngIf=\"item?.contentStart > 0\">{{item?.contentStart | pipeDurationTransform: 'hms'}}</span>\n <span *ngIf=\"item.contentStart === '0'\">0</span>\n </span>\n <span *ngIf=\"item?.contentEnd > -1\"> - {{item?.contentEnd | pipeDurationTransform: 'hms'}}</span>\n </div>\n </div>\n \n \n </a>\n </div>\n </ng-container> -->\n <ng-container *ngIf=\"item?.mimeType === 'video/mp4'\">\n <div class=\"recommended-question-for-resource mx-10\" (click)=\"redirectToResource(item);raiseTelemetryForResource(item)\">\n \n <div class=\"btn-default mb-2\">\n <div class=\"flex flex-row\">\n <div>\n <a [href]=\"item?.resourceLink\" target=\"_blank\">\n <img class=\"vertical-middle h-w-34\" src=\"/assets/ai-tutor/video.svg\">\n </a>\n </div>\n <div class=\"ml-1\">\n <span>{{item?.title}} </span>\n </div>\n <div>\n <span class=\"content-duration flex ml-1\" *ngIf=\"item?.contentStart > -1 && item?.contentEnd > -1 && !(item?.fromInternet)\">\n <span><mat-icon>access_time</mat-icon> </span>\n <span *ngIf=\"item?.contentStart > -1\">\n <span *ngIf=\"item?.contentStart > 0\">{{item?.contentStart | pipeDurationTransform: 'hms'}}</span>\n <span *ngIf=\"item.contentStart === '0'\">0</span>\n </span>\n <span *ngIf=\"item?.contentEnd > -1\"> - {{item?.contentEnd | pipeDurationTransform: 'hms'}}</span>\n </span> \n </div>\n <div>\n <mat-icon class=\"vertical-middle\" *ngIf=\"!(item?.fromInternet)\">navigate_next</mat-icon>\n </div>\n </div>\n </div>\n <!-- <a [href]=\"item?.resourceLink\" target=\"_blank\" (click)=\"raiseTelemetryForResource(item)\">\n <div class=\"position-relative\">\n <div class=\"position-relative\">\n <img class=\"h-w-34\" src=\"/assets/ai-tutor/video.svg\">\n <p>{{item?.message}}</p>\n </div>\n <div class=\"content-duration flex\" *ngIf=\"item?.contentStart > -1 && item?.contentEnd > -1 && !(item?.fromInternet)\">\n <span><mat-icon>access_time</mat-icon> </span>\n <span *ngIf=\"item?.contentStart > -1\">\n <span *ngIf=\"item?.contentStart > 0\">{{item?.contentStart | pipeDurationTransform: 'hms'}}</span>\n <span *ngIf=\"item.contentStart === '0'\">0</span>\n </span>\n <span *ngIf=\"item?.contentEnd > -1\"> - {{item?.contentEnd | pipeDurationTransform: 'hms'}}</span>\n </div>\n </div>\n \n \n </a> -->\n </div>\n </ng-container>\n <div class=\"flex flex-row cursor-pointer\">\n <!-- <div class=\"resource-link\" *ngIf=\"!(item?.fromInternet)\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">Click to view</a>\n </div> -->\n <div class=\"cursor-pointer ml-10 mr-2 my-1\" (click)=\"copyPath(item, ci)\" *ngIf=\"item?.contentType === 'Resource' && !(item?.fromInternet)\">\n <mat-icon matTooltip=\"Copy\" aria-label=\"Copy\">content_copy</mat-icon>\n <span *ngIf=\"copiedIndex === ci\" class=\"copied-tooltip\">Link Copied!</span>\n </div>\n <!-- <div class=\"feefback-section flex flex-row my-1\" *ngIf=\"(item?.feedback)\">\n <div *ngIf=\"item?.feedback !== 'down'\"\n class=\"cursor-pointer feedback-icon mt-1\" [ngClass]=\"item?.feedback !== 'up' ? 'rotate-180' : ''\">\n <img *ngIf=\"item?.feedback !== 'up'\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback == 'up'\" src=\"/assets/ai-tutor/up.svg\">\n </div>\n <div *ngIf=\"item?.feedback !== 'up'\" class=\"ml-2 cursor-pointer feedback-icon\">\n <img src=\"/assets/ai-tutor/fill-down.svg\">\n </div>\n </div>\n <div class=\"feefback-section flex flex-row my-1\" *ngIf=\"item?.feedback === ''\">\n <div *ngIf=\"item?.feedback !== 'down'\" (click)=\"sharePositiveContentRating(item,i, ci)\"\n class=\"cursor-pointer feedback-icon\" [ngClass]=\"item?.feedback !== 'up' ? 'rotate-180' : ''\">\n <img *ngIf=\"item?.feedback !== 'up'\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback == 'up'\" src=\"/assets/ai-tutor/up.svg\">\n </div>\n <div *ngIf=\"item?.feedback !== 'up'\" (click)=\"openAIFeedbackPopup(item,i, ci)\" class=\"ml-2 cursor-pointer feedback-icon mt-1\">\n <img src=\"/assets/ai-tutor/down.svg\">\n </div>\n </div> -->\n <div class=\"feefback-section flex flex-row my-1\">\n <div (click)=\"sharePositiveContentRating(item,i, ci)\" class=\"cursor-pointer feedback-icon mt-1\" \n >\n <img [ngClass]=\"'rotate-180'\" *ngIf=\"item?.feedback !== 'up' && !item?.showLoaderForUp\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback === 'up' && !item?.showLoaderForUp\" src=\"/assets/ai-tutor/up.svg\">\n <img *ngIf=\"item?.showLoaderForUp\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n <div (click)=\"openAIFeedbackPopup(item,i, ci)\" class=\"ml-2 cursor-pointer feedback-icon mt-1\">\n <img *ngIf=\"item?.feedback !== 'down' && !item?.showLoaderForDown\" src=\"/assets/ai-tutor/down.svg\"> \n <img *ngIf=\"item?.feedback === 'down' && !item?.showLoaderForDown\" src=\"/assets/ai-tutor/fill-down.svg\"> \n <img *ngIf=\"item?.showLoaderForDown\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n </div>\n <!-- <div class=\"flex flex-row font-12 mt-1\">\n <div class=\"ml-2 mr-2 cu\"><img alt=\"ai-icon\" src=\"/assets/ai-tutor/ai-icon.svg\"></div>\n <div class=\"ai-generated-content ml-2\">These are <span *ngIf=\"item?.fromInternet\">Web</span><span *ngIf=\"!(item?.fromInternet)\">AI</span> generated results</div>\n </div> -->\n <!-- <div class=\"feefback-section flex flex-row\">\n \n <div *ngIf=\"item?.feedback !== 'down'\" (click)=\"sharePositiveContentRating(item,i, ci)\"\n class=\"cursor-pointer feedback-icon\" [ngClass]=\"item?.feedback !== 'up' ? 'rotate-180' : ''\">\n <img *ngIf=\"item?.feedback !== 'up'\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback == 'up'\" src=\"/assets/ai-tutor/up.svg\">\n </div>\n <div *ngIf=\"item?.feedback !== 'up'\" (click)=\"openAIFeedbackPopup(item,i, ci)\" class=\"ml-2 cursor-pointer feedback-icon\"><img src=\"/assets/ai-tutor/down.svg\"></div>\n </div> -->\n </div>\n \n </div>\n <div class=\"recommended-question\" [ngClass]=\"{'ml-10': item?.message }\">\n <div class=\"my-5px mr-2 w-92\">\n <ng-container *ngIf=\"item?.contentType !== 'Resource' && !(item?.fromInternet)\">\n <div class=\"btn-default\" (click)=\"redirectToToc(item)\">{{item?.title}}\n <mat-icon class=\"vertical-middle\" *ngIf=\"!(item?.fromInternet)\">navigate_next</mat-icon>\n </div>\n <div class=\"recommended-question-desc\" *ngIf=\"!(item?.fromInternet)\">\n <!-- {{item?.description}} -->\n <markdown [data]=\"item?.description\"></markdown>\n </div>\n </ng-container>\n </div>\n <div class=\"flex flex-row font-12 mb-2\">\n <div class=\"cursor-pointer\" (click)=\"copyPath(item, ci)\" *ngIf=\"item?.contentType !== 'Resource' && !(item?.fromInternet)\">\n <mat-icon matTooltip=\"Copy\" aria-label=\"Copy\">content_copy</mat-icon>\n <span *ngIf=\"copiedIndex === ci\" class=\"copied-tooltip\">Link Copied!</span>\n </div>\n <!-- <div class=\"feefback-section flex flex-row\" *ngIf=\"item?.contentType !== 'Resource'\">\n \n <div *ngIf=\"item?.feedback !== 'down'\" (click)=\"sharePositiveContentRating(item, i,ci)\" \n class=\"cursor-pointer feedback-icon\" [ngClass]=\"item?.feedback !== 'up' ? 'rotate-180' : ''\">\n <img *ngIf=\"item?.feedback !== 'up'\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback == 'up'\" src=\"/assets/ai-tutor/up.svg\">\n </div>\n <div *ngIf=\"item?.feedback !== 'up'\" (click)=\"openAIFeedbackPopup(item, i,ci)\" class=\"ml-2 cursor-pointer feedback-icon\"><img src=\"/assets/ai-tutor/down.svg\"></div>\n </div> -->\n <div class=\"feefback-section flex flex-row\" *ngIf=\"item?.contentType !== 'Resource'\">\n <div (click)=\"sharePositiveContentRating(item,i, ci)\" class=\"cursor-pointer feedback-icon mt-1\" \n >\n <img [ngClass]=\"'rotate-180'\" *ngIf=\"item?.feedback !== 'up' && !item?.showLoaderForUp\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback === 'up' && !item?.showLoaderForUp\" src=\"/assets/ai-tutor/up.svg\">\n <img *ngIf=\"item?.showLoaderForUp\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n <div (click)=\"openAIFeedbackPopup(item,i, ci)\" class=\"ml-2 cursor-pointer feedback-icon mt-1\">\n <img *ngIf=\"item?.feedback !== 'down' && !item?.showLoaderForDown\" src=\"/assets/ai-tutor/down.svg\"> \n <img *ngIf=\"item?.feedback === 'down' && !item?.showLoaderForDown\" src=\"/assets/ai-tutor/fill-down.svg\"> \n <img *ngIf=\"item?.showLoaderForDown\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n </div> \n </div>\n <!-- <div class=\"flex flex-row font-12 mt-1\" *ngIf=\"item?.contentType !== 'Resource'\">\n <div class=\"ml-2 mr-2 cu\"><img alt=\"ai-icon\" src=\"/assets/ai-tutor/ai-icon.svg\"></div>\n <div class=\"ai-generated-content ml-2\">These are <span *ngIf=\"item?.fromInternet\">Web</span><span *ngIf=\"!(item?.fromInternet)\">AI</span> generated results</div>\n </div> -->\n </div>\n </ng-container>\n <div class=\" flex flex-row ml-10\" *ngIf=\"chat?.answer && !(chat?.result?.length)\">\n <div (click)=\"sharePositiveContentRatingForAnswer(chat,i)\" class=\"cursor-pointer feedback-icon mt-1\" \n >\n <img [ngClass]=\"'rotate-180'\" *ngIf=\"chat?.feedback !== 'up' && !chat?.showLoaderForUp\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"chat?.feedback === 'up' && !chat?.showLoaderForUp\" src=\"/assets/ai-tutor/up.svg\">\n <img *ngIf=\"chat?.showLoaderForUp\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n <div (click)=\"openAIFeedbackPopupForAnswer(chat,i)\" class=\"ml-2 cursor-pointer feedback-icon mt-1\">\n <img *ngIf=\"chat?.feedback !== 'down' && !chat?.showLoaderForDown\" src=\"/assets/ai-tutor/down.svg\"> \n <img *ngIf=\"chat?.feedback === 'down' && !chat?.showLoaderForDown\" src=\"/assets/ai-tutor/fill-down.svg\"> \n <img *ngIf=\"chat?.showLoaderForDown\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n </div> \n <div class=\"flex flex-row font-12 mt-1 mb-1 ai-generated-content-container\" *ngIf=\"chat?.result?.length\">\n <div class=\"ml-5 mr-2 cu\"><img alt=\"ai-icon\" src=\"/assets/ai-tutor/ai-icon.svg\"></div>\n <div class=\"ai-generated-content ml-2\">These are <span *ngIf=\"item?.fromInternet\">Web</span><span *ngIf=\"!(item?.fromInternet)\">AI</span> generated results</div>\n </div>\n \n </ng-container>\n <ng-container>\n <div class=\"flex row-start incoming-msg margin-bottom-s\" *ngIf=\"chat?.newMessage === '' && !resultFetch\">\n <div class=\"system-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/bot-chat-small.svg\"></div>\n <div class=\"loading-bar-icon flex flex-row vertical-middle\">\n <div class=\"mt-2\"><span class=\"blue-color\">Retrieving Results</span></div>\n <div><img alt=\"ai-icon\" src=\"/assets/icons/loading_bar.gif\"></div>\n </div>\n </div>\n \n </ng-container>\n </ng-container>\n \n <ng-container *ngIf=\"chat.type === 'sendMsg'\">\n <div class=\"flex width-1-1 row-end padding-top-l padding-bottom-m\">\n <div class=\"user-seleted-question padding-xs\">\n {{chat?.question}}\n </div>\n <div class=\"user-icon\" *ngIf=\"userIcon\">\n <img alt=\"ai-icon\" src=\"{{userIcon}}\">\n </div>\n <div class=\"circle-s user-icon\" *ngIf=\"!userIcon\" [ngStyle]=\"{'background-color': circleColor }\">\n <div class=\"initials\" i18n-aria-label>\n {{ userInitials }} \n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div> \n </div>\n</div>\n\n<div class=\"footer\" [ngClass]=\"isMobile ? 'ai-popup-mobile-footer':''\">\n <div class=\"border-gradient-rounded\" [style.height.px]=\"containerHeight\">\n <div class=\"flex flex-row ml-5 mr-2 justify-between\">\n\n <div class=\"query-box\">\n <!-- <input class=\"width-500\" type=\"text\" placeholder=\"Ask anything...\" [(ngModel)]=\"searchQueryAItutor\" (keydown.enter)=\"submitSearchQuery()\"/> -->\n <textarea #autoResizeTextarea class=\"width-500\"\n placeholder=\"Ask Me Anything...\"\n (input)=\"resizeTextarea(autoResizeTextarea, 'fromInput')\"\n [(ngModel)]=\"searchQueryAItutor\" (keydown.enter)=\"submitSearchQuery(autoResizeTextarea, $event)\"\n rows=\"1\"\n >\n </textarea>\n \n </div>\n\n <div class=\"margin-top-2px\">\n <button type=\"button\" class=\"flex-auto-display send-btn\" (click)=\"submitSearchQuery('',$event)\" [disabled]=\"!searchQueryAItutor\">\n <mat-icon class=\"send-btn-icon\">send</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>\n</div>\n</div>", styles: [".hey{background:linear-gradient(90deg,#32b9dfde,#1b4ca1de);-webkit-background-clip:text;background-clip:text;color:transparent}.ai-generated-content{background:linear-gradient(90deg,#f3962f,#1b4ca1);-webkit-background-clip:text;background-clip:text;color:transparent}.ai-tutor-container .control-container{position:fixed;bottom:0;width:24%;z-index:2;background:#fff;height:40px}.ai-tutor-container-chatbot .control-container{position:fixed;bottom:100px;width:600px;margin:1%;z-index:2}.start-chat{text-align:center;padding-top:37.5%}.query-box{min-height:38px;transition:height .2s;width:100%}.query-box input{border:0;outline:0}.border-gradient-rounded{border:2px solid transparent;border-radius:20px;background:linear-gradient(to right,#fff,#fff),linear-gradient(to right,#efa34f,#4881e4);background-clip:padding-box,border-box;background-origin:padding-box,border-box;width:96%;min-height:36px;margin-left:1%;z-index:3}.send-btn{background-color:#fff!important;color:#1b4ca1!important;border:none!important;margin-left:14px}.ai-tutor-container-chatbot{background-image:url(/assets/ai-tutor/background.svg);height:90vh;width:525px}.message-container{z-index:2;position:relative;width:100%}.chatbot-icon-container{position:fixed;bottom:120px;right:0;cursor:pointer;height:90px;align-items:flex-start;display:flex;justify-content:center;width:auto;z-index:999999999}.chatbot-icon{position:absolute;right:30px;animation-delay:1s;transition:1s ease}.chatbot-icon-expanded{right:0}.expand-text{width:110px;display:flex;align-items:center;justify-content:center;background-color:#1b4ca1;color:#fff;font-size:18px;border-top:2px solid #fff;border-bottom:2px solid #fff;vertical-align:middle}.chatbot{width:610px;position:fixed;bottom:20px;right:50px;z-index:9999999999;border-radius:15px;background-color:#fff;box-shadow:0 6px 16px #0000003d;height:calc(100vh - 20%)}.cb-close{cursor:pointer}.cb-header{color:#fff!important;background-color:#1b4ca1;border-top-left-radius:15px;border-top-right-radius:15px;align-items:center;justify-content:space-between;position:absolute;width:100%;top:0}.cb-header .user-info-div{width:88%;justify-content:space-between}.cb-header .lang-select{height:32px;background-color:#fff;border-color:#00000029!important}.cb-header .user-name{padding-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:74%}.cb-content{background-color:#f0f3f4;overflow:auto}.cb-topics{padding:16px;background-color:#f5f5f5;overflow:auto}.cb-footer{border-bottom-left-radius:15px;border-bottom-right-radius:15px;background-color:#fff}.cb-footer .info{width:33%;padding:5px 0;align-items:center;display:flex;justify-content:center;flex-wrap:wrap;cursor:pointer}.cb-footer .info .info-text{font-size:10px;width:100%;text-align:center}.cb-footer .info .info-icon{height:24px}.br-br{border-bottom-right-radius:15px}.br-bl{border-bottom-left-radius:15px}.language{background-color:#0000000a}.active{background-color:#fbead1;border-top:3px solid rgb(239,149,30)}.active .mat-icon{color:#ef951e!important}.cat-list{margin:0;padding:0;width:100%;display:flex}.cat-item{padding:10px 16px;border-radius:21px;border:1px solid rgba(0,0,0,.16);background-color:#0000000a;opacity:1;color:#000000de;font-family:Lato-Regular,sans-serif;font-size:14px;font-weight:400;font-style:normal;letter-spacing:.25px;text-align:center;line-height:20px;width:fit-content;margin-right:12px;height:fit-content;cursor:pointer;white-space:nowrap}.lang-select{width:70px}.lang-select .mat-form-field-flex{background-color:#fff!important}.lang-select .mat-form-field-underline{background-color:transparent!important}.loader{position:absolute;left:50%;top:39%}.default-info .default-icon{width:60px;float:left;display:flex;flex-wrap:wrap}.default-info .default-msg{background-color:#0000000a;border:1px solid rgba(0,0,0,.16);border-radius:0 15px 15px;display:flex;flex-wrap:wrap}.chat-bot-icon{padding-top:8px}.row-start{justify-content:flex-start}.row-start .system-icon{padding-right:3px}.row-start .system-msg{background-color:#d1dbec;border:1px solid rgb(209,219,236);border-radius:0 15px 15px;display:flex;flex-wrap:wrap;min-width:auto;max-width:80%;height:100%;word-break:break-word}.row-start .system-msg ::ng-deep markdown *{margin:0}.recommended-question-desc ::ng-deep markdown *{margin:0;width:100%;word-wrap:break-word}.word-break{word-break:break-all;white-space:unset}.margin-left-5{margin-left:5%}.question-hint{font-weight:700}.recommended-question{display:flex;flex-wrap:wrap;height:fit-content}.recommended-question .rec-item{height:fit-content}.recommended-question .my-5px{margin-top:5px;margin-bottom:5px}.recommended-question .mr-5px{margin-right:5px}.recommended-question .btn-default{background:#d5c7c70a;border:1px solid #1B4CA1;color:#1b4ca1;padding:10px;font-size:14px;font-weight:700;cursor:pointer;border-radius:5px}.recommended-question .showmore-icon{align-items:flex-start}.recommended-question .btn-active{background:#000;border:1px solid rgba(0,0,0,.16);color:#fff}.btn-show-more,.btn-show-less{background:#1b4ca1;color:#fff;padding:10px 20px;font-size:14px;cursor:pointer;border-radius:40px}.row-end{justify-content:flex-end;height:100%}.row-end .user-seleted-question{background-color:#000;border-radius:15px 0 15px 15px;display:flex;flex-wrap:wrap;color:#fff;float:right;text-align:left;max-width:62%;word-break:break-word}.highlight-title{color:#1b4ca1}.incoming-msg{height:fit-content}.hint-text{color:#1b4ca1}@media only screen and (max-width: 600px){.chatbot{right:6px;bottom:67px}}@media only screen and (max-width: 390px){.chatbot{right:6px;bottom:67px}}.chatbot-wrapper{position:relative}.cb-content-wrapper{position:absolute;width:100%;top:64px;bottom:130px;max-height:100%;overflow:auto;box-sizing:border-box;background-color:#f0f3f4}.cb-footer-wrapper{position:absolute;width:100%;bottom:0}.my-5px{margin-top:5px;margin-bottom:5px}.mr-5px{margin-right:5px}*,:after,:before{box-sizing:border-box}::ng-deep .disable-scroll{overflow-x:hidden!important;overflow:hidden}@media only screen and (max-width: 600px){.chatbot{right:0;bottom:0;width:100%;height:100svh;z-index:999999999}.cb-footer-wrapper{bottom:0}.cb-content-wrapper{bottom:130px}.chatbot-icon-container{bottom:190px}.cb-header{border-top-left-radius:unset;border-top-right-radius:unset}.cb-footer{border-bottom-left-radius:unset;border-bottom-right-radius:unset}.br-br{border-bottom-right-radius:unset}.br-bl{border-bottom-left-radius:unset}}.feefback-section{margin-left:10px}.resource-icon{margin-left:10%}.resource-link{margin-left:40px}.resource-icon img{height:65px;width:115.25px}.font-12{font-size:12px}.vertical-middle{vertical-align:middle}.send-btn-icon{height:22px!important}.width-500{width:262px}.learning-type-container{width:98%}.section-dd{border:1px solid #ccc;padding:12px 16px;width:100%;height:65px;font-size:12px;font-weight:400;position:relative;z-index:2}.system-icon img{height:36px;width:36px}.circle-s{border-radius:50%;width:36px;height:36px;display:flex;justify-content:center;align-items:center;margin-left:4px}.circle-s img{border-radius:50%;width:100%;height:100%}.circle-s .initials{color:#fff;font-size:10px;line-height:12px;font-size:14px;letter-spacing:.2625px}.copied-tooltip{position:absolute;left:20%;transform:translate(-50%);background-color:#000;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;opacity:1;pointer-events:none;transition:opacity .3s ease;z-index:999}.loading-bar-icon img{height:50px;width:50px}.link{color:#1b4ca1;text-decoration:underline}.content-duration{position:relative;background:#f3962f;color:#fff;width:auto;border-radius:8px;text-align:center;bottom:11px;left:0;padding:0 5px;font-size:12px;display:flex;align-items:center;justify-content:center;margin-top:12px;white-space:nowrap}.content-duration .mat-icon{vertical-align:middle;color:#fff!important;height:14px!important;width:14px!important;font-size:14px}.position-relative{position:relative}.control-container{position:fixed;bottom:10px;z-index:2}.tutor-container{width:100%}.header{top:127px;width:100%;color:#fff;display:flex;align-items:flex-start;justify-content:flex-start}::ng-deep .header .mat-form-field{width:100%}.footer{bottom:0;width:100%;height:50px;color:#fff;display:flex;align-items:flex-end;justify-content:center;z-index:2}.container-none{margin-bottom:10px;padding:20px;height:calc(100vh - 261px);background:url(/assets/ai-tutor/background.svg);background-color:#f0f3f4;overflow-y:auto;overflow-x:hidden;position:relative;background-color:#ffffffe6;background-blend-mode:overlay}.option-content{display:flex;flex-direction:column;line-height:2}.option-content .title{font-weight:600}.option-content .subtitle{font-size:12px;color:gray}:host ::ng-deep .multiline-select .mat-mdc-select-value-text{white-space:pre-wrap!important}:host ::ng-deep .mat-pseudo-checkbox{display:none!important}:host ::ng-deep .mat-pseudo-checkbox-checked{display:none!important}:host ::ng-deep .multiline-select-option{background-color:#fff!important}:host ::ng-deep .player-content .mat-tab-label-active{opacity:1!important}.user-icon{margin-left:5px}.user-icon img{height:36px;width:36px;border-radius:50%}.w-92{width:92%}::ng-deep .copy-icon .material-icons{font-size:18px!important}::ng-deep .copy-icon .mat-icon{vertical-align:middle}.internet-result-query{background:#add8e6;border:1px solid #1B4CA1;color:#000;padding:10px;font-size:14px;font-weight:700;cursor:pointer;border-radius:5px}.blue-color{color:#1b4ca1;font-size:14px;font-weight:700}.web-button{background-color:#fff;color:#1b4ca1;border-radius:8px;padding:10px;border:1px solid #1B4CA1}.web-search-icon,.web-close-icon{color:#1b4ca1;vertical-align:middle}::ng-deep .mat-mdc-select-panel{background-color:#fff!important}.rotate-180{rotate:180deg}.feedback-icon{height:18px;width:18px}.recommended-question-for-resource{display:flex;flex-wrap:wrap;height:fit-content}.recommended-question-for-resource .rec-item{height:fit-content}.recommended-question-for-resource .my-5px{margin-top:5px;margin-bottom:5px}.recommended-question-for-resource .mr-5px{margin-right:5px}.recommended-question-for-resource .btn-default{background:#d5c7c70a;border:1px solid #F3962F;color:#1b4ca1;padding:10px;font-size:14px;font-weight:700;cursor:pointer;border-radius:5px}.recommended-question-for-resource .showmore-icon{align-items:flex-start}.recommended-question-for-resource .btn-active{background:#000;border:1px solid rgba(0,0,0,.16);color:#fff}.h-w-34{height:34px;width:34px}.border-gradient-rounded textarea{width:100%;border:none;resize:none;overflow:hidden;font-size:14px;font-family:Lato;box-sizing:border-box;min-height:32px;padding-top:5px}.border-gradient-rounded textarea:focus{outline:none;border:1px solid transparent}.overflow-y-hidden{overflow-y:hidden}.blue-loader-animation{width:18px;height:18px;animation:spin 2s linear infinite;transform-origin:center center}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.margin-top-2px{margin-top:2px}.recommended-question-desc ::ng-deep markdown pre{all:unset;display:revert;box-sizing:border-box;word-wrap:break-word;width:100%}.ai-tutor-popup{position:fixed;top:50px;z-index:999;background-color:#fff;width:100%}.ai-tutor-popup-minimize{position:fixed;bottom:65px;z-index:999;background-color:#fff;width:100%;border-top:3px solid #eff3f9}.ai-popup-mobile-footer{height:25px;bottom:70px;position:fixed}.ai-tutor-mobile-header{justify-content:space-between;padding:0 10px;border-bottom:1px solid #ccc;height:35px;margin-top:15px}.red-circle{background:red;opacity:1;color:#fff;padding:2px 10px;height:20px;width:50px;border-radius:2px;vertical-align:middle;display:flex;justify-content:center;align-items:center;margin-left:8px;margin-top:-10px}\n"] }]
|
|
12119
|
+
args: [{ selector: 'ws-widget-ai-tutor', template: "<!-- <div class=\"tutor-container\">\n<div class=\"learning-type-container\">\n <mat-form-field appearance=\"none\">\n <select matNativeControl required class=\"section-dd\" >\n <option value=\"\">Select learning type here </option>\n <option value=\"\">None</option>\n <option value=\"\">Socratic</option>\n <option value=\"\">Story Telling</option>\n <option value=\"\">Summarisation</option>\n </select>\n </mat-form-field>\n</div>\n<div [ngClass]=\"from === 'chatbot' ? 'ai-tutor-container-chatbot':'ai-tutor-container'\" #scrollMe>\n <div class=\"message-container\" #scrollMe>\n <div class=\"start-chat\" *ngIf=\"aiTutorResultArr?.length === 0\">\n <h2 class=\"hey\">Hey<span *ngIf=\"userInfo?.firstName\">, {{userInfo?.firstName}}</span> </h2>\n <p>Welcome to Ai Tutor,\u2028Get instant explanations, step-by-step learning guidance, and customised learning tailored just for you.</p>\n </div>\n <ng-container *ngFor=\"let chat of aiTutorResultArr; let i =index\">\n <ng-container *ngIf=\"chat.type === 'incoming'\">\n <ng-container *ngIf=\"chat?.answer\">\n <div class=\"flex row-start incoming-msg margin-bottom-s\">\n <div class=\"system-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/chatbot-ai-new.svg\"></div>\n \n <div class=\"system-msg padding-xs\" *ngIf=\"chat?.wordsCount <= 30\" [innerHTML]=\"chat.answer\">\n </div>\n <div class=\"system-msg padding-xs\">\n <div *ngIf=\"chat?.wordsCount > 30\" [innerHTML]=\"chat?.showLess ? chat.shortAnswer : chat.answer\"></div>\n <a class=\"link\" href=\"javascript:void(0)\" *ngIf=\"!chat?.showLess\" (click)=\"toggleShow(i, 'less')\">Show Less</a>\n <a class=\"link\" href=\"javascript:void(0)\" *ngIf=\"chat?.showLess\" (click)=\"toggleShow(i, 'more')\">Show More</a>\n </div>\n \n\n </div>\n <ng-container *ngFor=\"let item of chat?.result; let ci=index\">\n <div class=\"system-msg-mimetype flex flex-col\" *ngIf=\"item?.contentType === 'Resource'\">\n <ng-container *ngIf=\"item?.mimeType === 'application/pdf'\">\n <div class=\"resource-icon\"><a [href]=\"item?.resourceLink\" target=\"_blank\"><img src=\"/assets/icons/ai-pdf-icon.jpg\"></a></div>\n <div class=\"resource-link\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">Open Resource Link</a>\n </div>\n </ng-container>\n <ng-container *ngIf=\"item?.mimeType === 'video/mp4'\">\n \n <div class=\"position-relative\">\n <div class=\"position-relative\">\n <img src=\"/assets/icons/ai-video-icon.jpg\">\n\n </div>\n <div class=\"content-duration\" *ngIf=\"item?.contentStart || item?.contentEnd\">\n <span *ngIf=\"item?.contentStart\">{{item?.contentStart}}</span>\n <span *ngIf=\"item?.contentEnd\">:{{item?.contentEnd}}</span>\n </div>\n </div>\n <div class=\"resource-link\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">Open Resource Link</a>\n </div>\n </ng-container>\n </div>\n <div class=\"recommended-question my-5px\" [ngClass]=\"{'margin-left-5': item?.message }\">\n <div class=\"my-5px mr-2\">\n <ng-container *ngIf=\"item?.contentType !== 'Resource'\">\n <div class=\"btn-default\" (click)=\"redirectToToc(item)\">{{item?.title}}\n <mat-icon class=\"vertical-middle\">navigate_next</mat-icon>\n </div>\n <div>\n {{item?.description | slice : 0:50}}\n </div>\n </ng-container>\n </div>\n <div class=\"flex flex-row font-12\">\n <div class=\"cursor-pointer\" (click)=\"copyPath(item, ci)\">\n <mat-icon matTooltip=\"Copy\" aria-label=\"Copy\">content_copy</mat-icon>\n <span *ngIf=\"copiedIndex === ci\" class=\"copied-tooltip\">Link Copied!</span>\n </div>\n <div class=\"ml-2 mr-2\"><img alt=\"ai-icon\" src=\"/assets/ai-tutor/ai-icon.svg\"></div>\n <div class=\"ai-generated-content ml-2\">These are AI generated results</div>\n </div>\n </div>\n </ng-container>\n \n \n </ng-container>\n <ng-container *ngIf=\"!chat?.answer\">\n <div class=\"flex row-start incoming-msg margin-bottom-s\">\n <div class=\"system-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/chatbot-ai-new.svg\"></div>\n <div class=\"loading-bar-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/loading_bar.gif\"></div>\n </div>\n \n </ng-container>\n </ng-container>\n \n <ng-container *ngIf=\"chat.type === 'sendMsg'\">\n <div class=\"flex width-1-1 row-end padding-top-l padding-bottom-m\">\n <div class=\"user-seleted-question padding-xs\">\n {{chat?.question}}\n </div>\n <div class=\"user-icon\" *ngIf=\"userIcon\">\n <img alt=\"ai-icon\" src=\"{{userIcon}}\">\n </div>\n <div class=\"circle-s user-icon\" *ngIf=\"!userIcon\" [ngStyle]=\"{'background-color': circleColor }\">\n <div class=\"initials\" i18n-aria-label>\n {{ userInitials }} \n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div> \n</div>\n<div class=\"control-container\">\n <div class=\"border-gradient-rounded\">\n <div class=\"flex flex-row mx-5 justify-between\">\n\n <div class=\"query-box\">\n <input class=\"width-500\" type=\"text\" placeholder=\"Ask anything...\" [(ngModel)]=\"searchQueryAItutor\" (keydown.enter)=\"submitSearchQuery()\"/>\n \n </div>\n\n <div>\n <button type=\"button\" class=\"flex-auto-display send-btn\" (click)=\"submitSearchQuery()\" [disabled]=\"!searchQueryAItutor\">\n <mat-icon class=\"send-btn-icon\">send</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>\n</div> -->\n\n<div class=\"overflow-y-hidden\" [ngClass]=\"(isMobile && !maximize ? 'ai-tutor-popup-minimize' : (isMobile ? 'ai-tutor-popup': ''))\">\n<div *ngIf=\"isMobile\">\n <div class=\"flex flex-row ai-tutor-mobile-header\">\n <div class=\"flex flex-row\">\n <div class=\"flex\">\n <span class=\"font-bold\">AI Tutor</span>\n </div> \n <div class=\"red-circle ml-5\">\n New\n </div>\n </div>\n <div class=\"flex flex-row justify-end\">\n <div *ngIf=\"maximize\" (click)=\"minimizeAITutor()\">\n <mat-icon>minimize</mat-icon>\n </div>\n <div *ngIf=\"!maximize\" (click)=\"maximizeAITutor()\">\n <mat-icon>maximize</mat-icon>\n </div>\n <div (click)=\"closeAITutorPopup()\">\n <mat-icon>close</mat-icon>\n </div>\n </div>\n \n \n </div>\n</div>\n<div [hidden]=\"!maximize\">\n<div class=\"header\">\n <!-- <mat-form-field appearance=\"none\" style=\"width:100%\">\n <select matNativeControl required class=\"section-dd\" >\n <option value=\"\">You can also choose a learning style that suits you best from here.</option>\n <option value=\"\">None</option>\n <option value=\"\">Socratic</option>\n <option value=\"\">Story Telling</option>\n <option value=\"\">Summarisation</option>\n </select>\n </mat-form-field> -->\n <mat-form-field class=\"multiline-select\" appearance=\"fill\" style=\"width: 100%; height: 80px;\" floatLabel=\"never\">\n <mat-select class=\"multiline-select-box\" required [(value)]=\"selectedLearningStyle\" (selectionChange)=\"getLearningStyle()\">\n <mat-select-trigger class=\"multiline-select-box-trigger\">\n <div class=\"option-content\">\n <div class=\"title\">{{ selectedLearningStyle?.title }}</div>\n <div class=\"subtitle\">{{ selectedLearningStyle?.subtitle }}</div>\n </div>\n </mat-select-trigger>\n <mat-option class=\"multiline-select-option\" value=\"\" *ngFor=\"let item of learningStyle\" [value]=\"item\">\n <div class=\"option-content\">\n <div class=\"title\">{{item?.title}}</div>\n <div class=\"subtitle\">{{item?.subtitle}}</div>\n </div>\n </mat-option>\n </mat-select>\n </mat-form-field>\n \n</div>\n\n<div class=\"container-none\" id=\"container-none\">\n <div [ngClass]=\"from === 'chatbot' ? 'ai-tutor-container-chatbot':'ai-tutor-container'\">\n <div class=\"message-container\" #scrollMe>\n <div class=\"start-chat\" *ngIf=\"aiTutorResultArr?.length === 0\">\n <h2 class=\"hey\">Hey<span *ngIf=\"userInfo?.firstName\">, {{userInfo?.firstName}}</span> </h2>\n <p>Welcome to AI Tutor,\u2028Get instant explanations, step-by-step learning guidance, and customised learning tailored just for you.</p>\n </div>\n <ng-container *ngFor=\"let chat of aiTutorResultArr; let i =index\">\n <ng-container *ngIf=\"chat.type === 'incoming'\">\n <ng-container *ngIf=\"chat?.answer || chat?.showFromInternet\">\n <div class=\"flex row-start incoming-msg margin-bottom-s\" *ngIf=\"chat?.answer\">\n <div class=\"system-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/bot-chat-small.svg\"></div>\n \n <!-- <div class=\"system-msg padding-xs\" *ngIf=\"chat?.wordsCount <= 30\" [innerHTML]=\"chat.answer\">\n </div> -->\n <div class=\"flex row-start incoming-msg margin-bottom-s\" *ngIf=\"chat?.showFromInternet\">\n <div class=\"system-msg padding-xs mx-10\">\n I couldn\u2019t find any relevant results for your query. Would you like me to search outside the iGOT platform for more information?\n </div>\n \n </div>\n <ng-container *ngIf=\"chat?.answer\">\n <div class=\"system-msg padding-xs\" *ngIf=\"chat?.wordsCount <= 30\">\n <markdown [data]=\"chat?.answer\"></markdown>\n </div>\n \n <div class=\"system-msg padding-xs\" *ngIf=\"chat?.wordsCount > 30\" >\n <!-- <div [innerHTML]=\"chat?.showLess ? chat.shortAnswer : chat.answer\"></div> -->\n <markdown [data]=\"chat?.answer\"></markdown>\n <!-- <markdown [data]=\"chat?.showLess ? chat.shortAnswer : chat.answer\"></markdown> -->\n <!-- <a class=\"link\" href=\"javascript:void(0)\" *ngIf=\"!chat?.showLess\" (click)=\"toggleShow(i, 'less')\">Show Less</a>\n <a class=\"link\" href=\"javascript:void(0)\" *ngIf=\"chat?.showLess\" (click)=\"toggleShow(i, 'more')\">Show More</a> -->\n </div>\n </ng-container>\n \n \n </div>\n \n <div *ngIf=\"chat?.showFromInternet\">\n <div class=\"flex row my-2 justify-start mx-10 my-5\">\n <div (click)=\"callFromInternet(chat, i)\">\n <button type=\"button\" class=\"web-button px-4 cursor-pointer\">\n <mat-icon class=\"web-search-icon\">search </mat-icon><span class=\"blue-color\">Search the web</span>\n </button>\n </div>\n <div (click)=\"rejectFromInternet(i)\" class=\"mx-2\">\n <button type=\"button\" class=\"web-button py-2 px-4 cursor-pointer\">\n <mat-icon class=\"web-close-icon\">close</mat-icon><span class=\"blue-color\">No</span>\n </button>\n </div>\n </div>\n </div>\n <ng-container *ngFor=\"let item of chat?.result; let ci=index\">\n <div class=\"system-msg-mimetype flex flex-col\" *ngIf=\"item?.contentType === 'Resource'\">\n <ng-container *ngIf=\"item?.mimeType === 'application/pdf'\">\n <!-- <div class=\"resource-icon\"><a [href]=\"item?.resourceLink\" target=\"_blank\" (click)=\"raiseTelemetryForResource(item)\">\n <img src=\"/assets/icons/ai-pdf-icon.jpg\"></a>\n </div> -->\n <div class=\"recommended-question-for-resource mx-10\" (click)=\"redirectToResource(item);raiseTelemetryForResource(item)\">\n <!-- <div class=\"resource-icon\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\" (click)=\"raiseTelemetryForResource(item)\">\n <img src=\"/assets/ai-tutor/pdf.svg\">\n </a>\n <p>{{item?.message}}</p>\n </div> -->\n <div class=\"btn-default mb-2\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">\n <img class=\"vertical-middle h-w-34\" src=\"/assets/ai-tutor/pdf.svg\">\n </a>\n {{item?.title}}\n <mat-icon class=\"vertical-middle\" *ngIf=\"!(item?.fromInternet)\">navigate_next</mat-icon>\n </div>\n </div>\n <!-- <div class=\"resource-link\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">Click to view</a>\n </div> -->\n </ng-container>\n <!-- <ng-container *ngIf=\"item?.mimeType === 'video/mp4'\">\n \n <div class=\"resource-icon\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\" (click)=\"raiseTelemetryForResource(item)\">\n <div class=\"position-relative\">\n <div class=\"position-relative\">\n <img src=\"/assets/icons/ai-video-icon.jpg\">\n \n </div>\n <div class=\"content-duration flex\" *ngIf=\"item?.contentStart > -1 && item?.contentEnd > -1 && !(item?.fromInternet)\">\n <span><mat-icon>access_time</mat-icon> </span>\n <span *ngIf=\"item?.contentStart > -1\">\n <span *ngIf=\"item?.contentStart > 0\">{{item?.contentStart | pipeDurationTransform: 'hms'}}</span>\n <span *ngIf=\"item.contentStart === '0'\">0</span>\n </span>\n <span *ngIf=\"item?.contentEnd > -1\"> - {{item?.contentEnd | pipeDurationTransform: 'hms'}}</span>\n </div>\n </div>\n \n \n </a>\n </div>\n </ng-container> -->\n <ng-container *ngIf=\"item?.mimeType === 'video/mp4'\">\n <div class=\"recommended-question-for-resource mx-10\" (click)=\"redirectToResource(item);raiseTelemetryForResource(item)\">\n \n <div class=\"btn-default mb-2\">\n <div class=\"flex flex-row\">\n <div>\n <a [href]=\"item?.resourceLink\" target=\"_blank\">\n <img class=\"vertical-middle h-w-34\" src=\"/assets/ai-tutor/video.svg\">\n </a>\n </div>\n <div class=\"ml-1\">\n <span>{{item?.title}} </span>\n </div>\n <div>\n <span class=\"content-duration flex ml-1\" *ngIf=\"item?.contentStart > -1 && item?.contentEnd > -1 && !(item?.fromInternet)\">\n <span><mat-icon>access_time</mat-icon> </span>\n <span *ngIf=\"item?.contentStart > -1\">\n <span *ngIf=\"item?.contentStart > 0\">{{item?.contentStart | pipeDurationTransform: 'hms'}}</span>\n <span *ngIf=\"item.contentStart === '0'\">0</span>\n </span>\n <span *ngIf=\"item?.contentEnd > -1\"> - {{item?.contentEnd | pipeDurationTransform: 'hms'}}</span>\n </span> \n </div>\n <div>\n <mat-icon class=\"vertical-middle\" *ngIf=\"!(item?.fromInternet)\">navigate_next</mat-icon>\n </div>\n </div>\n </div>\n <!-- <a [href]=\"item?.resourceLink\" target=\"_blank\" (click)=\"raiseTelemetryForResource(item)\">\n <div class=\"position-relative\">\n <div class=\"position-relative\">\n <img class=\"h-w-34\" src=\"/assets/ai-tutor/video.svg\">\n <p>{{item?.message}}</p>\n </div>\n <div class=\"content-duration flex\" *ngIf=\"item?.contentStart > -1 && item?.contentEnd > -1 && !(item?.fromInternet)\">\n <span><mat-icon>access_time</mat-icon> </span>\n <span *ngIf=\"item?.contentStart > -1\">\n <span *ngIf=\"item?.contentStart > 0\">{{item?.contentStart | pipeDurationTransform: 'hms'}}</span>\n <span *ngIf=\"item.contentStart === '0'\">0</span>\n </span>\n <span *ngIf=\"item?.contentEnd > -1\"> - {{item?.contentEnd | pipeDurationTransform: 'hms'}}</span>\n </div>\n </div>\n \n \n </a> -->\n </div>\n </ng-container>\n <div class=\"flex flex-row cursor-pointer\">\n <!-- <div class=\"resource-link\" *ngIf=\"!(item?.fromInternet)\">\n <a [href]=\"item?.resourceLink\" target=\"_blank\">Click to view</a>\n </div> -->\n <div class=\"cursor-pointer ml-10 mr-2 my-1\" (click)=\"copyPath(item, ci)\" *ngIf=\"item?.contentType === 'Resource' && !(item?.fromInternet)\">\n <mat-icon matTooltip=\"Copy\" aria-label=\"Copy\">content_copy</mat-icon>\n <span *ngIf=\"copiedIndex === ci\" class=\"copied-tooltip\">Link Copied!</span>\n </div>\n <!-- <div class=\"feefback-section flex flex-row my-1\" *ngIf=\"(item?.feedback)\">\n <div *ngIf=\"item?.feedback !== 'down'\"\n class=\"cursor-pointer feedback-icon mt-1\" [ngClass]=\"item?.feedback !== 'up' ? 'rotate-180' : ''\">\n <img *ngIf=\"item?.feedback !== 'up'\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback == 'up'\" src=\"/assets/ai-tutor/up.svg\">\n </div>\n <div *ngIf=\"item?.feedback !== 'up'\" class=\"ml-2 cursor-pointer feedback-icon\">\n <img src=\"/assets/ai-tutor/fill-down.svg\">\n </div>\n </div>\n <div class=\"feefback-section flex flex-row my-1\" *ngIf=\"item?.feedback === ''\">\n <div *ngIf=\"item?.feedback !== 'down'\" (click)=\"sharePositiveContentRating(item,i, ci)\"\n class=\"cursor-pointer feedback-icon\" [ngClass]=\"item?.feedback !== 'up' ? 'rotate-180' : ''\">\n <img *ngIf=\"item?.feedback !== 'up'\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback == 'up'\" src=\"/assets/ai-tutor/up.svg\">\n </div>\n <div *ngIf=\"item?.feedback !== 'up'\" (click)=\"openAIFeedbackPopup(item,i, ci)\" class=\"ml-2 cursor-pointer feedback-icon mt-1\">\n <img src=\"/assets/ai-tutor/down.svg\">\n </div>\n </div> -->\n <div class=\"feefback-section flex flex-row my-1\">\n <div (click)=\"sharePositiveContentRating(item,i, ci)\" class=\"cursor-pointer feedback-icon mt-1\" \n >\n <img [ngClass]=\"'rotate-180'\" *ngIf=\"item?.feedback !== 'up' && !item?.showLoaderForUp\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback === 'up' && !item?.showLoaderForUp\" src=\"/assets/ai-tutor/up.svg\">\n <img *ngIf=\"item?.showLoaderForUp\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n <div (click)=\"openAIFeedbackPopup(item,i, ci)\" class=\"ml-2 cursor-pointer feedback-icon mt-1\">\n <img *ngIf=\"item?.feedback !== 'down' && !item?.showLoaderForDown\" src=\"/assets/ai-tutor/down.svg\"> \n <img *ngIf=\"item?.feedback === 'down' && !item?.showLoaderForDown\" src=\"/assets/ai-tutor/fill-down.svg\"> \n <img *ngIf=\"item?.showLoaderForDown\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n </div>\n <!-- <div class=\"flex flex-row font-12 mt-1\">\n <div class=\"ml-2 mr-2 cu\"><img alt=\"ai-icon\" src=\"/assets/ai-tutor/ai-icon.svg\"></div>\n <div class=\"ai-generated-content ml-2\">These are <span *ngIf=\"item?.fromInternet\">Web</span><span *ngIf=\"!(item?.fromInternet)\">AI</span> generated results</div>\n </div> -->\n <!-- <div class=\"feefback-section flex flex-row\">\n \n <div *ngIf=\"item?.feedback !== 'down'\" (click)=\"sharePositiveContentRating(item,i, ci)\"\n class=\"cursor-pointer feedback-icon\" [ngClass]=\"item?.feedback !== 'up' ? 'rotate-180' : ''\">\n <img *ngIf=\"item?.feedback !== 'up'\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback == 'up'\" src=\"/assets/ai-tutor/up.svg\">\n </div>\n <div *ngIf=\"item?.feedback !== 'up'\" (click)=\"openAIFeedbackPopup(item,i, ci)\" class=\"ml-2 cursor-pointer feedback-icon\"><img src=\"/assets/ai-tutor/down.svg\"></div>\n </div> -->\n </div>\n \n </div>\n <div class=\"recommended-question\" [ngClass]=\"{'ml-10': item?.message }\">\n <div class=\"my-5px mr-2 w-92\">\n <ng-container *ngIf=\"item?.contentType !== 'Resource' && !(item?.fromInternet)\">\n <div class=\"btn-default\" (click)=\"redirectToToc(item)\">{{item?.title}}\n <mat-icon class=\"vertical-middle\" *ngIf=\"!(item?.fromInternet)\">navigate_next</mat-icon>\n </div>\n <div class=\"recommended-question-desc\" *ngIf=\"!(item?.fromInternet)\">\n <!-- {{item?.description}} -->\n <markdown [data]=\"item?.description\"></markdown>\n </div>\n </ng-container>\n </div>\n <div class=\"flex flex-row font-12 mb-2\">\n <div class=\"cursor-pointer\" (click)=\"copyPath(item, ci)\" *ngIf=\"item?.contentType !== 'Resource' && !(item?.fromInternet)\">\n <mat-icon matTooltip=\"Copy\" aria-label=\"Copy\">content_copy</mat-icon>\n <span *ngIf=\"copiedIndex === ci\" class=\"copied-tooltip\">Link Copied!</span>\n </div>\n <!-- <div class=\"feefback-section flex flex-row\" *ngIf=\"item?.contentType !== 'Resource'\">\n \n <div *ngIf=\"item?.feedback !== 'down'\" (click)=\"sharePositiveContentRating(item, i,ci)\" \n class=\"cursor-pointer feedback-icon\" [ngClass]=\"item?.feedback !== 'up' ? 'rotate-180' : ''\">\n <img *ngIf=\"item?.feedback !== 'up'\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback == 'up'\" src=\"/assets/ai-tutor/up.svg\">\n </div>\n <div *ngIf=\"item?.feedback !== 'up'\" (click)=\"openAIFeedbackPopup(item, i,ci)\" class=\"ml-2 cursor-pointer feedback-icon\"><img src=\"/assets/ai-tutor/down.svg\"></div>\n </div> -->\n <div class=\"feefback-section flex flex-row\" *ngIf=\"item?.contentType !== 'Resource'\">\n <div (click)=\"sharePositiveContentRating(item,i, ci)\" class=\"cursor-pointer feedback-icon mt-1\" \n >\n <img [ngClass]=\"'rotate-180'\" *ngIf=\"item?.feedback !== 'up' && !item?.showLoaderForUp\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"item?.feedback === 'up' && !item?.showLoaderForUp\" src=\"/assets/ai-tutor/up.svg\">\n <img *ngIf=\"item?.showLoaderForUp\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n <div (click)=\"openAIFeedbackPopup(item,i, ci)\" class=\"ml-2 cursor-pointer feedback-icon mt-1\">\n <img *ngIf=\"item?.feedback !== 'down' && !item?.showLoaderForDown\" src=\"/assets/ai-tutor/down.svg\"> \n <img *ngIf=\"item?.feedback === 'down' && !item?.showLoaderForDown\" src=\"/assets/ai-tutor/fill-down.svg\"> \n <img *ngIf=\"item?.showLoaderForDown\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n </div> \n </div>\n <!-- <div class=\"flex flex-row font-12 mt-1\" *ngIf=\"item?.contentType !== 'Resource'\">\n <div class=\"ml-2 mr-2 cu\"><img alt=\"ai-icon\" src=\"/assets/ai-tutor/ai-icon.svg\"></div>\n <div class=\"ai-generated-content ml-2\">These are <span *ngIf=\"item?.fromInternet\">Web</span><span *ngIf=\"!(item?.fromInternet)\">AI</span> generated results</div>\n </div> -->\n </div>\n </ng-container>\n <div class=\" flex flex-row ml-10\" *ngIf=\"chat?.answer && !(chat?.result?.length)\">\n <div (click)=\"sharePositiveContentRatingForAnswer(chat,i)\" class=\"cursor-pointer feedback-icon mt-1\" \n >\n <img [ngClass]=\"'rotate-180'\" *ngIf=\"chat?.feedback !== 'up' && !chat?.showLoaderForUp\" src=\"/assets/ai-tutor/down.svg\">\n <img *ngIf=\"chat?.feedback === 'up' && !chat?.showLoaderForUp\" src=\"/assets/ai-tutor/up.svg\">\n <img *ngIf=\"chat?.showLoaderForUp\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n <div (click)=\"openAIFeedbackPopupForAnswer(chat,i)\" class=\"ml-2 cursor-pointer feedback-icon mt-1\">\n <img *ngIf=\"chat?.feedback !== 'down' && !chat?.showLoaderForDown\" src=\"/assets/ai-tutor/down.svg\"> \n <img *ngIf=\"chat?.feedback === 'down' && !chat?.showLoaderForDown\" src=\"/assets/ai-tutor/fill-down.svg\"> \n <img *ngIf=\"chat?.showLoaderForDown\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\n </div>\n </div> \n <div class=\"flex flex-row font-12 mt-1 mb-1 ai-generated-content-container\" *ngIf=\"chat?.result?.length\">\n <div class=\"ml-5 mr-2 cu\"><img alt=\"ai-icon\" src=\"/assets/ai-tutor/ai-icon.svg\"></div>\n <div class=\"ai-generated-content ml-2\">These are <span *ngIf=\"item?.fromInternet\">Web</span><span *ngIf=\"!(item?.fromInternet)\">AI</span> generated results</div>\n </div>\n \n </ng-container>\n <ng-container>\n <div class=\"flex row-start incoming-msg margin-bottom-s\" *ngIf=\"chat?.newMessage === '' && !resultFetch\">\n <div class=\"system-icon\"><img alt=\"ai-icon\" src=\"/assets/icons/bot-chat-small.svg\"></div>\n <div class=\"loading-bar-icon flex flex-row vertical-middle\">\n <div class=\"mt-2\"><span class=\"blue-color\">Retrieving Results</span></div>\n <div><img alt=\"ai-icon\" src=\"/assets/icons/loading_bar.gif\"></div>\n </div>\n </div>\n \n </ng-container>\n </ng-container>\n \n <ng-container *ngIf=\"chat.type === 'sendMsg'\">\n <div class=\"flex width-1-1 row-end padding-top-l padding-bottom-m\">\n <div class=\"user-seleted-question padding-xs\">\n {{chat?.question}}\n </div>\n <div class=\"user-icon\" *ngIf=\"userIcon\">\n <img alt=\"ai-icon\" src=\"{{userIcon}}\">\n </div>\n <div class=\"circle-s user-icon\" *ngIf=\"!userIcon\" [ngStyle]=\"{'background-color': circleColor }\">\n <div class=\"initials\" i18n-aria-label>\n {{ userInitials }} \n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div> \n </div>\n</div>\n\n<div class=\"footer\" [ngClass]=\"isMobile ? 'ai-popup-mobile-footer':''\">\n <div class=\"border-gradient-rounded\" [style.height.px]=\"containerHeight\">\n <div class=\"flex flex-row ml-5 mr-2 justify-between\">\n\n <div class=\"query-box\">\n <!-- <input class=\"width-500\" type=\"text\" placeholder=\"Ask anything...\" [(ngModel)]=\"searchQueryAItutor\" (keydown.enter)=\"submitSearchQuery()\"/> -->\n <textarea #autoResizeTextarea class=\"width-500\"\n placeholder=\"Ask Me Anything...\"\n (input)=\"resizeTextarea(autoResizeTextarea, 'fromInput')\"\n [(ngModel)]=\"searchQueryAItutor\" (keydown.enter)=\"submitSearchQuery(autoResizeTextarea, $event)\"\n rows=\"1\"\n >\n </textarea>\n \n </div>\n\n <div class=\"margin-top-2px\">\n <button type=\"button\" class=\"flex-auto-display send-btn\" (click)=\"submitSearchQuery(autoResizeTextarea, $event)\" [disabled]=\"!searchQueryAItutor\">\n <mat-icon class=\"send-btn-icon\">send</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>\n</div>\n</div>", styles: [".hey{background:linear-gradient(90deg,#32b9dfde,#1b4ca1de);-webkit-background-clip:text;background-clip:text;color:transparent}.ai-generated-content{background:linear-gradient(90deg,#f3962f,#1b4ca1);-webkit-background-clip:text;background-clip:text;color:transparent}.ai-tutor-container .control-container{position:fixed;bottom:0;width:24%;z-index:2;background:#fff;height:40px}.ai-tutor-container-chatbot .control-container{position:fixed;bottom:100px;width:600px;margin:1%;z-index:2}.start-chat{text-align:center;padding-top:37.5%}.query-box{min-height:38px;transition:height .2s;width:100%}.query-box input{border:0;outline:0}.border-gradient-rounded{border:2px solid transparent;border-radius:20px;background:linear-gradient(to right,#fff,#fff),linear-gradient(to right,#efa34f,#4881e4);background-clip:padding-box,border-box;background-origin:padding-box,border-box;width:96%;min-height:36px;margin-left:1%;z-index:3}.send-btn{background-color:#fff!important;color:#1b4ca1!important;border:none!important;margin-left:14px}.ai-tutor-container-chatbot{background-image:url(/assets/ai-tutor/background.svg);height:90vh;width:525px}.message-container{z-index:2;position:relative;width:100%}.chatbot-icon-container{position:fixed;bottom:120px;right:0;cursor:pointer;height:90px;align-items:flex-start;display:flex;justify-content:center;width:auto;z-index:999999999}.chatbot-icon{position:absolute;right:30px;animation-delay:1s;transition:1s ease}.chatbot-icon-expanded{right:0}.expand-text{width:110px;display:flex;align-items:center;justify-content:center;background-color:#1b4ca1;color:#fff;font-size:18px;border-top:2px solid #fff;border-bottom:2px solid #fff;vertical-align:middle}.chatbot{width:610px;position:fixed;bottom:20px;right:50px;z-index:9999999999;border-radius:15px;background-color:#fff;box-shadow:0 6px 16px #0000003d;height:calc(100vh - 20%)}.cb-close{cursor:pointer}.cb-header{color:#fff!important;background-color:#1b4ca1;border-top-left-radius:15px;border-top-right-radius:15px;align-items:center;justify-content:space-between;position:absolute;width:100%;top:0}.cb-header .user-info-div{width:88%;justify-content:space-between}.cb-header .lang-select{height:32px;background-color:#fff;border-color:#00000029!important}.cb-header .user-name{padding-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:74%}.cb-content{background-color:#f0f3f4;overflow:auto}.cb-topics{padding:16px;background-color:#f5f5f5;overflow:auto}.cb-footer{border-bottom-left-radius:15px;border-bottom-right-radius:15px;background-color:#fff}.cb-footer .info{width:33%;padding:5px 0;align-items:center;display:flex;justify-content:center;flex-wrap:wrap;cursor:pointer}.cb-footer .info .info-text{font-size:10px;width:100%;text-align:center}.cb-footer .info .info-icon{height:24px}.br-br{border-bottom-right-radius:15px}.br-bl{border-bottom-left-radius:15px}.language{background-color:#0000000a}.active{background-color:#fbead1;border-top:3px solid rgb(239,149,30)}.active .mat-icon{color:#ef951e!important}.cat-list{margin:0;padding:0;width:100%;display:flex}.cat-item{padding:10px 16px;border-radius:21px;border:1px solid rgba(0,0,0,.16);background-color:#0000000a;opacity:1;color:#000000de;font-family:Lato-Regular,sans-serif;font-size:14px;font-weight:400;font-style:normal;letter-spacing:.25px;text-align:center;line-height:20px;width:fit-content;margin-right:12px;height:fit-content;cursor:pointer;white-space:nowrap}.lang-select{width:70px}.lang-select .mat-form-field-flex{background-color:#fff!important}.lang-select .mat-form-field-underline{background-color:transparent!important}.loader{position:absolute;left:50%;top:39%}.default-info .default-icon{width:60px;float:left;display:flex;flex-wrap:wrap}.default-info .default-msg{background-color:#0000000a;border:1px solid rgba(0,0,0,.16);border-radius:0 15px 15px;display:flex;flex-wrap:wrap}.chat-bot-icon{padding-top:8px}.row-start{justify-content:flex-start}.row-start .system-icon{padding-right:3px}.row-start .system-msg{background-color:#d1dbec;border:1px solid rgb(209,219,236);border-radius:0 15px 15px;display:flex;flex-wrap:wrap;min-width:auto;max-width:80%;height:100%;word-break:break-word}.row-start .system-msg ::ng-deep markdown *{margin:0}.recommended-question-desc ::ng-deep markdown *{margin:0;width:100%;word-wrap:break-word}.word-break{word-break:break-all;white-space:unset}.margin-left-5{margin-left:5%}.question-hint{font-weight:700}.recommended-question{display:flex;flex-wrap:wrap;height:fit-content}.recommended-question .rec-item{height:fit-content}.recommended-question .my-5px{margin-top:5px;margin-bottom:5px}.recommended-question .mr-5px{margin-right:5px}.recommended-question .btn-default{background:#d5c7c70a;border:1px solid #1B4CA1;color:#1b4ca1;padding:10px;font-size:14px;font-weight:700;cursor:pointer;border-radius:5px}.recommended-question .showmore-icon{align-items:flex-start}.recommended-question .btn-active{background:#000;border:1px solid rgba(0,0,0,.16);color:#fff}.btn-show-more,.btn-show-less{background:#1b4ca1;color:#fff;padding:10px 20px;font-size:14px;cursor:pointer;border-radius:40px}.row-end{justify-content:flex-end;height:100%}.row-end .user-seleted-question{background-color:#000;border-radius:15px 0 15px 15px;display:flex;flex-wrap:wrap;color:#fff;float:right;text-align:left;max-width:62%;word-break:break-word}.highlight-title{color:#1b4ca1}.incoming-msg{height:fit-content}.hint-text{color:#1b4ca1}@media only screen and (max-width: 600px){.chatbot{right:6px;bottom:67px}}@media only screen and (max-width: 390px){.chatbot{right:6px;bottom:67px}}.chatbot-wrapper{position:relative}.cb-content-wrapper{position:absolute;width:100%;top:64px;bottom:130px;max-height:100%;overflow:auto;box-sizing:border-box;background-color:#f0f3f4}.cb-footer-wrapper{position:absolute;width:100%;bottom:0}.my-5px{margin-top:5px;margin-bottom:5px}.mr-5px{margin-right:5px}*,:after,:before{box-sizing:border-box}::ng-deep .disable-scroll{overflow-x:hidden!important;overflow:hidden}@media only screen and (max-width: 600px){.chatbot{right:0;bottom:0;width:100%;height:100svh;z-index:999999999}.cb-footer-wrapper{bottom:0}.cb-content-wrapper{bottom:130px}.chatbot-icon-container{bottom:190px}.cb-header{border-top-left-radius:unset;border-top-right-radius:unset}.cb-footer{border-bottom-left-radius:unset;border-bottom-right-radius:unset}.br-br{border-bottom-right-radius:unset}.br-bl{border-bottom-left-radius:unset}}.feefback-section{margin-left:10px}.resource-icon{margin-left:10%}.resource-link{margin-left:40px}.resource-icon img{height:65px;width:115.25px}.font-12{font-size:12px}.vertical-middle{vertical-align:middle}.send-btn-icon{height:22px!important}.width-500{width:262px}.learning-type-container{width:98%}.section-dd{border:1px solid #ccc;padding:12px 16px;width:100%;height:65px;font-size:12px;font-weight:400;position:relative;z-index:2}.system-icon img{height:36px;width:36px}.circle-s{border-radius:50%;width:36px;height:36px;display:flex;justify-content:center;align-items:center;margin-left:4px}.circle-s img{border-radius:50%;width:100%;height:100%}.circle-s .initials{color:#fff;font-size:10px;line-height:12px;font-size:14px;letter-spacing:.2625px}.copied-tooltip{position:absolute;left:20%;transform:translate(-50%);background-color:#000;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;opacity:1;pointer-events:none;transition:opacity .3s ease;z-index:999}.loading-bar-icon img{height:50px;width:50px}.link{color:#1b4ca1;text-decoration:underline}.content-duration{position:relative;background:#f3962f;color:#fff;width:auto;border-radius:8px;text-align:center;bottom:11px;left:0;padding:0 5px;font-size:12px;display:flex;align-items:center;justify-content:center;margin-top:12px;white-space:nowrap}.content-duration .mat-icon{vertical-align:middle;color:#fff!important;height:14px!important;width:14px!important;font-size:14px}.position-relative{position:relative}.control-container{position:fixed;bottom:10px;z-index:2}.tutor-container{width:100%}.header{top:127px;width:100%;color:#fff;display:flex;align-items:flex-start;justify-content:flex-start}::ng-deep .header .mat-form-field{width:100%}.footer{bottom:0;width:100%;height:50px;color:#fff;display:flex;align-items:flex-end;justify-content:center;z-index:2}.container-none{margin-bottom:10px;padding:20px;height:calc(100vh - 261px);background:url(/assets/ai-tutor/background.svg);background-color:#f0f3f4;overflow-y:auto;overflow-x:hidden;position:relative;background-color:#ffffffe6;background-blend-mode:overlay}.option-content{display:flex;flex-direction:column;line-height:2}.option-content .title{font-weight:600}.option-content .subtitle{font-size:12px;color:gray}:host ::ng-deep .multiline-select .mat-mdc-select-value-text{white-space:pre-wrap!important}:host ::ng-deep .mat-pseudo-checkbox{display:none!important}:host ::ng-deep .mat-pseudo-checkbox-checked{display:none!important}:host ::ng-deep .multiline-select-option{background-color:#fff!important}:host ::ng-deep .player-content .mat-tab-label-active{opacity:1!important}.user-icon{margin-left:5px}.user-icon img{height:36px;width:36px;border-radius:50%}.w-92{width:92%}::ng-deep .copy-icon .material-icons{font-size:18px!important}::ng-deep .copy-icon .mat-icon{vertical-align:middle}.internet-result-query{background:#add8e6;border:1px solid #1B4CA1;color:#000;padding:10px;font-size:14px;font-weight:700;cursor:pointer;border-radius:5px}.blue-color{color:#1b4ca1;font-size:14px;font-weight:700}.web-button{background-color:#fff;color:#1b4ca1;border-radius:8px;padding:10px;border:1px solid #1B4CA1}.web-search-icon,.web-close-icon{color:#1b4ca1;vertical-align:middle}::ng-deep .mat-mdc-select-panel{background-color:#fff!important}.rotate-180{rotate:180deg}.feedback-icon{height:18px;width:18px}.recommended-question-for-resource{display:flex;flex-wrap:wrap;height:fit-content}.recommended-question-for-resource .rec-item{height:fit-content}.recommended-question-for-resource .my-5px{margin-top:5px;margin-bottom:5px}.recommended-question-for-resource .mr-5px{margin-right:5px}.recommended-question-for-resource .btn-default{background:#d5c7c70a;border:1px solid #F3962F;color:#1b4ca1;padding:10px;font-size:14px;font-weight:700;cursor:pointer;border-radius:5px}.recommended-question-for-resource .showmore-icon{align-items:flex-start}.recommended-question-for-resource .btn-active{background:#000;border:1px solid rgba(0,0,0,.16);color:#fff}.h-w-34{height:34px;width:34px}.border-gradient-rounded textarea{width:100%;border:none;resize:none;overflow:hidden;font-size:14px;font-family:Lato;box-sizing:border-box;min-height:32px;padding-top:5px}.border-gradient-rounded textarea:focus{outline:none;border:1px solid transparent}.overflow-y-hidden{overflow-y:hidden}.blue-loader-animation{width:18px;height:18px;animation:spin 2s linear infinite;transform-origin:center center}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.margin-top-2px{margin-top:2px}.recommended-question-desc ::ng-deep markdown pre{all:unset;display:revert;box-sizing:border-box;word-wrap:break-word;width:100%}.ai-tutor-popup{position:fixed;top:50px;z-index:999;background-color:#fff;width:100%}.ai-tutor-popup-minimize{position:fixed;bottom:65px;z-index:999;background-color:#fff;width:100%;border-top:3px solid #eff3f9}.ai-popup-mobile-footer{height:25px;bottom:70px;position:fixed}.ai-tutor-mobile-header{justify-content:space-between;padding:0 10px;border-bottom:1px solid #ccc;height:35px;margin-top:15px}.red-circle{background:red;opacity:1;color:#fff;padding:2px 10px;height:20px;width:50px;border-radius:2px;vertical-align:middle;display:flex;justify-content:center;align-items:center;margin-left:8px;margin-top:-10px}\n"] }]
|
|
12120
12120
|
}], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: i2$1.ConfigurationsService }, { type: i2$1.EventService }, { type: i0.Renderer2 }, { type: RootService }, { type: WebSocketService }, { type: i1$3.MatLegacyDialog }, { type: i6$2.MatSnackBar }, { type: i2$1.UtilityService }, { type: undefined, decorators: [{
|
|
12121
12121
|
type: Inject,
|
|
12122
12122
|
args: ["environment"]
|
|
@@ -27028,5 +27028,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27028
27028
|
* Generated bundle index. Do not edit.
|
|
27029
27029
|
*/
|
|
27030
27030
|
|
|
27031
|
-
export { ActionService, AppTocAboutComponent, AppTocAnalyticsTilesComponent, AppTocBannerComponent, AppTocBatchAssignmentsComponent, AppTocCiosHomeComponent, AppTocCiosResolverService, AppTocCiosUserEnrollResolverService, AppTocCohortsComponent, AppTocContentCardComponent, AppTocContentComponent, AppTocContentReadResolverService, AppTocDialogIntroVideoComponent, AppTocDiscussionComponent, AppTocExtPublicResolverService, AppTocHomeComponent, AppTocHomeV2Component, AppTocLibModule, AppTocOverviewComponent, AppTocResolverService, AppTocService, AppTocSessionCardComponent, AppTocSessionsComponent, AppTocSinglePageComponent, AppTocTeachersNotesComponent, AppTocV2Service, CardCompetencyComponent, CardCompetencyModule, CompletionSurveyFormComponent, ConfigResolverService, ContentTocComponent, ContentTocModule, CreateBatchDialogComponent, EnrollLanguageDialogueComponent, EnrollProfileFormComponent, EnrollQuestionnaireComponent, ErrorType, KarmaPointsComponent, KarmaPointsModule, KnowledgeArtifactDetailsComponent, LoadCheckService, MetaTag, NsAppToc, NsCohorts, NsDiscussionForum, ProfileResolverService, PublicSurveyFormComponent, ROOT_WIDGET_CONFIG, ResetRatingsService, RestrictedFeaturesResolverService, ReviewsContentComponent, ShareTocComponent, ShareTocModule, SurveyFormQuestionComponent, SurveyFormSectionComponent, TimerService, TitleTagService, TocKpiValuesComponent, TocKpiValuesModule, ViewerUtilService, WIDGET_REGISTERED_LIB_MODULES, WIDGET_REGISTRATION_TOC_LIB_CONFIG, WidgetContentService };
|
|
27031
|
+
export { AccessControlService, ActionService, AppTocAboutComponent, AppTocAnalyticsTilesComponent, AppTocBannerComponent, AppTocBatchAssignmentsComponent, AppTocCiosHomeComponent, AppTocCiosResolverService, AppTocCiosUserEnrollResolverService, AppTocCohortsComponent, AppTocContentCardComponent, AppTocContentComponent, AppTocContentReadResolverService, AppTocDialogIntroVideoComponent, AppTocDiscussionComponent, AppTocExtPublicResolverService, AppTocHomeComponent, AppTocHomeV2Component, AppTocLibModule, AppTocOverviewComponent, AppTocResolverService, AppTocService, AppTocSessionCardComponent, AppTocSessionsComponent, AppTocSinglePageComponent, AppTocTeachersNotesComponent, AppTocV2Service, CardCompetencyComponent, CardCompetencyModule, CompletionSurveyFormComponent, ConfigResolverService, ContentTocComponent, ContentTocModule, CreateBatchDialogComponent, EnrollLanguageDialogueComponent, EnrollProfileFormComponent, EnrollQuestionnaireComponent, ErrorType, KarmaPointsComponent, KarmaPointsModule, KnowledgeArtifactDetailsComponent, LoadCheckService, MetaTag, NsAppToc, NsCohorts, NsDiscussionForum, ProfileResolverService, PublicSurveyFormComponent, ROOT_WIDGET_CONFIG, ResetRatingsService, RestrictedFeaturesResolverService, ReviewsContentComponent, ShareTocComponent, ShareTocModule, SurveyFormQuestionComponent, SurveyFormSectionComponent, TimerService, TitleTagService, TocKpiValuesComponent, TocKpiValuesModule, ViewerUtilService, WIDGET_REGISTERED_LIB_MODULES, WIDGET_REGISTRATION_TOC_LIB_CONFIG, WidgetContentService };
|
|
27032
27032
|
//# sourceMappingURL=sunbird-cb-toc.mjs.map
|