@deeksha2309/sunbird-collection-editor 8.0.7 → 8.0.8
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/deeksha2309-sunbird-collection-editor.d.ts.map +1 -0
- package/esm2022/deeksha2309-sunbird-collection-editor.mjs +5 -0
- package/esm2022/lib/collection-editor-library.module.mjs +30 -6
- package/esm2022/lib/components/answer/answer.component.mjs +6 -3
- package/esm2022/lib/components/app-loader/app-loader.component.mjs +30 -0
- package/esm2022/lib/components/asset-browser/asset-browser.component.mjs +30 -12
- package/esm2022/lib/components/assign-page-number/assign-page-number.component.mjs +1 -1
- package/esm2022/lib/components/bulk-upload/bulk-upload.component.mjs +447 -0
- package/esm2022/lib/components/ckeditor-tool/ckeditor-tool.component.mjs +30 -12
- package/esm2022/lib/components/collection-icon/collection-icon.component.mjs +3 -3
- package/esm2022/lib/components/csv-upload/csv-upload.component.mjs +2 -2
- package/esm2022/lib/components/editor/editor.component.mjs +143 -64
- package/esm2022/lib/components/fancy-tree/fancy-tree.component.mjs +91 -9
- package/esm2022/lib/components/header/header.component.mjs +27 -9
- package/esm2022/lib/components/library/library.component.mjs +4 -4
- package/esm2022/lib/components/library-list/library-list.component.mjs +4 -4
- package/esm2022/lib/components/library-player/library-player.component.mjs +4 -4
- package/esm2022/lib/components/meta-form/meta-form.component.mjs +10 -18
- package/esm2022/lib/components/options/options.component.mjs +40 -27
- package/esm2022/lib/components/progress-status/progress-status.component.mjs +1 -1
- package/esm2022/lib/components/publish-checklist/publish-checklist.component.mjs +6 -3
- package/esm2022/lib/components/question/question.component.mjs +185 -77
- package/esm2022/lib/components/question-option-sub-menu/question-option-sub-menu.component.mjs +36 -0
- package/esm2022/lib/components/quml-player/quml-player.component.mjs +2 -2
- package/esm2022/lib/components/qumlplayer-page/qumlplayer-page.component.mjs +3 -3
- package/esm2022/lib/components/relational-metadata/relational-metadata.component.mjs +80 -0
- package/esm2022/lib/components/resource-reorder/resource-reorder.component.mjs +3 -3
- package/esm2022/lib/components/slider/slider.component.mjs +46 -0
- package/esm2022/lib/components/template/template.component.mjs +3 -3
- package/esm2022/lib/components/translations/translations.component.mjs +132 -0
- package/esm2022/lib/directives/date-format/date-format.pipe.mjs +34 -0
- package/esm2022/lib/interfaces/CreationContext.mjs +2 -0
- package/esm2022/lib/interfaces/editor.mjs +1 -1
- package/esm2022/lib/interfaces/loader.mjs +2 -0
- package/esm2022/lib/pipes/interpolate.pipe.mjs +17 -0
- package/esm2022/lib/pipes/sanitize-html.pipe.mjs +6 -8
- package/esm2022/lib/services/bulk-job/bulk-job.service.mjs +67 -0
- package/esm2022/lib/services/config/category.config.json +1 -0
- package/esm2022/lib/services/config/editor.config.json +29 -2
- package/esm2022/lib/services/config/label.config.json +16 -3
- package/esm2022/lib/services/config/player.config.json +3 -0
- package/esm2022/lib/services/config/url.config.json +17 -1
- package/esm2022/lib/services/editor/editor.service.mjs +64 -26
- package/esm2022/lib/services/question/question.service.mjs +27 -35
- package/esm2022/lib/services/tree/tree.service.mjs +20 -5
- package/fesm2022/{project-sunbird-sunbird-collection-editor.mjs → deeksha2309-sunbird-collection-editor.mjs} +1779 -483
- package/fesm2022/deeksha2309-sunbird-collection-editor.mjs.map +1 -0
- package/index.d.ts +2 -2
- package/lib/collection-editor-library.module.d.ts +51 -43
- package/lib/collection-editor-library.module.d.ts.map +1 -1
- package/lib/components/answer/answer.component.d.ts +2 -1
- package/lib/components/answer/answer.component.d.ts.map +1 -1
- package/lib/components/app-loader/app-loader.component.d.ts +18 -0
- package/lib/components/app-loader/app-loader.component.d.ts.map +1 -0
- package/lib/components/asset-browser/asset-browser.component.d.ts.map +1 -1
- package/lib/components/bulk-upload/bulk-upload.component.d.ts +71 -0
- package/lib/components/bulk-upload/bulk-upload.component.d.ts.map +1 -0
- package/lib/components/ckeditor-tool/ckeditor-tool.component.d.ts +1 -1
- package/lib/components/ckeditor-tool/ckeditor-tool.component.d.ts.map +1 -1
- package/lib/components/editor/editor.component.d.ts +11 -7
- package/lib/components/editor/editor.component.d.ts.map +1 -1
- package/lib/components/fancy-tree/fancy-tree.component.d.ts +11 -3
- package/lib/components/fancy-tree/fancy-tree.component.d.ts.map +1 -1
- package/lib/components/header/header.component.d.ts +6 -2
- package/lib/components/header/header.component.d.ts.map +1 -1
- package/lib/components/library/library.component.d.ts +1 -1
- package/lib/components/library/library.component.d.ts.map +1 -1
- package/lib/components/meta-form/meta-form.component.d.ts +3 -4
- package/lib/components/meta-form/meta-form.component.d.ts.map +1 -1
- package/lib/components/options/options.component.d.ts +15 -7
- package/lib/components/options/options.component.d.ts.map +1 -1
- package/lib/components/publish-checklist/publish-checklist.component.d.ts +2 -1
- package/lib/components/publish-checklist/publish-checklist.component.d.ts.map +1 -1
- package/lib/components/question/question.component.d.ts +21 -28
- package/lib/components/question/question.component.d.ts.map +1 -1
- package/lib/components/question-option-sub-menu/question-option-sub-menu.component.d.ts +27 -0
- package/lib/components/question-option-sub-menu/question-option-sub-menu.component.d.ts.map +1 -0
- package/lib/components/relational-metadata/relational-metadata.component.d.ts +25 -0
- package/lib/components/relational-metadata/relational-metadata.component.d.ts.map +1 -0
- package/lib/components/slider/slider.component.d.ts +25 -0
- package/lib/components/slider/slider.component.d.ts.map +1 -0
- package/lib/components/translations/translations.component.d.ts +70 -0
- package/lib/components/translations/translations.component.d.ts.map +1 -0
- package/lib/directives/date-format/date-format.pipe.d.ts +20 -0
- package/lib/directives/date-format/date-format.pipe.d.ts.map +1 -0
- package/lib/interfaces/CreationContext.d.ts +11 -0
- package/lib/interfaces/CreationContext.d.ts.map +1 -0
- package/lib/interfaces/editor.d.ts +10 -5
- package/lib/interfaces/editor.d.ts.map +1 -1
- package/lib/interfaces/loader.d.ts +11 -0
- package/lib/interfaces/loader.d.ts.map +1 -0
- package/lib/pipes/interpolate.pipe.d.ts +8 -0
- package/lib/pipes/interpolate.pipe.d.ts.map +1 -0
- package/lib/pipes/sanitize-html.pipe.d.ts +4 -4
- package/lib/pipes/sanitize-html.pipe.d.ts.map +1 -1
- package/lib/services/bulk-job/bulk-job.service.d.ts +17 -0
- package/lib/services/bulk-job/bulk-job.service.d.ts.map +1 -0
- package/lib/services/editor/editor.service.d.ts +7 -4
- package/lib/services/editor/editor.service.d.ts.map +1 -1
- package/lib/services/question/question.service.d.ts +2 -2
- package/lib/services/question/question.service.d.ts.map +1 -1
- package/lib/services/tree/tree.service.d.ts +3 -1
- package/lib/services/tree/tree.service.d.ts.map +1 -1
- package/package.json +5 -5
- package/esm2022/project-sunbird-sunbird-collection-editor.mjs +0 -5
- package/fesm2022/project-sunbird-sunbird-collection-editor.mjs.map +0 -1
- package/project-sunbird-sunbird-collection-editor.d.ts.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project-sunbird-sunbird-collection-editor.mjs","sources":["../../../projects/collection-editor-library/src/lib/collection-editor-library.component.ts","../../../projects/collection-editor-library/src/lib/services/toaster/toaster.service.ts","../../../projects/collection-editor-library/src/lib/services/data/data.service.ts","../../../projects/collection-editor-library/src/lib/services/public-data/public-data.service.ts","../../../projects/collection-editor-library/src/lib/services/config/config.service.ts","../../../projects/collection-editor-library/src/lib/services/helper/helper.service.ts","../../../projects/collection-editor-library/src/lib/services/tree/tree.service.ts","../../../projects/collection-editor-library/src/lib/services/telemetry/telemetry.service.ts","../../../projects/collection-editor-library/src/lib/services/editor/editor.service.ts","../../../projects/collection-editor-library/src/lib/services/player/player.service.ts","../../../projects/collection-editor-library/src/lib/services/framework/framework.service.ts","../../../projects/collection-editor-library/src/lib/components/contentplayer-page/contentplayer-page.component.ts","../../../projects/collection-editor-library/src/lib/components/contentplayer-page/contentplayer-page.component.html","../../../projects/collection-editor-library/src/lib/services/dialcode/dialcode.service.ts","../../../projects/collection-editor-library/src/lib/directives/telemetry-interact/telemetry-interact.directive.ts","../../../projects/collection-editor-library/src/lib/components/quml-player/quml-player.component.ts","../../../projects/collection-editor-library/src/lib/components/quml-player/quml-player.component.html","../../../projects/collection-editor-library/src/lib/components/qumlplayer-page/qumlplayer-page.component.ts","../../../projects/collection-editor-library/src/lib/components/qumlplayer-page/qumlplayer-page.component.html","../../../projects/collection-editor-library/src/lib/components/dialcode/dialcode.component.ts","../../../projects/collection-editor-library/src/lib/components/dialcode/dialcode.component.html","../../../projects/collection-editor-library/src/lib/components/publish-checklist/publish-checklist.component.ts","../../../projects/collection-editor-library/src/lib/components/publish-checklist/publish-checklist.component.html","../../../projects/collection-editor-library/src/lib/components/header/header.component.ts","../../../projects/collection-editor-library/src/lib/components/header/header.component.html","../../../projects/collection-editor-library/src/lib/components/fancy-tree/fancy-tree.component.ts","../../../projects/collection-editor-library/src/lib/components/fancy-tree/fancy-tree.component.html","../../../projects/collection-editor-library/src/lib/components/asset-browser/asset-browser.data.ts","../../../projects/collection-editor-library/src/lib/services/question/question.service.ts","../../../projects/collection-editor-library/src/lib/components/asset-browser/asset-browser.component.ts","../../../projects/collection-editor-library/src/lib/components/asset-browser/asset-browser.component.html","../../../projects/collection-editor-library/src/lib/components/collection-icon/collection-icon.component.ts","../../../projects/collection-editor-library/src/lib/components/collection-icon/collection-icon.component.html","../../../projects/collection-editor-library/src/lib/components/meta-form/meta-form.component.ts","../../../projects/collection-editor-library/src/lib/components/meta-form/meta-form.component.html","../../../projects/collection-editor-library/src/lib/components/library-filter/library-filter.component.ts","../../../projects/collection-editor-library/src/lib/components/library-filter/library-filter.component.html","../../../projects/collection-editor-library/src/lib/components/library-list/library-list.component.ts","../../../projects/collection-editor-library/src/lib/components/library-list/library-list.component.html","../../../projects/collection-editor-library/src/lib/components/library-player/library-player.component.ts","../../../projects/collection-editor-library/src/lib/components/library-player/library-player.component.html","../../../projects/collection-editor-library/src/lib/components/resource-reorder/resource-reorder.component.ts","../../../projects/collection-editor-library/src/lib/components/resource-reorder/resource-reorder.component.html","../../../projects/collection-editor-library/src/lib/components/skeleton-loader/skeleton-loader.component.ts","../../../projects/collection-editor-library/src/lib/components/skeleton-loader/skeleton-loader.component.html","../../../projects/collection-editor-library/src/lib/components/library/library.component.ts","../../../projects/collection-editor-library/src/lib/components/library/library.component.html","../../../projects/collection-editor-library/src/lib/interfaces/McqForm.ts","../../../projects/collection-editor-library/src/lib/collection-editor-cursor.service.ts","../../../projects/collection-editor-library/src/lib/components/ckeditor-tool/ckeditor-tool.component.ts","../../../projects/collection-editor-library/src/lib/components/ckeditor-tool/ckeditor-tool.component.html","../../../projects/collection-editor-library/src/lib/pipes/sanitize-html.pipe.ts","../../../projects/collection-editor-library/src/lib/components/options/options.component.ts","../../../projects/collection-editor-library/src/lib/components/options/options.component.html","../../../projects/collection-editor-library/src/lib/components/answer/answer.component.ts","../../../projects/collection-editor-library/src/lib/components/answer/answer.component.html","../../../projects/collection-editor-library/src/lib/components/term-and-condition/term-and-condition.component.ts","../../../projects/collection-editor-library/src/lib/components/term-and-condition/term-and-condition.component.html","../../../projects/collection-editor-library/src/lib/components/quality-params-modal/quality-params-modal.component.ts","../../../projects/collection-editor-library/src/lib/components/quality-params-modal/quality-params-modal.component.html","../../../projects/collection-editor-library/src/lib/components/question/question.component.ts","../../../projects/collection-editor-library/src/lib/components/question/question.component.html","../../../projects/collection-editor-library/src/lib/components/template/template.component.ts","../../../projects/collection-editor-library/src/lib/components/template/template.component.html","../../../projects/collection-editor-library/src/lib/components/csv-upload/csv-upload.component.ts","../../../projects/collection-editor-library/src/lib/components/csv-upload/csv-upload.component.html","../../../projects/collection-editor-library/src/lib/components/manage-collaborator/manage-collaborator.component.ts","../../../projects/collection-editor-library/src/lib/components/manage-collaborator/manage-collaborator.component.html","../../../projects/collection-editor-library/src/lib/components/plain-tree/plain-tree.component.ts","../../../projects/collection-editor-library/src/lib/components/plain-tree/plain-tree.component.html","../../../projects/collection-editor-library/src/lib/components/assign-page-number/assign-page-number.component.ts","../../../projects/collection-editor-library/src/lib/components/assign-page-number/assign-page-number.component.html","../../../projects/collection-editor-library/src/lib/components/progress-status/progress-status.component.ts","../../../projects/collection-editor-library/src/lib/components/progress-status/progress-status.component.html","../../../projects/collection-editor-library/src/lib/components/editor/editor.component.ts","../../../projects/collection-editor-library/src/lib/components/editor/editor.component.html","../../../projects/collection-editor-library/src/lib/collection-editor-library.module.ts","../../../projects/collection-editor-library/src/project-sunbird-sunbird-collection-editor.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\n@Component({\n selector: 'lib-collection-editor-library',\n template: `\n `,\n styles: []\n})\nexport class CollectionEditorLibraryComponent implements OnInit {\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Injectable } from '@angular/core';\ndeclare const iziToast: any;\n/**\n * Service to show toaster\n *\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ToasterService {\n\n /**\n * To show toaster messages\n */\n private iziToast: any;\n private options = {\n position: 'topCenter',\n titleSize: '18',\n timeout: 6000,\n transitionIn: 'flipInX',\n transitionOut: 'flipOutX'\n };\n /**\n\t * Constructor to create injected service(s) object\n\t */\n constructor() {\n this.iziToast = iziToast; // global object\n }\n\n InfoToasterCritical(title: string, message: string) {\n iziToast.show({\n title,\n message,\n class: 'sb-toaster sb-toast-success sb-toast-normal',\n position: 'topCenter',\n timeout: 6000,\n transitionIn: 'flipInX',\n transitionOut: 'flipOutX'\n });\n }\n\n /**\n * Format success message\n * @memberOf Services.toasterService\n * @param string message - Success message\n */\n success(title: string, message?: string) {\n this.iziToast.success({\n title,\n message: message ? message : '',\n class: 'sb-toaster sb-toast-normal sb-toast-success',\n ...this.options\n });\n }\n\n /**\n * Format information message\n * @memberOf Services.toasterService\n * @param string message - Info message\n */\n info(title: string, message?: string) {\n this.iziToast.info({\n title,\n message: message ? message : '',\n class: 'sb-toaster sb-toast-normal sb-toast-info',\n ...this.options\n });\n }\n\n\n\n /**\n * Format error message\n * @memberOf Services.toasterService\n * @param string message - Error message\n */\n error(title: string, message?: string) {\n this.iziToast.error({\n title,\n message: message ? message : '',\n class: 'sb-toaster sb-toast-normal sb-toast-danger',\n ...this.options\n });\n }\n\n /**\n * Format warning message\n * @memberOf Services.toasterService\n * @param string message - Warning message\n */\n warning(title: string, message?: string) {\n this.iziToast.warning({\n title,\n message: message ? message : '',\n class: 'sb-toaster sb-toast-normal sb-toast-warning',\n ...this.options\n });\n }\n\n /**\n * Simple info message\n * @memberOf Services.toasterService\n * @param string message - Simple info message\n */\n simpleInfo(title: string, position?, message?: string) {\n this.iziToast.info({\n title,\n message: message ? message : '',\n position: position ? position : 'topCenter'\n });\n }\n}\n","\nimport { of as observableOf, throwError as observableThrowError, Observable } from 'rxjs';\nimport { mergeMap } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { v4 as uuidv4 } from 'uuid';\n// import * as moment from 'moment';\nimport * as _ from 'lodash-es';\nimport { ServerResponse } from '../../interfaces/serverResponse';\nimport { RequestParam } from '../../interfaces/requestParam';\nimport { HttpOptions } from '../../interfaces/httpOptions';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * Service to provide base CRUD methods to make api request.\n *\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DataService {\n /**\n * Contains rootOrg Id\n */\n rootOrgId: string;\n /**\n * Contains channel Id\n */\n channelId: string;\n /**\n * Contains appId\n */\n appId: string;\n /**\n * Contains devoce Id\n */\n deviceId: string;\n /**\n * Contains base Url for api end points\n */\n baseUrl = 'api/';\n /**\n * angular HttpClient\n */\n http: HttpClient;\n\n _document: Document\n /**\n * Constructor\n * @param HttpClient http HttpClient reference\n */\n constructor(http: HttpClient) {\n this.http = http;\n this._document = document as Document\n const url = (this._document.defaultView as any).questionEditorBaseUrl;\n this.baseUrl = url ? `${url}/api/`: this.baseUrl\n }\n\n /**\n * for making get api calls which needs headers in response\n * headers are fetched to get server time using Date attribute in header\n * @param requestParam interface\n */\n getWithHeaders(requestParam: RequestParam): Observable<ServerResponse> {\n const httpOptions: HttpOptions = {\n headers: requestParam.header ? requestParam.header : this.getHeader(),\n params: requestParam.param,\n observe: 'response'\n };\n\n return this.http.get(this.baseUrl + requestParam.url, httpOptions).pipe(\n mergeMap(({body, headers}: any) => {\n // replace ts time with header date , this value is used in telemetry\n body.ts = this.getDateDiff((headers.get('Date')));\n if (body.responseCode !== 'OK') {\n return observableThrowError(body);\n }\n return observableOf(body);\n }));\n }\n\n /**\n * for making get api calls\n *\n * @param requestParam interface\n */\n get(requestParam: RequestParam): Observable<ServerResponse> {\n const httpOptions: HttpOptions = {\n headers: requestParam.header ? requestParam.header : this.getHeader(),\n params: requestParam.param\n };\n\n return this.http.get(this.baseUrl + requestParam.url, httpOptions).pipe(\n mergeMap((data: ServerResponse) => {\n if (data.responseCode !== 'OK') {\n return observableThrowError(data);\n }\n return observableOf(data);\n }));\n\n }\n\n /**\n * for making post api calls with headers in response object\n *\n * @param RequestParam requestParam interface\n *\n */\n postWithHeaders(requestParam: RequestParam): Observable<any> {\n const httpOptions: HttpOptions = {\n headers: requestParam.header ? this.getHeader(requestParam.header) : this.getHeader(),\n params: requestParam.param,\n observe: 'response'\n };\n\n return this.http.post(this.baseUrl + requestParam.url, requestParam.data, httpOptions).pipe(\n mergeMap(({body, headers}: any) => {\n // replace ts time with header date , this value is used in telemetry\n body.ts = this.getDateDiff((headers.get('Date')));\n if (body.responseCode !== 'OK') {\n return observableThrowError(body);\n }\n return observableOf(body);\n }));\n }\n\n /**\n * for making post api calls\n * @param RequestParam requestParam interface\n */\n post(requestParam: RequestParam): Observable<ServerResponse> {\n const httpOptions: HttpOptions = {\n headers: requestParam.header ? this.getHeader(requestParam.header) : this.getHeader(),\n params: requestParam.param\n };\n\n return this.http.post(this.baseUrl + requestParam.url, requestParam.data, httpOptions).pipe(\n mergeMap((data: ServerResponse) => {\n if (data.responseCode !== 'OK') {\n return observableThrowError(data);\n }\n return observableOf(data);\n }));\n }\n\n /**\n * for making patch api calls\n *\n * @param RequestParam requestParam interface\n *\n */\n patch(requestParam: RequestParam): Observable<ServerResponse> {\n const httpOptions: HttpOptions = {\n headers: requestParam.header ? requestParam.header : this.getHeader(),\n params: requestParam.param\n };\n\n return this.http.patch(this.baseUrl + requestParam.url, requestParam.data, httpOptions).pipe(\n mergeMap((data: ServerResponse) => {\n if (data.responseCode !== 'OK') {\n return observableThrowError(data);\n }\n return observableOf(data);\n }));\n }\n\n /**\n * for making delete api calls\n * @param RequestParam requestParam interface\n */\n delete(requestParam: RequestParam): Observable<ServerResponse> {\n const httpOptions: HttpOptions = {\n headers: requestParam.header ? requestParam.header : this.getHeader(),\n params: requestParam.param,\n body: requestParam.data\n };\n return this.http.delete(this.baseUrl + requestParam.url, httpOptions).pipe(\n mergeMap((data: ServerResponse) => {\n if (data.responseCode !== 'OK') {\n return observableThrowError(data);\n }\n return observableOf(data);\n }));\n }\n\n /**\n * for preparing headers\n */\n private getHeader(headers?: HttpOptions['headers']): HttpOptions['headers'] {\n // tslint:disable-next-line:variable-name\n const default_headers = {\n Accept: 'application/json',\n // 'X-Consumer-ID': 'X-Consumer-ID',\n 'X-Source': 'web',\n ts: '2020-12-31T16:23:27+05:30', // moment().format(), //TODO::\n 'X-msgid': uuidv4(),\n // tslint:disable-next-line:max-line-length\n Authorization: ''\n };\n\n try {\n this.deviceId = (document.getElementById('deviceId') as HTMLInputElement).value || '9d1588c3cbc765c334ccc565e53d81a8';\n this.appId = (document.getElementById('appId') as HTMLInputElement).value || 'dev.dock.portal';\n } catch (err) { }\n if (this.deviceId) {\n default_headers['X-Device-ID'] = this.deviceId;\n }\n if (this.rootOrgId) {\n default_headers['X-Org-code'] = this.rootOrgId;\n }\n if (this.channelId) {\n default_headers['X-Channel-Id'] = this.channelId;\n }\n if (this.appId) {\n default_headers['X-App-Id'] = this.appId;\n }\n if (headers) {\n return { ...default_headers, ...headers };\n } else {\n return { ...default_headers };\n }\n }\n\n private getDateDiff(serverdate): number {\n const currentdate: any = new Date();\n const serverDate: any = new Date(serverdate);\n if (serverdate) {\n return ( serverDate - currentdate ) / 1000;\n } else {\n return 0;\n }\n }\n}\n","import { DataService } from './../data/data.service';\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PublicDataService extends DataService {\n\n /**\n * base Url for public api\n */\n baseUrl: string;\n _document: Document;\n\n public http: HttpClient;\n constructor(http: HttpClient) {\n super(http);\n this._document = document as Document\n const url = (this._document.defaultView as any).questionEditorBaseUrl;\n this.baseUrl = url? url + '/action/': 'action/';\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as urlConfig from './url.config.json';\nimport * as categoryConfig from './category.config.json';\nimport * as labelConfig from './label.config.json';\nimport * as playerConfig from './player.config.json';\nimport * as editorConfig from './editor.config.json';\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigService {\n\n urlConFig = (urlConfig as any);\n categoryConfig = (categoryConfig as any);\n labelConfig = (labelConfig as any);\n playerConfig = (playerConfig as any);\n editorConfig = (editorConfig as any);\n public sessionContext: Array<string> = ['board', 'medium', 'gradeLevel', 'subject',\n 'topic', 'author', 'channel', 'framework', 'copyright', 'attributions', 'audience', 'license' ];\n constructor() { }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, of, throwError } from 'rxjs';\nimport { catchError, map, skipWhile, tap} from 'rxjs/operators';\nimport * as _ from 'lodash-es';\nimport { PublicDataService} from '../public-data/public-data.service';\nimport { DataService} from '../data/data.service';\nimport { ConfigService } from '../config/config.service';\n@Injectable({\n providedIn: 'root'\n})\n\nexport class HelperService {\n // tslint:disable-next-line:variable-name\n private _availableLicenses: Array<any>;\n // tslint:disable-next-line:variable-name\n private _channelData: any;\n // tslint:disable-next-line:variable-name\n private _channelPrimaryCategories: any;\n // tslint:disable-next-line:variable-name\n private _channelData$ = new BehaviorSubject<any>(undefined);\n\n public treeDepth = 0;\n\n public readonly channelData$: Observable<any> = this._channelData$\n .asObservable().pipe(skipWhile(data => data === undefined || data === null));\n private shuffle = new BehaviorSubject<any>(undefined);\n shuffleValue = this.shuffle.asObservable();\n\n constructor(private publicDataService: PublicDataService, private configService: ConfigService, private dataService: DataService) { }\n\n initialize(channelId) {\n this.getLicenses().subscribe((data: any) => this._availableLicenses = _.get(data, 'license'));\n this.getChannelData(channelId).subscribe(data => {\n this._channelData = data;\n this._channelPrimaryCategories = _.get(this._channelData, 'primaryCategories') || [];\n this._channelData$.next({ err: null, channelData: this._channelData });\n });\n }\n\n setShuffleValue(value) {\n this.shuffle.next(value);\n }\n\n public get channelInfo(): any {\n return this._channelData;\n }\n\n public get channelPrimaryCategories(): any {\n return this._channelPrimaryCategories;\n }\n\n public get contentPrimaryCategories() : any {\n const channeltargetObjectTypeGroup = _.groupBy(this.channelPrimaryCategories, 'targetObjectType');\n return _.get(channeltargetObjectTypeGroup, 'Content') || [];\n }\n\n public get questionPrimaryCategories() : any {\n const channeltargetObjectTypeGroup = _.groupBy(this.channelPrimaryCategories, 'targetObjectType');\n return _.get(channeltargetObjectTypeGroup, 'Question') || [];\n }\n\n public get collectionPrimaryCategories() : any {\n const channeltargetObjectTypeGroup = _.groupBy(this.channelPrimaryCategories, 'targetObjectType');\n return _.get(channeltargetObjectTypeGroup, 'Collection') || [];\n }\n\n public get questionsetPrimaryCategories() : any {\n const channeltargetObjectTypeGroup = _.groupBy(this.channelPrimaryCategories, 'targetObjectType');\n return _.get(channeltargetObjectTypeGroup, 'QuestionSet') || [];\n }\n\n getLicenses(): Observable<any> {\n const req = {\n url: `${this.configService.urlConFig.URLS.compositSearch}`,\n data: {\n request: {\n filters: {\n objectType: 'license',\n status: ['Live']\n }\n }\n }\n };\n return this.publicDataService.post(req).pipe(map((res: any) => {\n return res.result;\n }), catchError(err => {\n const errInfo = { errorMsg: _.get(this.configService, 'labelConfig.messages.error.030') };\n return throwError(errInfo);\n }));\n }\n\n getAvailableLicenses() {\n return this._availableLicenses;\n }\n\n getChannelData(channelId): Observable<any> {\n const channelData = sessionStorage.getItem(channelId);\n if (!channelData) {\n const channelOptions = {\n url: _.get(this.configService.urlConFig, 'URLS.channelRead') + channelId\n };\n return this.dataService.get(channelOptions).pipe(map((data: any) => data.result.channel));\n } else {\n return of(channelData);\n }\n }\n\n get channelData() {\n return {\n contentPrimaryCategories: this.configService.editorConfig.contentPrimaryCategories\n };\n }\n\n hmsToSeconds(str) {\n const p = str.split(':');\n let s = 0; let m = 1;\n\n while (p.length > 0) {\n s += m * parseInt(p.pop(), 10);\n m *= 60;\n }\n return _.toString(s);\n }\n\n getTimerFormat(field) {\n const validationObj = _.find(_.get(field, 'validations'), {type: 'time'});\n if (!_.isEmpty(validationObj)) {\n return validationObj.value;\n } else {\n return 'HH:mm:ss';\n }\n }\n\n getAllUser(userSearchBody) {\n const req = {\n url: _.get(this.configService.urlConFig, 'URLS.USER.SEARCH'),\n param: {fields: 'orgName'},\n data: {\n request: userSearchBody.request\n }\n };\n\n return this.publicDataService.post(req);\n }\n\n updateCollaborator(contentId, collaboratorList) {\n const req = {\n url: _.get(this.configService.urlConFig, 'URLS.CONTENT.UPDATE_COLLABORATOR') + contentId,\n data: {\n request: {\n content: {\n collaborators: collaboratorList\n }\n }\n }\n };\n return this.publicDataService.patch(req);\n }\n\n addDepthToHierarchy(arr, depth = 0, index = 0) {\n if (arr && index < arr.length) {\n _.forEach(arr, child => {\n child.depth = depth;\n if (depth > this.treeDepth) { this.treeDepth = depth; }\n if (_.get(child, 'children.length')) {\n return this.addDepthToHierarchy(child.children, depth + 1, 0);\n }\n return this.addDepthToHierarchy(child, depth, index + 1);\n\n });\n }\n return;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport 'jquery.fancytree';\nimport { v4 as uuidv4 } from 'uuid';\ndeclare var $: any;\nimport * as _ from 'lodash-es';\nimport { IEditorConfig } from '../../interfaces/editor';\nimport { ToasterService } from '../toaster/toaster.service';\nimport { HelperService } from '../helper/helper.service';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { skipWhile } from 'rxjs/operators';\nimport { ConfigService } from '../config/config.service';\n@Injectable({\n providedIn: 'root'\n})\nexport class TreeService {\n public config: any;\n treeCache = {\n nodesModified: {},\n nodes: []\n };\n treeNativeElement: any;\n omitFalseyProps: any;\n // tslint:disable-next-line:variable-name\n private _treeStatus$ = new BehaviorSubject<any>(undefined);\n public readonly treeStatus$: Observable<any> = this._treeStatus$\n .asObservable().pipe(skipWhile(status => status === undefined || status === null));\n\n constructor(private toasterService: ToasterService, private helperService: HelperService, public configService: ConfigService) { }\n\n public initialize(editorConfig: IEditorConfig) {\n this.config = editorConfig.config;\n this.omitFalseyProps = _.get(this.configService.editorConfig, 'omitFalseyProperties');\n }\n\n nextTreeStatus(status) {\n this._treeStatus$.next(status);\n }\n\n setTreeElement(el) {\n this.treeNativeElement = el;\n }\n\n updateNode(metadata, nodeToBeUpdated?, primaryCategory?) {\n this.setNodeTitle(metadata.name);\n this.updateTreeNodeMetadata(metadata, nodeToBeUpdated, primaryCategory);\n }\n\n updateAppIcon(appIconUrl) {\n const activeNode = this.getActiveNode();\n const nodeId = activeNode.data.id;\n activeNode.data.metadata = { ...activeNode.data.metadata, appIcon: appIconUrl };\n this.setTreeCache(nodeId, { appIcon: appIconUrl }, activeNode.data);\n }\n\n updateMetaDataProperty(key, value) {\n const node = this.getFirstChild();\n const nodeId = node.data.id;\n node.data.metadata = { ...node.data.metadata, [key]: value };\n this.setTreeCache(nodeId, _.merge({}, { [key]: value }, _.pick(node.data.metadata, ['objectType'])));\n }\n\n updateTreeNodeMetadata(newData: any, nodeToBeUpdated?: any, primaryCategory?: any, objectType?: any) {\n const activeNode = !_.isUndefined(nodeToBeUpdated) ? this.getNodeById(nodeToBeUpdated) : this.getActiveNode();\n const nodeId = nodeToBeUpdated || activeNode.data.id;\n if (newData.instructions) {\n newData.instructions = { default: newData.instructions };\n }\n activeNode.data.metadata = { ...activeNode.data.metadata, ...newData };\n activeNode.title = newData.name;\n newData = _.omitBy(newData, (v, key) => _.isUndefined(v) || _.isNull(v) || (v === '' && _.includes(this.omitFalseyProps, key)));\n newData = _.merge({}, newData, _.pick(activeNode.data.metadata, ['objectType', 'contentType', 'primaryCategory']));\n const attributions = newData.attributions;\n if (attributions && _.isString(attributions)) {\n newData.attributions = attributions.split(',');\n } else {\n newData.attributions = [];\n }\n const { maxTime, warningTime, copyrightYear } = newData;\n\n if (copyrightYear) {\n newData.copyrightYear = _.toNumber(copyrightYear);\n }\n if (objectType) {\n newData.objectType = objectType;\n }\n const timeLimits: any = {};\n if (maxTime) {\n timeLimits.maxTime = this.helperService.hmsToSeconds(maxTime);\n }\n if (warningTime) {\n timeLimits.warningTime = this.helperService.hmsToSeconds(warningTime);\n }\n if (!_.isEmpty(timeLimits)) {\n newData.timeLimits = timeLimits;\n }\n delete newData.maxTime;\n delete newData.warningTime;\n this.setTreeCache(nodeId, newData, activeNode.data);\n }\n\n addNode(createType) {\n let newNode;\n const selectedNode = this.getActiveNode();\n // tslint:disable-next-line:max-line-length\n const nodeConfig = (createType === 'sibling') ? this.config.hierarchy[`level${selectedNode.getLevel() - 1}`] : this.config.hierarchy[`level${selectedNode.getLevel()}`];\n const uniqueId = uuidv4();\n const nodeTitle = _.get(nodeConfig, 'name');\n const node: any = {\n id: uniqueId,\n title: nodeTitle,\n tooltip: nodeTitle,\n ...(nodeConfig.contentType && { contentType: nodeConfig.contentType }),\n primaryCategory: _.get(nodeConfig, 'primaryCategory'),\n objectType: _.get(this.config, 'objectType'),\n root: false,\n folder: true,\n icon: _.get(nodeConfig, 'iconClass'),\n metadata: {\n mimeType: _.get(nodeConfig, 'mimeType'),\n code: uniqueId,\n name: nodeTitle,\n visibility: 'Parent'\n }\n };\n node.metadata = _.merge({}, node.metadata, _.pick(node, ['contentType', 'objectType', 'primaryCategory']));\n newNode = (createType === 'sibling') ? selectedNode.appendSibling(node) : selectedNode.addChildren(node);\n this.setTreeCache(node.id, node.metadata);\n newNode.setActive();\n selectedNode.setExpanded();\n $('span.fancytree-title').attr('style', 'width:11em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden');\n $(this.treeNativeElement).scrollLeft($('.fancytree-lastsib').width());\n $(this.treeNativeElement).scrollTop($('.fancytree-lastsib').height());\n this.nextTreeStatus('added');\n }\n\n removeNode() {\n const selectedNode = this.getActiveNode();\n const afterDeleteNode = selectedNode.getPrevSibling() ? selectedNode.getPrevSibling() : selectedNode.getParent();\n this.setActiveNode(afterDeleteNode);\n selectedNode.remove();\n this.clearTreeCache(selectedNode.data);\n $('span.fancytree-title').attr('style', 'width:11em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden');\n $(this.treeNativeElement).scrollLeft($('.fancytree-lastsib').width());\n $(this.treeNativeElement).scrollTop($('.fancytree-lastsib').height());\n this.nextTreeStatus('removed');\n }\n\n getTreeObject() {\n return $(this.treeNativeElement).fancytree('getTree');\n }\n\n getActiveNode() {\n let activeNode;\n try {\n activeNode = this.getTreeObject().getActiveNode();\n } catch {\n activeNode = {};\n }\n return activeNode;\n }\n\n getParent() {\n const activeNode = this.getActiveNode();\n return activeNode?.getParent ? activeNode.getParent() : null;\n }\n\n setActiveNode(node?) {\n const rootFirstChildNode = this.getFirstChild();\n if (node) {\n node.setActive(true);\n } else {\n rootFirstChildNode.setActive(true);\n }\n }\n\n getFirstChild() {\n let treeData;\n try {\n treeData = $(this.treeNativeElement).fancytree('getRootNode').getFirstChild();\n } catch {\n treeData = {};\n }\n return treeData;\n }\n\n findNode(nodeId) {\n return this.getTreeObject().findFirst((node) => node.data.id === nodeId);\n }\n\n expandNode(nodeId) {\n this.findNode(nodeId).setExpanded(true);\n }\n\n replaceNodeId(identifiers) {\n this.getTreeObject().visit((node) => {\n if (identifiers[node.data.id]) {\n node.data.id = identifiers[node.data.id];\n }\n });\n }\n\n getNodeById(id) {\n // tslint:disable-next-line:variable-name\n let _node: any;\n this.getTreeObject().visit((node) => {\n if (node.data.id === id) { _node = node; }\n });\n return _node;\n }\n\n // Generate a flat list of node children and sub children\n getChildren() {\n const nodes = [];\n this.getActiveNode().visit((node) => {\n nodes.push(node);\n });\n return nodes;\n }\n\n highlightNode(nodeId: string, action: string) {\n const nodeElem = this.getNodeById(nodeId);\n if (!nodeElem) { return; }\n if (action === 'add') {\n nodeElem.span.childNodes[1].classList.add('highlightNode');\n nodeElem.span.childNodes[2].classList.add('highlightNode');\n } else if (action === 'remove') {\n nodeElem.span.childNodes[1].classList.remove('highlightNode');\n nodeElem.span.childNodes[2].classList.remove('highlightNode');\n } else { }\n }\n\n setTreeCache(nodeId, metadata, activeNode?) {\n if (this.treeCache.nodesModified[nodeId]) {\n // tslint:disable-next-line:max-line-length\n this.treeCache.nodesModified[nodeId].metadata = _.assign(this.treeCache.nodesModified[nodeId].metadata, _.omit(metadata, 'objectType'));\n } else {\n this.treeCache.nodesModified[nodeId] = {\n root: activeNode && activeNode.root ? true : false,\n objectType: metadata.objectType,\n metadata: { ..._.omit(metadata, ['objectType']) },\n ...(nodeId.includes('do_') ? { isNew: false } : { isNew: true })\n };\n this.treeCache.nodes.push(nodeId); // To track sequence of modifiation\n }\n }\n\n clearTreeCache(node?) {\n if (node) {\n delete this.treeCache.nodesModified[node.id];\n _.remove(this.treeCache.nodes, val => val === node.id);\n } else {\n this.treeCache.nodesModified = {};\n this.treeCache.nodes = [];\n }\n }\n\n setNodeTitle(title) {\n if (!title) {\n title = 'Untitled';\n }\n title = this.removeSpecialChars(title);\n this.getActiveNode().applyPatch({ title }).done((a, b) => { });\n $('span.fancytree-title').attr('style', 'width:11em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden');\n }\n\n removeSpecialChars(text) {\n if (text) {\n // tslint:disable-next-line:quotemark\n const iChars = \"!`~@#$^*+=[]\\\\\\'{}|\\\"<>%/\";\n for (let i = 0; i < text.length; i++) {\n if (iChars.indexOf(text.charAt(i)) !== -1) {\n this.toasterService.error('Special character \"' + text.charAt(i) + '\" is not allowed');\n }\n }\n // tslint:disable-next-line:max-line-length\n text = text.replace(/[^\\u0600-\\u06FF\\uFB50-\\uFDFF\\uFE70-\\uFEFF\\uFB50-\\uFDFF\\u0980-\\u09FF\\u0900-\\u097F\\u0D00-\\u0D7F\\u0A80-\\u0AFF\\u0C80-\\u0CFF\\u0B00-\\u0B7F\\u0A00-\\u0A7F\\u0B80-\\u0BFF\\u0C00-\\u0C7F\\w:&_\\-.(\\),\\/\\s]|[/]/g, '');\n return text;\n }\n }\n\n closePrevOpenedDropDown() {\n this.getTreeObject().visit((node) => {\n const nSpan = $(node.span);\n const dropDownElement = $(nSpan[0]).find(`#contextMenuDropDown`);\n dropDownElement.addClass('hidden');\n dropDownElement.removeClass('visible');\n });\n }\n\n reloadTree(nodes: any) {\n this.getTreeObject().reload(nodes);\n $('span.fancytree-title').attr('style', 'width:15em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden');\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport * as _ from 'lodash-es';\nimport { CsTelemetryModule } from '@project-sunbird/client-services/telemetry';\nimport { IEditorConfig, Context } from '../../interfaces/editor';\nimport { HelperService } from '../helper/helper.service';\nimport { ConfigService } from '../config/config.service';\n@Injectable({\n providedIn: 'root'\n})\nexport class EditorTelemetryService {\n duration: number;\n channel: string;\n telemetryEvent = new EventEmitter<any>();\n private context: Context;\n private telemetryObject: any;\n private pdata: any;\n private sid: string;\n private uid: string;\n private rollup: any;\n private env: string;\n // tslint:disable-next-line:variable-name\n private _telemetryPageId: any;\n\n constructor(public helperService: HelperService, public configService: ConfigService) { }\n\n initializeTelemetry(config: IEditorConfig) {\n this.duration = new Date().getTime();\n this.context = config.context;\n this.channel = config.context.channel;\n this.pdata = this.context.pdata;\n this.sid = this.context.sid;\n this.uid = this.context.uid;\n this.env = this.context.env;\n this.pdata.pid = `${this.context.pdata.pid}.${this.env}`;\n this.rollup = this.context.contextRollup;\n if (!CsTelemetryModule.instance.isInitialised) {\n CsTelemetryModule.instance.init({});\n CsTelemetryModule.instance.telemetryService.initTelemetry(\n {\n config: {\n pdata: config.context.pdata,\n env: config.context.env,\n channel: config.context.channel,\n did: config.context.did,\n authtoken: config.context.authToken || '',\n uid: config.context.uid || '',\n sid: config.context.sid,\n batchsize: 20,\n mode: config.context.mode,\n host: config.context.host || document.location.origin,\n endpoint: config.context.endpoint || _.get(this.configService.urlConFig, 'URLS.telemetry'),\n tags: config.context.tags,\n cdata: this.context.cdata || []\n },\n userOrgDetails: {}\n }\n );\n }\n\n this.telemetryObject = {\n id: config.context.identifier,\n type: 'Content',\n ver: '1.0', // TODO :: config.metadata.pkgVersion + ''\n rollup: this.context.objectRollup || {}\n };\n }\n\n set telemetryPageId(value: any) {\n this._telemetryPageId = value;\n }\n\n get telemetryPageId() {\n return this._telemetryPageId;\n }\n\n getTelemetryInteractEdata(id: string, type: string, subtype: string, pageid: string, extra?: any) {\n return _.omitBy({\n id,\n type,\n subtype,\n pageid,\n extra\n }, _.isUndefined);\n }\n\n public start(edata) {\n CsTelemetryModule.instance.telemetryService.raiseStartTelemetry(\n {\n options: this.getEventOptions(),\n edata\n }\n );\n }\n public end(edata) {\n if (CsTelemetryModule.instance.isInitialised) {\n CsTelemetryModule?.instance?.telemetryService?.raiseEndTelemetry({\n edata,\n options: this.getEventOptions()\n });\n }\n }\n\n public interact(eventData) {\n CsTelemetryModule.instance.telemetryService.raiseInteractTelemetry({\n options: this.getEventOptions(),\n edata: eventData.edata\n });\n }\n\n\n public impression(edata) {\n CsTelemetryModule.instance.telemetryService.raiseImpressionTelemetry({\n options: this.getEventOptions(),\n edata\n });\n }\n\n public error(edata) {\n CsTelemetryModule.instance.telemetryService.raiseErrorTelemetry({\n edata\n });\n }\n\n public getEventOptions() {\n return ({\n object: this.telemetryObject,\n context: {\n channel: this.channel,\n pdata: this.pdata,\n env: this.env,\n sid: this.sid,\n uid: this.uid,\n cdata: this.context.cdata || [],\n rollup: this.rollup || {}\n }\n });\n }\n\n}\n","import { Injectable, EventEmitter } from '@angular/core';\nimport { Observable, Subject, BehaviorSubject } from 'rxjs';\nimport * as _ from 'lodash-es';\nimport { TreeService } from '../tree/tree.service';\nimport { PublicDataService } from '../public-data/public-data.service';\nimport { IEditorConfig } from '../../interfaces/editor';\nimport { ConfigService } from '../config/config.service';\nimport { ToasterService} from '../../services/toaster/toaster.service';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\nimport { DataService } from '../data/data.service';\nimport { map } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport { ExportToCsv } from 'export-to-csv';\n\ninterface SelectedChildren {\n primaryCategory?: string;\n mimeType?: string;\n interactionType?: string;\n}\n@Injectable({ providedIn: 'root' })\n\nexport class EditorService {\n data: any = {};\n private _selectedChildren: SelectedChildren = {};\n public questionStream$ = new Subject<any>();\n private _editorConfig: IEditorConfig;\n private _editorMode = 'edit';\n private _isReviewerEditEnable = false;\n private _isReviewModificationAllowed = false;\n public showLibraryPage: EventEmitter<any> = new EventEmitter();\n public showQuestionLibraryPage: EventEmitter<any> = new EventEmitter();\n private _bulkUploadStatus$ = new BehaviorSubject<any>(undefined);\n public readonly bulkUploadStatus$: Observable<any> = this._bulkUploadStatus$;\n public contentsCount = 0;\n templateList = [];\n parentIdentifier: any;\n branchingLogic = {};\n selectedSection: any;\n optionsLength: any;\n selectedPrimaryCategory: any;\n leafParentIdentifier: any;\n questionIds = [];\n outcomeDeclaration: any;\n treeData: any;\n private _qualityFormConfig: any;\n private _isReviewerQualityCheckEnabled: boolean;\n constructor(public treeService: TreeService, private toasterService: ToasterService,\n public configService: ConfigService, private telemetryService: EditorTelemetryService,\n private publicDataService: PublicDataService, private dataService: DataService, public httpClient: HttpClient) {\n }\n\n public initialize(config: IEditorConfig) {\n this._editorConfig = config;\n if (this.configService.editorConfig && this.configService.editorConfig.default) {\n this._editorConfig.config = _.assign(this.configService.editorConfig.default, this._editorConfig.config);\n }\n this._editorMode = _.get(this._editorConfig, 'config.mode').toLowerCase();\n this.setIsReviewerEditEnable(_.get(this._editorConfig, 'context.enableReviewEdit', false));\n this.setQualityFormConfig(_.get(this._editorConfig, 'config.qualityFormConfig', null));\n this.setIsReviewerQualityCheckEnabled(_.get(this._editorConfig, 'config.isReviewerQualityCheckEnabled', false));\n }\n\n set selectedChildren(value: SelectedChildren) {\n if (value.mimeType) {\n this._selectedChildren.mimeType = value.mimeType;\n }\n if (value.primaryCategory) {\n this._selectedChildren.primaryCategory = value.primaryCategory;\n }\n if (value.interactionType) {\n this._selectedChildren.interactionType = value.interactionType;\n }\n }\n\n get selectedChildren() {\n return this._selectedChildren;\n }\n\n public get editorConfig(): IEditorConfig {\n return this._editorConfig;\n }\n\n get editorMode() {\n return this._editorMode;\n }\n\n get isReviewerEditEnable() {\n return this._isReviewerEditEnable;\n }\n\n private setIsReviewerEditEnable(value: boolean) {\n return this._isReviewerEditEnable = value;\n }\n\n get isReviewModificationAllowed() {\n return this._isReviewModificationAllowed;\n }\n\n setIsReviewModificationAllowed(value: boolean) {\n return this._isReviewModificationAllowed = value;\n }\n\n get contentPolicyUrl() {\n const url = _.get(this.editorConfig, 'config.contentPolicyUrl');\n return url ? url : this.configService.urlConFig.ContentPolicyUrl;\n }\n\n getToolbarConfig() {\n return _.cloneDeep(_.merge(this.configService.labelConfig.button_labels, _.get(this.editorConfig, 'context.labels')));\n }\n\n emitshowLibraryPageEvent(page) {\n this.showLibraryPage.emit(page);\n }\n getshowLibraryPageEmitter() {\n return this.showLibraryPage;\n }\n\n getQuestionList(questionIds: string[]): Observable<any> {\n const option = {\n url: _.get(this.configService.urlConFig, 'URLS.QUESTION.LIST'),\n data: {\n request: {\n search: {\n identifier: questionIds\n }\n }\n }\n };\n return this.dataService.post(option).pipe(map(data => _.get(data, 'result')));\n }\n\n fetchCollectionHierarchy(collectionId): Observable<any> {\n const url = this.configService.urlConFig.URLS[this.editorConfig.config.objectType];\n const hierarchyUrl = `${url.HIERARCHY_READ}/${collectionId}`;\n const req = {\n url: hierarchyUrl,\n param: { mode: 'edit' }\n };\n return this.publicDataService.get(req);\n }\n\n readQuestionSet(questionSetId, option: any = { params: {} }): Observable<any> {\n const url = this.configService.urlConFig.URLS[this.editorConfig.config.objectType];\n const param = {\n mode: 'edit',\n fields: url.DEFAULT_PARAMS_FIELDS\n };\n const hierarchyUrl = `${url.READ}/${questionSetId}`;\n const req = {\n url: hierarchyUrl,\n param: { ...param, ...option.params }\n };\n return this.publicDataService.get(req);\n }\n\n fetchContentDetails(contentId) {\n const req = {\n url: _.get(this.configService.urlConFig, 'URLS.CONTENT.READ') + contentId\n };\n return this.publicDataService.get(req);\n }\n\n updateHierarchy(): Observable<any> {\n const url = this.configService.urlConFig.URLS[this.editorConfig.config.objectType];\n const req = {\n url: url.HIERARCHY_UPDATE,\n data: {\n request: {\n data: {\n ...this.getCollectionHierarchy(),\n ...{lastUpdatedBy: _.get(this.editorConfig, 'context.user.id')}\n }\n }\n }\n };\n return this.publicDataService.patch(req);\n }\n\n getFieldsToUpdate(collectionId) {\n let formFields = {};\n const editableFields = _.get(this.editorConfig.config, 'editableFields');\n if (editableFields && !_.isEmpty(editableFields[this.editorMode])) {\n const fields = editableFields[this.editorMode];\n const nodesModified = _.get(this.getCollectionHierarchy(), 'nodesModified');\n const collectionFormData = _.get(nodesModified[collectionId], 'metadata');\n _.forEach(fields, fieldCode => {\n formFields[fieldCode] = collectionFormData[fieldCode];\n });\n }\n return formFields;\n }\n\n updateCollection(collectionId, data?) {\n let objType = this.configService.categoryConfig[this.editorConfig.config.objectType];\n objType = objType.toLowerCase();\n const url = this.configService.urlConFig.URLS[this.editorConfig.config.objectType];\n const fieldsObj = this.getFieldsToUpdate(collectionId);\n const requestBody = {\n request: {\n [objType]: {\n ...fieldsObj,\n lastPublishedBy: this.editorConfig.context.user.id\n }\n }\n };\n const publishData = _.get(data, 'publishData');\n if(publishData) { \n requestBody.request[objType] = { ...requestBody.request[objType], ...publishData };\n }\n const option = {\n url: `${url.SYSYTEM_UPDATE}${collectionId}`,\n data: requestBody\n };\n return this.publicDataService.patch(option);\n }\n\n reviewContent(contentId): Observable<any> {\n let objType = this.configService.categoryConfig[this.editorConfig.config.objectType];\n objType = objType.toLowerCase();\n const url = this.configService.urlConFig.URLS[this.editorConfig.config.objectType];\n const option = {\n url: url.CONTENT_REVIEW + contentId,\n data: {\n request: {\n [objType]: {}\n }\n }\n };\n return this.publicDataService.post(option);\n }\n\n submitRequestChanges(contentId, comment) {\n let objType = this.configService.categoryConfig[this.editorConfig.config.objectType];\n objType = objType.toLowerCase();\n const url = this.configService.urlConFig.URLS[this.editorConfig.config.objectType];\n const requestBody = {\n request: {\n [objType]: {\n rejectComment: _.trim(comment)\n }\n }\n };\n const option = {\n url: `${url.CONTENT_REJECT}${contentId}`,\n data: requestBody\n };\n return this.publicDataService.post(option);\n }\n\n publishContent(contentId, event) {\n let objType = this.configService.categoryConfig[this.editorConfig.config.objectType];\n objType = objType.toLowerCase();\n const url = this.configService.urlConFig.URLS[this.editorConfig.config.objectType];\n const requestBody = {\n request: {\n [objType]: {\n lastPublishedBy: this.editorConfig.context.user.id\n }\n }\n };\n const publishData = _.get(event, 'publishData');\n if(publishData) { \n requestBody.request[objType] = { ...requestBody.request[objType], ...publishData };\n } \n const option = {\n url: `${url.CONTENT_PUBLISH}${contentId}`,\n data: requestBody\n };\n return this.publicDataService.post(option);\n }\n\n addResourceToHierarchy(collection, unitIdentifier, contentId): Observable<any> {\n const req = {\n url: _.get(this.configService.urlConFig, 'URLS.CONTENT.HIERARCHY_ADD'),\n data: {\n request: {\n rootId: collection,\n unitId: unitIdentifier,\n children: [contentId]\n }\n }\n };\n return this.publicDataService.patch(req);\n }\n\n addResourceToQuestionset(collection, unitIdentifier, contentId) {\n const children: any[] = _.isArray(contentId) ? contentId : [contentId];\n let req = {\n url: _.get(this.configService.urlConFig, 'URLS.QuestionSet.ADD'),\n data: {\n request: {\n questionset: {\n rootId: collection,\n collectionId: unitIdentifier,\n children\n }\n }\n }\n };\n if (collection === unitIdentifier) {\n req = _.omit(req, 'data.request.questionset.collectionId');\n }\n return this.publicDataService.patch(req);\n }\n\n public getQuestionStream$() {\n return this.questionStream$;\n }\n\n public publish(value: any) {\n this.questionStream$.next(value);\n }\n\n setQuestionIds(childrens) {\n const self = this;\n for (const children of childrens) {\n if (children.data.objectType === 'QuestionSet') {\n let questionCount = 0;\n if (children?.data?.metadata?.maxQuestions && (children?.data?.metadata?.maxQuestions < children?.children?.length)) {\n questionCount = children.data.metadata.maxQuestions;\n } else {\n questionCount = children?.children ?\n children?.children?.length : 0;\n }\n if (questionCount > 0) {\n for (let i = 0; i < questionCount; i++) {\n if (!_.isEmpty(children, 'children')) {\n if (children.children[i].data.objectType === 'QuestionSet') {\n self.setQuestionIds([children.children[i]]);\n } else {\n if (!_.includes(this.questionIds, children.children[i].data.id)) {\n this.questionIds.push(children.children[i].data.id);\n }\n }\n }\n }\n }\n }\n }\n }\n\n async getMaxScore() {\n let maxScore = 0;\n let rootNode = [];\n this.questionIds = [];\n const rootNodeData = this.treeService.getFirstChild();\n if (rootNodeData.children) {\n rootNode = [rootNodeData];\n }\n if (!_.isEmpty(rootNode)) {\n this.setQuestionIds(rootNode);\n }\n if (!_.isEmpty(this.questionIds)) {\n const { questions } = await this.getQuestionList(this.questionIds).toPromise();\n maxScore = this.calculateMaxScore(questions);\n }\n return maxScore;\n }\n\n calculateMaxScore(questions: Array<any>) {\n return _.reduce(questions, (sum, question) => {\n const nodeData = this.treeService.getNodeById(question.identifier);\n if (_.has(nodeData.parent.data.metadata, 'shuffle') && nodeData.parent.data.metadata.shuffle === true) {\n return sum + 1;\n } else {\n return sum + (question?.responseDeclaration?.response1?.maxScore ? _.get(question, 'responseDeclaration.response1.maxScore') : 0);\n }\n }, 0);\n }\n\n getCollectionHierarchy() {\n const instance = this;\n this.data = {};\n const data = this.treeService.getFirstChild();\n return {\n nodesModified: this.treeService.treeCache.nodesModified,\n hierarchy: instance._toFlatObj(data)\n };\n }\n\n _toFlatObj(data, questionId?, selectUnitId?) {\n const instance = this;\n if (data && data.data) {\n instance.data[data.data.id] = {\n name: data.title,\n children: _.map(data.children, (child) => {\n return child.data.id;\n }),\n root: data.data.root\n };\n if (questionId && selectUnitId && selectUnitId === data.data.id) {\n instance.data[data.data.id].children.push(questionId);\n }\n if (questionId && selectUnitId && data.folder === false) {\n delete instance.data[data.data.id];\n }\n _.forEach(data.children, (collection) => {\n instance._toFlatObj(collection, questionId, selectUnitId);\n });\n }\n return instance.data;\n }\n\n getHierarchyObj(data, questionId?, selectUnitId?, parentIdentifier?) {\n return this._toFlatObj(data, questionId, selectUnitId);\n }\n\n _toFlatObjFromHierarchy(data) {\n const instance = this;\n if (data && data.children) {\n instance.data[data.identifier] = {\n name: data.name,\n children: _.map(data.children, (child) => {\n return child.identifier;\n }),\n branchingLogic: data.branchingLogic\n };\n _.forEach(data.children, (collection) => {\n instance._toFlatObjFromHierarchy(collection);\n });\n }\n return instance.data;\n }\n\n getRelationalMetadataObj(data) {\n let relationalMetadata = {};\n _.forEach(data, (child) => {\n if (_.get(child, 'data.metadata.relationalMetadata')) {\n relationalMetadata = {\n ...relationalMetadata,\n [child.data.id]: _.get(child, 'data.metadata.relationalMetadata')\n };\n }\n });\n return relationalMetadata;\n }\n\n getCategoryDefinition(categoryName, channel, objectType?: any) {\n const req = {\n url: _.get(this.configService.urlConFig, 'URLS.getCategoryDefinition'),\n data: {\n request: {\n objectCategoryDefinition: {\n objectType: objectType ? objectType : 'Content',\n name: categoryName,\n ...(channel && { channel })\n },\n }\n }\n };\n return this.publicDataService.post(req);\n }\n fetchContentListDetails(req) {\n return this.publicDataService.post(req);\n }\n sort(a, b, column) {\n if (!this.isNotEmpty(a, column) || !this.isNotEmpty(b, column)) {\n return 1;\n }\n let aColumn = a[column];\n let bColumn = b[column];\n if (_.isArray(aColumn)) {\n aColumn = _.join(aColumn, ', ');\n }\n if (_.isArray(bColumn)) {\n bColumn = _.join(bColumn, ', ');\n }\n if (_.isNumber(aColumn)) {\n aColumn = _.toString(aColumn);\n }\n if (_.isNumber(bColumn)) {\n bColumn = _.toString(bColumn);\n }\n return bColumn.localeCompare(aColumn);\n }\n isNotEmpty(obj, key) {\n if (_.isNil(obj) || _.isNil(obj[key])) {\n return false;\n }\n return true;\n }\n\n apiErrorHandling(err, errorInfo) {\n if (_.get(err, 'error.params.errmsg') || errorInfo.errorMsg) {\n this.toasterService.error(_.get(err, 'error.params.errmsg') || errorInfo.errorMsg);\n }\n const telemetryErrorData = {\n err: _.toString(err.status),\n errtype: 'SYSTEM',\n stacktrace: JSON.stringify({response: _.pick(err, ['error', 'url']), request: _.get(errorInfo, 'request')}) || errorInfo.errorMsg,\n pageid: this.telemetryService.telemetryPageId\n };\n this.telemetryService.error(telemetryErrorData);\n }\n // this method is used to get all the contents in course/question inside every module and sub module\n getContentChildrens(activeNode?) {\n let treeObj = this.treeService.getTreeObject();\n const contents = [];\n if (activeNode) { treeObj = activeNode; }\n treeObj.visit((node) => {\n if (node.folder === false) {\n contents.push(node.data.id);\n }\n });\n return contents;\n }\n // this method is used to keep count of contents added from library page\n contentsCountAddedInLibraryPage(setToZero?) {\n if (setToZero) {\n this.contentsCount = 0; // setting this count to zero while going out from library page\n } else {\n this.contentsCount = this.contentsCount + 1;\n }\n }\n checkIfContentsCanbeAdded() {\n const config = {\n errorMessage: '',\n maxLimit: 0\n };\n if (_.get(this.editorConfig, 'config.objectType') === 'QuestionSet') {\n config.errorMessage = _.get(this.configService, 'labelConfig.messages.error.031');\n config.maxLimit = _.get(this.editorConfig, 'config.questionSet.maxQuestionsLimit');\n } else {\n config.errorMessage = _.get(this.configService, 'labelConfig.messages.error.032');\n config.maxLimit = _.get(this.editorConfig, 'config.collection.maxContentsLimit');\n }\n const childrenCount = this.getContentChildrens().length + this.contentsCount;\n if (childrenCount >= config.maxLimit) {\n this.toasterService.error(config.errorMessage);\n return false;\n } else {\n return true;\n }\n }\n getHierarchyFolder() {\n const treeObj = this.treeService.getTreeObject();\n const contents = [];\n if (treeObj) {\n treeObj.visit((node) => {\n if (node && !node.data.root) {\n contents.push(node.data.id);\n }\n });\n }\n return contents;\n }\n validateCSVFile(formData, collectionnId: any) {\n const url = _.get(this.configService.urlConFig, 'URLS.CSV.UPLOAD');\n const reqParam = {\n url: `${url}${collectionnId}`,\n data: formData.data\n };\n return this.publicDataService.post(reqParam);\n }\n downloadHierarchyCsv(collectionId) {\n const url = _.get(this.configService.urlConFig, 'URLS.CSV.DOWNLOAD');\n const req = {\n url: `${url}${collectionId}`,\n };\n return this.publicDataService.get(req);\n }\n generatePreSignedUrl(req, contentId: any, type) {\n const reqParam = {\n url: `${this.configService.urlConFig.URLS.CONTENT.UPLOAD_URL}${contentId}?type=${type}`,\n data: {\n request: req\n }\n };\n return this.publicDataService.post(reqParam);\n }\n downloadBlobUrlFile(config) {\n try {\n this.httpClient.get(config.blobUrl, {responseType: 'blob'})\n .subscribe(blob => {\n const objectUrl: string = URL.createObjectURL(blob);\n const a: HTMLAnchorElement = document.createElement('a') as HTMLAnchorElement;\n a.href = objectUrl;\n a.download = config.fileName;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n URL.revokeObjectURL(objectUrl);\n if (config.successMessage) {\n this.toasterService.success(config.successMessage);\n }\n }, (error) => {\n console.error(_.get(this.configService, 'labelConfig.messages.error.034') + error);\n });\n } catch (error) {\n console.error( _.replace(_.get(this.configService, 'labelConfig.messages.error.033'), '{FILE_TYPE}', config.fileType ) + error);\n }\n }\n\n generateCSV(config) {\n const tableData = config.tableData;\n delete config.tableData;\n let options = {\n fieldSeparator: ',',\n quoteStrings: '\"',\n decimalSeparator: '.',\n showLabels: true,\n useTextFile: false,\n useBom: true,\n showTitle: true,\n title: '',\n filename: '',\n headers: []\n };\n options = _.merge(options, config);\n const csvExporter = new ExportToCsv(options);\n csvExporter.generateCsv(tableData);\n }\n\n getBranchingLogicByFolder(identifier) {\n const nodeData = this.treeService.getNodeById(identifier);\n const branchingLogic = _.get(nodeData, 'data.metadata.branchingLogic');\n return branchingLogic || {};\n }\n\n/**\n *\n * @public\n * @param identifier identifier of the node\n * @returns { source: [], target: [], sourceTarget?: [] }\n * @memberof EditorService\n */\ngetDependentNodes(identifier) {\n const sectionBranchingLogic = this.getBranchingLogicByNodeId(identifier);\n\n if (!_.isEmpty(sectionBranchingLogic)) {\n const branchingEntry = this.getBranchingLogicEntry(sectionBranchingLogic, identifier);\n const source = _.get(branchingEntry, 'source');\n if (!_.isEmpty(source)) { // if the node is a dependent node\n\n const sourceBranchingEntry = this.getBranchingLogicEntry(sectionBranchingLogic, _.first(branchingEntry.source));\n\n return !_.isEmpty(sourceBranchingEntry) ? { source: branchingEntry.source, target: branchingEntry.target,\n sourceTarget: sourceBranchingEntry.target } : {};\n\n } else { // if the node is a parent node\n return !_.isEmpty(branchingEntry) ? { source: branchingEntry.source, target: branchingEntry.target } : {};\n }\n }\n }\n\n/**\n *\n * @public\n * @param identifier identifier of the node\n * @returns {\"do_id\": { \"target\": [ \"do_id123\", \"do_id456\" ], \"preCondition\": {}, \"source\": [] }}\n * @memberof EditorService\n */\n getBranchingLogicByNodeId(identifier) {\n const leafNode = this.treeService.getNodeById(identifier);\n const parentIdentifier = _.get(leafNode, 'parent.data.id');\n return this.getBranchingLogicByFolder(parentIdentifier);\n }\n\n getBranchingLogicEntry(parentBranchingLogic, identifier) {\n return _.find(parentBranchingLogic, (logic, key) => {\n return key === identifier;\n });\n }\n\n getFlattenedBranchingLogic(data) {\n const flatHierarchy = this._toFlatObjFromHierarchy(data);\n const branchingLogics = _.compact(_.map(flatHierarchy, 'branchingLogic'));\n return _.reduce(branchingLogics, (acc, val) => {\n return _.assign(acc, val);\n }, {});\n }\n\n getParentDependentMap(data) {\n const branchingLogic = this.getFlattenedBranchingLogic(data);\n const obj = {};\n _.forEach(_.keys(branchingLogic), item => {\n obj[item] = !_.isEmpty(branchingLogic[item].source) ? 'dependent' : !_.isEmpty(branchingLogic[item].target) ? 'parent' : '';\n });\n return obj;\n }\n\n getPrimaryCategoryName(sectionId) {\n const nodeData = this.treeService.getNodeById(sectionId);\n return _.get(nodeData, 'data.primaryCategory');\n }\n\n /**\n * fetch Outcome Declaration levels using the questionsetId\n * only for Observation with Rubrics\n * @param identifier questionset identifier\n */\n fetchOutComeDeclaration(questionSetId, option: any = { params: {} }): Observable<any> {\n const url = this.configService.urlConFig.URLS[this.editorConfig.config.objectType];\n const param = {\n fields: 'outcomeDeclaration'\n };\n const hierarchyUrl = `${url.READ}/${questionSetId}`;\n const req = {\n url: hierarchyUrl,\n param: { ...param, ...option.params }\n };\n return this.publicDataService.get(req);\n }\n\n get qualityFormConfig(){\n return this._qualityFormConfig;\n }\n\n private setQualityFormConfig(value: any){\n return this._qualityFormConfig = value;\n }\n\n get isReviewerQualityCheckEnabled(){\n return this._isReviewerQualityCheckEnabled;\n }\n \n private setIsReviewerQualityCheckEnabled(value: boolean){\n return this._isReviewerQualityCheckEnabled = value;\n }\n\n appendCloudStorageHeaders(config) {\n const headers = _.get(this.editorConfig, 'context.cloudStorage.presigned_headers', {});\n if (!_.isEmpty(headers)) {\n config.headers = {...config.headers, ...headers};\n return config;\n } else {\n return config;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as _ from 'lodash-es';\nimport { ConfigService } from '../../services/config/config.service';\nimport { EditorService } from '../../services/editor/editor.service';\n\ninterface PlayerConfig {\n config: any;\n context: any;\n data: any;\n metadata: any;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlayerService {\n qumlPlayerSideMenuConfig = {\n enable: false,\n showShare: false,\n showDownload: false,\n showReplay: true,\n showExit: false,\n };\n constructor(private editorService: EditorService, private configService: ConfigService) { }\n\n /**\n * returns QUML player config details.\n */\n getQumlPlayerConfig() {\n const configuration: any = _.cloneDeep(this.editorService.editorConfig);\n configuration.context.userData = { firstName: configuration.context.user.firstName, lastName: configuration.context.user.lastName },\n configuration.config = {...configuration.config, sideMenu : this.qumlPlayerSideMenuConfig };\n configuration.context.mode = 'play';\n configuration.metadata = {};\n configuration.data = {};\n return configuration;\n }\n\n /**\n * returns player config details.\n */\n getPlayerConfig(contentDetails): PlayerConfig {\n const configuration: any = _.cloneDeep(_.get(this.configService.playerConfig, 'playerConfig'));\n configuration.context.contentId = contentDetails.contentId;\n configuration.context.sid = _.get(this.editorService.editorConfig, 'context.sid');\n configuration.context.uid = _.get(this.editorService.editorConfig, 'context.uid');\n configuration.context.timeDiff = _.get(this.editorService.editorConfig, 'context.timeDiff');\n configuration.context.contextRollup = _.get(this.editorService.editorConfig, 'context.contextRollup');\n // this.getRollUpData(this.userService.userProfile.hashTagIds);\n configuration.context.channel = _.get(this.editorService.editorConfig, 'context.channel');\n // const deviceId = (<HTMLInputElement asdocument.getElementById('deviceId'));\n configuration.context.did = _.get(this.editorService.editorConfig, 'context.did');\n // const buildNumber = (<HTMLInputElement>document.getElementById('buildNumber'));\n // configuration.context.pdata.ver = buildNumber && buildNumber.value ?\n // buildNumber.value.slice(0, buildNumber.value.lastIndexOf('.')) : '1.0';\n configuration.context.pdata.ver = 1.0;\n if (_.isUndefined(contentDetails.courseId)) {\n configuration.context.dims = '';\n // this.userService.dims;\n } else {\n const cloneDims = [];\n // _.cloneDeep(this.userService.dims) || [];\n cloneDims.push(contentDetails.courseId);\n if (contentDetails.batchId) {\n cloneDims.push(contentDetails.batchId);\n }\n configuration.context.dims = cloneDims;\n }\n const tags = [];\n _.forEach(_.get(this.editorService.editorConfig, 'user'), (org) => {\n if (org.hashTagId) {\n tags.push(org.hashTagId);\n }\n });\n configuration.context.tags = tags;\n configuration.context.app = [_.get(this.editorService.editorConfig, 'context.channel')];\n if (contentDetails.courseId) {\n configuration.context.cdata = [{\n id: contentDetails.courseId,\n type: 'course'\n }];\n if (contentDetails.batchId) {\n configuration.context.cdata.push({ type: 'batch',\n id: contentDetails.batchId} );\n }\n }\n configuration.context.pdata.id = _.get(this.editorService.editorConfig, 'context.pdata.id');\n configuration.metadata = contentDetails.contentData;\n configuration.data = contentDetails.contentData.mimeType !== this.configService.playerConfig.MIME_TYPE.ecmlContent ?\n {} : contentDetails.contentData.body;\n configuration.config.enableTelemetryValidation = false,\n // environment.enableTelemetryValidation; // telemetry validation\n configuration.config.previewCdnUrl = undefined;\n // this.previewCdnUrl = (<HTMLInputElement>document.getElementById('previewCdnUrl'))\n // ? (<HTMLInputElement>document.getElementById('previewCdnUrl')).value : undefined;\n return configuration;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, BehaviorSubject, of } from 'rxjs';\nimport { mergeMap, skipWhile, tap } from 'rxjs/operators';\nimport * as _ from 'lodash-es';\nimport { ServerResponse } from '../../interfaces/serverResponse';\nimport { Framework } from '../../interfaces/framework';\nimport { FrameworkData } from '../../interfaces/framework';\nimport { DataService } from '../data/data.service';\nimport { ConfigService } from '../config/config.service';\nimport { PublicDataService } from '../public-data/public-data.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FrameworkService {\n private _organisationFramework: string;\n private _selectedOrganisationFramework: string;\n private _targetFrameworkIds: Array<any> = [];\n private _frameworkData: FrameworkData = {};\n private _frameworkData$ = new BehaviorSubject<Framework>(undefined);\n public frameworkValues: any;\n public readonly frameworkData$: Observable<Framework> = this._frameworkData$\n .asObservable().pipe(skipWhile(data => data === undefined || data === null));\n\n constructor(private dataService: DataService,\n private configService: ConfigService,\n private publicDataService: PublicDataService) { }\n\n public initialize(framework: string) {\n if (framework && _.get(this._frameworkData, framework)) {\n this.organisationFramework = framework;\n this._frameworkData$.next({ err: null, frameworkdata: this._frameworkData });\n } else if (framework && !_.get(this._frameworkData, framework)) {\n this.organisationFramework = framework;\n this.getFrameworkCategories(framework).subscribe(\n (frameworkData: ServerResponse) => {\n this._frameworkData[framework] = frameworkData.result.framework;\n this._frameworkData$.next({ err: null, frameworkdata: this._frameworkData });\n },\n err => {\n this._frameworkData$.next({ err, frameworkdata: null });\n });\n }\n }\n\n public getFrameworkCategories(framework: string) {\n const frameworkOptions = {\n url: `${this.configService.urlConFig.URLS.frameworkRead}${framework}`\n };\n return this.dataService.get(frameworkOptions);\n }\n\n public getTargetFrameworkCategories(frameworkIds: Array<string>) {\n _.forEach(frameworkIds, framework => {\n if (framework && _.get(this._frameworkData, framework)) {\n this.targetFrameworkIds = framework;\n this._frameworkData$.next({ err: null, frameworkdata: this._frameworkData });\n } else {\n this.targetFrameworkIds = framework;\n this.getFrameworkCategories(framework).subscribe(\n (frameworkData: ServerResponse) => {\n this._frameworkData[framework] = frameworkData.result.framework;\n this._frameworkData$.next({ err: null, frameworkdata: this._frameworkData });\n },\n err => {\n this._frameworkData$.next({ err, frameworkdata: null });\n });\n }\n });\n }\n\n public get targetFrameworkIds(): any {\n return this._targetFrameworkIds;\n }\n\n public set targetFrameworkIds(id: any) {\n _.uniq(_.compact(this._targetFrameworkIds.push(id)));\n }\n\n public get organisationFramework(): string {\n return this._organisationFramework;\n }\n\n public set organisationFramework(framework: string) {\n this._organisationFramework = framework;\n }\n\n public get selectedOrganisationFramework(): string {\n return this._selectedOrganisationFramework;\n }\n\n\n public set selectedOrganisationFramework(framework: string) {\n this._selectedOrganisationFramework = framework;\n }\n\n public get frameworkData(): FrameworkData {\n return this._frameworkData;\n }\n\n\n getFrameworkData(channel?, type?, identifier?, systemDefault?) {\n const option = {\n url: `${this.configService.urlConFig.URLS.COMPOSITE.SEARCH}`,\n data: {\n request: {\n filters: {\n objectType: 'Framework',\n status: ['Live'],\n ...(type && {type}),\n ...(identifier && {identifier}),\n ...(channel && {channel}),\n ...(systemDefault && {systemDefault})\n }\n }\n }\n };\n return this.publicDataService.post(option);\n }\n}\n","import { Component, ElementRef, Input, OnInit, ViewChild, OnChanges, ViewEncapsulation, AfterViewInit, AfterViewChecked } from '@angular/core';\nimport * as _ from 'lodash-es';\nimport { EditorService } from '../../services/editor/editor.service';\nimport { PlayerService } from '../../services/player/player.service';\nimport { ConfigService } from '../../services/config/config.service';\nimport { FrameworkService } from '../../services/framework/framework.service';\ndeclare var $: any;\n\n@Component({\n selector: 'lib-contentplayer-page',\n templateUrl: './contentplayer-page.component.html',\n styleUrls: ['./contentplayer-page.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ContentplayerPageComponent implements OnInit, OnChanges, AfterViewInit, AfterViewChecked {\n private static readonly PLAYER_INITIALIZATION_TIMEOUT = 200;\n private static readonly CUSTOM_ELEMENT_CHECK_INTERVAL = 100;\n private static readonly CUSTOM_ELEMENT_MAX_ATTEMPTS = 100;\n @ViewChild('contentIframe') contentIframe: ElementRef;\n @ViewChild(\"pdfPlayer\", { static: false }) pdfPlayer: ElementRef;\n @ViewChild(\"epubPlayer\", { static: false }) epubPlayer: ElementRef;\n @ViewChild(\"videoPlayer\", { static: false }) videoPlayer: ElementRef;\n @Input() contentMetadata: any;\n public contentDetails: any;\n public playerConfig: any;\n public content: any;\n public contentInfo: any;\n public contentInfoArray: any[] = [];\n public playerType: string;\n public contentId: string;\n private playerNeedsInitialization = false;\n private viewInitialized = false;\n constructor(private editorService: EditorService, private playerService: PlayerService,\n public configService: ConfigService, private frameworkService: FrameworkService) { }\n\n ngOnInit() { }\n\n ngAfterViewInit() {\n this.viewInitialized = true;\n if (this.playerNeedsInitialization) {\n this.initializeAndLoadPlayer();\n this.playerNeedsInitialization = false;\n }\n }\n\n ngAfterViewChecked() {\n // Check if player elements become available after template changes\n if (this.playerNeedsInitialization && this.viewInitialized) {\n this.checkAndInitializePlayer();\n }\n }\n\n ngOnChanges() {\n this.contentMetadata = _.get(this.contentMetadata, 'data.metadata') || this.contentMetadata;\n if (this.contentId !== this.contentMetadata.identifier) {\n this.contentId = this.contentMetadata.identifier;\n this.getContentDetails();\n }\n }\n\n getContentDetails() {\n this.playerType = 'default-player';\n this.editorService.fetchContentDetails(this.contentId).subscribe(res => {\n this.contentDetails = {\n contentId: this.contentId,\n contentData: _.get(res, 'result.content')\n };\n\n const baseContentInfo = {\n name: _.get(this.contentDetails, 'contentData.name'),\n author: _.get(this.contentDetails, 'contentData.author'),\n license: _.get(this.contentDetails, 'contentData.license'),\n copyright: _.get(this.contentDetails, 'contentData.copyright')\n };\n\n const frameworkId = this.frameworkService.organisationFramework;\n const frameworkData = this.frameworkService.frameworkData;\n \n if (frameworkData?.[frameworkId]?.categories) {\n const categories = frameworkData[frameworkId].categories;\n const frameworkCodes = categories.map(category => category.code);\n \n const matchedFields = frameworkCodes.reduce((acc, code) => {\n if (_.has(this.contentDetails.contentData, code)) {\n acc[code] = _.get(this.contentDetails.contentData, code);\n }\n return acc;\n }, {});\n\n this.contentInfo = { ...baseContentInfo, ...matchedFields };\n } else {\n this.contentInfo = baseContentInfo;\n }\n this.prepareContentInfoArray();\n if (this.viewInitialized) {\n this.initializeAndLoadPlayer();\n } else {\n this.playerNeedsInitialization = true;\n }\n });\n }\n\n initializeAndLoadPlayer() {\n this.playerConfig = this.playerService.getPlayerConfig(this.contentDetails);\n this.setPlayerType();\n if (this.playerType === 'default-player') {\n this.loadDefaultPlayer();\n } else {\n this.playerConfig.config = {\n 'traceId': 'afhjgh',\n 'sideMenu': {\n 'showDownload': true,\n 'showExit': true,\n 'showPrint': true,\n 'showReplay': true,\n 'showShare': true\n }\n };\n this.loadPlayer();\n }\n }\n\n checkAndInitializePlayer() {\n const playerElement = this.getPlayerElement();\n if (playerElement && this.playerNeedsInitialization) {\n this.initializeAndLoadPlayer();\n this.playerNeedsInitialization = false;\n }\n }\n\n getPlayerElement(): ElementRef | null {\n switch (this.playerType) {\n case 'pdf-player':\n return this.pdfPlayer;\n case 'epub-player':\n return this.epubPlayer;\n case 'video-player':\n return this.videoPlayer;\n default:\n return null;\n }\n }\n\n prepareContentInfoArray() {\n this.contentInfoArray = [];\n let validIndex = 0;\n\n Object.keys(this.contentInfo).forEach((key) => {\n if (this.contentInfo[key] !== undefined && this.contentInfo[key] !== null && this.contentInfo[key] !== '') {\n let displayValue = this.contentInfo[key];\n if (Array.isArray(displayValue)) {\n displayValue = displayValue.join(', ');\n }\n\n this.contentInfoArray.push({\n key,\n label: this.capitalizeFirstLetter(key),\n value: displayValue,\n columnClass: this.getColumnClass(validIndex)\n });\n validIndex++;\n }\n });\n }\n\n capitalizeFirstLetter(str: string): string {\n if (!str) return str;\n return str.charAt(0).toUpperCase() + str.slice(1);\n }\n\n getColumnClass(index: number): string {\n const columnClasses = ['six wide column', 'four wide column', 'two wide column'];\n return columnClasses[index % columnClasses.length];\n }\n\n setPlayerType() {\n const playerType = _.get(this.configService.playerConfig, 'playerType');\n _.forIn(playerType, (value, key) => {\n if (value.length) {\n if (_.includes(value, _.get(this.contentDetails, 'contentData.mimeType'))) {\n this.playerType = key;\n }\n }\n });\n }\n\n loadDefaultPlayer() {\n // const iFrameSrc = this.configService.appConfig.PLAYER_CONFIG.baseURL + '&build_number=' + this.buildNumber;\n const iFrameSrc = `/content/preview/preview.html?webview=true&build_number=2.8.0.e552fcd`;\n setTimeout(() => {\n const playerElement = this.contentIframe.nativeElement;\n playerElement.src = iFrameSrc;\n playerElement.onload = (event) => {\n try {\n this.adjustPlayerHeight();\n // this.playerLoaded = true;\n playerElement.contentWindow.initializePreview(this.playerConfig);\n // playerElement.addEventListener('renderer:telemetry:event', telemetryEvent => this.generateContentReadEvent(telemetryEvent));\n // window.frames['contentPlayer'].addEventListener('message', accessEvent => this.generateScoreSubmitEvent(accessEvent), false);\n } catch (err) {\n console.log('loading default player failed', err);\n // const prevUrls = this.navigationHelperService.history;\n // if (this.isCdnWorking.toLowerCase() === 'yes' && prevUrls[prevUrls.length - 2]) {\n // history.back();\n // }\n }\n };\n }, 0);\n }\n\n /**\n * Adjust player height after load\n */\n adjustPlayerHeight() {\n const playerWidth = $('#contentPlayer').width();\n if (playerWidth) {\n const height = playerWidth * (9 / 16);\n $('#contentPlayer').css('height', height + 'px');\n }\n }\n\n eventHandler(e) { }\n\n generateContentReadEvent(e, state?) { }\n\n setPlayerProperties(playerElement: any) {\n playerElement.setAttribute('player-config', JSON.stringify(this.playerConfig));\n playerElement.addEventListener('playerEvent', this.eventHandler);\n playerElement.addEventListener('telemetryEvent', this.generateContentReadEvent);\n }\n\n loadPlayer() {\n // Add initial safety check for ViewChild elements\n const playerElement = this.getPlayerElement();\n if (!playerElement?.nativeElement) {\n console.warn('ViewChild elements not ready, scheduling player initialization...');\n this.playerNeedsInitialization = true;\n return;\n }\n\n const checkCustomElement = (tagName: string) => {\n return customElements.get(tagName) !== undefined;\n };\n\n const loadPlayerScript = (scriptSrc: string): Promise<void> => {\n return new Promise((resolve, reject) => {\n if (document.querySelector(`script[src*=\"${scriptSrc}\"]`)) {\n resolve();\n return;\n }\n \n const script = document.createElement('script');\n script.src = scriptSrc;\n script.onload = () => resolve();\n script.onerror = () => reject(new Error(`Failed to load script: ${scriptSrc}`));\n document.head.appendChild(script);\n });\n };\n\n const ensurePlayerScriptLoaded = async (playerType: string): Promise<void> => {\n const scriptMap = {\n 'pdf-player': '/assets/sunbird-pdf-player.js',\n 'epub-player': '/assets/sunbird-epub-player.js',\n 'video-player': '/assets/sunbird-video-player.js'\n };\n\n const scriptSrc = scriptMap[playerType];\n if (scriptSrc) {\n try {\n await loadPlayerScript(scriptSrc);\n } catch (error) {\n console.warn(`Failed to load ${playerType} script dynamically. Make sure the script is included in angular.json or loaded by the consuming application.`, error);\n }\n }\n };\n\n const waitForCustomElement = async (tagName: string, playerType: string): Promise<void> => {\n // First try to ensure the script is loaded\n await ensurePlayerScriptLoaded(playerType);\n \n return new Promise((resolve) => {\n if (checkCustomElement(tagName)) {\n resolve();\n } else {\n let attempts = 0;\n const maxAttempts = ContentplayerPageComponent.CUSTOM_ELEMENT_MAX_ATTEMPTS;\n \n const interval = setInterval(() => {\n attempts++;\n if (checkCustomElement(tagName)) {\n clearInterval(interval);\n resolve();\n } else if (attempts >= maxAttempts) {\n clearInterval(interval);\n resolve();\n }\n }, ContentplayerPageComponent.CUSTOM_ELEMENT_CHECK_INTERVAL);\n }\n });\n };\n\n const initializePlayer = (element: any) => {\n setTimeout(() => {\n try {\n if (element.playerConfig !== this.playerConfig) {\n element.playerConfig = this.playerConfig;\n }\n \n element.dispatchEvent(new CustomEvent('playerConfigUpdated', {\n detail: this.playerConfig\n }));\n \n if (typeof element.ngOnInit === 'function') {\n element.ngOnInit();\n }\n } catch (error) {\n console.error('Error initializing player:', error);\n }\n }, ContentplayerPageComponent.PLAYER_INITIALIZATION_TIMEOUT);\n };\n\n if (this.playerType === \"pdf-player\") {\n waitForCustomElement('sunbird-pdf-player', 'pdf-player').then(() => {\n if (checkCustomElement('sunbird-pdf-player') && this.pdfPlayer?.nativeElement) {\n const pdfElement = document.createElement('sunbird-pdf-player') as any;\n this.setPlayerProperties(pdfElement);\n this.pdfPlayer.nativeElement.innerHTML = ''; // Clear any existing content\n this.pdfPlayer.nativeElement.appendChild(pdfElement);\n initializePlayer(pdfElement);\n } else {\n console.error('PDF player web component not available or ViewChild not ready. Falling back to default player.');\n this.playerType = 'default-player';\n this.loadDefaultPlayer();\n }\n });\n } else if (this.playerType === \"epub-player\") {\n waitForCustomElement('sunbird-epub-player', 'epub-player').then(() => {\n if (checkCustomElement('sunbird-epub-player') && this.epubPlayer?.nativeElement) {\n const epubElement = document.createElement('sunbird-epub-player') as any;\n this.setPlayerProperties(epubElement);\n this.epubPlayer.nativeElement.innerHTML = ''; // Clear any existing content\n this.epubPlayer.nativeElement.appendChild(epubElement);\n initializePlayer(epubElement);\n } else {\n console.error('EPUB player web component not available or ViewChild not ready. Falling back to default player.');\n this.playerType = 'default-player';\n this.loadDefaultPlayer();\n }\n });\n } else if (this.playerType === \"video-player\") {\n waitForCustomElement('sunbird-video-player', 'video-player').then(() => {\n if (checkCustomElement('sunbird-video-player') && this.videoPlayer?.nativeElement) {\n const videoElement = document.createElement('sunbird-video-player') as any;\n this.setPlayerProperties(videoElement);\n this.videoPlayer.nativeElement.innerHTML = ''; // Clear any existing content\n this.videoPlayer.nativeElement.appendChild(videoElement);\n initializePlayer(videoElement);\n } else {\n console.error('Video player web component not available or ViewChild not ready. Falling back to default player.');\n this.playerType = 'default-player';\n this.loadDefaultPlayer();\n }\n });\n }\n }\n}\n","<div class=\"aspectratio\" data-ratio=\"16:9\" #aspectRatio>\n <iframe #contentIframe id=\"contentPlayer\" *ngIf=\"playerType === 'default-player'\" class=\"contentViewerIframeShadow\"\n name=\"contentPlayer\"></iframe>\n <ng-container *ngIf=\"playerType === 'epub-player'\">\n <div #epubPlayer></div>\n </ng-container>\n <ng-container *ngIf=\"playerType === 'pdf-player'\">\n <div #pdfPlayer></div>\n </ng-container>\n <ng-container *ngIf=\"playerType === 'video-player'\">\n <div #videoPlayer></div>\n </ng-container>\n</div>\n<div class=\"ui grid text-font pt-15 bg-white mx-0 mb-10\">\n <div *ngFor=\"let item of contentInfoArray\" [class]=\"item.columnClass\">\n <div class=\"sb-field-group\">\n <label class=\"sb-color-gray-100\">{{configService.labelConfig?.lbl?.[item.key] || item.label}}</label>\n <div class=\"fs-0-92\">{{item.value}}</div>\n </div>\n </div>\n</div>","import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport * as _ from 'lodash-es';\nimport { DialcodeCursor } from '@project-sunbird/common-form-elements-full';\nimport { ConfigService } from '../config/config.service';\nimport { PublicDataService } from '../public-data/public-data.service';\nimport { TreeService } from '../../services/tree/tree.service';\nimport { ToasterService } from '../../services/toaster/toaster.service';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialcodeService implements DialcodeCursor {\n\n public invaliddialCodeMap = {};\n public dialCodeMap = {};\n public dialcodeList = [];\n private maxChar = 6;\n constructor(public configService: ConfigService, private publicDataService: PublicDataService,\n private treeService: TreeService, private toasterService: ToasterService) { }\n\n reserveDialCode(indetifier, requestCount): Observable<any> {\n const req = {\n url: this.configService.urlConFig.URLS.DIALCODE.RESERVE + indetifier,\n data: {\n request: {\n dialcodes: {\n count: requestCount,\n qrCodeSpec: {\n errorCorrectionLevel: 'H'\n }\n }\n }\n }\n };\n return this.publicDataService.post(req);\n }\n\n linkDialcode(indetifier, dialcodes): Observable<any> {\n const req = {\n url: this.configService.urlConFig.URLS.DIALCODE.LINK + indetifier,\n data: {\n request: {\n content: dialcodes\n }\n }\n };\n return this.publicDataService.post(req);\n }\n\n downloadQRCode(processId): Observable<any> {\n const req = {\n url: this.configService.urlConFig.URLS.DIALCODE.PROCESS + processId,\n };\n return this.publicDataService.get(req);\n }\n\n searchDialCode(dialcode): Observable<any> {\n const req = {\n url: this.configService.urlConFig.URLS.DIALCODE.SEARCH,\n data: {\n request: {\n search: {\n identifier: dialcode,\n }\n }\n }\n };\n return this.publicDataService.post(req);\n }\n\n updateDialCode(dialcode): Observable<any> {\n if (!_.isEmpty(dialcode)) {\n dialcode = _.isArray(dialcode) ? dialcode[0] : dialcode;\n const editFlag = (dialcode && (dialcode.length === this.maxChar)) ? true : false;\n if (_.indexOf(this.dialcodeList, dialcode) !== -1) {\n return of({ isEditable: editFlag, isValid: true });\n } else {\n return this.searchDialCode(dialcode).pipe(map(response => {\n if (response.result.count) {\n _.uniq(this.dialcodeList.push(response.result.dialcodes[0].identifier));\n return { isEditable: editFlag, isValid: true };\n } else {\n return { isEditable: editFlag, isValid: false };\n }\n }));\n }\n } else {\n return of({ isEditable: false });\n }\n }\n\n clearDialCode() {\n const currentNode = this.treeService.getActiveNode().data;\n if (_.has(this.invaliddialCodeMap, currentNode.id)) { _.unset(this.invaliddialCodeMap, currentNode.id); }\n if (_.has(this.dialCodeMap, currentNode.id)) { _.unset(this.dialCodeMap, currentNode.id); }\n if (currentNode.metadata && currentNode.metadata.dialcodes === null) {\n if (this.treeService.treeCache.nodesModified && this.treeService.treeCache.nodesModified[currentNode.id]) {\n this.treeService.treeCache.nodesModified[currentNode.id].metadata.dialcodes = [];\n }\n this.dialCodeMap[currentNode.id] = '';\n currentNode.metadata.dialcodes = null;\n }\n this.treeService.nextTreeStatus('modified');\n }\n\n changeDialCode(dialcode) {\n const currentNode = this.treeService.getActiveNode().data;\n if (_.isEmpty(dialcode)) {\n if (_.has(this.invaliddialCodeMap, currentNode.id)) { _.unset(this.invaliddialCodeMap, currentNode.id); }\n if (_.has(this.dialCodeMap, currentNode.id)) { _.unset(this.dialCodeMap, currentNode.id); }\n if (currentNode.metadata && currentNode.metadata.dialcodes && currentNode.metadata.dialcodes.length) {\n if (this.treeService.treeCache.nodesModified && this.treeService.treeCache.nodesModified[currentNode.id]) {\n this.treeService.treeCache.nodesModified[currentNode.id].metadata.dialcodes = [];\n }\n this.dialCodeMap[currentNode.id] = '';\n currentNode.metadata.dialcodes = null;\n }\n this.treeService.nextTreeStatus('modified');\n }\n }\n\n validateDialCode(dialcode): Observable<any> {\n if (this.checkDuplicateDialCode(dialcode)) {\n return of({ isEditable: true, isValid: false, statusMsg: 'Duplicate QR code' });\n } else if (String(dialcode).match(/^[A-Z0-9]{2,}$/)) {\n const node = this.treeService.getActiveNode();\n if (this.treeService.treeCache.nodesModified && this.treeService.treeCache.nodesModified[node.data.id]) {\n this.treeService.treeCache.nodesModified[node.data.id].metadata.dialcodes = _.castArray(dialcode);\n }\n if (_.indexOf(this.dialcodeList, dialcode) !== -1) {\n if (_.has(this.invaliddialCodeMap, node.data.id)) { _.unset(this.invaliddialCodeMap, node.data.id); }\n this.dialCodeMap[node.data.id] = dialcode;\n node.data.metadata.dialcodes = dialcode;\n this.treeService.nextTreeStatus('modified');\n return of({ isEditable: true, isValid: true });\n } else {\n return this.searchDialCode(dialcode).pipe(map(response => {\n if (response.result.count) {\n _.uniq(this.dialcodeList.push(dialcode));\n if (_.has(this.invaliddialCodeMap, node.data.id)) { _.unset(this.invaliddialCodeMap, node.data.id); }\n this.dialCodeMap[node.data.id] = dialcode;\n node.data.metadata.dialcodes = dialcode;\n this.treeService.nextTreeStatus('modified');\n return { isEditable: true, isValid: true };\n } else {\n if (_.has(this.dialCodeMap, node.data.id)) { _.unset(this.dialCodeMap, node.data.id); }\n this.invaliddialCodeMap[node.data.id] = dialcode;\n node.data.metadata.dialcodes = dialcode;\n this.treeService.nextTreeStatus('modified');\n return { isEditable: true, isValid: false };\n }\n }));\n }\n } else {\n return of({ isEditable: false });\n }\n }\n\n checkDuplicateDialCode(activeQRCode) {\n const getAllNodes = this.treeService.getTreeObject();\n const findValuesDeepByKey = (obj, key, res = []) => (\n // tslint:disable-next-line:no-unused-expression\n _.cloneDeepWith(obj, (v, k) => { k === key && res.push(v); }) && res\n );\n const dialcodeArray = _.flattenDeep(findValuesDeepByKey(getAllNodes, 'dialcodes'));\n if (_.includes(dialcodeArray, activeQRCode)) {\n return true;\n }\n return false;\n }\n\n validateUnitsDialcodes() {\n let dialCodeMisssing = false;\n const rootNode = this.treeService.getTreeObject();\n let dialcodes;\n rootNode.visit((node) => {\n dialcodes = node.data.metadata.dialcodes;\n const unitDialCode = _.isArray(dialcodes) ? dialcodes[0] : dialcodes;\n if (node.data.metadata.visibility === 'Parent' || node.data.root) {\n if (node.data.metadata.dialcodeRequired === 'Yes' && !_.includes(this.dialcodeList, unitDialCode)) {\n dialCodeMisssing = true;\n this.treeService.highlightNode(node.data.id, 'add');\n } else if (node.data.metadata.dialcodeRequired === 'Yes' && _.isEmpty(dialcodes)) {\n dialCodeMisssing = true;\n this.treeService.highlightNode(node.data.id, 'add');\n } \n // else if (node.data.metadata.dialcodeRequired === 'No' && !_.isEmpty(dialcodes)) {\n // dialCodeMisssing = true;\n // this.treeService.highlightNode(node.data.id, 'add');\n // }\n }\n });\n if (dialCodeMisssing) {\n return false;\n } else {\n return true;\n }\n }\n\n highlightNodeForInvalidDialCode(res, nodesModified, indetifier) {\n const mapArr = [];\n _.forEach(this.invaliddialCodeMap, (value, key) => {\n if (_.has(res.identifiers, key)) {\n delete this.invaliddialCodeMap[key];\n this.invaliddialCodeMap[res.identifiers[key]] = value;\n this.treeService.highlightNode(res.identifiers[key], 'add');\n this.storeDialCodes(res.identifiers[key], value);\n } else {\n this.storeDialCodes(key, value);\n this.treeService.highlightNode(key, 'add');\n }\n });\n _.forEach(this.dialCodeMap, (value, key) => {\n if (_.has(res.identifiers, key)) {\n delete this.dialCodeMap[key];\n this.dialCodeMap[res.identifiers[key]] = value;\n mapArr.push({ identifier: res.identifiers[key], dialcode: value });\n this.treeService.highlightNode(res.identifiers[key], 'remove');\n this.storeDialCodes(res.identifiers[key], value);\n } else {\n mapArr.push({ identifier: key, dialcode: value });\n this.storeDialCodes(key, value);\n this.treeService.highlightNode(key, 'remove');\n }\n });\n let dialcodesUpdated = false;\n _.forIn(nodesModified, (node) => {\n if ((node.metadata.dialcodes || node.metadata.dialcodes === null) && !dialcodesUpdated) {\n dialcodesUpdated = true;\n } else {\n const dialObj = _.find(mapArr, (Obj) => { // check this: not required\n return Obj.identifier === res.content_id;\n });\n if (!_.isUndefined(dialObj)) {\n dialcodesUpdated = true;\n }\n }\n });\n if (dialcodesUpdated) {\n this.dialcodeLink(mapArr, indetifier);\n }\n }\n\n storeDialCodes(nodeId, dialCode) {\n const node = this.treeService.getNodeById(nodeId);\n if (node && node.data) {\n node.data.metadata.dialcodes = dialCode;\n }\n }\n\n dialcodeLink(dialcodeMap, indetifier) {\n if (!_.isEmpty(dialcodeMap)) {\n this.linkDialcode(indetifier, dialcodeMap).subscribe((res) => {\n if ( !_.isEmpty(this.dialCodeMap) && !_.isEmpty(this.invaliddialCodeMap)) {\n this.toasterService.warning(_.get(this.configService, 'labelConfig.messages.warning.002'));\n } else {\n this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.009'));\n }\n this.clearDialCodeMaps();\n }, (err) => {\n if (err && err.error && err.error.params && err.error.params.err === 'ERR_DIALCODE_LINK') {\n this.toasterService.error(err.error.params.errmsg);\n } else {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.012'));\n }\n });\n } else if (!_.isEmpty(this.invaliddialCodeMap)) {\n this.toasterService.warning(_.get(this.configService, 'labelConfig.messages.warning.002'));\n }\n }\n\n clearDialCodeMaps() {\n this.dialCodeMap = {};\n this.invaliddialCodeMap = {};\n }\n\n readExistingQrCode() {\n const rootNode = this.treeService.getTreeObject();\n this.dialcodeList = [] ;\n rootNode.visit(( node ) => {\n if (!_.isEmpty(node.data.metadata.dialcodes)) {\n this.dialcodeList.push(node.data.metadata.dialcodes[0]);\n }\n });\n }\n\n}\n","import { Directive, Input, HostListener } from '@angular/core';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\nimport * as _ from 'lodash-es';\nexport interface IInteractEventInput {\n 'edata': IInteractEventEdata;\n}\nexport interface IInteractEventEdata {\n 'id': string;\n 'type': string;\n 'subtype'?: string;\n 'pageid'?: string;\n 'extra'?: {};\n 'target'?: string;\n 'plugin'?: string;\n}\n\n/**\n * TelemetryInteract Directive\n */\n@Directive({\n selector: '[libTelemetryInteract]'\n})\nexport class TelemetryInteractDirective {\n\n appTelemetryInteractData: IInteractEventInput;\n public telemetryService: EditorTelemetryService;\n @Input() telemetryInteractEdata: any;\n\n @HostListener('click', ['$event'])\n\n public onClick(e) {\n if (this.telemetryInteractEdata) {\n this.appTelemetryInteractData = {\n edata: this.telemetryInteractEdata\n };\n this.telemetryService.interact(this.appTelemetryInteractData);\n }\n }\n\n constructor(telemetryService: EditorTelemetryService) {\n this.telemetryService = telemetryService;\n }\n}\n","import { Component, EventEmitter, Input, OnInit , Output, ViewEncapsulation} from '@angular/core';\nimport * as _ from 'lodash-es';\nimport { ConfigService } from '../../services/config/config.service';\nimport { PlayerService } from '../../services/player/player.service';\nimport { EditorService } from '../../services/editor/editor.service';\n@Component({\n selector: 'lib-quml-player',\n templateUrl: './quml-player.component.html',\n styleUrls: ['./quml-player.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class QumlPlayerComponent implements OnInit {\n qumlPlayerConfig: any;\n @Input() questionSetHierarchy: any;\n @Input() isSingleQuestionPreview = false;\n showPreview = false;\n showViewButton = false;\n @Output() public toolbarEmitter: EventEmitter<any> = new EventEmitter();\n constructor(private configService: ConfigService, private playerService: PlayerService,\n public editorService: EditorService ) { }\n\n ngOnInit() {\n this.initialize();\n if(!_.isUndefined(this.editorService?.editorConfig?.config?.renderTaxonomy)){\n this.showViewButton = true\n }\n }\n\n initialize() {\n this.setQumlPlayerData();\n this.showPreview = true;\n }\n\n setQumlPlayerData() {\n const playerConfig = _.cloneDeep(this.playerService.getQumlPlayerConfig());\n this.qumlPlayerConfig = playerConfig;\n this.qumlPlayerConfig.context.threshold = _.get(this.configService, 'playerConfig.threshold');\n this.qumlPlayerConfig.metadata = _.cloneDeep(this.questionSetHierarchy);\n if (this.qumlPlayerConfig.metadata) {\n let childNodes = this.qumlPlayerConfig.metadata.childNodes;\n childNodes = _.filter(childNodes, (identifier) => !_.endsWith(identifier, '.img'));\n this.qumlPlayerConfig.metadata.childNodes = childNodes;\n const allQuestions = this.editorService.getContentChildrens();\n this.qumlPlayerConfig.metadata.maxQuestions = this.qumlPlayerConfig.metadata.maxQuestions || allQuestions.length;\n if (this.isSingleQuestionPreview) {\n this.qumlPlayerConfig.context.threshold = 1;\n this.qumlPlayerConfig.metadata.maxQuestions = 1;\n this.qumlPlayerConfig.metadata.showStartPage = 'No';\n this.qumlPlayerConfig.metadata.showTimer = 'No';\n this.qumlPlayerConfig.metadata.requiresSubmit = 'No';\n this.qumlPlayerConfig.config.showLegend = false;\n }\n }\n console.log('qumlPlayerConfig:: ', this.qumlPlayerConfig);\n }\n\n getPlayerEvents(event) {\n console.log('get player events', JSON.stringify(event));\n }\n\n getTelemetryEvents(event) {\n console.log('event is for telemetry', JSON.stringify(event));\n }\n\n reviewQuestion(){\n this.toolbarEmitter.emit({});\n }\n\n}\n"," <div class=\"aspectratio\" data-ratio=\"16:9\">\n <div class=\"content-player\">\n <div class=\"w-100 h-100\">\n <div class=\"contentViewerIframeShadow\" *ngIf=\"!showViewButton\">\n <quml-main-player *ngIf=\"showPreview\" [playerConfig]=\"qumlPlayerConfig\" (playerEvent)=\"getPlayerEvents($event)\"\n (telemetryEvent)=\"getTelemetryEvents($event)\"></quml-main-player>\n </div>\n <div class=\"mt-25\" *ngIf=\"(editorService?.editorMode !== 'edit' && showViewButton)\">\n <h5>Click on View details to view the question details.</h5>\n <div class=\"ui btn-align\">\n <div class=\"ui twelve column grid m-0\">\n <div class=\"nine wide column p-0 text-left\">\n <button type=\"button\" class=\"sb-btn sb-btn-normal sb-btn-primary mr-15\" (click)=\"reviewQuestion();\">\n View Details</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, ViewEncapsulation} from '@angular/core';\nimport * as _ from 'lodash-es';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\nimport { EditorService } from '../../services/editor/editor.service';\nimport { ConfigService } from '../../services/config/config.service';\nimport { TreeService } from '../../services/tree/tree.service';\n@Component({\n selector: 'lib-qumlplayer-page',\n templateUrl: './qumlplayer-page.component.html',\n styleUrls: ['./qumlplayer-page.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class QumlplayerPageComponent implements OnChanges {\n qumlPlayerConfig: any;\n @Input() questionMetaData: any;\n @Input() questionSetHierarchy: any;\n @Output() public toolbarEmitter: EventEmitter<any> = new EventEmitter();\n prevQuestionId: string;\n showPlayerPreview = false;\n showPotrait = false;\n hierarchy: any;\n\n constructor(public telemetryService: EditorTelemetryService, public configService: ConfigService, public editorService: EditorService,\n private treeService: TreeService) { }\n\n ngOnChanges() {\n this.initQumlPlayer();\n }\n\n initQumlPlayer() {\n this.showPlayerPreview = false;\n this.questionMetaData = _.get(this.questionMetaData, 'data.metadata');\n const newQuestionId = _.get(this.questionMetaData, 'identifier');\n if (newQuestionId && this.prevQuestionId !== newQuestionId) {\n this.hierarchy = _.cloneDeep(this.questionSetHierarchy);\n const selectedNode = this.treeService.getNodeById(newQuestionId);\n this.hierarchy.children = _.castArray(_.get(selectedNode, 'data.metadata'));\n this.hierarchy.childNodes = [newQuestionId];\n this.hierarchy.shuffle = selectedNode.parent.data.metadata.shuffle;\n if (selectedNode.parent.data.metadata.shuffle === true) {\n // tslint:disable-next-line:no-string-literal\n this.hierarchy['maxScore'] = 1;\n } else {\n if (this.questionMetaData.qType === 'SA') {\n this.hierarchy = _.omit(this.hierarchy, 'maxScore');\n } else if (this.questionMetaData.maxScore) {\n // tslint:disable-next-line:no-string-literal\n this.hierarchy['maxScore'] = this.questionMetaData.maxScore;\n }\n }\n const parent = this.treeService.getParent()?.data?.metadata;\n this.hierarchy.showSolutions = parent?.showSolutions || \"No\";\n this.hierarchy.showFeedback = parent?.showFeedback || \"No\";\n this.prevQuestionId = newQuestionId;\n setTimeout(() => {\n this.showPlayerPreview = true;\n }, 0);\n }\n }\n\n switchToPotraitMode() {\n this.showPotrait = true;\n }\n switchToLandscapeMode() {\n this.showPotrait = false;\n }\n\n removeQuestion() {\n this.toolbarEmitter.emit({button: 'removeContent'});\n }\n\n editQuestion() {\n this.toolbarEmitter.emit({button : 'editContent'});\n }\n\n reviewQuestion(){\n this.toolbarEmitter.emit({button : 'reviewContent'});\n }\n\n}\n","<div>\n <div [ngClass]=\"{'potrait-mode': showPotrait}\">\n <div class=\"b-1-100 br-2 mt-5\" *ngIf=\"showPlayerPreview\">\n <lib-quml-player [questionSetHierarchy]=\"hierarchy\" [isSingleQuestionPreview]=\"true\" (toolbarEmitter)=\"reviewQuestion()\"></lib-quml-player>\n </div>\n </div>\n<div class=\"ui mt-20\" *ngIf=\"(editorService.editorMode === 'edit')\">\n <div class=\"ui twelve column grid m-0\">\n <div class=\"nine wide column p-0 text-left\">\n <button type=\"button\" class=\"sb-btn sb-btn-normal sb-btn-primary\" (click)=\"editQuestion();\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('edit','click','launch', telemetryService.telemetryPageId)\">\n <i class=\"icon edit\"></i>Edit</button>\n <button type=\"button\" class=\"sb-btn sb-btn-normal sb-btn-outline-primary mx-15\"\n (click)=\"removeQuestion()\"><i class=\"icon trash sb-color-primary\" aria-hidden=\"true\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('delete','click','launch', telemetryService.telemetryPageId)\"></i>{{configService.labelConfig?.button_labels?.delete_btn_label}}</button>\n </div>\n <div class=\"three wide column p-0 text-right\">\n <span>\n <button type=\"button\" (click)=\"switchToLandscapeMode();\" class=\"btn-none\">\n <i class=\"tv icon sb-color-primary fs-1-143\" [ngClass]=\"{'opacity-icon': showPotrait}\"></i>\n </button>\n <span class=\"fs-1-16 font-weight-normal sb-color-gray-100\">|</span>\n <button type=\"button\" (click)=\"switchToPotraitMode();\" class=\"w-10 btn-none\">\n <i class=\"mobile alternate icon sb-color-primary fs-1-3\" [ngClass]=\"{'opacity-icon': !showPotrait}\"></i>\n </button>\n </span>\n </div>\n </div>\n</div>\n\n<hr class=\"my-20\">\n<div class=\"ui grid text-font\">\n <div class=\"five wide column\">\n <div class=\"sb-field-group\">\n <label class=\"sb-color-gray-100\">{{configService.labelConfig?.lbl?.name}}</label>\n <div class=\"fs-0-92 text-capitalize\">{{questionMetaData?.name}}</div>\n </div>\n </div>\n <div class=\"four wide column\">\n <div class=\"sb-field-group\">\n <label class=\"sb-color-gray-100\">{{configService.labelConfig?.lbl?.board}}</label>\n <div class=\"fs-0-92 text-capitalize\">{{questionMetaData?.board}}</div>\n </div>\n </div>\n <div class=\"three wide column\">\n <div class=\"sb-field-group\">\n <label class=\"sb-color-gray-100\">{{configService.labelConfig?.lbl?.medium}}</label>\n <div class=\"fs-0-92 text-capitalize\">{{questionMetaData?.medium}}</div>\n </div>\n </div>\n <div class=\"five wide column\">\n <div class=\"sb-field-group\">\n <label class=\"sb-color-gray-100\">{{configService.labelConfig?.lbl?.grade}}</label>\n <div class=\"fs-0-92 text-capitalize\">{{questionMetaData?.gradeLevel}}</div>\n </div>\n </div>\n <div class=\"four wide column\">\n <div class=\"sb-field-group\">\n <label class=\"sb-color-gray-100\">{{configService.labelConfig?.lbl?.subject}}</label>\n <div class=\"fs-0-92 text-capitalize\">{{questionMetaData?.subject}}</div>\n </div>\n </div>\n <div class=\"three wide column\">\n <div class=\"sb-field-group\">\n <label class=\"sb-color-gray-100\">{{configService.labelConfig?.lbl?.attributions}}</label>\n <div class=\"fs-0-92 text-capitalize\">{{questionMetaData?.attributions}}</div>\n </div>\n </div>\n <div class=\"five wide column\">\n <div class=\"sb-field-group\">\n <label class=\"sb-color-gray-100\">{{configService.labelConfig?.lbl?.author}}</label>\n <div class=\"fs-0-92 text-capitalize\">{{questionMetaData?.author}}</div>\n </div>\n </div>\n <div class=\"four wide column\">\n <div class=\"sb-field-group\">\n <label class=\"sb-color-gray-100\">{{configService.labelConfig?.lbl?.audience}}</label>\n <div class=\"fs-0-92 text-capitalize\">{{questionMetaData?.audience}}</div>\n </div>\n </div>\n <div class=\"three wide column\">\n <div class=\"sb-field-group\">\n <label class=\"sb-color-gray-100\">{{configService.labelConfig?.lbl?.copyRight}}</label>\n <div class=\"fs-0-92 text-capitalize\">{{questionMetaData?.copyright}}</div>\n </div>\n </div>\n <div class=\"five wide column\">\n <div class=\"sb-field-group\">\n <label class=\"sb-color-gray-100\">{{configService.labelConfig?.lbl?.licensedBy}}</label>\n <div class=\"fs-0-92 text-capitalize\">{{questionMetaData?.license}}</div>\n </div>\n </div>\n <div class=\"four wide column\" *ngIf=\"questionMetaData?.qType === 'MCQ'\">\n <div class=\"sb-field-group\">\n <label class=\"sb-color-gray-100\">{{configService.labelConfig?.lbl?.marks}}</label>\n <div class=\"fs-0-92 text-capitalize\">{{questionMetaData.maxScore? questionMetaData.maxScore : 1}}</div>\n </div>\n </div>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { AbstractControl, FormControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport * as _ from 'lodash-es';\nimport { HttpClient } from '@angular/common/http';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\nimport { TreeService } from '../../services/tree/tree.service';\nimport { DialcodeService } from '../../services/dialcode/dialcode.service';\nimport { ToasterService } from '../../services/toaster/toaster.service';\nimport { ConfigService } from '../../services/config/config.service';\nimport { EditorService } from '../../services/editor/editor.service';\n\n@Component({\n selector: 'lib-dialcode',\n templateUrl: './dialcode.component.html',\n styleUrls: ['./dialcode.component.scss']\n})\nexport class DialcodeComponent implements OnInit {\n public minQRCode = 2;\n public maxQRCode = 250;\n public qrCodeCount: { [key: string]: number; } = {\n request: 0,\n reserve: 0\n };\n public disableQRDownloadBtn = false;\n public disableQRGenerateBtn = true;\n public isGeneratingQRCodes = false;\n public showQRCodePopup = false;\n public qrCodeProcessId: string;\n public dialcodeControl: FormControl;\n public contentId: string;\n constructor(public telemetryService: EditorTelemetryService, private treeService: TreeService,\n private dialcodeService: DialcodeService, private toasterService: ToasterService,\n private httpClient: HttpClient, public configService: ConfigService,\n private editorService: EditorService) { }\n\n ngOnInit() {\n this.setQRCodeCriteria();\n this.treeStatusListener();\n }\n\n setQRCodeCriteria() {\n if (_.has(this.treeService.config, 'dialcodeMinLength')) {\n this.minQRCode = _.get(this.treeService.config, 'dialcodeMinLength');\n }\n if (_.has(this.treeService.config, 'dialcodeMaxLength')) {\n this.maxQRCode = _.get(this.treeService.config, 'dialcodeMaxLength');\n }\n this.dialcodeControl = new FormControl('', [Validators.required, Validators.max(this.maxQRCode), this.customDialcodeValidator()]);\n }\n\n treeStatusListener() {\n this.treeService.treeStatus$.subscribe((status) => {\n if (status === 'loaded') {\n this.resolveQRDownloadBtn();\n this.doQRCodeCount();\n this.contentId = _.get(this.contentMetadata, 'identifier');\n } else if (status === 'saved') {\n this.doQRCodeCount();\n this.disableQRGenerateBtn = true;\n } else {\n this.disableQRGenerateBtn = false;\n }\n });\n }\n\n resolveQRDownloadBtn() {\n this.disableQRDownloadBtn = _.has(this.contentMetadata, 'qrCodeProcessId') ? true : false;\n }\n\n doQRCodeCount() {\n this.qrCodeCount.request = 0;\n const rootNode = this.treeService.getTreeObject();\n this.qrCodeCount.reserve = (this.contentMetadata.reservedDialcodes) ? _.size(this.contentMetadata.reservedDialcodes) : 0;\n rootNode.visit((node) => {\n if (node.data.metadata.dialcodeRequired === 'Yes') {\n this.qrCodeCount.request += 1;\n }\n });\n }\n\n openRequestPopup(): void {\n if (this.qrCodeCount.request > 0) {\n this.reserveDialCode(this.qrCodeCount.request + 1);\n } else {\n const requestNumber = this.qrCodeCount.reserve > 0 ? this.qrCodeCount.reserve : '';\n this.dialcodeControl.setValue(requestNumber);\n this.showQRCodePopup = true;\n }\n }\n\n submitDialcodeForm(): void {\n this.showQRCodePopup = false;\n this.reserveDialCode(this.dialcodeControl.value);\n }\n\n reserveDialCode(requestCount: number) {\n this.isGeneratingQRCodes = true;\n this.qrCodeCount.request = _.cloneDeep(requestCount);\n this.dialcodeService.reserveDialCode(this.contentId, requestCount).subscribe((res) => {\n const rootNodeMetdata = this.contentMetadata;\n rootNodeMetdata.reservedDialcodes = res.result.reservedDialcodes;\n rootNodeMetdata.qrCodeProcessId = res.result.processId;\n this.qrCodeProcessId = res.result.processId;\n this.isGeneratingQRCodes = false;\n this.doQRCodeCount();\n this.resolveQRDownloadBtn();\n this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.010'));\n }, (err) => {\n this.isGeneratingQRCodes = false;\n const errResponse = (err.error.result) ? err.error.result : undefined;\n if (!_.isEmpty(errResponse) && errResponse.hasOwnProperty('count')) {\n if (errResponse.count >= this.qrCodeCount.request) {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.013'));\n }\n } else {\n this.toasterService.error(err.error.params.errmsg);\n }\n });\n }\n\n\n downloadQRCodes(): void {\n this.qrCodeProcessId = _.get(this.contentMetadata, 'qrCodeProcessId');\n this.dialcodeService.downloadQRCode(this.qrCodeProcessId).subscribe((res) => {\n const response = res.result;\n if (response && response.hasOwnProperty('status')) {\n if (response.status === 'in-process') {\n this.toasterService.info(_.get(this.configService, 'labelConfig.messages.info.001'));\n } else if (response.status === 'completed') {\n const filepath = response.url;\n const pattern = new RegExp('([0-9])+(?=.[.zip])');\n const timeStamp = filepath.match(pattern);\n const contentName = _.get(this.contentMetadata, 'name');\n const categoryName = (contentName.split(' ')).join('_').toLowerCase();\n const filename = `${this.contentId}_${categoryName}_${timeStamp[0]}.zip`;\n this.downloadFile(filepath, filename);\n }\n }\n }, (err) => {\n this.toasterService.error(err.error.params.errmsg);\n });\n }\n\n get contentMetadata() {\n const rootNode = this.treeService.getFirstChild();\n return _.get(rootNode, 'data.metadata');\n }\n\n downloadFile(url: string, filename: string) {\n const config = {\n blobUrl: url,\n successMessage: _.get(this.configService, 'labelConfig.messages.success.011'),\n fileType: 'zip',\n fileName: filename\n };\n this.editorService.downloadBlobUrlFile(config);\n }\n\n keyPressNumbers(event: KeyboardEvent) {\n const pattern = /^([0-9])$/;\n if (!pattern.test(event.key)) {\n event.preventDefault();\n return false;\n }\n return true;\n }\n\n customDialcodeValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors => {\n if (control.value === null || control.value === '') { return null; }\n const inputValue: number = +control.value;\n if (this.qrCodeCount.reserve === 0 && inputValue < this.minQRCode) {\n return { minErr: _.replace(_.get(this.configService, 'labelConfig.messages.error.014'), '{number}', this.minQRCode) };\n }\n if (this.qrCodeCount.reserve > 0 && inputValue <= this.qrCodeCount.reserve) {\n return { gteErr: _.replace(_.get(this.configService, 'labelConfig.messages.error.015'), '{number}', this.qrCodeCount.reserve) };\n }\n return null;\n };\n }\n}\n","<a class=\"fs-0-785 sb-color-primary font-weight-bold\"><i class=\"icon qrcode\"></i>QR Code </a>\n<a class=\"profile-avtar computer only p-0 pr-10\" tabindex=\"0\">\n <div suiDropdown class=\"ui dropdown right top pointing\" id=\"dropdown-menu-list-header\">\n <i class=\"icon caret down\"></i>\n <div class=\"menu\" suiDropdownMenu>\n <a class=\"item fs-0-785\"\n [ngClass]=\"(!disableQRGenerateBtn || (qrCodeCount.request > 0 && qrCodeCount.request + 1 <= qrCodeCount.reserve) || isGeneratingQRCodes ) ? 'sb-disabled' : ' '\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('generate_qr_codes','click','launch', telemetryService.telemetryPageId)\">\n <i class=\"icon qrcode\"></i>\n <span *ngIf=\"!isGeneratingQRCodes\" class=\"text\" (click)=\"openRequestPopup();\">\n Generate {{(qrCodeCount.request > 0 && qrCodeCount.request+1 > qrCodeCount.reserve)? qrCodeCount.request + ' +\n 1' : (qrCodeCount.reserve > 0) ? qrCodeCount.reserve-1 +' + 1' : '' }} QR Codes\n </span>\n <span *ngIf=\"isGeneratingQRCodes\" class=\"text\">Generating {{(qrCodeCount.request > 0 )? qrCodeCount.request-1 + ' +\n 1' :'' }} QR codes</span> \n </a>\n <div class=\"ui divider\"></div>\n <a class=\"item fs-0-785\" (click)=\"downloadQRCodes();\" [ngClass]=\"!disableQRDownloadBtn ? 'sb-disabled' : ''\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('download_qr_codes','click','launch', telemetryService.telemetryPageId)\">\n <i class=\"icon download\"></i> \n Download {{(qrCodeCount.reserve > 1) ? qrCodeCount.reserve-1 + ' +1' : ''}} QR codes\n </a>\n </div>\n </div>\n</a>\n<div class=\"seperator pr-20\"></div>\n\n<sui-modal *ngIf=\"showQRCodePopup\" [mustScroll]=\"true\" [isClosable]=\"true\" [transitionDuration]=\"0\" [size]=\"'small'\"\n class=\"sb-modal bx-none overflow-modal dialcodeModal\" appBodyScroll (dismissed)=\"showQRCodePopup = !showQRCodePopup\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.requestForQrCode}}\n </div>\n <div class=\"sb-modal-content\">\n <div class=\"d-flex flex-jc-space-between p-20\">\n <div class=\"sb-field-group w-70\">\n <div class=\"sb-field\">\n <input type=\"number\" (keypress)=\"keyPressNumbers($event)\" pattern=\"[0-9]*\" inputmode=\"numeric\" [formControl]=\"dialcodeControl\" \n [ngClass]=\"dialcodeControl.errors ? 'sb-color-error' : '' \" class=\"sb-form-control p-5 w-100\" placeholder=\"e.g. 45\">\n <div *ngIf=\"dialcodeControl.invalid\">\n <small class=\"sb-color-error pt-10 d-block\" *ngIf=\"dialcodeControl.errors.max\">\n {{configService.labelConfig?.lbl?.numberToolarge}}\n </small>\n <small class=\"sb-color-error pt-10 d-block\" *ngIf=\"dialcodeControl.errors.minErr\">\n {{dialcodeControl.errors.minErr}}\n </small>\n <small class=\"sb-color-error pt-10 d-block\" *ngIf=\"dialcodeControl.errors.gteErr\">\n {{dialcodeControl.errors.gteErr}}\n </small>\n </div>\n </div>\n </div>\n \n <button class=\"sb-btn sb-btn-normal sb-btn-primary\" [ngClass]=\"dialcodeControl.valid ? '': 'sb-btn-request-disabled'\" \n [disabled]=\"!dialcodeControl.valid\" (click)=\"submitDialcodeForm();\" >{{configService.labelConfig?.button_labels?.request_btn_label}}</button>\n </div>\n </div>\n</sui-modal>","import { Component, OnInit, Input, Output, EventEmitter, ViewEncapsulation } from '@angular/core';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\nimport { ConfigService } from '../../services/config/config.service';\nimport * as _ from 'lodash-es';\n@Component({\n selector: 'lib-publish-checklist',\n templateUrl: './publish-checklist.component.html',\n styleUrls: ['./publish-checklist.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class PublishChecklistComponent implements OnInit {\n @Input() publishchecklist: any;\n @Input() actionType: any;\n @Output() publishEmitter = new EventEmitter<any>();\n public isButtonEnable = false;\n public fieldsAvailable: any;\n public isClosable = false;\n constructor(\n public telemetryService: EditorTelemetryService,\n public configService: ConfigService) { }\n\n ngOnInit(): void {\n this.isButtonEnable = _.isEmpty(this.publishchecklist) ? true : false;\n }\n\n handlePopUpEvents(type, modal) {\n this.isClosable = true;\n if (type === 'submit' && _.isEmpty(this.publishchecklist)) {\n this.publishEmitter.emit({ button: this.actionType });\n } else if (type === 'submit' && this.publishchecklist && !_.isEmpty(this.publishchecklist)) {\n let checkBoxData = []\n let publishData = {}\n _.forEach(_.flattenDeep(_.map(this.publishchecklist, 'fields')), field => {\n if (this.fieldsAvailable && this.fieldsAvailable[field.code] === true && field.inputType === 'checkbox') {\n checkBoxData.push(field.name);\n } else {\n publishData[field.code] = this.fieldsAvailable[field.code]; // asign value to field other than checkbox's example publishComment = 'some comment'\n }\n });\n if (checkBoxData && checkBoxData.length) {\n publishData['publishChecklist'] = checkBoxData;\n }\n this.publishEmitter.emit({ button: this.actionType, publishData: publishData});\n } else if (type === 'closeModal') {\n this.publishEmitter.emit({ button: type });\n }\n modal.deny();\n }\n outputData(eventData: any) { }\n\n onStatusChanges(event) {\n this.isButtonEnable = event.isValid;\n }\n\n valueChanges(event: any) {\n this.fieldsAvailable = event;\n }\n}","<sui-modal [mustScroll]=\"true\" [isClosable]=\"isClosable\" [transitionDuration]=\"0\" [size]=\"'normal'\"\n class=\"sb-modal bx-none overflow-modal publish-checklist\" appBodyScroll (dismissed)=\"isClosable = false\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.publishCollection}}\n </div>\n <div class=\"sb-modal-content\">\n <span *ngIf=\"!publishchecklist?.length\"> {{configService.labelConfig?.lbl?.confirmPublishCollection}} </span>\n <div class=\"sectionTitle\" *ngIf=\"publishchecklist?.length\">{{configService.labelConfig?.lbl?.publishchecklistTitle}}</div>\n <sb-dynamic-form *ngIf=\"publishchecklist?.length\" [config]=\"publishchecklist\"\n (initialize)=\"outputData($event)\" (statusChanges)=\"onStatusChanges($event)\" (valueChanges)=\"valueChanges($event)\">\n </sb-dynamic-form>\n </div>\n <div class=\"sb-modal-actions\">\n <button class=\"sb-btn sb-btn-normal\"\n [ngClass]=\"{'sb-btn-primary': isButtonEnable, 'sb-btn-disabled': !isButtonEnable}\" [disabled]=\"!isButtonEnable\"\n (click)=\"handlePopUpEvents('submit', modal)\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('yes','click','submit', telemetryService.telemetryPageId, {key: 'dialog_id', value: 'publish_collection'})\">\n {{configService.labelConfig?.button_labels?.yes_btn_label}}\n </button>\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary\" (click)=\"handlePopUpEvents('closeModal', modal)\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('no','click','cancel', telemetryService.telemetryPageId, {key: 'dialog_id', value: 'add_review_comments'})\">\n {{configService.labelConfig?.button_labels?.no_btn_label}}\n </button>\n </div>\n</sui-modal>","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { EditorService } from '../../services/editor/editor.service';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\nimport { ConfigService } from '../../services/config/config.service';\nimport * as _ from 'lodash-es';\nimport { NgForm } from '@angular/forms';\n\n@Component({\n selector: 'lib-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class HeaderComponent implements OnDestroy, OnInit {\n @Input() pageId: any;\n @Input() labelConfigData: any;\n @Input() buttonLoaders: any;\n @Input() showComment: any;\n @Input() publishchecklist: any;\n @Input() set requestChange(action: string) {\n if (action) {\n this.openRequestChangePopup(action);\n }\n }\n @Output() toolbarEmitter = new EventEmitter<any>();\n @ViewChild('FormControl') FormControl: NgForm;\n @ViewChild('modal') public modal;\n @Output() qualityParamEmitter = new EventEmitter<any>();\n public visibility: any;\n public showReviewModal: boolean;\n public showPublishCollectionPopup: boolean;\n public showRequestChangesPopup: boolean;\n public rejectComment: string;\n public actionType: string;\n public sourcingStatusText: string;\n public sourcingStatusClass: string;\n public originPreviewUrl: string;\n public correctionComments: string;\n public bulkUploadStatus: any;\n\n constructor(private editorService: EditorService,\n public telemetryService: EditorTelemetryService,\n public configService: ConfigService) { }\n\n async ngOnInit() {\n await this.handleActionButtons()\n this.getSourcingData()\n this.editorService.bulkUploadStatus$.subscribe(status => {\n this.bulkUploadStatus = status;\n });\n }\n\n async handleActionButtons() {\n this.visibility = {};\n // Edit button visibility\n // 1. if the editor in edit mode\n // 2. if ReviewModificationAllowed is allowed and review/org-reviewer is viewing and the question is not added from library the question\n this.visibility.editContent = this.editorService.editorMode === 'edit' || ((this.editorService.editorMode === 'orgreview' || this.editorService.editorMode === 'sourcingreview') && this.editorService.isReviewModificationAllowed && !_.get(this.editorService, 'editorConfig.context.isAddedFromLibrary', false));\n this.visibility.saveContent = this.editorService.editorMode === 'edit' || ((this.editorService.editorMode === 'orgreview' || this.editorService.editorMode === 'sourcingreview') && this.editorService.isReviewModificationAllowed);\n this.visibility.submitContent = this.editorService.editorMode === 'edit';\n this.visibility.rejectContent = this.editorService.editorMode === 'review' || this.editorService.editorMode === 'orgreview';\n this.visibility.publishContent = this.editorService.editorMode === 'review' || this.editorService.editorMode === 'orgreview';\n this.visibility.sendForCorrectionsContent = this.editorService.editorMode === 'sourcingreview' && !_.get(this.editorService, 'editorConfig.context.isAddedFromLibrary', false);\n this.visibility.sourcingApproveContent = this.editorService.editorMode === 'sourcingreview';\n this.visibility.sourcingRejectContent = this.editorService.editorMode === 'sourcingreview';\n this.visibility.previewContent = _.get(this.editorService, 'editorConfig.config.objectType') === 'QuestionSet';\n this.visibility.dialcode = this.editorService.editorMode === 'edit';\n this.visibility.showOriginPreviewUrl = _.get(this.editorService, 'editorConfig.config.showOriginPreviewUrl');\n this.visibility.showSourcingStatus = _.get(this.editorService, 'editorConfig.config.showSourcingStatus');\n //this.visibility.showCorrectionComments = _.get(this.editorService, 'editorConfig.config.showCorrectionComments');\n this.visibility.hideSubmitForReviewBtn = _.get(this.editorService, 'editorConfig.config.hideSubmitForReviewBtn') || false;\n this.visibility.addCollaborator = _.get(this.editorService, 'editorConfig.config.showAddCollaborator');\n this.visibility.showPaginationBtn = _.get(this.editorService, 'editorConfig.config.enablePagination');\n }\n\n getSourcingData() {\n this.sourcingStatusText = (this.visibility.showSourcingStatus) ? _.get(this.editorService, 'editorConfig.context.sourcingResourceStatus') : '';\n this.sourcingStatusClass = (this.visibility.showSourcingStatus) ? _.get(this.editorService, 'editorConfig.context.sourcingResourceStatusClass') : '';\n this.originPreviewUrl = (this.visibility.showOriginPreviewUrl) ? _.get(this.editorService, 'editorConfig.context.originPreviewUrl') : '';\n this.correctionComments = (this.visibility.showCorrectionComments) ? _.get(this.editorService, 'editorConfig.context.correctionComments') : '';\n }\n\n openRequestChangePopup(action: string) {\n this.actionType = action;\n this.showRequestChangesPopup = true;\n }\n\n buttonEmitter(action) {\n this.toolbarEmitter.emit({ button: action.type, ...(action.comment && { comment: this.rejectComment }) });\n }\n\n openPublishCheckListPopup(action) {\n this.actionType = action;\n this.showPublishCollectionPopup = true;\n }\n\n firstLevelPublish() {\n if (this.editorService.isReviewerQualityCheckEnabled) {\n this.toolbarEmitter.emit({button: 'saveQualityParameters'});\n } else {\n this.buttonEmitter({type: 'publishQuestion'});\n }\n }\n\n publishEmitter(event) {\n this.showPublishCollectionPopup = false;\n if (event.button === 'publishContent' || event.button === 'publishQuestion' || event.button === 'sourcingApprove' || event.button === 'sourcingApproveQuestion') {\n this.toolbarEmitter.emit(event);\n }\n }\n\n bulkUploadListener(event) {\n this.toolbarEmitter.emit(event);\n }\n\n ngOnDestroy() {\n if (this.modal && this.modal.deny) {\n this.modal.deny();\n }\n }\n}\n","<!-- Blue Header -->\n<div class=\"sb-bg-color-primary\">\n <div class=\"ui container py-15\">\n <div class=\"d-flex flex-ai-center sb-color-white\">\n <button class=\"sb-btn sb-btn-primary sb-btn-xs back-btn px-0 hover-none fs-0-92 font-weight-bold\"\n (click)=\"buttonEmitter({type: 'backContent'})\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('back','click','launch', telemetryService.telemetryPageId)\">\n <i class=\"arrow left icon\" aria-hidden=\"true\"></i> {{configService.labelConfig?.button_labels?.back_btn_label}}\n </button>\n </div>\n </div>\n</div>\n\n<div class=\"sb-bg-lightBlue bb-1\">\n<div class=\"d-flex flex-jc-space-between flex-ai-center py-20 ui container\">\n <div>\n <div class=\"practical-header__title font-weight-bold pl-20 fs-0-92\">\n {{ labelConfigData.title }}\n </div>\n\n <div class=\"mt-8 pl-20\">\n <span class=\"sb-btn sb-btn-normal mr-10\" *ngIf=\"visibility.showSourcingStatus\" [ngClass]=\"sourcingStatusClass\">{{ sourcingStatusText }}</span>\n <!--span data-title=\"View review comments\" ((click)=\"buttonEmitter({type: 'showReviewcomments'})\" *ngIf=\"buttonLoaders?.showReviewComment\" libTelemetryInteract [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('view_comments','click','launch', telemetryService.telemetryPageId)\">\n <i class=\"icon comment flex-as-baseline mr-05\" aria-hidden=\"true\"></i>{{configService.labelConfig?.lbl?.viewComments}}\n </span-->\n <span class=\"fs-0-92\" data-title=\"View review comments\" (click)=\"buttonEmitter({type: 'showReviewcomments'})\" *ngIf=\"buttonLoaders?.showReviewComment\" libTelemetryInteract [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('view_comments','click','launch', telemetryService.telemetryPageId)\">\n <i class=\"icon comment flex-as-baseline mr-05\" aria-hidden=\"true\"></i>{{configService.labelConfig?.lbl?.viewComments}}\n </span>\n <a *ngIf=\"visibility.showOriginPreviewUrl && originPreviewUrl\" class=\"sb-color-primary mr-8 pl-10 fs-0-785 font-weight-bold\"\n href=\"{{originPreviewUrl}}\" target=\"_blank\">{{configService.labelConfig?.lbl?.viewOnOrigin}}</a>\n <label *ngIf=\"visibility.showOriginPreviewUrl && !originPreviewUrl\" class=\"sb-color-error mr-8 pl-10 fs-0-785 font-weight-bold\">\n {{configService.labelConfig?.err?.contentNotFoundonOrigin}}\n </label>\n </div>\n </div>\n <div class=\"d-flex flex-ai-center\" *ngIf=\"pageId === 'collection_editor' && labelConfigData\">\n <div *ngIf=\"visibility && visibility?.addCollaborator\" [attr.data-title]=\"labelConfigData?.isAddCollaborator ? 'Add collaborator' : 'View collaborator'\" class=\"cursor-pointer sb-color-primary mr-20 font-weight-bold\"\n (click)=\"buttonEmitter({type: 'addCollaborator'})\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('add_collaborator','click','launch', telemetryService.telemetryPageId)\">\n <i class=\"icon user plus mr-0\" aria-hidden=\"true\"></i>\n </div>\n <lib-dialcode *ngIf=\"visibility && visibility?.dialcode && labelConfigData?.showDialcode === 'yes'\" class=\"d-flex flex-ai-center\"></lib-dialcode>\n <button *ngIf=\"visibility && visibility?.submitContent && !bulkUploadStatus && labelConfigData?.hasChildren && !visibility.hideSubmitForReviewBtn && visibility.showPaginationBtn\"\n class=\"sb-btn sb-btn-normal sb-btn-primary mr-10\" (click)=\"buttonEmitter({type:'pagination'})\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('submit','click','submit', telemetryService.telemetryPageId)\"\n >\n <em class=\"{{labelConfigData.submit_collection_btn_icon}}\"></em>\n {{labelConfigData.add_page_numbers_to_questions_btn_label}}\n </button>\n <button *ngIf=\"visibility && visibility?.submitContent && !bulkUploadStatus && labelConfigData?.hasChildren && !visibility.hideSubmitForReviewBtn && visibility.showPaginationBtn\"\n class=\"sb-btn sb-btn-normal sb-btn-primary mr-10\" (click)=\"buttonEmitter({type:'progressStatus'})\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('submit','click','submit', telemetryService.telemetryPageId)\"\n >\n <em class=\"{{labelConfigData.submit_collection_btn_icon}}\"></em>\n Progress\n </button>\n <lib-bulk-upload *ngIf=\"visibility && visibility?.bulkUpload && labelConfigData?.showBulkUploadBtn\" class=\"d-flex flex-ai-center mr-10\" (bulkUploadEmitter)=\"bulkUploadListener($event)\" ></lib-bulk-upload>\n <button *ngIf=\"visibility && visibility?.previewContent && labelConfigData?.hasChildren && !bulkUploadStatus\" class=\"sb-btn sb-btn-normal sb-btn-outline-primary mr-10\"\n [ngClass]=\"!buttonLoaders?.previewButtonLoader ? '': 'sb-btn-loading-spinner sb-btn-outline-disabled'\"\n (click)=\"buttonEmitter({type: 'previewContent'})\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('preview','click','launch', telemetryService.telemetryPageId)\">\n <div class=\"sb-loading-spinner\" *ngIf=\"buttonLoaders?.previewButtonLoader\" role=\"status\" aria-hidden=\"true\"></div>\n <i *ngIf=\"labelConfigData.preview_collection_btn_icon && !buttonLoaders?.previewButtonLoader\" class=\"{{labelConfigData.preview_collection_btn_icon}}\"></i>\n {{ labelConfigData.preview_collection_btn_label}}\n </button>\n\n <button *ngIf=\"visibility && visibility?.saveContent\" class=\"sb-btn sb-btn-normal sb-btn-outline-primary mr-10\"\n [ngClass]=\"!buttonLoaders?.saveAsDraftButtonLoader ? '': 'sb-btn-loading-spinner sb-btn-outline-disabled'\"\n (click)=\"buttonEmitter({type:'saveContent'})\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('save_as_draft','click','submit', telemetryService.telemetryPageId)\"\n >\n <i class=\"{{labelConfigData.save_collection_btn_icon}}\" *ngIf=\"!buttonLoaders?.saveAsDraftButtonLoader\"></i>\n <div class=\"sb-loading-spinner\" *ngIf=\"buttonLoaders?.saveAsDraftButtonLoader\" role=\"status\" aria-hidden=\"true\"></div>\n {{labelConfigData.save_collection_btn_label}}\n </button>\n\n <button *ngIf=\"visibility && visibility?.submitContent && labelConfigData?.hasChildren && !visibility.hideSubmitForReviewBtn\" class=\"sb-btn sb-btn-normal sb-btn-primary mr-10\" (click)=\"buttonEmitter({type:'submitContent'})\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('submit','click','submit', telemetryService.telemetryPageId)\"\n >\n <i class=\"{{labelConfigData.submit_collection_btn_icon}}\"></i> \n {{labelConfigData.submit_collection_btn_label}}\n </button>\n\n <button *ngIf=\"visibility && visibility?.rejectContent\" class=\"sb-btn sb-btn-outline-error sb-btn-normal ripple mr-10\" (click)=\"openRequestChangePopup('rejectContent')\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('reject','click','submit', telemetryService.telemetryPageId)\">\n <i class=\"{{labelConfigData.reject_collection_btn_icon}}\"></i> \n {{labelConfigData.reject_collection_btn_label}}\n </button>\n\n <button *ngIf=\"visibility && visibility?.publishContent\" class=\"sb-btn sb-btn-secondary sb-btn-normal ripple\" (click)=\"openPublishCheckListPopup('publishContent')\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('publish','click','submit', telemetryService.telemetryPageId)\">\n <i class=\"{{labelConfigData.publish_collection_btn_icon}}\"></i> \n {{labelConfigData.publish_collection_btn_label}}\n </button>\n\n <button *ngIf=\"visibility && visibility?.sendForCorrectionsContent\" class=\"sb-btn sb-btn-outline-primary sb-btn-normal ripple mr-10\" (click)=\"openRequestChangePopup('sendForCorrections')\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('send_back_for_correction','click','submit', telemetryService.telemetryPageId)\">\n <i class=\"{{labelConfigData.send_back_for_correction_collection_btn_icon}}\"></i> \n {{labelConfigData.send_back_for_correction_collection_btn_label}}\n </button>\n\n <button *ngIf=\"visibility && visibility?.sourcingApproveContent\" class=\"sb-btn sb-btn-secondary sb-btn-normal ripple mr-10\" (click)=\"openPublishCheckListPopup('sourcingApprove')\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('approve','click','submit', telemetryService.telemetryPageId)\">\n <i class=\"{{labelConfigData.sourcing_approve_collection_btn_icon}}\"></i> \n {{labelConfigData.sourcing_approve_collection_btn_label}}\n </button>\n\n <button *ngIf=\"visibility && visibility?.sourcingRejectContent\" class=\"sb-btn sb-btn-error sb-btn-normal ripple\" (click)=\"openRequestChangePopup('sourcingReject')\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('reject','click','submit', telemetryService.telemetryPageId)\">\n <i class=\"{{labelConfigData.sourcing_reject_collection_btn_icon}}\"></i> \n {{labelConfigData.sourcing_reject_collection_btn_label}}\n </button>\n\n </div>\n <div class=\"d-flex flex-ai-center\" *ngIf=\"pageId === 'question' && labelConfigData\">\n <ng-container *ngIf=\"labelConfigData.showPreview; else editMode\">\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary mr-10\" *ngIf=\"visibility && visibility?.editContent\"\n (click)=\"buttonEmitter({type: 'editContent'})\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('edit','click','launch', telemetryService.telemetryPageId)\">\n <i *ngIf=\"labelConfigData.edit_question_btn_icon\" class=\"{{labelConfigData.edit_question_btn_icon}}\"></i>\n {{ labelConfigData.edit_question_btn_label}}\n </button>\n </ng-container>\n <ng-template #editMode>\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary mr-10\" *ngIf=\"!labelConfigData.showPreview\"\n [ngClass]=\"!buttonLoaders?.previewButtonLoader ? '': 'sb-btn-loading-spinner sb-btn-outline-disabled'\"\n (click)=\"buttonEmitter({type: 'previewContent'})\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('preview','click','launch', telemetryService.telemetryPageId)\">\n <div class=\"sb-loading-spinner\" *ngIf=\"buttonLoaders?.previewButtonLoader\" role=\"status\" aria-hidden=\"true\"></div>\n <i *ngIf=\"labelConfigData.preview_question_btn_icon && !buttonLoaders?.previewButtonLoader\" class=\"{{labelConfigData.preview_question_btn_icon}}\"></i>\n {{ labelConfigData.preview_question_btn_label}}\n </button>\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary mr-10\"\n (click)=\"buttonEmitter({type: 'cancelContent'})\" libTelemetryInteract *ngIf=\"visibility?.saveContent\"\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('cancel','click','launch', telemetryService.telemetryPageId)\">\n <i *ngIf=\"labelConfigData.cancel_question_btn_icon\" class=\"{{labelConfigData.cancel_question_btn_icon}}\"></i>\n {{ labelConfigData.cancel_question_btn_label}}\n </button>\n <button class=\"sb-btn sb-btn-normal sb-btn-primary mr-10\" (click)=\"buttonEmitter({type: 'saveContent'})\" *ngIf=\"visibility?.saveContent\"\n [ngClass]=\"!buttonLoaders?.saveButtonLoader ? '': 'sb-btn-loading-spinner sb-btn-outline-disabled'\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('save','click','submit', telemetryService.telemetryPageId)\">\n <div class=\"sb-loading-spinner\" *ngIf=\"buttonLoaders?.saveButtonLoader\" role=\"status\" aria-hidden=\"true\"></div>\n <i *ngIf=\"labelConfigData.save_question_btn_icon && !buttonLoaders?.saveButtonLoader\" class=\"{{labelConfigData.save_question_btn_icon}}\"></i>\n {{ labelConfigData.save_question_btn_label}}\n </button>\n </ng-template>\n\n <!-- <button *ngIf=\"labelConfigData.add_translation\" class=\"sb-btn sb-btn-normal sb-btn-outline-primary mr-10\"\n (click)=\"buttonEmitter({type: 'showTranslation'})\">\n <i class=\"plus circle icon\"></i>\n {{ labelConfigData.add_translation_label}}\n </button> -->\n <button *ngIf=\"visibility && visibility?.submitContent && labelConfigData?.questionContribution && !visibility.hideSubmitForReviewBtn && !visibility.showSourcingStatus\" class=\"sb-btn sb-btn-normal sb-btn-secondary\" (click)=\"buttonEmitter({type:'submitQuestion'})\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('submit','click','submit', telemetryService.telemetryPageId)\"\n >\n <i class=\"{{labelConfigData.submit_collection_btn_icon}}\"></i>\n {{labelConfigData.submit_collection_btn_label}}\n </button>\n <button *ngIf=\"visibility && visibility?.rejectContent && labelConfigData?.questionContribution\" class=\"sb-btn sb-btn-outline-error sb-btn-normal ripple mr-10\" (click)=\"openRequestChangePopup('rejectQuestion')\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('reject','click','submit', telemetryService.telemetryPageId)\">\n <i class=\"{{labelConfigData.reject_collection_btn_icon}}\"></i>\n {{labelConfigData.reject_collection_btn_label}}\n </button>\n\n <button *ngIf=\"visibility && visibility?.publishContent && labelConfigData?.questionContribution\" class=\"sb-btn sb-btn-secondary sb-btn-normal ripple\" (click)=\"firstLevelPublish()\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('publish','click','submit', telemetryService.telemetryPageId)\">\n <i class=\"{{labelConfigData.publish_collection_btn_icon}}\"></i>\n {{labelConfigData.publish_collection_btn_label}}\n </button>\n\n <button *ngIf=\"visibility && visibility?.sendForCorrectionsContent\" class=\"sb-btn sb-btn-outline-primary sb-btn-normal ripple mr-10\" (click)=\"openRequestChangePopup('sendForCorrectionsQuestion')\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('send_back_for_correction_question','click','submit', telemetryService.telemetryPageId)\">\n <i class=\"{{labelConfigData.send_back_for_correction_collection_btn_icon}}\"></i>\n {{labelConfigData.send_back_for_correction_collection_btn_label}}\n </button>\n\n <button *ngIf=\"visibility && visibility?.sourcingApproveContent\" class=\"sb-btn sb-btn-secondary sb-btn-normal ripple mr-10\" (click)=\"openPublishCheckListPopup('sourcingApproveQuestion')\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('approve','click','submit', telemetryService.telemetryPageId)\">\n <i class=\"{{labelConfigData.sourcing_approve_collection_btn_icon}}\"></i>\n {{labelConfigData.sourcing_approve_collection_btn_label}}\n </button>\n\n <button *ngIf=\"visibility && visibility?.sourcingRejectContent\" class=\"sb-btn sb-btn-error sb-btn-normal ripple\" (click)=\"openRequestChangePopup('sourcingRejectQuestion')\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('reject','click','submit', telemetryService.telemetryPageId)\">\n <i class=\"{{labelConfigData.sourcing_reject_collection_btn_icon}}\"></i>\n {{labelConfigData.sourcing_reject_collection_btn_label}}\n </button>\n </div>\n</div>\n</div>\n\n<sui-modal *ngIf=\"showRequestChangesPopup\" [mustScroll]=\"true\" [isClosable]=\"false\" [transitionDuration]=\"0\"\n [size]=\"'normal'\" class=\"sb-modal bx-none overflow-modal\" appBodyScroll #modal (dismissed)=\"showRequestChangesPopup = false;\">\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.addReviewComments}}\n </div>\n <form #FormControl=\"ngForm\" class=\"ui form\">\n <div class=\"sb-modal-content\">\n <div class=\"sb-field-group\">\n <label>{{configService.labelConfig?.lbl?.enterYourComments}}</label>\n <div class=\"sb-field relative\">\n\n <textarea type=\"text\" class=\"wmd-input width-100 sb-form-control\" id=\"wmd-input\" [(ngModel)]=\"rejectComment\" placeholder=\"Add comment\" name=\"rejectComment\" required maxlength=\"{{configService?.editorConfig?.rejectCommentsMaxLength}}\"></textarea>\n <label class=\"ui basic red error label pt-1 mt-5 width-100\"\n *ngIf=\"FormControl.form.controls.rejectComment?.touched && !FormControl.form.valid\">{{configService.labelConfig?.lbl?.fillComments}} </label>\n\n <!-- <textarea rows=\"4\" name=\"moretext\" class=\"sb-form-control\" placeholder=\"Type here...\"></textarea>\n <span class=\"characters-left\">1000 Characters left</span> -->\n </div>\n </div>\n </div>\n <div class=\"sb-modal-actions\">\n <button id=\"submitReview\" type=\"submit\" class=\"sb-btn sb-btn-normal\" [ngClass]=\"{'sb-btn-primary': FormControl.form.valid, 'sb-btn-disabled': !FormControl.form.valid}\" (click)=\"buttonEmitter({type: actionType, comment: rejectComment}); showRequestChangesPopup = false;\"\n [disabled]=\"!FormControl.form.valid\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('submit_review','click','submit', telemetryService.telemetryPageId, {key: 'dialog_id', value: 'add_review_comments'})\"\n > {{configService.labelConfig?.button_labels?.submit_review_btn_label}} </button>\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary\" (click)=\"modal.deny('denied')\"\n libTelemetryInteract [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('cancel','click','cancel', telemetryService.telemetryPageId, {key: 'dialog_id', value: 'add_review_comments'})\">{{configService.labelConfig?.button_labels?.cancel_btn_label}}</button>\n </div>\n</form>\n</sui-modal>\n\n\n\n<lib-publish-checklist *ngIf=\"showPublishCollectionPopup\" [actionType]=\"actionType\" [publishchecklist]=\"publishchecklist\" \n (publishEmitter)=\"publishEmitter($event)\">\n</lib-publish-checklist>\n\n\n","import {\n Component, AfterViewInit, Input, ViewChild, ElementRef, Output, EventEmitter,\n OnDestroy, OnInit, ViewEncapsulation, ChangeDetectorRef\n} from '@angular/core';\nimport 'jquery.fancytree';\nimport * as _ from 'lodash-es';\nimport { TreeService } from '../../services/tree/tree.service';\nimport { EditorService } from '../../services/editor/editor.service';\nimport { HelperService } from '../../services/helper/helper.service';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\nimport { ToasterService } from '../../services/toaster/toaster.service';\nimport { ConfigService } from '../../services/config/config.service';\nimport { DialcodeService } from '../../services/dialcode/dialcode.service';\n\n\nimport { Subject } from 'rxjs';\nimport { v4 as uuidv4 } from 'uuid';\n\ndeclare var $: any;\n\n@Component({\n selector: 'lib-fancy-tree',\n templateUrl: './fancy-tree.component.html',\n styleUrls: ['./fancy-tree.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class FancyTreeComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('fancyTree') public tree: ElementRef;\n @Input() public nodes: any;\n @Input() public options: any;\n @Input( ) buttonLoaders: any;\n @Output() public treeEventEmitter: EventEmitter<any> = new EventEmitter();\n public config: any;\n public showTree: boolean;\n public visibility: any;\n public showAddChildButton: boolean;\n public showAddSiblingButton: boolean;\n public rootNode: any;\n public showLibraryButton = false;\n public rootMenuTemplate = `<span class=\"ui dropdown sb-dotted-dropdown\" autoclose=\"itemClick\" suidropdown=\"\" tabindex=\"0\">\n <span id=\"contextMenu\" class=\"p-0 w-auto\"><i class=\"icon ellipsis vertical sb-color-black\"></i></span>\n <span id= \"contextMenuDropDown\" class=\"menu transition hidden\" suidropdownmenu=\"\" style=\"\">\n <div id=\"addchild\" class=\"item\">Add Child</div>\n </span>\n </span>`;\n public folderMenuTemplate = `<span id= \"removeNodeIcon\"> <i class=\"fa fa-trash-o\" type=\"button\"></i> </span><span class=\"ui dropdown sb-dotted-dropdown\" autoclose=\"itemClick\" suidropdown=\"\" tabindex=\"0\">\n <span id=\"contextMenu\" class=\"p-0 w-auto\"><i class=\"icon ellipsis vertical sb-color-black\"></i></span>\n <span id= \"contextMenuDropDown\" class=\"menu transition hidden\" suidropdownmenu=\"\" style=\"\">\n <div id=\"addsibling\" class=\"item\">Add Sibling</div>\n <div id=\"addchild\" class=\"item\">Add Child</div>\n <div id=\"delete\" class=\"item\">Delete</div>\n </span>\n </span>`;\n // tslint:disable-next-line:max-line-length\n public contentMenuTemplate = `<span id=\"contextMenu\"><span id= \"removeNodeIcon\" type=\"content\" > <i class=\"fa fa-trash-o\" type=\"button\"></i> </span></span>`;\n public nodeParentDependentMap: any;\n public bulkUploadProcessingStatus: any;\n constructor(public treeService: TreeService, private editorService: EditorService,\n public telemetryService: EditorTelemetryService, private helperService: HelperService,\n private toasterService: ToasterService, private cdr: ChangeDetectorRef,\n public configService: ConfigService, private dialcodeService: DialcodeService) { }\n private onComponentDestroy$ = new Subject<any>();\n\n ngOnInit() {\n this.config = _.cloneDeep(this.editorService.editorConfig.config);\n this.config.mode = _.get(this.config, 'mode').toLowerCase();\n if (!_.has(this.config, 'maxDepth')) { // TODO:: rethink this\n this.config.maxDepth = 4;\n }\n this.initialize();\n this.editorService.bulkUploadStatus$.subscribe(status => {\n this.bulkUploadProcessingStatus = status;\n });\n }\n\n ngAfterViewInit() {\n this.renderTree(this.getTreeConfig());\n }\n\n private initialize() {\n const data = this.nodes.data;\n this.nodeParentDependentMap = this.editorService.getParentDependentMap(this.nodes.data);\n let treeData;\n if (_.get(this.editorService, 'editorConfig.config.renderTaxonomy') === true && _.isEmpty(_.get(this.nodes, 'data.children'))) {\n this.helperService.addDepthToHierarchy(this.nodes.data.children);\n this.nodes.data.children = this.removeIntermediateLevelsFromFramework(this.nodes.data.children);\n treeData = this.buildTreeFromFramework(this.nodes.data);\n } else {\n treeData = this.buildTree(this.nodes.data);\n }\n this.editorService.treeData = treeData;\n this.rootNode = [{\n id: data.identifier || uuidv4(),\n title: data.name,\n tooltip: data.name,\n ...(data.contentType && {contentType: data.contentType}),\n primaryCategory: data.primaryCategory,\n objectType: data.objectType,\n metadata: _.omit(data, ['children', 'collections']),\n folder: true,\n children: treeData,\n root: true,\n icon: _.get(this.config, 'iconClass')\n }];\n }\n\n buildTreeFromFramework(data, tree?, level?) {\n tree = tree || [];\n if (data.children) { data.children = _.sortBy(data.children, ['index']); }\n _.forEach(data.children, (child) => {\n const childTree = [];\n tree.push({\n id: uuidv4(),\n title: child.name,\n tooltip: child.name,\n primaryCategory: child.primaryCategory,\n metadata: _.omit(child, ['children', 'collections']),\n folder: true,\n children: childTree,\n root: false,\n icon: 'fa fa-folder-o'\n });\n if (child.children) {\n this.buildTreeFromFramework(child, childTree);\n }\n });\n return tree;\n }\n\n removeIntermediateLevelsFromFramework(data, parentData?) {\n const tree = [];\n _.forEach(data, child => {\n if (child.depth === 0 || child.depth === this.helperService.treeDepth) {\n const node = {\n ..._.omit(child, ['children']),\n ...(child.children && {children: this.removeIntermediateLevelsFromFramework(child.children, child)})\n };\n tree.push(\n node\n );\n } else if ((child.depth !== 0 || child.depth !== this.helperService.treeDepth)) {\n parentData.children = _.filter(parentData.children, item => (item.depth === 0 || item.depth === this.helperService.treeDepth));\n if (child.children && child.children.length > 0) {\n const children = this.removeIntermediateLevelsFromFramework(child.children, child);\n parentData.children = _.concat(parentData.children, children);\n } else {\n parentData.children = _.concat(parentData.children, child.children);\n }\n }\n });\n return !_.isEmpty(tree) ? tree : _.flatten(parentData.children);\n }\n\n buildTree(data, tree?, level?) {\n tree = tree || [];\n if (data.children) { data.children = _.sortBy(data.children, ['index']); }\n data.level = level ? (level + 1) : 1;\n _.forEach(data.children, (child) => {\n const childTree = [];\n tree.push({\n id: child.identifier || uuidv4(),\n title: child.name,\n tooltip: child.name,\n ...(child.contentType && {contentType: child.contentType}),\n primaryCategory: child.primaryCategory,\n objectType: child.objectType,\n metadata: _.omit(child, ['children', 'collections']),\n folder: this.isFolder(child),\n children: childTree,\n root: false,\n icon: this.getIconClass(child, data.level)\n });\n if (child.visibility === 'Parent') {\n this.buildTree(child, childTree, data.level);\n }\n });\n return tree;\n }\n\n isFolder(child: any) {\n if (this.isContent(child)) {\n return false;\n } else {\n return child.visibility === 'Parent' ? true : false;\n }\n }\n\n getIconClass(child: any, level: number) {\n if (this.isContent(child)) {\n return 'fa fa-file-o';\n } else if (child.visibility === 'Parent') {\n return _.get(this.config, `hierarchy.level.${level}.iconClass`) || 'fa fa-folder-o';\n } else {\n return 'fa fa-file-o';\n }\n }\n\n isContent(child: any) {\n // tslint:disable-next-line:max-line-length\n return (_.get(this.config, 'objectType') === 'QuestionSet' && child.objectType === 'Question');\n }\n\n renderTree(options) {\n options = { ...options, ...this.options };\n $(this.tree.nativeElement).fancytree(options);\n this.treeService.setTreeElement(this.tree.nativeElement);\n if (this.options.showConnectors) {\n $('.fancytree-container').addClass('fancytree-connectors');\n }\n setTimeout(() => {\n this.treeService.reloadTree(this.rootNode);\n this.treeService.setActiveNode();\n const rootNode = this.treeService.getFirstChild();\n rootNode.setExpanded(true);\n this.eachNodeActionButton(rootNode);\n this.dialcodeService.readExistingQrCode();\n });\n if (_.get(this.editorService, 'editorConfig.config.renderTaxonomy') === true && _.isEmpty(_.get(this.nodes, 'data.children'))) {\n _.forEach(this.rootNode[0]?.children, (child) => {\n this.treeService.updateTreeNodeMetadata(child.metadata, child.id, child.primaryCategory, child.objectType);\n _.forEach(child.children, (el) => {\n this.treeService.updateTreeNodeMetadata(el.metadata, el.id, el.primaryCategory, el.objectType);\n });\n });\n }\n }\n\n getTreeConfig() {\n const options: any = {\n extensions: ['glyph', 'dnd5'],\n clickFolderMode: 3,\n source: this.rootNode,\n escapeTitles: true,\n glyph: {\n preset: 'awesome4',\n map: {\n folder: 'icon folder sb-fancyTree-icon',\n folderOpen: 'icon folder outline sb-fancyTree-icon'\n }\n },\n dnd5: {\n autoExpandMS: 400,\n // focusOnClick: true,\n preventVoidMoves: true, // Prevent dropping nodes 'before self', etc.\n preventRecursion: true, // Prevent dropping nodes on own descendants\n dragStart: (node, data) => {\n /** This function MUST be defined to enable dragging for the tree.\n * Return false to cancel dragging of node.\n */\n const draggable = _.get(this.config, 'mode') === 'edit' ? true : false;\n return draggable;\n },\n dragEnter: (node, data) => {\n /** data.otherNode may be null for non-fancytree droppables.\n * Return false to disallow dropping on node. In this case\n * dragOver and dragLeave are not called.\n * Return 'over', 'before, or 'after' to force a hitMode.\n * Return ['before', 'after'] to restrict available hitModes.\n * Any other return value will calc the hitMode from the cursor position.\n */\n // Prevent dropping a parent below another parent (only sort\n // nodes under the same parent)\n /* if(node.parent !== data.otherNode.parent){\n return false;\n }\n // Don't allow dropping *over* a node (would create a child)\n return [\"before\", \"after\"];\n */\n return true;\n },\n dragDrop: (node, data) => {\n /** This function MUST be defined to enable dropping of items on\n * the tree.\n */\n // data.otherNode.moveTo(node, data.hitMode);\n return this.dragDrop(node, data);\n },\n filter: {\n autoApply: true,\n autoExpand: false,\n counter: true,\n fuzzy: false,\n hideExpandedCounter: true,\n hideExpanders: false,\n highlight: true,\n leavesOnly: false,\n nodata: true,\n mode: 'dimm'\n }\n },\n init: (event, data) => { },\n click: (event, data): boolean => {\n this.tree.nativeElement.click();\n this.telemetryService.interact({ edata: this.getTelemetryInteractEdata() });\n return true;\n },\n activate: (event, data) => {\n this.treeEventEmitter.emit({ type: 'nodeSelect', data: data.node });\n setTimeout(() => {\n this.attachContextMenu(data.node, true);\n this.eachNodeActionButton(data.node);\n }, 10);\n },\n renderNode: (event, data) => {\n const node = data.node;\n const $nodeSpan = $(node.span);\n\n // check if span of node already rendered\n if (!$nodeSpan.data('rendered')) {\n this.attachContextMenu(node);\n // span rendered\n $nodeSpan.data('rendered', true);\n }\n }\n };\n return options;\n }\n\n eachNodeActionButton(node) {\n this.visibility = {};\n if (this.bulkUploadProcessingStatus) {\n this.visibility.addChild = false;\n this.visibility.addSibling = false;\n this.visibility.addFromLibrary = false;\n this.visibility.addQuestionFromLibrary = false;\n this.visibility.createNew = false;\n } else {\n const nodeLevel = node.getLevel() - 1;\n this.visibility.addChild = ((node.folder === false) || (nodeLevel >= this.config.maxDepth)) ? false : true;\n // tslint:disable-next-line:max-line-length\n this.visibility.addSibling = ((node.folder === true) && (!node.data.root) && !((node.getLevel() - 1) > this.config.maxDepth)) ? true : false;\n if (nodeLevel === 0) {\n this.visibility.addFromLibrary = _.isEmpty(_.get(this.config, 'children')) || _.get(this.config, 'enableQuestionCreation') === false ? false : true;\n this.visibility.createNew = _.isEmpty(_.get(this.config, 'children')) || _.get(this.config, 'enableQuestionCreation') === false ? false : true;\n this.visibility.addQuestionFromLibrary = !_.isEmpty(_.get(this.config, 'children')) && _.get(this.config, 'enableAddFromLibrary') === true ? true : false;\n } else {\n const hierarchylevelData = this.config.hierarchy[`level${nodeLevel}`];\n // tslint:disable-next-line:max-line-length\n this.visibility.addFromLibrary = ((node.folder === false) || _.isEmpty(_.get(hierarchylevelData, 'children')) || _.get(this.config, 'enableQuestionCreation') === false) ? false : true;\n // tslint:disable-next-line:max-line-length\n this.visibility.createNew = ((node.folder === false) || _.isEmpty(_.get(hierarchylevelData, 'children')) || _.get(this.config, 'enableQuestionCreation') === false) ? false : true;\n this.visibility.addQuestionFromLibrary = ((node.folder === true) && !_.isEmpty(_.get(hierarchylevelData, 'children')) && _.get(this.config, 'enableAddFromLibrary') === true) ? true : false;\n }\n }\n if (_.get(this.editorService, 'editorConfig.config.renderTaxonomy') === true) {\n this.visibility.addChild = false;\n this.visibility.addSibling = false;\n }\n this.cdr.detectChanges();\n }\n\n addChild() {\n this.telemetryService.interact({ edata: this.getTelemetryInteractEdata('add_child') });\n const tree = $(this.tree.nativeElement).fancytree('getTree');\n const nodeConfig = this.config.hierarchy[tree.getActiveNode().getLevel()];\n const childrenTypes = _.get(nodeConfig, 'children.Content');\n if ((((tree.getActiveNode().getLevel() - 1) >= this.config.maxDepth))) {\n return this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.007'));\n }\n this.treeService.addNode('child');\n }\n\n addSibling() {\n this.telemetryService.interact({ edata: this.getTelemetryInteractEdata('add_sibling') });\n const tree = $(this.tree.nativeElement).fancytree('getTree');\n\n const node = tree.getActiveNode();\n if (!node.data.root) {\n this.treeService.addNode('sibling');\n } else {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.007'));\n }\n }\n\n getActiveNode() {\n return $(this.tree.nativeElement).fancytree('getTree').getActiveNode();\n }\n\n attachContextMenu(node, activeNode?) {\n if (_.get(this.config, 'mode') !== 'edit' || (node.data.root === true && _.isEmpty(this.config.hierarchy) )) {\n return;\n }\n const $nodeSpan = $(node.span);\n // tslint:disable-next-line:max-line-length // TODO:: (node.data.contentType === 'CourseUnit') check this condition\n const menuTemplate = node.data.root === true ? this.rootMenuTemplate : (node.data.root === false && node.folder === true ? this.folderMenuTemplate : this.contentMenuTemplate);\n const iconsButton = $(menuTemplate);\n if ((node.getLevel() - 1) >= this.config.maxDepth) {\n iconsButton.find('#addchild').remove();\n }\n\n let contextMenu = $($nodeSpan[0]).find(`#contextMenu`);\n\n if (!contextMenu.length) {\n $nodeSpan.append(iconsButton);\n\n if (!activeNode) {\n iconsButton.hide();\n }\n\n $nodeSpan[0].onmouseover = () => {\n iconsButton.show();\n };\n\n $nodeSpan[0].onmouseout = () => {\n iconsButton.hide();\n };\n\n contextMenu = $($nodeSpan[0]).find(`#contextMenu`);\n\n contextMenu.on('click', (event) => {\n this.treeService.closePrevOpenedDropDown();\n setTimeout(() => {\n const nSpan = $(this.getActiveNode().span);\n\n const dropDownElement = $(nSpan[0]).find(`#contextMenuDropDown`);\n dropDownElement.removeClass('hidden');\n dropDownElement.addClass('visible');\n _.forEach(_.get(_.first(dropDownElement), 'children'), item => {\n item.addEventListener('click', (ev) => {\n this.treeService.closePrevOpenedDropDown();\n this.handleActionButtons(ev.currentTarget);\n ev.stopPropagation();\n });\n });\n }, 100);\n // event.stopPropagation();\n });\n\n $($nodeSpan[0]).find(`#removeNodeIcon`).on('click', (event: any) => {\n const isContent = event.currentTarget.getAttribute('type') && event.currentTarget.getAttribute('type') === 'content';\n this.removeNode(isContent);\n });\n }\n\n }\n\n dropNode(targetNode, currentNode) {\n\n let dropAllowed;\n dropAllowed = true;\n // tslint:disable-next-line:max-line-length\n if (currentNode.otherNode.getLevel() === targetNode.getLevel() && currentNode.otherNode.folder === true && currentNode.hitMode !== 'over') {\n dropAllowed = true;\n // tslint:disable-next-line:max-line-length\n } else if (currentNode.otherNode.folder === true && (this.maxTreeDepth(currentNode.otherNode) + (targetNode.getLevel() - 1)) > _.get(this.config, 'maxDepth')) {\n return this.dropNotAllowed();\n } else if (currentNode.otherNode.folder === false && !this.checkContentAddition(targetNode, currentNode)) {\n dropAllowed = false;\n }\n\n if (dropAllowed) {\n currentNode.otherNode.moveTo(targetNode, currentNode.hitMode);\n this.treeService.nextTreeStatus('reorder');\n return true;\n } else {\n this.toasterService.warning(`${currentNode.otherNode.title} cannot be added to ${currentNode.node.title}`);\n return false;\n }\n\n }\n\n dragDrop(node, data) {\n if ((data.hitMode === 'before' || data.hitMode === 'after' || data.hitMode === 'over') && data.node.data.root) {\n return this.dropNotAllowed();\n }\n if (_.has(this.config, 'maxDepth')) {\n return this.dropNode(node, data);\n }\n }\n\n dropNotAllowed() {\n this.toasterService.warning(_.get(this.configService, 'labelConfig.messages.error.007'));\n return false;\n }\n\n maxTreeDepth(root) {\n const buffer = [{ node: root, depth: 1 }];\n let current = buffer.pop();\n let max = 0;\n\n while (current && current.node) {\n // Find all children of this node.\n _.forEach(current.node.children, (child) => {\n buffer.push({ node: child, depth: current.depth + 1 });\n });\n if (current.depth > max) {\n max = current.depth;\n }\n current = buffer.pop();\n }\n return max;\n }\n\n checkContentAddition(targetNode, contentNode): boolean {\n if (targetNode.folder === false && (contentNode.hitMode === 'before' || contentNode.hitMode === 'after')) {\n return true;\n }\n if (targetNode.folder === false && contentNode.hitMode === 'over') {\n return false;\n }\n const nodeConfig = this.config.hierarchy[`level${targetNode.getLevel() - 1}`];\n const contentPrimaryCategories = _.flatMap(_.get(nodeConfig, 'children'));\n if (!_.isEmpty(contentPrimaryCategories)) {\n return _.includes(contentPrimaryCategories, _.get(contentNode, 'otherNode.data.metadata.primaryCategory')) ? true : false;\n }\n return false;\n }\n\n removeNode(isContent?: boolean) {\n this.treeEventEmitter.emit({ type: 'deleteNode', isContent });\n this.telemetryService.interact({ edata: this.getTelemetryInteractEdata('delete') });\n }\n\n handleActionButtons(el) {\n console.log('action buttons -------->', el.id);\n switch (el.id) {\n case 'edit':\n break;\n case 'delete':\n this.removeNode();\n break;\n case 'addsibling':\n this.addSibling();\n break;\n case 'addchild':\n this.addChild();\n break;\n case 'addresource':\n break;\n }\n }\n\n addFromLibrary() {\n this.editorService.emitshowLibraryPageEvent('showLibraryPage');\n }\n getTelemetryInteractEdata(id?) {\n return {\n id: id || 'collection-toc',\n type: 'click',\n subtype: 'launch',\n pageid: this.telemetryService.telemetryPageId,\n extra: {\n values: [_.get(this.getActiveNode(), 'data')]\n }\n };\n }\n\n createNewContent() {\n this.treeEventEmitter.emit({ type: 'createNewContent' });\n }\n\n ngOnDestroy() {\n this.onComponentDestroy$.next();\n this.onComponentDestroy$.complete();\n }\n}","<div #fancyTree></div>\n<div class=\"sb-fixed-with-whitebg pr-20 d-flex flex-jc-space-between\" *ngIf=\"config && config.mode === 'edit'\">\n <div class=\"d-flex w-25\">\n <div class=\"sb-btn-cover\">\n <button [ngClass]=\"visibility?.addSibling ? '' : 'sb-disabled'\" (click)=\"addSibling();\"\n class=\"sb-btn sb-btn-outline-primary sb-btn-normal sb-btn-radius p-0 b-none\"><i aria-hidden=\"true\" class=\"icon plus\"></i>\n {{configService.labelConfig?.button_labels?.add_sibling_btn_label}} </button>\n </div>\n <div class=\"sb-btn-cover\">\n <button [ngClass]=\"visibility?.addChild ? '' : 'sb-disabled'\" (click)=\"addChild();\"\n class=\"sb-btn sb-btn-outline-primary sb-btn-normal sb-btn-radius b-none p-0\"><i class=\"icon plus\"></i>\n {{configService.labelConfig?.button_labels?.add_child_btn_label}} </button>\n </div>\n </div>\n <button *ngIf=\"config.objectType !== 'QuestionSet'\" (click)=\"addFromLibrary();\"\n [disabled]=\"!visibility?.addFromLibrary\"\n [ngClass]=\"[!visibility?.addFromLibrary ? 'sb-btn-outline-disabled' : '', (visibility?.addFromLibrary && buttonLoaders?.addFromLibraryButtonLoader) ? 'sb-btn-loading-spinner sb-btn-outline-disabled': '']\"\n class=\"sb-btn sb-btn-outline-primary sb-btn-normal mt-10 mr-30\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('add_from_library','click','launch', telemetryService.telemetryPageId)\">\n <i class=\"icon plus\" aria-hidden=\"true\" *ngIf=\"!buttonLoaders?.addFromLibraryButtonLoader\"></i>\n <div class=\"sb-loading-spinner\" *ngIf=\"buttonLoaders?.addFromLibraryButtonLoader\" role=\"status\" aria-hidden=\"true\">\n </div>\n {{configService.labelConfig?.button_labels?.add_from_library_btn_label}}\n </button>\n <button *ngIf=\"config.objectType === 'QuestionSet'\" [disabled]=\"!visibility?.createNew\"\n [ngClass]=\"[!visibility?.createNew ? 'sb-btn-outline-disabled' : '', (visibility?.createNew && buttonLoaders?.addFromLibraryButtonLoader) ? 'sb-btn-loading-spinner sb-btn-outline-disabled': '']\"\n type=\"button\" class=\"sb-btn sb-btn-normal sb-btn-primary mt-10 mr-30\" (click)=\"createNewContent()\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('create_new','click','launch', telemetryService.telemetryPageId)\">\n <i class=\"icon plus\" *ngIf=\"!buttonLoaders?.addFromLibraryButtonLoader\"></i>\n <div class=\"sb-loading-spinner\" *ngIf=\"buttonLoaders?.addFromLibraryButtonLoader\" role=\"status\" aria-hidden=\"true\">\n </div>\n {{configService.labelConfig?.button_labels?.create_new_btn_label}}\n </button>\n</div>","export const config = {\n uploadIconFormConfig:\n [{\n 'code': 'name',\n 'dataType': 'text',\n 'editable': false,\n 'inputType': 'text',\n 'label': 'Asset Caption',\n 'name': 'Asset Caption',\n 'placeholder': 'Enter asset caption',\n 'renderingHints': {\n 'class': 'sb-g-col-lg-2 required'\n },\n 'required': true,\n 'visible': true,\n 'validations': [\n {\n 'type': 'required',\n 'message': 'Please enter asset caption'\n }\n ]\n },\n {\n 'code': 'keywords',\n 'visible': true,\n 'editable': false,\n 'dataType': 'list',\n 'name': 'Tags',\n 'placeholder': 'Add tag',\n 'renderingHints': {\n 'class': 'sb-g-col-lg-2'\n },\n 'description': '',\n 'inputType': 'keywords',\n 'label': 'Tags',\n 'required': true,\n 'validations': []\n },\n {\n 'code': 'creator',\n 'dataType': 'text',\n 'editable': false,\n 'inputType': 'text',\n 'label': 'Creator',\n 'name': 'Creator',\n 'placeholder': 'Enter name',\n 'renderingHints': {\n 'class': 'sb-g-col-lg-2'\n },\n 'required': true,\n 'visible': true\n }]\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { DataService } from '../../services/data/data.service';\nimport { PublicDataService } from '../../services/public-data/public-data.service';\nimport { ServerResponse } from '../../interfaces/serverResponse';\nimport * as _ from 'lodash-es';\nimport { v4 as uuidv4 } from 'uuid';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../config/config.service';\nimport { EditorService } from '../editor/editor.service';\n@Injectable({\n providedIn: 'root'\n})\nexport class QuestionService {\n public http: HttpClient;\n constructor(public dataService: DataService, http: HttpClient, private configService: ConfigService,\n private publicDataService: PublicDataService, private editorService: EditorService) {\n this.http = http;\n }\n\n readQuestion(questionId, leafFormConfigfields?) {\n // tslint:disable-next-line:max-line-length\n let field = this.configService.editorConfig.readQuestionFields;\n field = leafFormConfigfields ? field + leafFormConfigfields : field;\n const option = {\n url: `${this.configService.urlConFig.URLS.QUESTION.READ}${questionId}`,\n param: {\n fields: field\n }\n };\n return this.publicDataService.get(option);\n }\n\n updateHierarchyQuestionCreate(hierarchyBody): Observable<ServerResponse> {\n const requestObj = {\n data: hierarchyBody\n };\n const req = {\n url: this.configService.urlConFig.URLS[this.editorService.editorConfig.config.objectType].HIERARCHY_UPDATE,\n data: {\n request: requestObj\n }\n };\n return this.publicDataService.patch(req);\n }\n\n updateHierarchyQuestionUpdate(hierarchyBody): Observable<ServerResponse> {\n const requestObj = {\n data: hierarchyBody\n };\n const req = {\n url: this.configService.urlConFig.URLS[this.editorService.editorConfig.config.objectType].HIERARCHY_UPDATE,\n data: {\n request: requestObj\n }\n };\n return this.publicDataService.patch(req);\n }\n\n getAssetMedia(req?: object) {\n const reqParam = {\n url: _.get(this.configService.urlConFig, 'URLS.compositSearch'),\n data: {\n request: {\n filters: {\n contentType: 'Asset',\n compatibilityLevel: {\n min: 1,\n max: 2\n },\n status: ['Live'],\n },\n limit: 50,\n }\n }\n };\n reqParam.data.request = req ? _.merge({}, reqParam.data.request, req) : reqParam;\n return this.publicDataService.post(reqParam);\n }\n\n createMediaAsset(req?: object) {\n const reqParam = {\n url: _.get(this.configService.urlConFig, 'URLS.CONTENT.CREATE'),\n data: {\n request: {\n content: {\n contentType: 'Asset',\n language: ['English'],\n code: uuidv4(),\n }\n }\n }\n };\n reqParam.data.request = req ? _.merge({}, reqParam.data.request, req) : reqParam;\n return this.publicDataService.post(reqParam);\n }\n\n uploadMedia(req, assetId: any) {\n let reqParam = {\n url: `${this.configService.urlConFig.URLS.CONTENT.UPLOAD}${assetId}`,\n data: req.data\n };\n reqParam = req ? _.merge({}, reqParam, req) : reqParam;\n return this.publicDataService.post(reqParam);\n }\n\n generatePreSignedUrl(req, contentId: any) {\n const reqParam = {\n url: `${this.configService.urlConFig.URLS.CONTENT.UPLOAD_URL}${contentId}`,\n data: {\n request: req\n }\n };\n return this.publicDataService.post(reqParam);\n }\n\n getVideo(videoId) {\n const reqParam = {\n url: `${this.configService.urlConFig.URLS.CONTENT.READ}${videoId}`\n };\n return this.publicDataService.get(reqParam);\n }\n\n getQuestionList(req, field?: any) {\n const reqParam: any = {\n url: this.configService.urlConFig.URLS.QuestionSet.QUESTION_LIST,\n data: {\n request: {\n search: {\n identifier: req\n }\n }\n }\n };\n if (field) {\n reqParam.param = { fields: field };\n }\n return this.publicDataService.post(reqParam);\n }\n\n updateQuestion(questionId, requestBody): Observable<ServerResponse> {\n const req = {\n url: `${this.configService.urlConFig.URLS.QUESTION.UPDATE}${questionId}`,\n data: {\n request: requestBody\n }\n };\n return this.publicDataService.patch(req);\n }\n\n upsertQuestion(questionId, requestBody): Observable<ServerResponse> {\n if (questionId) {\n const req = {\n url: `${this.configService.urlConFig.URLS.QUESTION.UPDATE}${questionId}`,\n data: {\n request: requestBody\n }\n };\n return this.publicDataService.patch(req);\n } else {\n const req = {\n url: this.configService.urlConFig.URLS.QUESTION.CREATE,\n data: {\n request: requestBody\n }\n };\n return this.publicDataService.post(req);\n }\n }\n\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport * as _ from 'lodash-es';\nimport { catchError, map } from 'rxjs/operators';\nimport { throwError, Observable } from 'rxjs';\nimport { EditorService } from '../../services/editor/editor.service';\nimport { QuestionService } from '../../services/question/question.service';\nimport { config } from './asset-browser.data';\nimport { ConfigService } from '../../services/config/config.service';\ndeclare const SunbirdFileUploadLib: any;\n\n@Component({\n selector: 'lib-asset-browser',\n templateUrl: './asset-browser.component.html',\n styleUrls: ['./asset-browser.component.scss']\n})\nexport class AssetBrowserComponent implements OnInit, OnDestroy {\n @Input() showImagePicker;\n @Output() assetBrowserEmitter = new EventEmitter<any>();\n @Output() modalDismissEmitter = new EventEmitter<any>();\n @ViewChild('modal') private modal;\n constructor(private editorService: EditorService, public configService: ConfigService,\n private questionService: QuestionService) { }\n assetConfig: any = {};\n myAssets = [];\n allImages = [];\n public imageUploadLoader = false;\n showImageUploadModal: boolean;\n acceptImageType: any;\n showErrorMsg: boolean;\n errorMsg: string;\n query: string;\n uploader;\n isClosable = true;\n loading = false;\n public mediaobj;\n public assetProxyUrl = '/assets/public/';\n public editorInstance: any;\n public assetsCount: any;\n public searchMyInput = '';\n public searchAllInput: any;\n showAddButton: boolean;\n appIcon;\n public formData: any;\n public assestData = {};\n public formConfig: any;\n public initialFormConfig: any;\n public imageFormValid: any;\n public termsAndCondition: any;\n public assetName: any;\n public emptySearchMessage: any;\n public imageFile: any;\n ngOnInit() {\n this.initialFormConfig = _.get(config, 'uploadIconFormConfig');\n this.formConfig = _.get(config, 'uploadIconFormConfig');\n this.assetConfig = this.editorService.editorConfig.config.assetConfig;\n this.termsAndCondition = _.get(this.configService.labelConfig, 'termsAndConditions.001');\n this.emptySearchMessage = _.get(this.configService.labelConfig, 'messages.error.016');\n this.acceptImageType = this.getAcceptType(this.assetConfig.image.accepted, 'image');\n }\n\n getAcceptType(typeList, type) {\n const acceptTypeList = typeList.split(', ');\n const result = [];\n _.forEach(acceptTypeList, (content) => {\n result.push(`${type}/${content}`);\n });\n return result.toString();\n }\n\n initializeImagePicker() {\n this.showImagePicker = true;\n }\n\n outputEventHandler(event) {\n console.log(JSON.stringify(event));\n }\n\n getMyImages(offset, query?, search?) {\n this.assetsCount = 0;\n if (!search) {\n this.searchMyInput = '';\n }\n if (offset === 0) {\n this.myAssets.length = 0;\n }\n const req = {\n filters: {\n mediaType: ['image'],\n createdBy: _.get(this.editorService.editorConfig, 'context.user.id')\n },\n offset\n };\n if (query) {\n req['query'] = query;\n }\n this.questionService.getAssetMedia(req).pipe(catchError(err => {\n const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.022') };\n return throwError(this.editorService.apiErrorHandling(err, errInfo));\n })).subscribe((res) => {\n this.assetsCount = res.result.count;\n _.map(res.result.content, (item) => {\n if (item.downloadUrl) {\n this.myAssets.push(item);\n }\n });\n });\n }\n\n addImageInEditor(imageUrl, imageId) {\n this.appIcon = imageUrl;\n this.showImagePicker = false;\n this.assetBrowserEmitter.emit({ type: 'image', url: this.appIcon });\n }\n\n getAllImages(offset, query?, search?) {\n this.assetsCount = 0;\n if (!search) {\n this.searchAllInput = '';\n }\n if (offset === 0) {\n this.allImages.length = 0;\n }\n const req = {\n filters: {\n mediaType: ['image']\n },\n offset\n };\n if (query) {\n req['query'] = query;\n }\n this.questionService.getAssetMedia(req).pipe(catchError(err => {\n const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.022') };\n return throwError(this.editorService.apiErrorHandling(err, errInfo));\n }))\n .subscribe((res) => {\n this.assetsCount = res.result.count;\n _.map(res.result.content, (item) => {\n if (item.downloadUrl) {\n this.allImages.push(item);\n }\n });\n });\n }\n\n lazyloadMyImages() {\n const offset = this.myAssets.length;\n this.getMyImages(offset, this.query, true);\n }\n\n /**\n * function to lazy load all images\n */\n lazyloadAllImages() {\n const offset = this.allImages.length;\n this.getAllImages(offset, this.query, true);\n }\n uploadImage(event) {\n const file = event.target.files[0];\n const reader = new FileReader();\n this.formData = new FormData();\n this.formData.append('file', file);\n this.assetName = file.name;\n const fileType = file.type;\n const fileName = file.name.split('.').slice(0, -1).join('.');\n const fileSize = file.size / 1024 / 1024;\n if (fileType.split('/')[0] === 'image') {\n this.showErrorMsg = false;\n if (fileSize > this.assetConfig.image.size) {\n this.showErrorMsg = true;\n this.errorMsg = _.get(this.configService.labelConfig, 'messages.error.021') +\n this.assetConfig.image.size + this.assetConfig.image.sizeType;\n this.resetFormData();\n } else {\n this.errorMsg = '';\n this.showErrorMsg = false;\n reader.readAsDataURL(file);\n }\n } else {\n this.showErrorMsg = true;\n this.errorMsg = _.get(this.configService.labelConfig, 'messages.error.020');\n }\n if (!this.showErrorMsg) {\n this.imageFile = file;\n this.imageUploadLoader = true;\n this.imageFormValid = true;\n this.assestData = this.generateAssetCreateRequest(fileName, fileType, 'image');\n this.populateFormData(this.assestData);\n }\n }\n resetFormData() {\n this.imageUploadLoader = false;\n this.imageFormValid = false;\n this.formConfig = this.initialFormConfig;\n }\n populateFormData(formData) {\n const formvalue = _.cloneDeep(this.formConfig);\n this.formConfig = null;\n _.forEach(formvalue, (formFieldCategory) => {\n formFieldCategory.default = formData[formFieldCategory.code];\n formFieldCategory.editable = true;\n });\n this.formConfig = formvalue;\n }\n uploadAndUseImage(modal) {\n this.questionService.createMediaAsset({ content: this.assestData }).pipe(catchError(err => {\n const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.019') };\n return throwError(this.editorService.apiErrorHandling(err, errInfo));\n })).subscribe((res) => {\n const imgId = res.result.node_id;\n const request = {\n data: this.formData\n };\n this.questionService.uploadMedia(request, imgId).pipe(catchError(err => {\n const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.019') };\n return throwError(this.editorService.apiErrorHandling(err, errInfo));\n })).subscribe((response) => {\n const signedURL = response.result.pre_signed_url;\n let blobConfig = {\n processData: false,\n contentType: 'Asset'\n };\n blobConfig = this.editorService.appendCloudStorageHeaders(blobConfig);\n this.uploadToBlob(signedURL, this.imageFile, blobConfig).subscribe(() => {\n const fileURL = signedURL.split('?')[0];\n const data = new FormData();\n data.append('fileUrl', fileURL);\n data.append('mimeType', _.get(this.imageFile, 'type'));\n const config1 = {\n enctype: 'multipart/form-data',\n processData: false,\n contentType: false,\n cache: false\n };\n const uploadMediaConfig = {\n data,\n param: config1\n };\n this.questionService.uploadMedia(uploadMediaConfig, imgId).pipe(catchError(err => {\n const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.019') };\n this.isClosable = true;\n this.loading = false;\n this.imageFormValid = true;\n return throwError(this.editorService.apiErrorHandling(err, errInfo));\n })).subscribe((response1) => {\n this.addImageInEditor(response1.result.content_url, response1.result.node_id);\n this.showImageUploadModal = false;\n this.dismissPops(modal);\n });\n });\n });\n });\n }\n generateAssetCreateRequest(fileName, fileType, mediaType) {\n return {\n name: fileName,\n mediaType,\n mimeType: fileType,\n createdBy: _.get(this.editorService.editorConfig, 'context.user.id'),\n creator: _.get(this.editorService.editorConfig, 'context.user.fullName'),\n channel: _.get(this.editorService.editorConfig, 'context.channel')\n };\n }\n\n uploadToBlob(signedURL, file, config): Observable<any> {\n const csp = _.get(this.editorService.editorConfig, 'context.cloudStorage.provider', 'azure');\n return new Observable((observer) => {\n const uploaderLib = new SunbirdFileUploadLib.FileUploader();\n uploaderLib.upload({ url: signedURL, file, csp })\n .on(\"error\", (error) => {\n const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.018') };\n this.isClosable = true;\n this.loading = false;\n observer.error(this.editorService.apiErrorHandling(error, errInfo));\n }).on(\"completed\", (completed) => {\n observer.next(completed);\n observer.complete();\n })\n });\n }\n\n\n dismissImageUploadModal() {\n this.showImagePicker = true;\n this.showImageUploadModal = false;\n }\n openImageUploadModal() {\n this.showImageUploadModal = true;\n this.formData = null;\n this.formConfig = this.initialFormConfig;\n this.imageUploadLoader = false;\n this.imageFormValid = false;\n this.showErrorMsg = false;\n }\n dismissPops(modal) {\n this.dismissImagePicker();\n modal.deny();\n }\n dismissImagePicker() {\n this.showImagePicker = false;\n this.modalDismissEmitter.emit({})\n }\n searchImages(event, type) {\n if (event === 'clearInput' && type === 'myImages') {\n this.query = '';\n this.searchMyInput = '';\n } else if (event === 'clearInput' && type === 'allImages') {\n this.query = '';\n this.searchAllInput = '';\n } else {\n this.query = event.target.value;\n }\n if (type === 'myImages') {\n this.getMyImages(0, this.query, true);\n } else {\n this.getAllImages(0, this.query, true);\n }\n }\n onStatusChanges(event) {\n if (event.isValid && this.imageUploadLoader) {\n this.imageFormValid = true;\n } else {\n this.imageFormValid = false;\n }\n }\n valueChanges(event) {\n this.assestData = _.merge({}, this.assestData, event);\n }\n\n ngOnDestroy() {\n if (this.modal && this.modal.deny) {\n this.modal.deny();\n }\n }\n\n}\n","<sui-modal [isClosable]=\"true\" class=\"sb-modal overflow-modal\" [isInverted]=\"false\" (dismissed)=\"dismissImagePicker()\"\n *ngIf=\"showImagePicker\" [size]=\"'normal'\" [isFullScreen]=\"false\" [mustScroll]=\"true\" #modal>\n <div class=\"sb-modal-header\">{{configService.labelConfig?.lbl?.selectImage}}</div>\n <div class=\"sb-modal-content p-0\">\n <sui-tabset>\n <div class=\"sb-tabset-menu\">\n <a class=\"sb-item\" (activate)=\"getMyImages(0)\" suiTabHeader=\"1\">{{configService.labelConfig?.lbl?.myImages}}</a>\n <a class=\"sb-item\" (activate)=\"getAllImages(0)\" suiTabHeader=\"2\">{{configService.labelConfig?.lbl?.allImage}}</a>\n </div>\n <div class=\"ui segment sb-tabset-segment m-0 pt-15\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"500\" [scrollWindow]=\"false\" (scrolled)=\"lazyloadMyImages()\" suiTabContent=\"1\">\n <div class=\"ui pb-16 d-flex pl-0\">\n <div class=\"sb-search-box small no-btn\">\n <div class=\"input-div relative\">\n <i class=\"search icon\" aria-hidden=\"true\"></i>\n <input (change)=\"searchImages($event, 'myImages')\" class=\"sb-search-input\" [(ngModel)]=\"searchMyInput\"\n type=\"text\" placeholder={{configService.labelConfig?.lbl?.searchPlaceholder}} />\n <i class=\"close icon\" aria-hidden=\"true\" (click)=\"searchImages('clearInput', 'myImages')\"></i>\n </div>\n <button class=\"sb-btn sb-btn-normal\">{{configService.labelConfig?.button_labels?.search_btn_label}}</button>\n </div>\n <p class=\"fs-0-986 ml-auto sb-color-grey\" >{{assetsCount}}</p>\n </div>\n <div *ngIf=\"!myAssets?.length && searchMyInput\" class=\"fs-0785 my-10\"> {{emptySearchMessage}} </div>\n <div class=\"sb-grid-layout image\">\n <div class=\"sb-video-content\" *ngFor=\"let data of myAssets\">\n <div class=\"sb-image-section relative position\">\n <img (click)=\"addImageInEditor(data.downloadUrl, data.identifier)\" alt=\"\" [src]=\"data.downloadUrl\">\n </div>\n </div>\n </div>\n </div>\n <div class=\"ui segment sb-tabset-segment m-0 pt-15\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"500\" [scrollWindow]=\"false\" (scrolled)=\"lazyloadAllImages()\" suiTabContent=\"2\">\n <div class=\"ui pb-16 d-flex pl-0\">\n <div class=\"sb-search-box small no-btn\">\n <div class=\"input-div relative\">\n <i class=\"search icon\" aria-hidden=\"true\"></i>\n <input (change)=\"searchImages($event, 'allImages')\" class=\"sb-search-input\" [(ngModel)]=\"searchAllInput\"\n type=\"text\" placeholder={{configService.labelConfig?.lbl?.searchPlaceholder}} />\n <i class=\"close icon\" aria-hidden=\"true\" (click)=\"searchImages('clearInput', 'allImages')\"></i>\n </div>\n <button class=\"sb-btn sb-btn-normal\">{{configService.labelConfig?.button_labels?.search_btn_label}}</button>\n </div>\n <p class=\"fs-0-986 ml-auto sb-color-grey\" >{{assetsCount}}</p>\n </div>\n <div *ngIf=\"!allImages?.length && searchAllInput\" class=\"fs-0785\"> {{emptySearchMessage}} </div>\n <div class=\"sb-grid-layout image\">\n <div class=\"sb-video-content\" *ngFor=\"let data of allImages\">\n <div class=\"sb-image-section\">\n <img (click)=\"addImageInEditor(data.downloadUrl, data.identifier)\" alt=\"\" [src]=\"data.downloadUrl\">\n </div>\n </div>\n </div>\n </div>\n </sui-tabset>\n </div>\n <div class=\"sb-modal-actions flex-jc-space-end\">\n <button (click)=\"openImageUploadModal();\" class=\"sb-btn sb-btn-primary sb-btn-normal\">{{configService.labelConfig?.lbl?.uploadAndUse}}</button>\n </div>\n</sui-modal>\n<sui-modal class=\"sb-modal overflow-modal\" [isClosable]=\"true\" [isInverted]=\"false\"\n (dismissed)=\"dismissImageUploadModal()\" *ngIf=\"showImageUploadModal\" [size]=\"'large'\" [isFullScreen]=\"false\"\n [mustScroll]=\"true\" appBodyScroll #modal>\n <div class=\"sb-modal-header\">{{configService.labelConfig?.lbl?.uploadAndUse}}</div>\n <div class=\"p-10 sb-bg-white\">\n <div class=\"d-flex\">\n <div class=\"w-50\">\n <div class=\"content\">\n <h6 class=\"mb-8 fs-normal\"> {{configService.labelConfig?.lbl?.chooseOrDragImage}}<span class=\"red\">*</span></h6>\n <div class=\"upload-image-modal-section d-flex flex-ai-center flex-jc-center flex-dc\">\n <ng-container>\n <button class=\"upload-input-button sb-btn sb-btn-success sb-btn-normal\">\n {{configService.labelConfig?.lbl?.uploadFromComputer}} \n <input (change)=\"uploadImage($event)\" type=\"file\" [accept]=\"acceptImageType\" name=\"assetfile\">\n </button>\n <div class=\"py-10 fs-0-785 sb-color-primary\" *ngIf=\"imageUploadLoader\"> {{assetName}} </div>\n <span class=\"fsmall mt-8\">{{configService.labelConfig?.lbl?.upload}} {{assetConfig.image.accepted}} \n ({{configService.labelConfig?.lbl?.maxFileSize}} {{assetConfig.image.size}}{{assetConfig.image.sizeType}})</span>\n <div *ngIf=\"showErrorMsg\" class=\"sb-color-error fsmall mt-8\">\n <p>{{errorMsg}}</p>\n </div>\n </ng-container>\n </div>\n <div class=\"ui info message sb-info-bx\">\n <ul class=\"list\">\n <li class=\"fs-0785\"> {{configService.labelConfig?.lbl?.allowedFileTypes}} {{assetConfig.image.accepted}}</li>\n <li class=\"fs-0785\"> {{configService.labelConfig?.lbl?.maximumAllowedFileSize}} {{assetConfig.image.size}}{{assetConfig.image.sizeType}}</li>\n </ul>\n </div>\n <h6 class=\"fs-0785\">{{configService.labelConfig?.lbl?.copyRightsAndLicense}}<span class=\"red\">*</span></h6>\n <p class=\"fsmall mt-8 terms-and-condition\">{{termsAndCondition}}</p>\n </div>\n </div>\n <div class=\"w-50 pl-10 ml-10 b-bl\">\n <div class=\"ui info message sb-info-bx mb-0\">\n <ul class=\"list\">\n <li class=\"fs-0785 font-weight-bold\">\n <i class=\"icon info circle\" aria-hidden=\"true\"></i>\n {{configService.labelConfig?.lbl?.dropChooseFile}} </li>\n </ul>\n </div>\n <div class=\"sb-form-fields\">\n <div class=\"form-container upload-form\">\n <sb-dynamic-form [config]=\"formConfig\" \n (statusChanges)=\"onStatusChanges($event)\" (valueChanges)=\"valueChanges($event)\"></sb-dynamic-form>\n </div>\n </div>\n </div>\n </div>\n <div class=\"sb-modal-actions flex-jc-space-between p-0\">\n <div>\n <button (click)=\"dismissPops(modal);\" class=\"mr-10 sb-btn sb-btn-primary sb-btn-normal\">{{configService.labelConfig?.button_labels?.cancel_btn_label}}</button>\n\n <button (click)=\"uploadAndUseImage(modal);\" [disabled]=\"!imageFormValid\" \n [ngClass]=\"{'sb-btn-primary': imageFormValid, 'sb-btn-disabled': !imageFormValid}\"\n class=\"sb-btn sb-btn-normal text-left\">{{configService.labelConfig?.button_labels?.upload_use_btn_label}}\n </button>\n </div>\n <div>\n <button (click)=\"dismissImageUploadModal();\" class=\" sb-btn sb-btn-primary sb-btn-normal\">{{configService.labelConfig?.button_labels?.back_btn_label}}</button>\n </div>\n </div>\n </div>\n</sui-modal>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ConfigService } from '../../services/config/config.service';\n\n@Component({\n selector: 'lib-collection-icon',\n templateUrl: './collection-icon.component.html',\n styleUrls: ['./collection-icon.component.scss']\n})\nexport class CollectionIconComponent implements OnInit {\n @Input() appIcon;\n @Input() appIconConfig;\n @Output() iconEmitter = new EventEmitter<any>();\n public showImagePicker = false;\n\n constructor(public configService: ConfigService) { }\n\n ngOnInit() {\n }\n\n initializeImagePicker() {\n if (this.appIconConfig.isAppIconEditable) {\n this.showImagePicker = true;\n } else {\n this.showImagePicker = false;\n }\n }\n\n collectionIconHandler(event) {\n this.iconEmitter.emit(event);\n this.appIcon = event.url;\n this.showImagePicker = false;\n }\n\n handleModalDismiss(event) {\n this.showImagePicker = false;\n }\n\n}\n","<ng-container>\n <div (click)=\"initializeImagePicker()\" class=\"mb-20 w-15\">\n <div class=\"app-icon-label\" [attr.data-title]=\"appIconConfig?.description ? appIconConfig?.description : null\">{{appIconConfig?.label}}</div>\n <div *ngIf='!appIcon' class=\"sb-centericon\">\n <div>\n <i id=\"icon_appIcon\" name=\"icon_appIcon\" class=\"icon image outline\" ></i>\n </div>\n <div class=\"addImageText\">{{configService.labelConfig?.lbl?.addAnImage}}</div>\n </div>\n <img *ngIf=\"appIcon\" \n class=\"ui image sb-appicon\" \n src=\"{{appIcon}}\"/>\n </div>\n <lib-asset-browser *ngIf=\"showImagePicker\" [showImagePicker]=\"showImagePicker\" (assetBrowserEmitter)=\"collectionIconHandler($event)\" (modalDismissEmitter)=\"handleModalDismiss($event)\"></lib-asset-browser>\n</ng-container>","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { merge, of, Subject, Subscription } from 'rxjs';\nimport * as _ from 'lodash-es';\nimport { takeUntil, filter, switchMap, map } from 'rxjs/operators';\nimport { TreeService } from '../../services/tree/tree.service';\nimport { EditorService } from '../../services/editor/editor.service';\nimport { FrameworkService } from '../../services/framework/framework.service';\nimport { HelperService } from '../../services/helper/helper.service';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { ConfigService } from '../../services/config/config.service';\nimport { ToasterService } from '../../services/toaster/toaster.service';\nimport * as moment from 'moment';\nlet framworkServiceTemp;\n\n@Component({\n selector: 'lib-meta-form',\n templateUrl: './meta-form.component.html',\n styleUrls: ['./meta-form.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class MetaFormComponent implements OnInit, OnChanges, OnDestroy {\n @Input() rootFormConfig: any;\n @Input() unitFormConfig: any;\n @Input() nodeMetadata: any;\n @Output() toolbarEmitter = new EventEmitter<any>();\n private onComponentDestroy$ = new Subject<any>();\n public frameworkDetails: any = {};\n public formFieldProperties: any;\n public showAppIcon = false;\n public appIconConfig: any;\n public appIcon: any;\n public previousShuffleValue: boolean;\n public subscription: Subscription;\n constructor(private editorService: EditorService, public treeService: TreeService,\n public frameworkService: FrameworkService, private helperService: HelperService,\n private configService: ConfigService, private toasterService: ToasterService) {\n framworkServiceTemp = frameworkService;\n }\n\n ngOnInit() {\n // Initialize component\n }\n\n ngOnChanges() {\n this.fetchFrameWorkDetails();\n this.setAppIconData();\n if (_.has(this.nodeMetadata, 'data.metadata.shuffle')) {\n this.setShuffleValue(this.nodeMetadata.data.metadata.shuffle);\n }\n }\n\n setAppIconData() {\n const isRootNode = _.get(this.nodeMetadata, 'data.root');\n this.appIconConfig = _.find(_.flatten(_.map(this.rootFormConfig, 'fields')), {code: 'appIcon'});\n if(_.isUndefined(this.appIconConfig)) {\n this.appIconConfig = _.find(this.rootFormConfig, {code: 'appIcon'});\n }\n if (!_.isUndefined(this.appIconConfig) && isRootNode === true) {\n this.showAppIcon = true;\n } else {\n this.showAppIcon = false;\n }\n this.appIcon = _.get(this.nodeMetadata, 'data.metadata.appIcon');\n if (this.isReviewMode()) {\n this.appIconConfig = {...this.appIconConfig , ... {isAppIconEditable: false}};\n } else {\n this.appIconConfig = {...this.appIconConfig , ... {isAppIconEditable: true}};\n }\n const ifEditable = this.ifFieldIsEditable('appIcon');\n }\n\n setShuffleValue(value) {\n if (_.isBoolean(value)) {\n this.helperService.setShuffleValue(value);\n }\n }\n\n showShuffleMessage(event) {\n this.subscription = this.helperService.shuffleValue.subscribe(shuffle => this.previousShuffleValue = shuffle);\n if (_.isBoolean(event.shuffle) && event.shuffle === true && _.isBoolean(this.previousShuffleValue) && this.previousShuffleValue === false) {\n this.toasterService.simpleInfo(_.get(this.configService, 'labelConfig.lbl.shuffleOnMessage'));\n }\n this.setShuffleValue(event.shuffle);\n }\n\n fetchFrameWorkDetails() {\n if (this.frameworkService.organisationFramework) {\n this.frameworkService.frameworkData$.pipe(\n takeUntil(this.onComponentDestroy$),\n filter(data => _.get(data, `frameworkdata.${this.frameworkService.organisationFramework}`))\n ).subscribe((frameworkDetails: any) => {\n if (frameworkDetails && !frameworkDetails.err) {\n const frameworkData = frameworkDetails.frameworkdata[this.frameworkService.organisationFramework].categories;\n this.frameworkDetails.frameworkData = frameworkData;\n this.frameworkDetails.topicList = _.get(_.find(frameworkData, {\n code: 'topic'\n }), 'terms');\n this.frameworkDetails.targetFrameworks = _.filter(frameworkDetails.frameworkdata, (value, key) => {\n return _.includes(this.frameworkService.targetFrameworkIds, key);\n });\n this.attachDefaultValues();\n }\n });\n } else {\n if (this.frameworkService.targetFrameworkIds) {\n this.frameworkService.frameworkData$.pipe(\n takeUntil(this.onComponentDestroy$),\n filter(data => _.get(data, `frameworkdata.${_.first(this.frameworkService.targetFrameworkIds)}`))\n ).subscribe((frameworkDetails: any) => {\n if (frameworkDetails && !frameworkDetails.err) {\n // const frameworkData = frameworkDetails.frameworkdata[this.frameworkService.targetFrameworkIds].categories;\n // this.frameworkDetails.frameworkData = frameworkData;\n // this.frameworkDetails.topicList = _.get(_.find(frameworkData, {\n // code: 'topic'\n // }), 'terms');\n this.frameworkDetails.targetFrameworks = _.filter(frameworkDetails.frameworkdata, (value, key) => {\n return _.includes(this.frameworkService.targetFrameworkIds, key);\n });\n this.attachDefaultValues();\n }\n });\n }\n }\n }\n\n attachDefaultValues() {\n const metaDataFields = _.get(this.nodeMetadata, 'data.metadata');\n // if (_.isEmpty(metaDataFields)) { return; }\n const isRoot = _.get(metaDataFields, 'data.root');\n const categoryMasterList = this.frameworkDetails.frameworkData ||\n !isRoot && this.frameworkService.selectedOrganisationFramework &&\n _.get(this.frameworkService.selectedOrganisationFramework, 'framework.categories');\n // tslint:disable-next-line:max-line-length\n let formConfig: any = (_.get(metaDataFields, 'visibility') === 'Default') ? _.cloneDeep(this.rootFormConfig) : _.cloneDeep(this.unitFormConfig);\n formConfig = formConfig && _.has(_.first(formConfig), 'fields') ? formConfig : [{name: '', fields: formConfig}];\n if (!_.isEmpty(this.frameworkDetails.targetFrameworks)) {\n const fieldTermsMap = new Map();\n _.forEach(this.frameworkDetails.targetFrameworks, (framework) => {\n _.forEach(formConfig, (section) => {\n _.forEach(section.fields, field => {\n const frameworkCategory = _.find(framework.categories, category => {\n return category.code === field.sourceCategory && _.includes(field.code, 'target');\n });\n if (!_.isEmpty(frameworkCategory)) {\n field.terms = _.cloneDeep(frameworkCategory.terms);\n fieldTermsMap.set(field.code, field.terms);\n }\n });\n });\n });\n\n _.forEach(formConfig, (section) => {\n const fields = section.fields || [];\n for (let i = 0; i < fields.length - 1; i++) {\n const currentField = fields[i];\n const nextField = fields[i + 1];\n const nextFieldDependsOnCurrent = nextField.depends && Array.isArray(nextField.depends) && nextField.depends.includes(currentField.code);\n if (currentField.terms && fieldTermsMap.has(nextField.code) && nextFieldDependsOnCurrent) {\n const nextFieldTerms = fieldTermsMap.get(nextField.code);\n currentField.terms.forEach(term => {\n if (term && (!term.associations || _.isEmpty(term.associations))) { \n term.associations = nextFieldTerms.map(nextTerm => ({\n identifier: nextTerm.identifier,\n code: nextTerm.code,\n name: nextTerm.name,\n description: nextTerm.description,\n category: nextTerm.category,\n status: nextTerm.status\n }));\n }\n });\n }\n }\n });\n }\n\n _.forEach(formConfig, (section) => {\n _.forEach(section.fields, field => {\n\n if (metaDataFields) {\n if (_.has(metaDataFields, field.code)) {\n field.default = _.get(metaDataFields, field.code);\n } else if (_.includes(['maxTime', 'warningTime'], field.code)) {\n const value = _.get(metaDataFields, `timeLimits.${field.code}`);\n field.default = !_.isEmpty(value) ?\n moment.utc(moment.duration(value, 'seconds').asMilliseconds()).format(this.helperService.getTimerFormat(field)) : '';\n }\n }\n if (field.code === 'framework') {\n field.range = this.frameworkService.frameworkValues;\n field.options = this.getFramework;\n }\n\n if (!_.includes(field.depends, 'framework') && !_.includes(field.code, 'target')) {\n const frameworkCategory = _.find(categoryMasterList, category => {\n return (category.code === field.sourceCategory || category.code === field.code);\n });\n if (!_.isEmpty(frameworkCategory)) {\n field.terms = frameworkCategory.terms;\n }\n }\n\n if (field.code === 'license') {\n const defaultLicense = _.get(metaDataFields, field.code);\n field.default = !_.isEmpty(defaultLicense) ? defaultLicense : this.editorService.editorConfig.context.defaultLicense;\n const licenses = this.helperService.getAvailableLicenses();\n field.range = licenses ? _.map(licenses, 'name') : [];\n }\n\n if (field.code === 'additionalCategories') {\n const channelInfo = this.helperService.channelInfo;\n const additionalCategories = _.uniq(_.get(channelInfo,\n `${this.configService.categoryConfig.additionalCategories[this.editorService.editorConfig.config.objectType]}`) ||\n _.get(this.editorService.editorConfig, 'context.additionalCategories'));\n if (!_.isEmpty(additionalCategories)) {\n field.range = _.uniq(additionalCategories);\n }\n }\n\n if (field.code === 'copyright') {\n const channelData = this.helperService.channelInfo;\n field.default = _.get(metaDataFields, field.code);\n if (_.isEmpty(field.default) && this.editorService.editorConfig.config.setDefaultCopyRight) {\n field.default = channelData && channelData.name;\n }\n }\n\n if (field.code === 'maxQuestions') {\n const activeNode = this.treeService.getActiveNode();\n const rootFirstChildNode = this.editorService.getContentChildrens(activeNode);\n if (rootFirstChildNode && rootFirstChildNode.length > 0) {\n field.range = _.times(_.size(rootFirstChildNode), index => index + 1);\n }\n }\n\n if (field.code === 'author') {\n const defaultAuthor = _.get(metaDataFields, field.code);\n field.default = !_.isEmpty(defaultAuthor) ? defaultAuthor : _.get(this.editorService.editorConfig, 'context.user.fullName');\n }\n\n if (field.code === 'showTimer') {\n field.options = this.showTimer;\n }\n if (field.code === 'instructions') {\n field.default = _.get(metaDataFields, 'instructions.default') || '' ;\n }\n if (field.code === 'setPeriod') {\n field.default = !_.isEmpty(metaDataFields, 'endDate') ? 'Yes' : 'No' ;\n }\n if (field.code === 'allowECM') {\n field.default = _.get(metaDataFields, 'recordedBy') !== 'Self' ? 'Yes' : 'No' ;\n }\n\n if (field.code === 'instances') {\n field.default = !_.isEmpty(metaDataFields, 'instances') ? _.get(metaDataFields, 'instances.label') : '' ;\n }\n\n if ((_.isEmpty(field.range) || _.isEmpty(field.terms)) &&\n !field.editable && !_.isEmpty(field.default)) {\n if (_.has(field, 'terms')) {\n field.terms = [];\n if (_.isArray(field.default)) {\n field.terms = field.default || [];\n } else {\n field.terms.push(field.default);\n }\n } else {\n field.range = [];\n if (_.isArray(field.default)) {\n field.range = field.default;\n } else {\n field.range.push(field.default);\n }\n }\n }\n\n if (field.inputType === 'nestedselect') {\n _.map(field.range, val => {\n return {\n value: val.value || val,\n label: val.value || val\n };\n });\n }\n\n const ifEditable = this.ifFieldIsEditable(field.code); \n _.set(field, 'editable', ifEditable);\n\n });\n });\n\n this.formFieldProperties = _.cloneDeep(formConfig);\n console.log(this.formFieldProperties);\n }\n isReviewMode() {\n return _.includes([ 'review', 'read', 'sourcingreview', 'orgreview' ], this.editorService.editorMode);\n }\n ifFieldIsEditable(fieldCode) {\n const ediorMode = this.editorService.editorMode;\n if (!this.isReviewMode()) {\n return true;\n }\n const editableFields = _.get(this.editorService.editorConfig.config, 'editableFields');\n if (editableFields && !_.isEmpty(editableFields[ediorMode]) && _.includes(editableFields[ediorMode], fieldCode)) {\n return true;\n }\n return false;\n }\n outputData(eventData: any) { }\n\n onStatusChanges(event) {\n this.toolbarEmitter.emit({ button: 'onFormStatusChange', event });\n }\n\n appIconDataHandler(event) {\n this.appIcon = event.url;\n this.treeService.updateAppIcon(event.url);\n }\n\n showTimer(control, depends: FormControl[], formGroup: FormGroup, loading, loaded) {\n const oldValue = {};\n const response = merge(..._.map(depends, depend => depend.valueChanges)).pipe(\n switchMap((value: any) => {\n const isDependsInvalid = _.includes(_.map(depends, depend => depend.invalid), true);\n const dependsKeyValue = _.map(depends, (depend, key) => {\n return { [key]: depend.value };\n });\n if (!isDependsInvalid) {\n const maxTimeValue = _.find(dependsKeyValue, 'maxTime');\n if ( maxTimeValue && maxTimeValue.maxTime === '00:00:00') {\n return of(false);\n }\n return of(true);\n } else {\n return of(false);\n }\n })\n );\n return response;\n }\n\n getFramework(control, depends: FormControl[], formGroup: FormGroup, loading, loaded) {\n const response = control.valueChanges.pipe(\n switchMap((value: any) => {\n if (!_.isEmpty(value)) {\n return framworkServiceTemp.getFrameworkCategories(value).pipe(map(res => {\n const frameworkResponse = _.get(res, 'result');\n framworkServiceTemp.selectedOrganisationFramework = frameworkResponse;\n return frameworkResponse;\n }));\n } else {\n return of(null);\n }\n })\n );\n return response;\n }\n\n valueChanges(event: any) {\n if (_.has(event, 'shuffle')) {\n this.showShuffleMessage(event);\n }\n const data = _.omit(event, ['allowECM', 'levels', 'setPeriod', 'instances']);\n if (!_.isEmpty(event?.levels)) {\n data.outcomeDeclaration = {\n levels: this.createLeavels(event.levels)\n };\n }\n if (!_.isEmpty(event?.instances)) {\n data.instances = { label: event?.instances };\n }\n if (!_.isEmpty(this.appIcon) && this.showAppIcon) {\n data.appIcon = this.appIcon;\n }\n \n if (this.isReviewMode() && !data.name) {\n const nodeTitle = this.nodeMetadata?.data?.metadata?.name;\n if (nodeTitle) {\n data.name = nodeTitle;\n }\n }\n \n this.toolbarEmitter.emit({ button: 'onFormValueChange', data });\n this.treeService.updateNode(data);\n }\n\n createLeavels(levels) {\n const obj = {};\n _.forEach(levels, (el, index) => {\n obj[`L${index + 1}`] = {\n label : el\n };\n });\n return obj;\n }\n\n\n ngOnDestroy() {\n this.onComponentDestroy$.next();\n this.onComponentDestroy$.complete();\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}","<ng-container *ngIf=\"formFieldProperties\">\n <span class=\"meta-form\">\n <lib-collection-icon *ngIf=\"showAppIcon\" [appIcon]=\"appIcon\" [appIconConfig]=\"appIconConfig\" (iconEmitter)=\"appIconDataHandler($event)\"></lib-collection-icon>\n <sb-dynamic-form [config]=\"formFieldProperties\" (initialize)=\"outputData($event)\" (statusChanges)=\"onStatusChanges($event)\" (valueChanges)=\"valueChanges($event)\"></sb-dynamic-form>\n </span>\n</ng-container>","import { Component, OnInit, Input, Output, EventEmitter, OnChanges, ViewEncapsulation } from '@angular/core';\nimport * as _ from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { takeUntil, filter, take } from 'rxjs/operators';\nimport { TreeService } from '../../services/tree/tree.service';\nimport { EditorService } from '../../services/editor/editor.service';\nimport { FrameworkService } from '../../services/framework/framework.service';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\nimport { ConfigService } from '../../services/config/config.service';\nimport { HelperService } from '../../services/helper/helper.service';\n\n@Component({\n selector: 'lib-library-filter',\n templateUrl: './library-filter.component.html',\n styleUrls: ['./library-filter.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class LibraryFilterComponent implements OnInit, OnChanges {\n @Input() sessionContext: any;\n @Input() filterValues: any;\n @Input() filterOpenStatus: boolean;\n @Input() searchFormConfig: any;\n @Input() frameworkId: any;\n @Output() filterChangeEvent: EventEmitter<any> = new EventEmitter();\n public filterConfig: any;\n public isFilterShow = false;\n public filterFields: any;\n public telemetryPageId: string;\n private onComponentDestroy$ = new Subject<any>();\n public frameworkDetails: any = {};\n public currentFilters: any;\n public searchQuery: string;\n\n constructor(private frameworkService: FrameworkService,\n public editorService: EditorService,\n public telemetryService: EditorTelemetryService,\n public treeService: TreeService,\n public configService: ConfigService,\n private helperService: HelperService) { }\n\n ngOnInit() {\n this.filterFields = this.searchFormConfig;\n const selectedNode = this.treeService.getActiveNode();\n let contentTypes = _.flatten(\n _.map(_.get(this.editorService.editorConfig.config, `hierarchy.level${selectedNode.getLevel() - 1}.children`), (val) => {\n return val;\n }));\n\n if (_.isEmpty(contentTypes)) {\n contentTypes = _.map(this.helperService.contentPrimaryCategories, 'name');\n }\n\n this.currentFilters = {\n primaryCategory: contentTypes\n };\n this.setFilterDefaultValues();\n this.fetchFrameWorkDetails();\n }\n\n setFilterDefaultValues() {\n _.forEach(this.filterFields, (field) => {\n if (this.filterValues[field.code]) {\n field.default = this.filterValues[field.code];\n }\n });\n }\n\n ngOnChanges() {\n this.isFilterShow = this.filterOpenStatus;\n }\n\n fetchFrameWorkDetails() {\n this.frameworkService.frameworkData$.pipe(\n takeUntil(this.onComponentDestroy$),\n filter(data => _.get(data, `frameworkdata.${this.frameworkId}`)),\n take(1)\n ).subscribe((frameworkDetails: any) => {\n if (frameworkDetails && !frameworkDetails.err) {\n const frameworkData = frameworkDetails.frameworkdata[this.frameworkId].categories;\n this.frameworkDetails.frameworkData = frameworkData;\n this.frameworkDetails.topicList = _.get(_.find(frameworkData, {\n code: 'topic'\n }), 'terms');\n this.frameworkDetails.targetFrameworks = _.filter(frameworkDetails.frameworkdata, (value, key) => {\n return _.includes(this.frameworkService.targetFrameworkIds, key);\n });\n this.populateFilters();\n }\n });\n }\n\n populateFilters() {\n const categoryMasterList = this.frameworkDetails.frameworkData;\n _.forEach(categoryMasterList, (category) => {\n _.forEach(this.filterFields, (formFieldCategory) => {\n if (category.code === formFieldCategory.code) {\n formFieldCategory.terms = category.terms;\n }\n });\n });\n\n const index = this.filterFields.findIndex(e => _.get(e, 'code') === 'primaryCategory');\n if (index !== -1) {\n this.filterFields[index].range = this.currentFilters.primaryCategory;\n }\n\n this.filterConfig = [{\n name: 'searchForm',\n fields: this.filterFields\n }];\n }\n\n onQueryEnter(event) {\n this.emitApplyFilter();\n return false;\n }\n\n showfilter() {\n this.isFilterShow = !this.isFilterShow;\n this.filterChangeEvent.emit({\n action: 'filterStatusChange',\n filterStatus: this.isFilterShow\n });\n }\n\n resetFilter() {\n this.filterValues = {\n primaryCategory: _.map(this.helperService.contentPrimaryCategories, 'name')\n };\n this.searchQuery = '';\n _.forEach(this.filterFields, (field) => {\n field.default = '';\n });\n\n this.filterConfig = null;\n this.filterConfig = [{\n name: 'searchForm',\n fields: _.cloneDeep(this.filterFields)\n }];\n\n this.emitApplyFilter();\n }\n\n applyFilter() {\n this.emitApplyFilter();\n }\n\n emitApplyFilter() {\n this.filterChangeEvent.emit({\n action: 'filterDataChange',\n filters: this.filterValues,\n query: this.searchQuery\n });\n }\n outputData($event) {\n }\n onStatusChanges($event) {\n }\n valueChanges($event) {\n this.filterValues = $event;\n }\n}\n","<div class=\"sb-prominent-filter sb-bg-header-blue\">\n <div class=\"ui container pt-5 pb-20\">\n <div class=\"d-flex flex-w-wrap flex-jc-space-between flex-ai-center\">\n <div class=\"sb-search-box small no-btn\">\n <div class=\"input-div relative\">\n <i class=\"search icon\"></i>\n <input id=\"searchInputField\" class=\"sb-search-input\" [(ngModel)]=\"searchQuery\" type=\"text\" (keyup.enter)=\"onQueryEnter($event);\" placeholder={{configService.labelConfig?.lbl?.searchLibrary}}\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('search_library','click',undefined, this.telemetryService?.telemetryPageId)\"/>\n </div>\n <button class=\"sb-btn sb-btn-normal\">{{configService.labelConfig?.lbl?.search}}</button>\n </div>\n <div class=\"fs-0-785 cursor-pointer\" (click)=\"showfilter()\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('filter_accordion','click',undefined, this.telemetryService?.telemetryPageId)\">\n {{configService.labelConfig?.lbl?.filterText}}\n <i *ngIf=\"isFilterShow\" class=\"caret up icon\"></i>\n <i *ngIf=\"!isFilterShow\" class=\"caret down icon\"></i>\n </div>\n </div>\n\n <div class=\"library-filter pt-16\" *ngIf=\"isFilterShow\">\n <hr class=\"mb-20\">\n <ng-container *ngIf=\"filterConfig\">\n <sb-dynamic-form [config]=\"filterConfig\" (initialize)=\"outputData($event)\"\n (statusChanges)=\"onStatusChanges($event)\" (valueChanges)=\"valueChanges($event)\"></sb-dynamic-form>\n </ng-container>\n <div class=\"d-flex flex-as-center pt-10 sb-btn-cover flex-jc-space-end\">\n <button type=\"button\" class=\"sb-btn sb-btn-normal sb-btn-outline-primary ml-5\" (click)=\"resetFilter();\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('reset','click','submit', this.telemetryService?.telemetryPageId)\"\n >{{configService.labelConfig?.button_labels?.reset_btn_label}}</button>\n <button type=\"button\" class=\"sb-btn sb-btn-normal sb-btn-primary ml-15\" (click)=\"applyFilter();\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('apply','click','submit', this.telemetryService?.telemetryPageId, {filters: filterValues})\"\n >{{configService.labelConfig?.button_labels?.apply_btn_label}}</button>\n </div>\n </div>\n </div>\n</div>","import { Component, OnInit, Input, Output, EventEmitter, ViewEncapsulation, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ConfigService } from '../../services/config/config.service';\nimport { EditorService } from '../../services/editor/editor.service';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\nimport { FrameworkService } from '../../services/framework/framework.service';\nimport * as _ from 'lodash-es';\n\n@Component({\n selector: 'lib-library-list',\n templateUrl: './library-list.component.html',\n styleUrls: ['./library-list.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class LibraryListComponent implements OnInit, OnDestroy {\n@Input() contentList;\n@Input() showAddedContent: any;\n@Output() contentChangeEvent = new EventEmitter<any>();\n@Output() moveEvent = new EventEmitter<any>();\n@Input() selectedContent: any;\npublic sortContent = false;\npublic categoryCode: string;\nprivate destroy$ = new Subject<void>();\n constructor(public editorService: EditorService, public telemetryService: EditorTelemetryService,\n public configService: ConfigService, private frameworkService: FrameworkService ) { }\n\n ngOnInit() {\n this.getFrameworkCategories();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n getFrameworkCategories() {\n const frameworkId = this.frameworkService.organisationFramework;\n if (frameworkId) {\n this.frameworkService.getTargetFrameworkCategories([frameworkId]);\n this.frameworkService.frameworkData$.pipe(\n takeUntil(this.destroy$)\n ).subscribe(frameworkData => {\n if (frameworkData?.frameworkdata[frameworkId]) {\n const categories = frameworkData.frameworkdata[frameworkId].categories || [];\n if (categories.length) {\n this.categoryCode = categories[0].code;\n }\n }\n }, err => {\n console.error('Failed to get framework data:', err);\n });\n }\n }\n\n onContentChange(selectedContent: any) {\n this.contentChangeEvent.emit({content: selectedContent});\n }\n\n changeFilter() {\n this.moveEvent.emit({\n action: 'showFilter'\n });\n }\n\n onShowAddedContentChange() {\n this.moveEvent.emit({\n action: 'showAddedContent',\n status: this.showAddedContent\n });\n }\n sortContentList() {\n this.sortContent = !this.sortContent;\n this.moveEvent.emit({\n action: 'sortContentList',\n status: this.sortContent\n });\n }\n addToLibrary() {\n if (this.editorService.checkIfContentsCanbeAdded()) {\n this.moveEvent.emit({\n action: 'openHierarchyPopup'\n });\n }\n }\n\n}\n","<div class=\"sbtoc-container pr-8 mt-20\">\n <div class=\"title sb-color-primary font-weight-bold fs-1\">\n Showing ({{contentList?.length}}) most relevant content\n </div>\n <div class=\"d-flex flex-w-wrap flex-jc-space-between flex-ai-baseline mb-15\">\n <div>\n <small class=\"sb-color-gray-200 d-block pb-10\">{{configService.labelConfig?.lbl?.selectContentToAdd}}</small>\n <sui-checkbox class=\"toggle\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('show_content_added_to_collection','click','launch', telemetryService?.telemetryPageId, {showAddedContent: !showAddedContent})\"\n [(ngModel)]=\"showAddedContent\" (checkChange)=\"onShowAddedContentChange();\"></sui-checkbox>\n <small class=\"d-block mt-5 fs-0785\"> {{configService.labelConfig?.lbl?.showContentAddedToCollection}}</small>\n </div>\n <div class=\"sb-w-75\">\n <label class=\"d-block font-weight-normal fs-0785\">{{configService.labelConfig?.lbl?.sortBy}}</label>\n <div (click)=\"sortContentList();\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('sort_by','click','launch', telemetryService?.telemetryPageId, {sortContent: !sortContent})\"\n [ngClass]=\"{'sb-btn-outline-primary': sortContent}\" class=\"sb-btn sb-btn-outline-gray sb-btn-normal ripple\">{{configService.labelConfig?.lbl?.sortlabel}}</div>\n</div>\n </div>\n <!-- Class separator -->\n <div class=\"sb-library-scroll\">\n <div *ngFor=\"let content of contentList\">\n <div class=\"sbchapter__item mb-0 d-flex flex-dc\" [ngClass]=\" {'selected':content.identifier === selectedContent.identifier}\"\n (click)=\"onContentChange(content)\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('on_click_content','click','launch', telemetryService?.telemetryPageId)\" \n [class.d-none]=\"content.isAdded && !showAddedContent\">\n <!-- <div class=\"sbchapter__img\"><img src=\"./assets/images/book.png\" /></div> -->\n <div class=\"d-flex w-100\">\n <div class=\"w-60\">\n <h4 class=\"pl-8\">\n <div class=\"sbcard__title mb-0 font-weight-bold ellipsis w-75\" popupDelay=\"1000\" suiPopup\n popupText=\"{{content.name}}\">{{content.name}}</div>\n <div class=\"sbchapter__item__title text-left sb__ellipsis sb__ellipsis--two mr-8 sb-color-black\">\n <span *ngIf=\"categoryCode && content[categoryCode]\"> By {{content[categoryCode]}} </span>\n </div>\n </h4>\n </div>\n <div class=\"w-40\">\n <div class=\"text-right\" [hidden]=\"!content.isAdded\">\n <button type=\"button\" class=\"text-right py-0 sb-btn sb-btn-normal sb-btn-link sb-btn-hover-none\n sb-btn-link-secondary sb-left-icon-btn fs-0-785\"><i class=\"circle check icon\"></i>\n {{configService.labelConfig?.lbl?.addedToCollection}}</button>\n </div>\n <div libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('select_content','click','launch', telemetryService?.telemetryPageId)\" class=\"text-right pr-5\" *ngIf=\"content.identifier === selectedContent.identifier\">\n <button class=\"sb-btn sb-btn-xs sb-btn-dark-green sb-left-icon-btn font-weight-bold text-inherit\" (click)=\"addToLibrary()\">\n <i class=\"plus square icon mr-4\" ></i>{{configService.labelConfig?.lbl?.selectContent}}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <h6 class=\"sb-color-gray-400 font-weight-normal mt-20\">{{configService.labelConfig?.lbl?.changingFilters}} </h6>\n <a class=\"sb-color-primary cursor-pointer font-weight-bold fs-0-785 text-inherit\" (click)=\"changeFilter()\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('change_filter','click','launch', telemetryService?.telemetryPageId)\">{{configService.labelConfig?.lbl?.ChangeFilters}}</a>\n</div>","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ConfigService } from '../../services/config/config.service';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\nimport { EditorService } from '../../services/editor/editor.service';\nimport { FrameworkService } from '../../services/framework/framework.service';\nimport * as _ from 'lodash-es';\n@Component({\n selector: 'lib-library-player',\n templateUrl: './library-player.component.html',\n styleUrls: ['./library-player.component.scss']\n})\nexport class LibraryPlayerComponent implements OnInit, OnDestroy {\n@Input() contentListDetails;\n@Output() moveEvent = new EventEmitter<any>();\npublic categoryCode: string;\nprivate destroy$ = new Subject<void>();\n constructor(public telemetryService: EditorTelemetryService, public editorService: EditorService,\n public configService: ConfigService, private frameworkService: FrameworkService) { }\n\n ngOnInit() {\n this.getFrameworkCategories();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n getFrameworkCategories() {\n const frameworkId = this.frameworkService.organisationFramework;\n if (frameworkId) {\n this.frameworkService.getTargetFrameworkCategories([frameworkId]);\n this.frameworkService.frameworkData$.pipe(\n takeUntil(this.destroy$)\n ).subscribe(frameworkData => {\n if (frameworkData?.frameworkdata[frameworkId]) {\n const categories = frameworkData.frameworkdata[frameworkId].categories || [];\n if (categories.length) {\n this.categoryCode = categories[0].code;\n }\n }\n }, err => {\n console.error('Failed to get framework data:', err);\n });\n }\n }\n addToLibrary() {\n if (this.editorService.checkIfContentsCanbeAdded()) {\n this.moveEvent.emit({\n action: 'openHierarchyPopup'\n });\n }\n}\n\n}","\n<div class=\"d-flex flex-w-wrap content-video__player__details mt-15 pb-0 pl-0\">\n <div class=\"d-flex flex-dc flex-basis-1\">\n <div class=\"content-video__player__title mr-auto sb__ellipsis sb__ellipsis--one mb-5\" >{{contentListDetails?.name}} </div>\n <div class=\"content-video__player__title__subtitle fs-0-785 mb-10\"><span class=\"mr-8\" *ngIf=\"categoryCode && contentListDetails[categoryCode]\">By {{contentListDetails[categoryCode]}}</span>\n <span *ngIf=\"contentListDetails?.me_averageRating\"> <span class=\"mr-8\" > {{contentListDetails?.me_averageRating}}</span>\n <i class=\"icon star\"></i> </span>\n <div class=\"textbookBtnLink\" *ngIf=\"contentListDetails?.isAdded\">\n <button type=\"button\" class=\"sb-btn-link sb-btn-hover-none py-0\n sb-btn-link-secondary sb-left-icon-btn fs-0-785\"><i aria-hidden=\"true\" class=\"circle check icon green-color\"></i>\n {{configService.labelConfig?.lbl?.addedToCollection}}</button>\n </div>\n </div>\n </div>\n <div class=\"d-flex content-video__player__screenpart mb-10\" (click)=\"addToLibrary()\">\n <button type=\"button\" class=\"sb-btn sb-btn-normal sb-btn-dark-green font-weight-bold\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('select_content','click','launch', telemetryService?.telemetryPageId)\"\n ><i class=\"plus square icon\"></i>{{configService.labelConfig?.lbl?.selectContent}}</button>\n </div>\n</div>\n<lib-contentplayer-page [contentMetadata]=\"contentListDetails\"></lib-contentplayer-page>","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ViewEncapsulation } from '@angular/core';\nimport * as _ from 'lodash-es';\nimport { ConfigService } from '../../services/config/config.service';\nimport { EditorService } from '../../services/editor/editor.service';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\nimport { ToasterService } from '../../services/toaster/toaster.service';\n\n\n@Component({\n selector: 'lib-resource-reorder',\n templateUrl: './resource-reorder.component.html',\n styleUrls: ['./resource-reorder.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ResourceReorderComponent implements OnInit {\n unitSelected: string;\n @Input() selectedContentDetails;\n @Input() collectionId;\n @Input() collectionUnits;\n @Input() programContext;\n @Input() prevUnitSelect;\n @Input() collectionhierarcyData;\n showMoveButton = false;\n isContentAdded = false;\n @ViewChild('modal', {static: true}) modal;\n @Output() moveEvent = new EventEmitter<any>();\n collectionUnitsBreadcrumb: any = [];\n constructor(private editorService: EditorService, public configService: ConfigService,\n public telemetryService: EditorTelemetryService, private toasterService: ToasterService) {\n }\n\n ngOnInit() {\n this.setCollectionUnitBreadcrumb();\n }\n\n addResource() {\n this.editorService.addResourceToHierarchy(this.collectionId, this.prevUnitSelect, this.selectedContentDetails.identifier)\n .subscribe((data) => {\n this.modal.deny();\n this.moveEvent.emit({\n action: 'contentAdded',\n data: this.selectedContentDetails\n });\n this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.005'));\n }, err => {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.001'));\n });\n }\n\n closePopup() {\n this.moveEvent.emit({\n action: 'closeHierarchyPopup',\n contentId: '',\n collection: {\n identifier: ''\n }\n });\n }\n\n getParentsHelper(tree: any, id: string, parents: Array<any>) {\n const self = this;\n if (tree.identifier === id) {\n return {\n found: true,\n parents: [...parents, tree.name]\n };\n }\n let result = {\n found: false,\n };\n if (tree.children) {\n _.forEach(tree.children, (subtree, key) => {\n const maybeParents = _.concat([], parents);\n if (tree.identifier !== undefined) {\n maybeParents.push(tree.name);\n }\n const maybeResult: any = self.getParentsHelper(subtree, id, maybeParents);\n if (maybeResult.found) {\n result = maybeResult;\n return false;\n }\n });\n }\n return result;\n }\n\n getParents(data: Array<any>, id: string) {\n const tree = {\n children: data\n };\n return this.getParentsHelper(tree, id, []);\n }\n\n setCollectionUnitBreadcrumb(): void {\n if (!this.prevUnitSelect) { return; }\n const selctedUnitParents: any = this.getParents(this.collectionUnits, this.prevUnitSelect);\n if (selctedUnitParents.found) {\n this.collectionUnitsBreadcrumb = [...selctedUnitParents.parents];\n }\n // check selected content is added to collection atleast once\n const isAdded = (_.get(this.selectedContentDetails, 'isAdded') ||\n _.includes(this.collectionhierarcyData.childNodes, this.selectedContentDetails.identifier));\n\n // check is content already added atleast once to collection if yes then check in children otherwise return false for isContentAdded\n this.isContentAdded = !isAdded ? isAdded :\n this.isContentAlreadyPresentInSelectedScetionLevel(_.get(this.collectionhierarcyData, 'children'));\n }\n isContentAlreadyPresentInSelectedScetionLevel(children) {\n const self = this;\n let isContentAdded = false;\n const selectedUnit = _.find(children, { identifier: this.prevUnitSelect });\n if (selectedUnit && _.get(selectedUnit, 'children')) {\n _.forEach(_.get(selectedUnit, 'children'), data => {\n // tslint:disable-next-line:max-line-length\n if ((data.identifier === this.selectedContentDetails.identifier) && _.includes(this.collectionhierarcyData.childNodes, this.selectedContentDetails.identifier)) {\n isContentAdded = true;\n return true;\n }\n });\n }\n _.forEach(children, data => {\n if (data.children) {\n const res = self.isContentAlreadyPresentInSelectedScetionLevel(data.children);\n if (res) {\n isContentAdded = true;\n return false;\n }\n }\n });\n return isContentAdded;\n }\n}\n","<sui-modal [mustScroll]=\"true\" [isClosable]=\"true\" [transitionDuration]=\"0\" [size]=\"'normal'\" class=\"sb-modal\"\n appBodyScroll (dismissed)=\"closePopup()\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.whereDoYouWantToAddThisContent}}\n </div>\n\n\n <ng-template #rootNodeTemplateRef let-root>\n <sui-accordion class=\"styled fluid sb-accordion sb-chapterlist-accordion sb-select-content\" [closeOthers]=\"true\">\n <div *ngIf=\"root.children && root.children.length\" class=\"root__children\">\n <ng-template ngFor [ngForOf]=\"root.children\" [ngForTemplate]=\"nodeTemplateRef\">\n </ng-template>\n </div>\n </sui-accordion>\n </ng-template>\n\n <ng-template #nodeTemplateRef let-child>\n <sui-accordion-panel [isOpen]=\"child?.children && child?.children.length > 0 ? true : false\">\n <div title class=\"sb-accordion-title d-flex flex-ai-center mt-0\">\n <div class=\"item d-flex flex-ai-center cursor-pointer w-100\">\n <label for=\"{{child?.identifier}}\" class=\"sb-color-primary font-weight-bold mb-0\">{{child?.name}}</label>\n <div class=\"textbookBtnLink\" *ngIf=\"child.identifier === prevUnitSelect && isContentAdded\">\n <button type=\"button\" class=\"sb-btn sb-btn-normal sb-btn-link sb-btn-hover-none\n sb-btn-link-secondary sb-left-icon-btn fs-0-785\"><i class=\"circle check icon\" aria-hidden=\"true\"></i>\n {{configService.labelConfig?.lbl?.alreadyContentPresent}}</button>\n </div>\n </div>\n <div class=\"sb-radio-btn-checkbox sb-radio-btn-primary\" [ngClass]=\"{'sb-disabled': child?.showButton}\">\n <input type=\"radio\" disabled=\"{{child?.showButton}}\" id=\"{{child?.identifier}}\" value=\"{{child?.identifier}}\"\n name=\"mainUnit\" [(ngModel)]=\"prevUnitSelect\" (change)=\"setCollectionUnitBreadcrumb();\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata(child?.identifier,'select','radio_button', telemetryService?.telemetryPageId, {key:'dialog_id',value:'add_to'})\">\n <label for=\"{{child?.identifier}}\" class=\"sb-color-primary font-weight-bold\"></label>\n </div>\n <div class=\"chevron-icon\">\n <i class=\"chevron down icon\"></i>\n </div>\n </div>\n <div content class=\"sb-row-bb\" *ngIf=\"child.children && child.children.length\">\n <div class=\"item cursor-pointer w-100\">\n <ng-template ngFor [ngForOf]=\"child.children\" [ngForTemplate]=\"nodeTemplateRef\">\n </ng-template>\n </div> \n </div>\n </sui-accordion-panel>\n </ng-template>\n\n <!-- Selection of Layout in modal -->\n <div class=\"sb-modal-content sb-chapterlist-modal scrolling content sb-dock-accordion py-20\">\n <ng-template [ngTemplateOutlet]=\"rootNodeTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: { children: collectionUnits } }\">\n </ng-template>\n </div>\n\n <div class=\"sb-modal-actions flex-dr flex-jc-space-between py-10\" *ngIf=\"selectedContentDetails\">\n <div class=\"ui tiny breadcrumb fxsmall line-height-1-3 w-80 d-flex sb-content-breadcrumb\"\n [style.visibility]=\"(collectionUnitsBreadcrumb.length > 0? 'visible' : 'hidden')\">\n {{configService.labelConfig?.lbl?.addingTo}}<span class=\"font-weight-bold px-10 section\">{{selectedContentDetails?.name}}</span>\n <span class=\"section ml-10\" *ngFor=\"let unit of collectionUnitsBreadcrumb;first as first;last as last;\">\n <i class=\"right chevron icon divider b-0\" [hidden]=\"first\"></i>\n <span [class.font-weight-bold]=\"first\"> {{ unit }}</span>\n </span>\n </div>\n <div class=\"w-20 text-right\">\n <button id=\"addResource\" [disabled] = \"isContentAdded\" class=\"sb-btn sb-btn-normal text-inherit text-right\"\n [ngClass]=\"{'sb-btn-primary': !isContentAdded, 'sb-btn-disabled': isContentAdded}\"\n (click)=\"addResource()\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('add_content','click','submit', telemetryService?.telemetryPageId, {key:'dialog_id',value:'add_to'})\">\n {{configService.labelConfig?.lbl?.addContent}}\n </button>\n </div>\n </div>\n</sui-modal>\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-skeleton-loader',\n templateUrl: './skeleton-loader.component.html',\n styleUrls: ['./skeleton-loader.component.scss']\n})\nexport class SkeletonLoaderComponent implements OnInit {\n\n @Input() height: string;\n @Input() width: string;\n @Input() mTop: string;\n skeletonStyles: object;\n constructor() { }\n\n ngOnInit() {\n this.skeletonStyles = {\n height : this.height ? this.height : '8px',\n width : this.width ? this.width : '100%',\n 'margin-top' : this.mTop ? this.mTop : '0'\n };\n }\n\n}\n","<div [ngStyle]=\"skeletonStyles\" class=\"loading\"></div>","import { Component, EventEmitter, Input, OnInit, Output, AfterViewInit, ViewEncapsulation, OnDestroy } from '@angular/core';\nimport * as _ from 'lodash-es';\nimport { TreeService } from '../../services/tree/tree.service';\nimport { EditorService } from '../../services/editor/editor.service';\nimport { ToasterService } from '../../services/toaster/toaster.service';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\nimport { ConfigService } from '../../services/config/config.service';\nimport { Router } from '@angular/router';\nimport { HelperService } from '../../services/helper/helper.service';\n\n@Component({\n selector: 'lib-library',\n templateUrl: './library.component.html',\n styleUrls: ['./library.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class LibraryComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() libraryInput: any;\n @Output() libraryEmitter = new EventEmitter<any>();\n public searchFormConfig: any;\n public pageId = 'add_from_library';\n public contentList: any;\n public selectedContent: any;\n public childNodes: any;\n showSelectResourceModal = false;\n collectionUnits: any;\n collectionHierarchy = [];\n collectionId: string;\n public showAddedContent = false;\n public showLoader = true;\n public isFilterOpen = false;\n collectionhierarcyData: any;\n public defaultFilters: any;\n pageStartTime: any;\n selectedUnit: string;\n public frameworkId: any;\n constructor(public telemetryService: EditorTelemetryService,\n private editorService: EditorService,\n private router: Router,\n private treeService: TreeService,\n private toasterService: ToasterService,\n public configService: ConfigService,\n private helperService: HelperService) {\n this.pageStartTime = Date.now();\n }\n\n ngOnInit() {\n const activeNode = this.treeService.getActiveNode();\n this.selectedUnit = _.get(activeNode, 'data.id');\n this.collectionId = _.get(this.libraryInput, 'collectionId');\n this.searchFormConfig = _.get(this.libraryInput, 'searchFormConfig');\n this.editorService.fetchCollectionHierarchy(this.collectionId).subscribe((response: any) => {\n this.collectionhierarcyData = response.result.content;\n this.collectionHierarchy = this.getUnitWithChildren(this.collectionhierarcyData, this.collectionId);\n if (_.has(this.collectionhierarcyData, 'targetFWIds')) {\n this.frameworkId = _.first(_.castArray(this.collectionhierarcyData.targetFWIds));\n } else {\n this.frameworkId = _.first(_.castArray(this.collectionhierarcyData.framework));\n }\n this.setDefaultFilters();\n this.fetchContentList();\n this.telemetryService.telemetryPageId = this.pageId;\n this.childNodes = _.get(this.collectionhierarcyData, 'childNodes');\n }, err => {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.001'));\n });\n }\n\n ngAfterViewInit() {\n this.telemetryService.impression({\n type: 'edit', pageid: this.telemetryService.telemetryPageId, uri: this.router.url,\n duration: (Date.now() - this.pageStartTime) / 1000\n });\n }\n\n back() {\n this.libraryEmitter.emit({});\n this.editorService.contentsCountAddedInLibraryPage(true); // contents count updated from library page to zero\n }\n\n onFilterChange(event: any) {\n switch (event.action) {\n case 'filterDataChange':\n this.fetchContentList(event.filters, event.query);\n break;\n case 'filterStatusChange':\n this.isFilterOpen = event.filterStatus;\n break;\n }\n }\n\n setDefaultFilters() {\n const selectedNode = this.treeService.getActiveNode();\n let contentTypes = _.flatten(\n _.map(_.get(this.editorService.editorConfig.config, `hierarchy.level${selectedNode.getLevel() - 1}.children`), (val) => {\n return val;\n }));\n\n if (_.isEmpty(contentTypes)) {\n contentTypes = _.map(this.helperService.contentPrimaryCategories, 'name');\n }\n\n this.defaultFilters = _.pickBy({\n primaryCategory: contentTypes\n // board: [_.get(this.collectionhierarcyData, 'board')] || _.get(this.collectionhierarcyData, 'boardIds'),\n // gradeLevel: _.get(this.collectionhierarcyData, 'gradeLevel') || _.get(this.collectionhierarcyData, 'gradeLevelIds'),\n // medium: _.get(this.collectionhierarcyData, 'medium') || _.get(this.collectionhierarcyData, 'mediumIds'),\n // subject: _.get(this.collectionhierarcyData, 'subject') || _.get(this.collectionhierarcyData, 'subjectIds'),\n });\n }\n\n fetchContentList(filters?, query?) {\n filters = filters || this.defaultFilters;\n const channel = _.get(this.editorService.editorConfig, 'context.channel')\n const option = {\n url: 'composite/v3/search',\n data: {\n request: {\n query: query || '',\n filters: _.pickBy({ ...filters, ...{ status: ['Live'], channel }}),\n sort_by: {\n lastUpdatedOn: 'desc'\n }\n }\n }\n };\n this.editorService.fetchContentListDetails(option).subscribe((response: any) => {\n this.showLoader = false;\n if (!(_.get(response, 'result.count'))) {\n this.contentList = [];\n } else {\n this.contentList = _.compact(_.concat(_.get(response.result, 'content'), _.get(response.result, 'QuestionSet')));\n this.filterContentList();\n }\n });\n }\n\n getUnitWithChildren(data, collectionId, level?) {\n const self = this;\n const childData = data.children;\n if (_.isEmpty(childData)) { return []; }\n data.level = level ? (level + 1) : 1;\n const tree = childData.map(child => {\n const treeItem: any = this.generateNodeMeta(child);\n // tslint:disable-next-line:max-line-length\n treeItem.showButton = _.isEmpty(_.get(this.editorService.editorConfig, `config.hierarchy.level${data.level}.children`)) ? true : false;\n const treeUnit = self.getUnitWithChildren(child, collectionId, data.level);\n const treeChildren = treeUnit && treeUnit.filter(item => {\n return item.visibility === 'Parent' && item.mimeType === 'application/vnd.ekstep.content-collection';\n }); // TODO: rethink this : need to check for questionSet\n treeItem.children = (treeChildren && treeChildren.length > 0) ? treeChildren : null;\n return treeItem;\n });\n return tree;\n }\n\n generateNodeMeta(node) {\n const nodeMeta = {\n identifier: node.identifier,\n name: node.name,\n contentType: node.contentType,\n topic: node.topic,\n status: node.status,\n creator: node.creator,\n createdBy: node.createdBy || null,\n parentId: node.parent || null,\n organisationId: _.has(node, 'organisationId') ? node.organisationId : null,\n prevStatus: node.prevStatus || null,\n visibility: node.visibility,\n mimeType: node.mimeType\n };\n return nodeMeta;\n }\n\n\n onContentChangeEvent(event: any) {\n this.selectedContent = event.content;\n }\n\n showResourceTemplate(event) {\n switch (event.action) {\n case 'showFilter':\n this.openFilter();\n break;\n case 'openHierarchyPopup':\n this.showSelectResourceModal = true;\n break;\n case 'closeHierarchyPopup':\n this.showSelectResourceModal = false;\n break;\n case 'showAddedContent':\n this.showAddedContent = event.status;\n this.filterContentList();\n break;\n case 'contentAdded':\n this.childNodes.push(event.data.identifier);\n this.getHierarchyData();\n this.editorService.contentsCountAddedInLibraryPage(); // contents count added from library page\n this.filterContentList(true);\n break;\n case 'sortContentList':\n this.sortContentList(event.status);\n break;\n default:\n break;\n }\n }\n getHierarchyData() {\n this.editorService.fetchCollectionHierarchy(this.collectionId).subscribe((response: any) => {\n this.collectionhierarcyData = response.result.content;\n }, err => {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.001'));\n });\n }\nsortContentList(status) {\n this.contentList = this.contentList.sort((a, b) => {\n return this.editorService.sort(status ? b : a, status ? a : b, status ? 'name' : 'lastUpdatedOn');\n });\n const selectedContentIndex = this.showAddedContent ? 0 : _.findIndex(this.contentList, { isAdded: false });\n this.selectedContent = this.contentList[selectedContentIndex];\n}\n\n openFilter(): void {\n window.scrollTo({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.isFilterOpen = true;\n }\n filterContentList(isContentAdded?) {\n if (_.isEmpty(this.contentList)) { return; }\n _.forEach(this.contentList, (value, key) => {\n if (value) {\n value.isAdded = _.includes(this.childNodes, value.identifier);\n }\n });\n if (!isContentAdded) {\n let selectedContentIndex = this.showAddedContent ? 0 : _.findIndex(this.contentList, { isAdded: false });\n if (this.contentList.length === 1 && this.contentList[0]['isAdded'] === true) {\n this.showAddedContent = true;\n selectedContentIndex = 0;\n }\n this.selectedContent = this.contentList[selectedContentIndex];\n }\n }\n ngOnDestroy() {\n this.editorService.contentsCountAddedInLibraryPage(true); // contents count updated from library page to zero\n }\n}\n","<div class=\"add-to-library mb-0\">\n <!-- Blue Header -->\n <div class=\"sb-bg-color-primary add-to-library__header\">\n <div class=\"ui container sb-container relative position\">\n <div class=\"d-flex flex-ai-center\">\n <button class=\"sb-btn sb-btn-primary sb-btn-xs back-btn px-0\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('back','click','launch', telemetryService?.telemetryPageId)\"(click)=\"back();\"><i class=\"arrow left icon fs-1\"></i></button>\n <div class=\"ml-8 sb-color-white\">\n <div class=\"d-flex flex-ai-center fsmall\">\n <div class=\"font-weight-bold fs-1-16\">{{configService.labelConfig?.lbl?.addFromLibrary}}</div>\n <!-- <div class=\"sb-border-vertical mx-15\"></div>\n <div class=\"flex flex-wrap\">\n <h5>Chapter 1</h5>\n <span>Science</span><span class=\"add-to-library-dot\"></span><span>Class 10</span><span\n class=\"add-to-library-dot\"></span><span>DP-1205</span>\n </div> -->\n </div>\n </div>\n </div>\n </div>\n </div>\n<!-- Filter -->\n <lib-library-filter *ngIf=\"!showLoader\" [filterValues]=\"defaultFilters\" [searchFormConfig]=\"searchFormConfig\" [filterOpenStatus]=\"isFilterOpen\" [frameworkId]=\"frameworkId\" (filterChangeEvent)=\"onFilterChange($event);\"></lib-library-filter>\n <div class=\"ui container sb-container min-h-500\" *ngIf=\"!showLoader && contentList?.length\">\n <!-- Player Section -->\n <div class=\"sb-g add-to-library__toc-player\">\n <!-- Left Sidebar for cards -->\n <section class=\"sb-g-col-xs-12 sb-g-col-md-4 sb-g-col-lg-4\">\n <lib-library-list (contentChangeEvent)= \"onContentChangeEvent($event)\" [selectedContent] = \"selectedContent\"[contentList]=\"contentList\" [showAddedContent]=\"showAddedContent\" (moveEvent)=\"showResourceTemplate($event)\"></lib-library-list>\n </section>\n <!-- Right Player Sections -->\n <section class=\"sb-g-col-xs-12 sb-g-col-md-8 sb-g-col-lg-8 relative position ml-24\">\n <lib-library-player [contentListDetails]=\"selectedContent\" (moveEvent)=\"showResourceTemplate($event)\"></lib-library-player>\n </section>\n </div>\n </div>\n</div>\n<div class=\"result-no-found\">\n <div class=\"ui container sb-container\" *ngIf=\"showLoader\">\n <div class=\"sb-g add-to-library__toc-player ml-30\">\n <!-- Left Sidebar for cards -->\n <section class=\"sb-g-col-xs-12 sb-g-col-md-4 sb-g-col-lg-4\">\n <div class=\"sbtoc-container pr-8 mt-20\">\n <div class=\"sbaccordion__panel-content p-16 mb-8 sb-dock-skeleton-bx\">\n <div class=\"sbchapter__item\" *ngFor=\"let number of [].constructor(4)\">\n <lib-skeleton-loader [width]=\"'90%'\" [height]=\"'12px'\" class=\"sb-dock-flex-auto\"></lib-skeleton-loader>\n <div>\n <lib-skeleton-loader [width]=\"'30%'\" [height]=\"'12px'\" class=\"sb-dock-flex-auto\"></lib-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </section>\n </div>\n </div>\n</div>\n<div *ngIf=\"showSelectResourceModal\">\n <lib-resource-reorder [prevUnitSelect]= \"selectedUnit\" [collectionhierarcyData]=\"collectionhierarcyData\" [collectionUnits]=\"collectionHierarchy\" [selectedContentDetails]=\"selectedContent\" [collectionId]=\"collectionId\" (moveEvent)=\"showResourceTemplate($event)\"></lib-resource-reorder>\n</div>\n\n<!--empty result -->\n<div class=\"result-no-found\">\n <div class=\"ui container sb-container\" *ngIf=\"!showLoader && !contentList?.length\">\n <div class=\"add-to-library__no-result\">\n <h5 class=\"font-weight-bold\">{{configService.labelConfig?.lbl?.noMatchingContent}}</h5>\n <img alt=\"No Content available\" class=\"mt-16\" src=\"assets/images/emptyResult.svg\">\n <h6 class=\"sb-color-gray-300 font-weight-normal mt-8\">{{configService.labelConfig?.lbl?.changeFilterMessage}}</h6>\n <button class=\"sb-btn sb-btn-secondary sb-btn-normal mt-16\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('change_filter','click','launch', telemetryService?.telemetryPageId)\" (click)=\"openFilter();\">{{configService.labelConfig?.lbl?.changeFilter}}</button>\n </div>\n </div>\n</div>","import * as _ from 'lodash-es';\n\nexport class McqOptions {\n constructor(public body: string) {\n }\n}\nexport interface McqData {\n question: string;\n options: Array<McqOptions>;\n answer?: string;\n learningOutcome?: string;\n bloomsLevel?: string;\n maxScore?: number;\n}\nexport interface McqConfig {\n templateId?: string;\n numberOfOptions?: number;\n maximumOptions?:number;\n}\n\nexport class McqForm {\n public question: string;\n public options: Array<McqOptions>;\n public templateId: string;\n public answer: string;\n public learningOutcome;\n public bloomsLevel;\n public maxScore;\n public numberOfOptions;\n public maximumOptions;\n constructor({question, options, answer, learningOutcome, bloomsLevel, maxScore}: McqData, {templateId, numberOfOptions, maximumOptions}: McqConfig) {\n this.question = question;\n this.options = options || [];\n this.templateId = templateId;\n this.answer = answer;\n this.learningOutcome = learningOutcome;\n this.bloomsLevel = bloomsLevel;\n this.maxScore = maxScore;\n this.numberOfOptions = numberOfOptions || 2;\n this.maximumOptions = maximumOptions || 4\n if (!this.options || !this.options.length) {\n _.times(this.numberOfOptions, index => this.options.push(new McqOptions('')));\n }\n }\n addOptions() {\n this.options.push(new McqOptions(''));\n }\n deleteOption(position) {\n this.options.splice(position, 1);\n }\n\n}\n\n","export abstract class EditorCursor {\n\n abstract setQuestionMap(key: string, value: any): void;\n abstract clearQuestionMap(): void;\n\n}\n","import { Component, OnInit, AfterViewInit, Output, Input, EventEmitter, OnChanges, ViewChild, ElementRef } from '@angular/core';\nimport ClassicEditor from '@project-sunbird/ckeditor-build-classic';\nimport * as _ from 'lodash-es';\nimport { catchError, map } from 'rxjs/operators';\nimport { throwError, Observable } from 'rxjs';\nimport { QuestionService } from '../../services/question/question.service';\nimport { EditorService } from '../../services/editor/editor.service';\nimport { ToasterService } from '../../services/toaster/toaster.service';\nimport { ConfigService } from '../../services/config/config.service';\nimport { config } from '../asset-browser/asset-browser.data';\ndeclare const SunbirdFileUploadLib: any;\n@Component({\n selector: 'lib-ckeditor-tool',\n templateUrl: './ckeditor-tool.component.html',\n styleUrls: ['./ckeditor-tool.component.scss']\n})\nexport class CkeditorToolComponent implements OnInit, AfterViewInit, OnChanges {\n @ViewChild('editor') public editorRef: ElementRef;\n @Input() editorDataInput: any;\n @Output() editorDataOutput = new EventEmitter<any>();\n @Output() hasError = new EventEmitter<any>();\n @Output() videoDataOutput = new EventEmitter<any>();\n @Input() videoShow;\n @Input() setCharacterLimit: number;\n @Input() setImageLimit: any;\n public editorConfig: any;\n public imageUploadLoader = false;\n public editorInstance: any;\n public isEditorFocused: boolean;\n public limitExceeded: boolean;\n public charactersLeft: number;\n public isAssetBrowserReadOnly = false;\n public characterCount;\n public mediaobj;\n initialized = false;\n public assetProxyUrl: any;\n public lastImgResizeWidth;\n constructor(private questionService: QuestionService, private editorService: EditorService,\n private toasterService: ToasterService, public configService: ConfigService) { }\n assetConfig: any = {};\n myAssets = [];\n allImages = [];\n allVideos = [];\n selectedVideo = {};\n loading = false;\n isClosable = true;\n selectedVideoId: string;\n showAddButton: boolean;\n showImagePicker: boolean;\n showVideoPicker = false;\n showImageUploadModal: boolean;\n showVideoUploadModal: boolean;\n acceptVideoType: any;\n acceptImageType: any;\n showErrorMsg: boolean;\n errorMsg: string;\n query: string;\n public assetsCount: any;\n public searchMyInput = '';\n public searchAllInput: any;\n public formData: any;\n public assestData = {};\n public formConfig: any;\n public initialFormConfig: any;\n public imageFormValid = false;\n public videoFile: any;\n public imageFile: any;\n public termsAndCondition: any;\n public assetName: any;\n public emptyImageSearchMessage: any;\n public emptyVideoSearchMessage: any;\n ngOnInit() {\n this.assetProxyUrl = _.get(this.configService.urlConFig, 'URLS.assetProxyUrl');\n this.initialFormConfig = _.get(config, 'uploadIconFormConfig');\n this.formConfig = _.get(config, 'uploadIconFormConfig');\n this.emptyImageSearchMessage = _.get(this.configService.labelConfig, 'messages.error.016');\n this.emptyVideoSearchMessage = _.get(this.configService.labelConfig, 'messages.error.017');\n this.termsAndCondition = _.get(this.configService.labelConfig, 'termsAndConditions.001');\n this.assetConfig = this.editorService.editorConfig.config.assetConfig;\n this.initialized = true;\n this.editorConfig = {\n toolbar: ['heading', '|', 'bold', '|', 'italic', '|', 'underline', '|', 'BulletedList', '|', 'alignment',\n '|', 'insertTable', '|', 'numberedList', '|', 'fontSize', '|', 'subscript', '|', 'superscript', '|',\n 'MathText', '|', 'specialCharacters', '|'\n ],\n fontSize: {\n options: [\n 'eight',\n 'ten',\n 'twelve',\n 'fourteen',\n 'sixteen',\n 'eighteen',\n 'twenty',\n 'twentytwo',\n 'twentyfour',\n 'twentysix',\n 'twentyeight',\n 'thirty',\n 'thirtysix'\n ]\n },\n image: {\n resizeUnit: '%',\n resizeOptions: [{\n name: 'resizeImage:25',\n value: '25',\n icon: 'small',\n className: 'resize-25'\n },\n {\n name: 'resizeImage:50',\n value: '50',\n icon: 'medium',\n className: 'resize-50'\n },\n {\n name: 'resizeImage:75',\n value: '75',\n icon: 'large',\n className: 'resize-75'\n },\n {\n name: 'resizeImage:100',\n value: '100',\n icon: 'full',\n className: 'resize-100'\n },\n {\n name: 'resizeImage:original',\n value: null,\n icon: 'original',\n className: 'resize-original'\n }],\n toolbar: ['imageStyle:alignLeft', 'imageStyle:alignCenter', 'imageStyle:alignRight', '|',\n 'resizeImage:25', 'resizeImage:50', 'resizeImage:75', 'resizeImage:100', 'resizeImage:original'],\n styles: ['full', 'alignLeft', 'alignRight', 'alignCenter']\n },\n isReadOnly: false,\n removePlugins: ['ImageCaption', 'mathtype', 'ChemType', 'ImageResizeHandles']\n };\n\n this.acceptVideoType = this.getAcceptType(this.assetConfig.video.accepted, 'video');\n this.acceptImageType = this.getAcceptType(this.assetConfig.image.accepted, 'image');\n }\n ngOnChanges() {\n if (this.videoShow) {\n this.showVideoPicker = true;\n this.selectVideo(undefined);\n }\n }\n\n ngAfterViewInit() {\n this.initializeEditors();\n }\n\n\n initializeImagePicker(editorType) {\n this.showImagePicker = true;\n }\n\n initializeVideoPicker(editorType) {\n this.showVideoPicker = true;\n }\n /**\n * function to hide image picker\n */\n dismissImagePicker() {\n this.showImagePicker = false;\n }\n\n /**\n * function to hide video picker\n */\n dismissVideoPicker() {\n this.showVideoPicker = false;\n this.videoShow = false;\n this.videoDataOutput.emit(false);\n }\n dismissImageUploadModal() {\n this.showImageUploadModal = false;\n }\n initiateImageUploadModal() {\n this.showImagePicker = false;\n this.showImageUploadModal = true;\n }\n\n dismissVideoUploadModal() {\n if (this.isClosable) {\n this.showVideoUploadModal = false;\n }\n }\n initiateVideoUploadModal() {\n this.showVideoPicker = false;\n this.showImageUploadModal = true;\n this.loading = false;\n this.isClosable = true;\n }\n public isEditorReadOnly(state) {\n this.editorInstance.isReadOnly = state;\n this.isAssetBrowserReadOnly = state;\n }\n getAcceptType(typeList, type) {\n const acceptTypeList = typeList.split(', ');\n const result = [];\n _.forEach(acceptTypeList, (content) => {\n result.push(`${type}/${content}`);\n });\n return result.toString();\n }\n\n customImageResizer(editor) {\n // Both the data and the editing pipelines are affected by this conversion.\n editor.conversion.for('downcast').add(dispatcher => {\n // Links are represented in the model as a \"linkHref\" attribute.\n // Use the \"low\" listener priority to apply the changes after the link feature.\n dispatcher.on('attribute:width:image', (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const options = editor.config.get('image.resizeOptions');\n const isEnabled = editor.config.get('image.resizeEnabled');\n const sizeLables = options.map((item) => {\n return item.label;\n });\n const newImgWidthValue = data.attributeNewValue === null ? 'Original' : data.attributeNewValue;\n if (sizeLables.includes(newImgWidthValue)) {\n this.lastImgResizeWidth = newImgWidthValue;\n }\n\n if (!isEnabled && sizeLables.length > 0 && !sizeLables.includes(newImgWidthValue)) {\n editor.execute('imageResize', { width: this.lastImgResizeWidth });\n return evt.stop();\n }\n\n const viewWriter = conversionApi.writer;\n const figure = conversionApi.mapper.toViewElement(data.item);\n\n if (data.attributeNewValue !== null) {\n viewWriter.setStyle('width', data.attributeNewValue, figure);\n viewWriter.addClass('image_resized', figure);\n } else {\n viewWriter.removeStyle('width', figure);\n viewWriter.removeClass('image_resized', figure);\n }\n });\n });\n }\n\n initializeEditors() {\n ClassicEditor.create(this.editorRef.nativeElement, {\n alignment: {\n options: [\n { name: 'left', className: 'text-left' },\n { name: 'center', className: 'text-center' },\n { name: 'right', className: 'text-right' }\n ]\n },\n heading: {\n options: [\n { model: 'paragraph', title: 'Paragraph' },\n { model: 'heading1', view: 'h1', title: 'Heading 1' },\n { model: 'heading2', view: 'h2', title: 'Heading 2' },\n { model: 'heading3', view: 'h3', title: 'Heading 3' },\n { model: 'heading4', view: 'h4', title: 'Heading 4' },\n { model: 'heading5', view: 'h5', title: 'Heading 5' },\n { model: 'heading6', view: 'h6', title: 'Heading 6' }\n ]\n },\n extraPlugins: ['Table', 'Heading'],\n toolbar: this.editorConfig.toolbar,\n fontSize: this.editorConfig.fontSize,\n image: this.editorConfig.image,\n isReadOnly: this.editorConfig.isReadOnly,\n removePlugins: this.editorConfig.removePlugins\n })\n .then(editor => {\n this.editorInstance = editor;\n this.isAssetBrowserReadOnly = this.editorConfig.isReadOnly;\n if (this.editorDataInput) {\n this.editorDataInput = this.editorDataInput\n .replace(/(<img(\"[^\"]*\"|[^\\/\">])*)>/gi, '$1/>')\n .replace(/(<br(\"[^\"]*\"|[^\\/\">])*)>/gi, '$1/>');\n this.editorInstance.setData(this.editorDataInput);\n } else {\n this.editorInstance.setData('');\n }\n console.log('Editor was initialized');\n this.changeTracker(this.editorInstance);\n this.attachEvent(this.editorInstance);\n // this.pasteTracker(this.editorInstance);\n this.characterCount = this.countCharacters(this.editorInstance.model.document);\n this.charactersLeft = this.getCharactersLeft();\n })\n .catch(error => {\n console.error(error.stack);\n });\n }\n changeTracker(editor) {\n editor.model.document.on('change', (eventInfo, batch) => {\n if (this.setCharacterLimit && this.setCharacterLimit > 0) {\n this.checkCharacterLimit();\n }\n const selectedElement = eventInfo.source.selection.getSelectedElement();\n this.isEditorFocused = (selectedElement && selectedElement.name === 'image') ? true : false;\n if (this.setImageLimit && this.setImageLimit > 0) {\n this.checkImageLimit();\n }\n this.editorDataOutput.emit({\n body: editor.getData(),\n length: this.characterCount,\n mediaobj: this.mediaobj\n });\n });\n }\n pasteTracker(editor) {\n editor.editing.view.document.on('clipboardInput', (evt, data) => {\n const dataTransfer = data.dataTransfer;\n const urlMatch =\n // tslint:disable-next-line:max-line-length\n /(https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|www\\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9]+\\.[^\\s]{2,}|www\\.[a-zA-Z0-9]+\\.[^\\s]{2,}|file:\\/\\/\\/+[^\\s]{0,})/gi;\n const regex = new RegExp(urlMatch);\n const getUrl = dataTransfer.getData('text/html').match(regex);\n if (getUrl && getUrl.length > 0) {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.010'));\n evt.stop();\n }\n });\n }\n checkImageLimit() {\n const childNodes = this.editorInstance.model.document.getRoot()._children._nodes;\n this.isAssetBrowserReadOnly = _.keys(_.pickBy(childNodes, { name: 'image' })).length === this.setImageLimit ? true : false;\n }\n checkCharacterLimit() {\n this.characterCount = this.countCharacters(this.editorInstance.model.document);\n this.charactersLeft = this.getCharactersLeft();\n this.limitExceeded = (this.characterCount <= this.setCharacterLimit) ? false : true;\n this.hasError.emit(this.limitExceeded);\n }\n /**\n * function to get images\n * @param offset page no\n */\n getMyImages(offset, query?, search?) {\n this.assetsCount = 0;\n if (!search) {\n this.searchMyInput = '';\n }\n if (offset === 0) {\n this.myAssets.length = 0;\n }\n const req = {\n filters: {\n mediaType: ['image'],\n createdBy: _.get(this.editorService.editorConfig, 'context.user.id')\n },\n offset\n };\n if (query) {\n req['query'] = query;\n }\n this.questionService.getAssetMedia(req).pipe(catchError(err => {\n const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.022') };\n return throwError(this.editorService.apiErrorHandling(err, errInfo));\n })).subscribe((res) => {\n this.assetsCount = res.result.count;\n _.map(res.result.content, (item) => {\n if (item.downloadUrl) {\n this.myAssets.push(item);\n }\n });\n });\n }\n\n addImageInEditor(imageUrl, imageId, imageName?) {\n const src = this.getMediaOriginURL(imageUrl);\n const baseUrl = _.get(this.editorService.editorConfig, 'context.host') || document.location.origin;\n this.mediaobj = {\n id: imageId,\n type: 'image',\n src,\n baseUrl\n };\n this.editorInstance.model.change(writer => {\n const imageElement = writer.createElement('image', {\n src,\n alt: imageId,\n 'data-asset-variable': imageId\n });\n this.editorInstance.model.insertContent(imageElement, this.editorInstance.model.document.selection);\n });\n this.showImagePicker = false;\n this.showImageUploadModal = false;\n }\n\n addVideoInEditor(videoModal?) {\n const videoData: any = _.cloneDeep(this.selectedVideo);\n videoData.src = this.getMediaOriginURL(videoData.downloadUrl);\n videoData.thumbnail = (videoData.thumbnail) && this.getMediaOriginURL(videoData.thumbnail);\n this.showVideoPicker = false;\n this.videoDataOutput.emit(videoData);\n if (videoModal) {\n videoModal.deny();\n }\n }\n\n\n getAllImages(offset, query?, search?) {\n this.assetsCount = 0;\n if (!search) {\n this.searchAllInput = '';\n }\n if (offset === 0) {\n this.allImages.length = 0;\n }\n const req = {\n filters: {\n mediaType: ['image']\n },\n offset\n };\n if (query) {\n req['query'] = query;\n }\n this.questionService.getAssetMedia(req).pipe(catchError(err => {\n const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.022') };\n return throwError(this.editorService.apiErrorHandling(err, errInfo));\n }))\n .subscribe((res) => {\n this.assetsCount = res.result.count;\n _.map(res.result.content, (item) => {\n if (item.downloadUrl) {\n this.allImages.push(item);\n }\n });\n });\n }\n\n /**\n * function to get videos\n * @param offset page no\n */\n getMyVideos(offset, query?, search?) {\n this.assetsCount = 0;\n if (!search) {\n this.searchMyInput = '';\n this.selectVideo(undefined);\n }\n if (offset === 0) {\n this.myAssets.length = 0;\n }\n const req: any = {\n filters: {\n mediaType: ['video'],\n createdBy: _.get(this.editorService.editorConfig, 'context.user.id')\n },\n offset\n };\n\n if (query) {\n req.query = query;\n }\n\n this.questionService.getAssetMedia(req).pipe(catchError(err => {\n const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.023') };\n return throwError(this.editorService.apiErrorHandling(err, errInfo));\n })).subscribe((res) => {\n this.assetsCount = res.result.count;\n _.map(res.result.content, (item) => {\n if (item.downloadUrl) {\n this.myAssets.push(item);\n }\n });\n });\n }\n\n getAllVideos(offset, query?, search?) {\n this.assetsCount = 0;\n if (!search) {\n this.searchAllInput = '';\n this.selectVideo(undefined);\n }\n if (offset === 0) {\n this.allVideos.length = 0;\n }\n const req: any = {\n filters: {\n mediaType: ['video'],\n },\n offset\n };\n if (query) {\n req.query = query;\n }\n\n this.questionService.getAssetMedia(req).pipe(catchError(err => {\n const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.023') };\n return throwError(this.editorService.apiErrorHandling(err, errInfo));\n })).subscribe((res) => {\n this.assetsCount = res.result.count;\n _.map(res.result.content, (item) => {\n if (item.downloadUrl) {\n this.allVideos.push(item);\n }\n });\n });\n }\n\n /**\n * function to lazy load my images\n */\n lazyloadMyImages() {\n const offset = this.myAssets.length;\n this.getMyImages(offset, this.query, true);\n }\n\n /**\n * function to lazy load all images\n */\n lazyloadAllImages() {\n const offset = this.allImages.length;\n this.getAllImages(offset, this.query, true);\n }\n\n\n lazyloadMyVideos() {\n const offset = this.myAssets.length;\n this.getMyVideos(offset, this.query, true);\n }\n\n /**\n * function to lazy load all videos\n */\n lazyloadAllVideos() {\n const offset = this.allVideos.length;\n this.getAllVideos(offset, this.query, true);\n }\n\n /**\n * function to upload image\n */\n uploadImage(event) {\n const file = event.target.files[0];\n this.assetName = file.name;\n const reader = new FileReader();\n this.formData = new FormData();\n this.formData.append('file', file);\n const fileType = file.type;\n const fileName = file.name.split('.').slice(0, -1).join('.');\n const fileSize = file.size / 1024 / 1024;\n if (fileType.split('/')[0] === 'image') {\n this.showErrorMsg = false;\n if (fileSize > this.assetConfig.image.size) {\n this.showErrorMsg = true;\n this.errorMsg = _.get(this.configService.labelConfig, 'messages.error.021')\n + this.assetConfig.image.size + this.assetConfig.image.sizeType;\n this.resetFormConfig();\n } else {\n this.errorMsg = '';\n this.showErrorMsg = false;\n reader.readAsDataURL(file);\n }\n } else {\n this.showErrorMsg = true;\n this.errorMsg = _.get(this.configService.labelConfig, 'messages.error.020');\n }\n if (!this.showErrorMsg) {\n this.imageFile = file;\n this.imageUploadLoader = true;\n this.imageFormValid = true;\n this.assestData = this.generateAssetCreateRequest(fileName, fileType, 'image');\n this.populateFormData(this.assestData);\n }\n }\n resetFormConfig() {\n this.imageUploadLoader = false;\n this.imageFormValid = false;\n this.formConfig = this.initialFormConfig;\n }\n populateFormData(formData) {\n const formvalue = _.cloneDeep(this.formConfig);\n this.formConfig = null;\n _.forEach(formvalue, (formFieldCategory) => {\n formFieldCategory.default = formData[formFieldCategory.code];\n formFieldCategory.editable = true;\n });\n this.formConfig = formvalue;\n }\n uploadAndUseImage(modal) {\n this.questionService.createMediaAsset({ content: this.assestData }).pipe(catchError(err => {\n const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.019') };\n return throwError(this.editorService.apiErrorHandling(err, errInfo));\n })).subscribe((res) => {\n const imgId = res.result.node_id;\n const request = {\n data: this.formData\n };\n this.questionService.uploadMedia(request, imgId).pipe(catchError(err => {\n const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.019') };\n return throwError(this.editorService.apiErrorHandling(err, errInfo));\n })).subscribe((response) => {\n const signedURL = response.result.pre_signed_url;\n let blobConfig = {\n processData: false,\n contentType: 'Asset'\n };\n blobConfig = this.editorService.appendCloudStorageHeaders(blobConfig);\n this.uploadToBlob(signedURL, this.imageFile, blobConfig).subscribe(() => {\n const fileURL = signedURL.split('?')[0];\n const data = new FormData();\n data.append('fileUrl', fileURL);\n data.append('mimeType', this.imageFile.type);\n const config1 = {\n enctype: 'multipart/form-data',\n processData: false,\n contentType: false,\n cache: false\n };\n const uploadMediaConfig = {\n data,\n param: config1\n };\n this.questionService.uploadMedia(uploadMediaConfig, imgId).pipe(catchError(err => {\n const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.019') };\n this.isClosable = true;\n this.loading = false;\n this.imageFormValid = true;\n return throwError(this.editorService.apiErrorHandling(err, errInfo));\n })).subscribe((response1) => {\n this.addImageInEditor(response1.result.content_url, response1.result.node_id, this.assestData['name']);\n });\n });\n });\n });\n }\n openImageUploadModal() {\n this.showImageUploadModal = true;\n this.resetFormData();\n }\n dismissPops(modal) {\n this.dismissImagePicker();\n modal.deny();\n }\n onStatusChanges(event) {\n if (event.isValid && this.imageUploadLoader) {\n this.imageFormValid = true;\n } else {\n this.imageFormValid = false;\n }\n }\n valueChanges(event) {\n this.assestData = _.merge({}, this.assestData, event);\n }\n // search feature for images\n searchImages(event, type) {\n if (event === 'clearInput' && type === 'myImages') {\n this.query = '';\n this.searchMyInput = '';\n } else if (event === 'clearInput' && type === 'allImages') {\n this.query = '';\n this.searchAllInput = '';\n } else {\n this.query = event.target.value;\n }\n if (type === 'myImages') {\n this.getMyImages(0, this.query, true);\n } else {\n this.getAllImages(0, this.query, true);\n }\n }\n // general method\n resetFormData() {\n this.showErrorMsg = false;\n this.formData = null;\n this.formConfig = this.initialFormConfig;\n this.imageUploadLoader = false;\n this.imageFormValid = false;\n }\n /**\n * function to upload video\n */\n openVideoUploadModal() {\n this.showVideoUploadModal = true;\n this.resetFormData();\n }\n dismissVideoPops(modal) {\n if (this.isClosable) {\n this.dismissVideoPicker();\n modal.deny();\n }\n }\n uploadVideoFromLocal(event) {\n this.videoFile = event.target.files[0];\n const reader = new FileReader();\n this.formData = new FormData();\n this.formData.append('file', this.videoFile);\n const fileType = this.videoFile.type;\n const fileName = this.videoFile.name.split('.').slice(0, -1).join('.');\n const fileSize = this.videoFile.size / 1024 / 1024;\n if (_.includes(fileType.split('/'), 'video')) {\n this.showErrorMsg = false;\n if (fileSize > this.assetConfig.video.size) {\n this.showErrorMsg = true;\n this.errorMsg = _.get(this.configService.labelConfig, 'messages.error.021') +\n this.assetConfig.video.size + this.assetConfig.video.sizeType;\n this.resetFormConfig();\n } else {\n this.errorMsg = '';\n this.showErrorMsg = false;\n reader.readAsDataURL(this.videoFile);\n }\n } else {\n this.showErrorMsg = true;\n this.errorMsg = _.get(this.configService.labelConfig, 'messages.error.024');\n }\n if (!this.showErrorMsg) {\n this.imageUploadLoader = true;\n this.imageFormValid = true;\n this.assestData = this.generateAssetCreateRequest(fileName, fileType, 'video');\n this.populateFormData(this.assestData);\n }\n }\n uploadVideo(videoModal) {\n this.isClosable = false;\n this.loading = true;\n this.showErrorMsg = false;\n this.imageFormValid = false;\n if (!this.showErrorMsg) {\n this.questionService.createMediaAsset({ content: this.assestData }).pipe(catchError(err => {\n this.loading = false;\n this.isClosable = true;\n this.imageFormValid = true;\n const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.025') };\n return throwError(this.editorService.apiErrorHandling(err, errInfo));\n })).subscribe((res) => {\n const contentId = res.result.node_id;\n const request = {\n content: {\n fileName: this.videoFile.name\n }\n };\n this.questionService.generatePreSignedUrl(request, contentId).pipe(catchError(err => {\n const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.026') };\n this.loading = false;\n this.isClosable = true;\n this.imageFormValid = true;\n return throwError(this.editorService.apiErrorHandling(err, errInfo));\n })).subscribe((response) => {\n const signedURL = response.result.pre_signed_url;\n let blobConfig = {\n processData: false,\n contentType: 'Asset'\n };\n blobConfig = this.editorService.appendCloudStorageHeaders(blobConfig);\n this.uploadToBlob(signedURL, this.videoFile, blobConfig).subscribe(() => {\n const fileURL = signedURL.split('?')[0];\n this.updateContentWithURL(fileURL, this.videoFile.type, contentId, videoModal);\n });\n });\n });\n }\n }\n\n generateAssetCreateRequest(fileName, fileType, mediaType) {\n return {\n name: fileName,\n mediaType,\n mimeType: fileType,\n createdBy: _.get(this.editorService.editorConfig, 'context.user.id'),\n creator: _.get(this.editorService.editorConfig, 'context.user.fullName'),\n channel: _.get(this.editorService.editorConfig, 'context.channel')\n };\n }\n\n uploadToBlob(signedURL, file, config): Observable<any> {\n const csp = _.get(this.editorService.editorConfig, 'context.cloudStorage.provider', 'azure');\n return new Observable((observer) => {\n const uploaderLib = new SunbirdFileUploadLib.FileUploader();\n uploaderLib.upload({ url: signedURL, file, csp })\n .on(\"error\", (error) => {\n const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.018') };\n this.isClosable = true;\n this.loading = false;\n this.imageFormValid = true;\n observer.error(this.editorService.apiErrorHandling(error, errInfo));\n }).on(\"completed\", (completed) => {\n observer.next(completed);\n observer.complete();\n })\n });\n }\n\n updateContentWithURL(fileURL, mimeType, contentId, videoModal?) {\n const data = new FormData();\n data.append('fileUrl', fileURL);\n data.append('mimeType', mimeType);\n const config = {\n enctype: 'multipart/form-data',\n processData: false,\n contentType: false,\n cache: false\n };\n const option = {\n data,\n param: config\n };\n this.questionService.uploadMedia(option, contentId).pipe(catchError(err => {\n const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.027') };\n this.isClosable = true;\n this.loading = false;\n this.imageFormValid = true;\n return throwError(this.editorService.apiErrorHandling(err, errInfo));\n })).subscribe(res => {\n // Read upload video data\n this.getUploadVideo(res.result.node_id, videoModal);\n });\n }\n\n getUploadVideo(videoId, videoModal?) {\n this.questionService.getVideo(videoId).pipe(map((data: any) => data.result.content), catchError(err => {\n const errInfo = { errorMsg: _.get(this.configService, 'labelConfig.messages.error.011') };\n this.loading = false;\n this.isClosable = true;\n this.imageFormValid = true;\n return throwError(this.editorService.apiErrorHandling(err, errInfo));\n })).subscribe(res => {\n this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.006'));\n this.selectedVideo = res;\n this.showAddButton = true;\n this.loading = false;\n this.isClosable = true;\n this.imageFormValid = true;\n this.addVideoInEditor(videoModal);\n });\n }\n\n searchMyVideo(event) {\n this.query = event.target.value;\n this.getMyVideos(0, this.query);\n }\n searchAllVideo(event) {\n this.query = event.target.value;\n this.getAllVideos(0, this.query);\n }\n // searchVideo feature\n searchVideo(event, type) {\n if (event === 'clearInput' && type === 'myVideos') {\n this.query = '';\n this.searchMyInput = '';\n } else if (event === 'clearInput' && type === 'allVideos') {\n this.query = '';\n this.searchAllInput = '';\n } else {\n this.query = event.target.value;\n }\n if (type === 'myVideos') {\n this.getMyVideos(0, this.query, true);\n } else {\n this.getAllVideos(0, this.query, true);\n }\n }\n selectVideo(data) {\n if (data) {\n this.showAddButton = true;\n this.selectedVideoId = data.identifier;\n this.selectedVideo = data;\n } else {\n this.showAddButton = false;\n this.selectedVideoId = '';\n this.selectedVideo = {};\n }\n\n }\n\n countCharacters(document) {\n const rootElement = document.getRoot();\n return this.countCharactersInElement(rootElement);\n }\n countCharactersInElement(node) {\n let chars = 0;\n const forEach = Array.prototype.forEach;\n const forE = node.getChildren();\n let child;\n\n while (!(child = forE.next()).done) {\n if (child.value.is('text')) {\n chars += child.value.data.length;\n } else if (child.value.is('element')) {\n chars += this.countCharactersInElement(child.value);\n }\n }\n return chars;\n }\n\n getMediaOriginURL(src) {\n const replaceText = this.assetProxyUrl;\n const cloudStorageUrls = _.compact(_.get(this.editorService.editorConfig, 'context.cloudStorageUrls') || []);\n _.forEach(cloudStorageUrls, url => {\n if (src.indexOf(url) !== -1) {\n src = src.replace(url, replaceText);\n }\n });\n return src;\n }\n // Here Event listener is attached to document to listen the click event from Wiris plugin ('OK'-> button)\n attachEvent(editor) {\n document.addEventListener('click', e => {\n if (e.target && (e.target as Element).className === 'wrs_modal_button_accept') {\n editor.model.change(writer => {\n const insertPosition = editor.model.document.selection.getFirstPosition();\n writer.insertText(' ', insertPosition);\n });\n }\n });\n }\n\n getCharactersLeft() {\n if (this.setCharacterLimit) {\n let charRemaining = this.setCharacterLimit - this.characterCount;\n return charRemaining > 0 ? charRemaining : 0;\n }\n return null;\n }\n}\n","<div class=\"editorWrapper\" [ngClass]=\"{'hasError': limitExceeded}\">\n <button type=\"button\" data-tooltip=\"Add image\" data-position=\"bottom center\" data-variation=\"mini\" data-inverted=\"\"\n title=\"Add image\" [disabled]=\"isAssetBrowserReadOnly || isEditorFocused\" (click)=\"initializeImagePicker('question')\"\n class=\"ui icon button insert-image-btn\">\n <i class=\"image outline icon\" aria-hidden=\"true\"></i>\n </button>\n <textarea class=\"editor\" #editor name=\"question\" placeholder=\"\"></textarea>\n <div *ngIf=\"setCharacterLimit > 0\">\n <div class=\"characterCount\">\n {{configService.labelConfig?.lbl?.charactersLeft}} {{charactersLeft}}\n </div>\n </div>\n</div>\n\n<sui-modal [isClosable]=\"true\" class=\"sb-modal overflow-modal\" [isInverted]=\"false\" (dismissed)=\"dismissImagePicker()\"\n *ngIf=\"showImagePicker\" [size]=\"'normal'\" [isFullScreen]=\"false\" [mustScroll]=\"true\" #modal>\n <div class=\"sb-modal-header\">{{configService.labelConfig?.lbl?.selectImage}}</div>\n <div class=\"sb-modal-content p-0\">\n <sui-tabset>\n <div class=\"sb-tabset-menu\">\n <a class=\"sb-item\" (activate)=\"getMyImages(0)\" suiTabHeader=\"1\">{{configService.labelConfig?.lbl?.myImages}}</a>\n <a class=\"sb-item\" (activate)=\"getAllImages(0)\" suiTabHeader=\"2\">{{configService.labelConfig?.lbl?.allImage}}</a>\n </div>\n <div class=\"ui segment sb-tabset-segment m-0 pt-15\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"500\" [scrollWindow]=\"false\" (scrolled)=\"lazyloadMyImages()\" suiTabContent=\"1\">\n <div class=\"ui pb-16 d-flex pl-0\">\n <div class=\"sb-search-box small no-btn\">\n <div class=\"input-div relative\">\n <i class=\"search icon\" aria-hidden=\"true\"></i>\n <input (change)=\"searchImages($event, 'myImages')\" class=\"sb-search-input\" [(ngModel)]=\"searchMyInput\"\n type=\"text\" placeholder={{configService.labelConfig?.lbl?.searchPlaceholder}} />\n <i class=\"close icon\" (click)=\"searchImages('clearInput', 'myImages')\" aria-hidden=\"true\"></i>\n </div>\n <button class=\"sb-btn sb-btn-normal\">{{configService.labelConfig?.button_labels?.search_btn_label}}</button>\n </div>\n <p class=\"fs-0-986 ml-auto sb-color-grey\" >{{assetsCount}}</p>\n </div>\n <div *ngIf=\"!myAssets?.length && searchMyInput\" class=\"fs-0785\"> {{emptyImageSearchMessage}} </div>\n <div class=\"sb-grid-layout image\">\n <div class=\"sb-video-content\" *ngFor=\"let data of myAssets\">\n <div class=\"sb-image-section relative position\">\n <img (click)=\"addImageInEditor(data.downloadUrl, data.identifier)\" [src]=\"data.downloadUrl\">\n </div>\n </div>\n\n </div>\n </div>\n\n <div class=\"ui segment sb-tabset-segment m-0 pt-15\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"500\" [scrollWindow]=\"false\" (scrolled)=\"lazyloadAllImages()\" suiTabContent=\"2\">\n <div class=\"ui pb-16 d-flex pl-0\">\n <div class=\"sb-search-box small no-btn\">\n <div class=\"input-div relative\">\n <i class=\"search icon\" aria-hidden=\"true\"></i>\n <input (change)=\"searchImages($event, 'allImages')\" class=\"sb-search-input\" [(ngModel)]=\"searchAllInput\"\n type=\"text\" placeholder={{configService.labelConfig?.lbl?.searchPlaceholder}} />\n <i class=\"close icon\" (click)=\"searchImages('clearInput', 'allImages')\" aria-hidden=\"true\"></i>\n </div>\n <button class=\"sb-btn sb-btn-normal\">{{configService.labelConfig?.button_labels?.search_btn_label}}</button>\n </div>\n <p class=\"fs-0-986 ml-auto sb-color-grey\">{{assetsCount}}</p>\n </div>\n <div *ngIf=\"!allImages?.length && searchAllInput\" class=\"fs-0785\"> {{emptyImageSearchMessage}} </div>\n <div class=\"sb-grid-layout image\">\n <div class=\"sb-video-content\" *ngFor=\"let data of allImages\">\n <div class=\"sb-image-section\">\n <img (click)=\"addImageInEditor(data.downloadUrl, data.identifier)\" [src]=\"data.downloadUrl\">\n </div>\n </div>\n </div>\n\n </div>\n </sui-tabset>\n </div>\n <div class=\"sb-modal-actions flex-jc-space-end\">\n <button (click)=\"openImageUploadModal();\" class=\"sb-btn sb-btn-primary sb-btn-normal\">{{configService.labelConfig?.button_labels?.upload_use_btn_label}}</button>\n </div>\n</sui-modal>\n\n<sui-modal [isClosable]=\"isClosable\" class=\"sb-modal overflow-modal\" [isInverted]=\"false\"\n (dismissed)=\"dismissVideoPicker()\" *ngIf=\"showVideoPicker\" [size]=\"'normal'\" [isFullScreen]=\"false\"\n [mustScroll]=\"true\" #modal>\n <div class=\"sb-modal-header\">{{configService.labelConfig?.lbl?.selectVideo}}</div>\n <div class=\"sb-modal-content p-0\">\n <sui-tabset>\n <div class=\"sb-tabset-menu\">\n <a class=\"sb-item\" (activate)=\"getMyVideos(0)\" suiTabHeader=\"1\">{{configService.labelConfig?.lbl?.myVideos}}</a>\n <a class=\"sb-item\" (activate)=\"getAllVideos(0)\" suiTabHeader=\"2\">{{configService.labelConfig?.lbl?.allVideos}}</a>\n </div>\n\n <div class=\"ui segment sb-tabset-segment m-0 pt-15\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"500\" [scrollWindow]=\"false\" (scrolled)=\"lazyloadMyVideos()\" suiTabContent=\"1\">\n <div class=\"pb-16 d-flex pl-0\">\n <div class=\"sb-search-box small no-btn\">\n <div class=\"input-div relative\">\n <i class=\"search icon\" aria-hidden=\"true\"></i>\n <input (change)=\"searchVideo($event, 'myVideos')\" class=\"sb-search-input\" [(ngModel)]=\"searchMyInput\"\n type=\"text\" placeholder={{configService.labelConfig?.lbl?.searchPlaceholder}} />\n <i class=\"close icon\" (click)=\"searchVideo('clearInput', 'myVideos')\" aria-hidden=\"true\"></i>\n </div>\n <button class=\"sb-btn sb-btn-normal\">{{configService.labelConfig?.button_labels?.search_btn_label}}</button>\n </div>\n <p class=\"fs-0-986 ml-auto sb-color-grey\" >{{assetsCount}}</p>\n </div>\n <div *ngIf=\"!myAssets?.length && searchMyInput\" class=\"fs-0785\"> {{emptyVideoSearchMessage}} </div>\n <div class=\"sb-grid-layout video\">\n <div class=\"sb-video-content\" *ngFor=\"let data of myAssets\">\n <div class=\"sb-image-section relative position\" [ngClass]=\"{'active': selectedVideoId === data.identifier}\"\n (click)=\"selectVideo(data)\">\n <div class=\"overlay-image\"><i class=\"play circle icon\" aria-hidden=\"true\"></i></div>\n <i class=\"check circle icon selected-video\" aria-hidden=\"true\"></i>\n <img [src]=\"data.thumbnail\">\n </div>\n </div>\n\n </div>\n </div>\n\n <div class=\"ui segment sb-tabset-segment m-0 pt-15\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"500\" [scrollWindow]=\"false\" (scrolled)=\"lazyloadAllVideos()\" suiTabContent=\"2\">\n <div class=\" pb-16 d-flex pl-0\">\n <div class=\"sb-search-box small no-btn\">\n <div class=\"input-div relative\">\n <i class=\"search icon\" aria-hidden=\"true\"></i>\n <input (change)=\"searchVideo($event, 'allVideos')\" class=\"sb-search-input\" [(ngModel)]=\"searchAllInput\"\n type=\"text\" placeholder={{configService.labelConfig?.lbl?.searchPlaceholder}} />\n <i class=\"close icon\" (click)=\"searchVideo('clearInput', 'allVideos')\" aria-hidden=\"true\"></i>\n </div>\n <button class=\"sb-btn sb-btn-normal\">{{configService.labelConfig?.button_labels?.search_btn_label}}</button>\n </div>\n <p class=\"fs-0-986 ml-auto sb-color-grey\" >{{assetsCount}}</p>\n </div>\n <div *ngIf=\"!allVideos?.length && searchAllInput\" class=\"fs-0785\"> {{emptyVideoSearchMessage}} </div>\n <div class=\"sb-grid-layout video\">\n <div class=\"sb-video-content\" *ngFor=\"let data of allVideos\">\n <div class=\"sb-image-section relative position\" [ngClass]=\"{'active': selectedVideoId === data.identifier}\"\n (click)=\"selectVideo(data);\">\n <div class=\"overlay-image\"><i class=\"play circle icon\" aria-hidden=\"true\"></i></div>\n <i class=\"check circle icon selected-video\" aria-hidden=\"true\"></i>\n <img [src]=\"data.thumbnail\">\n </div>\n </div>\n </div>\n </div>\n </sui-tabset>\n </div>\n <div class=\"sb-modal-actions flex-jc-space-between pl-20\">\n <div>\n <button (click)=\"addVideoInEditor();\" class=\"sb-btn sb-btn-normal\"\n [ngClass]=\"{'sb-btn-primary': showAddButton, 'sb-btn-disabled': !showAddButton}\">{{configService.labelConfig?.button_labels?.add_btn_label}}</button>\n </div>\n <div>\n <button (click)=\"openVideoUploadModal();\" class=\"sb-btn sb-btn-primary sb-btn-normal\">{{configService.labelConfig?.button_labels?.upload_use_btn_label}}</button>\n </div>\n </div>\n</sui-modal>\n\n<!-- Upload image pop up code here -->\n\n<sui-modal class=\"sb-modal overflow-modal\" [isClosable]=\"true\" [isInverted]=\"false\"\n (dismissed)=\"dismissImageUploadModal()\" *ngIf=\"showImageUploadModal\" [size]=\"'large'\" [isFullScreen]=\"false\"\n [mustScroll]=\"true\" appBodyScroll #modal>\n <div class=\"sb-modal-header\">{{configService.labelConfig?.lbl?.uploadAndUse}}</div>\n <div class=\"p-10 sb-bg-white\">\n <div class=\"d-flex\">\n <div class=\"w-50\">\n <div class=\"content\">\n <h6 class=\"mb-8 fs-normal\">{{configService.labelConfig?.lbl?.chooseOrDragImage}}<span class=\"red\">*</span></h6>\n <div class=\"upload-image-modal-section d-flex flex-ai-center flex-jc-center flex-dc\">\n <ng-container>\n <button class=\"upload-input-button sb-btn sb-btn-success sb-btn-normal\">\n {{configService.labelConfig?.button_labels?.upload_from_computer_btn_label}}\n <input (change)=\"uploadImage($event)\" type=\"file\" [accept]=\"acceptImageType\" name=\"assetfile\">\n </button>\n <div class=\"py-10 fs-0-785 sb-color-primary\" *ngIf=\"imageUploadLoader\"> {{assetName}} </div>\n <span class=\"fsmall mt-8\">{{configService.labelConfig?.lbl?.upload}} {{assetConfig.image.accepted}} ({{configService.labelConfig?.lbl?.maxFileSize}}\n {{assetConfig.image.size}}{{assetConfig.image.sizeType}})</span>\n <div *ngIf=\"showErrorMsg\" class=\"sb-color-error fsmall mt-8\">\n <p>{{errorMsg}}</p>\n </div>\n </ng-container>\n </div>\n <div class=\"ui info message sb-info-bx\">\n <ul class=\"list\">\n <li class=\"fs-0785\">{{configService.labelConfig?.lbl?.allowedFileTypes}} {{assetConfig.image.accepted}}</li>\n <li class=\"fs-0785\">{{configService.labelConfig?.lbl?.maximumAllowedFileSize}} {{assetConfig.image.size}}{{assetConfig.image.sizeType}}</li>\n </ul>\n </div>\n <h6 class=\"fs-0785\">{{configService.labelConfig?.lbl?.copyRightsAndLicense}}<span class=\"red\">*</span></h6>\n <p class=\"fsmall mt-8 terms-and-condition\">{{termsAndCondition}}</p>\n </div>\n </div>\n <div class=\"w-50 pl-10 ml-10 b-bl\">\n <div class=\"ui info message sb-info-bx mb-0\">\n <ul class=\"list\">\n <li class=\"fs-0785 font-weight-bold\">\n <i class=\"icon info circle\" aria-hidden=\"true\"></i>\n {{configService.labelConfig?.lbl?.dropChooseFile}}</li>\n </ul>\n </div>\n <div class=\"sb-form-fields\">\n <div class=\"form-container upload-form\">\n <sb-dynamic-form [config]=\"formConfig\" (statusChanges)=\"onStatusChanges($event)\"\n (valueChanges)=\"valueChanges($event)\"></sb-dynamic-form>\n </div>\n </div>\n </div>\n </div>\n <div class=\"sb-modal-actions flex-jc-space-between p-0\">\n <div>\n <button (click)=\"dismissPops(modal);\" class=\"mr-10 sb-btn sb-btn-primary sb-btn-normal\">{{configService.labelConfig?.button_labels?.cancel_btn_label}}</button>\n\n <button (click)=\"uploadAndUseImage(modal);\" [disabled]=\"!imageFormValid\"\n [ngClass]=\"{'sb-btn-primary': imageFormValid, 'sb-btn-disabled': !imageFormValid}\"\n class=\"sb-btn sb-btn-normal text-left\">{{configService.labelConfig?.button_labels?.upload_use_btn_label}} \n </button>\n </div>\n <div>\n <button (click)=\"dismissImageUploadModal();\" class=\" sb-btn sb-btn-primary sb-btn-normal\"> {{configService.labelConfig?.button_labels?.back_btn_label}}</button>\n </div>\n </div>\n </div>\n</sui-modal>\n\n<!-- Upload video pop up code here -->\n<sui-modal class=\"sb-modal overflow-modal\" [isClosable]=\"isClosable\" [isInverted]=\"false\"\n (dismissed)=\"dismissVideoUploadModal()\" *ngIf=\"showVideoUploadModal\" [size]=\"'large'\" [isFullScreen]=\"false\"\n [mustScroll]=\"true\" appBodyScroll #modal>\n <div class=\"sb-modal-header\">{{configService.labelConfig?.lbl?.uploadAndUse}}</div>\n <div class=\"p-10 sb-bg-white\">\n <div class=\"d-flex\">\n <div class=\"w-50\">\n <div class=\"content\">\n <h6 class=\"mb-8 fs-normal\">{{configService.labelConfig?.lbl?.chooseOrDragVideo}}<span class=\"red\">*</span></h6>\n <div class=\"upload-image-modal-section d-flex flex-ai-center flex-jc-center flex-dc\">\n <ng-container>\n <button class=\"upload-input-button sb-btn sb-btn-success sb-btn-normal\">\n {{configService.labelConfig?.button_labels?.upload_from_computer_btn_label}}\n <input (change)=\"uploadVideoFromLocal($event)\" type=\"file\" [accept]=\"acceptVideoType\" name=\"assetfile\">\n </button>\n <div class=\"py-10 fs-0-785 sb-color-primary\" *ngIf=\"imageUploadLoader\"> {{videoFile?.name}} </div>\n <span class=\"fsmall mt-8\">{{configService.labelConfig?.lbl?.upload}} {{assetConfig.video.accepted}} ({{configService.labelConfig?.lbl?.maxFileSize}}\n {{assetConfig.video.size}}{{assetConfig.video.sizeType}})</span>\n <div *ngIf=\"showErrorMsg\" class=\"sb-color-error fsmall mt-8\">\n <p>{{errorMsg}}</p>\n </div>\n </ng-container>\n </div>\n <div class=\"ui info message sb-info-bx\">\n <ul class=\"list\">\n <li class=\"fs-0785\">{{configService.labelConfig?.lbl?.allowedFileTypes}} {{assetConfig.video.accepted}}</li>\n <li class=\"fs-0785\">{{configService.labelConfig?.lbl?.maximumAllowedFileSize}} {{assetConfig.video.size}}{{assetConfig.video.sizeType}}</li>\n </ul>\n </div>\n <h6 class=\"fs-0785\">{{configService.labelConfig?.lbl?.copyRightsAndLicense}}<span class=\"red\">*</span></h6>\n <p class=\"fsmall mt-8 terms-and-condition\">{{termsAndCondition}}</p>\n </div>\n </div>\n <div class=\"w-50 pl-10 ml-10 b-bl\">\n <div class=\"ui info message sb-info-bx mb-0\">\n <ul class=\"list\">\n <li class=\"fs-0785 font-weight-bold\">\n <i class=\"icon info circle\" aria-hidden=\"true\"></i>\n {{configService.labelConfig?.lbl?.dropChooseFile}}</li>\n </ul>\n </div>\n <div class=\"sb-form-fields\">\n <div class=\"form-container upload-form\">\n <sb-dynamic-form [config]=\"formConfig\" (statusChanges)=\"onStatusChanges($event)\"\n (valueChanges)=\"valueChanges($event)\"></sb-dynamic-form>\n </div>\n </div>\n </div>\n </div>\n <div class=\"sb-modal-actions flex-jc-space-between p-0\">\n <div>\n <button (click)=\"dismissVideoPops(modal);\" class=\"mr-10 sb-btn sb-btn-primary sb-btn-normal\">{{configService.labelConfig?.button_labels?.cancel_btn_label}}</button>\n <button type=\"button\" class=\"sb-btn sb-btn-normal text-left sb-btn-loading-spinner sb-btn-primary\"\n [disabled]=\"!imageFormValid\" (click)=\"uploadVideo(modal);\" \n [ngClass]=\"{'sb-btn-primary': imageFormValid, 'sb-btn-disabled': !imageFormValid}\">\n <div class=\"sb-loading-spinner\" *ngIf=\"loading\" role=\"status\" aria-hidden=\"true\"></div>\n {{configService.labelConfig?.lbl?.uploadAndUse}}\n </button>\n </div>\n <div>\n <button (click)=\"dismissVideoUploadModal();\" class=\" sb-btn sb-btn-primary sb-btn-normal\"> {{configService.labelConfig?.button_labels?.back_btn_label}}</button>\n </div>\n </div>\n </div>\n</sui-modal>","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'sanitizeHtml'\n})\nexport class SanitizeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) { }\n\n transform(value: string): SafeHtml {\n return this.sanitizer.sanitize(1, value) || '';\n }\n}\n","import { Component, OnInit, Input, EventEmitter, Output, ViewEncapsulation } from '@angular/core';\nimport * as _ from 'lodash-es';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\nimport { ConfigService } from '../../services/config/config.service';\n@Component({\n selector: 'lib-options',\n templateUrl: './options.component.html',\n styleUrls: ['./options.component.scss'],\n})\nexport class OptionsComponent implements OnInit {\n @Input() editorState: any;\n @Input() showFormError;\n @Input() sourcingSettings: any;\n @Input() isReadOnlyMode: boolean;\n @Input() showSubMenu: boolean = false;\n @Input() parentMeta: any;\n @Output() editorDataOutput: EventEmitter<any> = new EventEmitter<any>();\n public setCharacterLimit = 160;\n public setImageLimit = 1;\n public templateType = 'mcq-vertical';\n public subMenus: any[] = [];\n public mapping: any = {};\n constructor(public telemetryService: EditorTelemetryService, public configService: ConfigService) { }\n\n ngOnInit() {\n if (!_.isUndefined(this.editorState.templateId)) {\n this.templateType = this.editorState.templateId;\n }\n this.editorDataHandler();\n }\n\n editorDataHandler(event?) {\n const body = this.prepareMcqBody(this.editorState);\n this.editorDataOutput.emit({ body, mediaobj: event ? event.mediaobj : undefined });\n }\n\n prepareMcqBody(editorState) {\n let metadata: any;\n const correctAnswer = editorState.answer;\n let resindex;\n const options = _.map(editorState.options, (opt, key) => {\n resindex = Number(key);\n if (Number(correctAnswer) === key) {\n return { answer: true, value: { body: opt.body, value: resindex } };\n } else {\n return { answer: false, value: { body: opt.body, value: resindex } };\n }\n });\n metadata = {\n templateId: this.templateType,\n name: 'Multiple Choice Question',\n responseDeclaration: this.getResponseDeclaration(editorState),\n interactionTypes: ['choice'],\n interactions: this.getInteractions(editorState.options),\n editorState: {\n options\n },\n qType: 'MCQ',\n primaryCategory: 'Multiple Choice Question'\n };\n return metadata;\n }\n\n getResponseDeclaration(editorState) {\n const responseDeclaration = {\n response1: {\n maxScore: 1,\n cardinality: 'single',\n type: 'integer',\n correctResponse: {\n value: editorState.answer,\n outcomes: { SCORE: 1 }\n }\n }\n };\n return responseDeclaration;\n }\n\n getInteractions(options) {\n let index;\n const interactOptions = _.map(options, (opt, key) => {\n index = Number(key);\n return { label: opt.body, value: index };\n });\n const interactions = {\n response1: {\n type: 'choice',\n options: interactOptions\n }\n };\n return interactions;\n }\n\n setTemplete(template) {\n this.templateType = template;\n this.editorDataHandler();\n }\n\n subMenuChange({ index, value }, optionIndex) {\n _.set(this.editorState, `interactions.response1.options[${optionIndex}].hints.en`, value)\n }\n\n subMenuConfig(options) {\n this.subMenus = []\n options.map((opt, index) => {\n const value = _.get(this.editorState, `interactions.response1.options[${index}].hints.en`)\n this.subMenus[index] = [\n {\n id: 'addHint',\n name: 'Add Hint',\n value,\n label: 'Hint',\n enabled: value ? true : false,\n type: 'input',\n show: _.get(this.sourcingSettings, 'showAddHints'),\n },\n ];\n });\n }\n\n setScore(value, scoreIndex) {\n const obj = {\n response: scoreIndex,\n outcomes: {\n score: value,\n },\n };\n this.mapping[scoreIndex] = obj;\n this.editorDataHandler();\n }\n}\n\n","<ng-container *ngIf=\"!isReadOnlyMode; else readOnlyContainer\">\n <div class=\"pt-10 fs-0-92 sb-w-85\">\n <label class=\"fs-0-92 font-weight-bold\">{{configService.labelConfig?.lbl?.options}}<span class=\"sb-required\">*</span></label>\n <label class=\"fs-0-92 d-inline-block\">{{configService.labelConfig?.lbl?.selectLayout}}</label>\n <i class=\"icon info circle ml-8\" suiPopup popupDelay=\"500\" popupText={{configService.labelConfig?.lbl?.optionsPopupText}}></i>\n <span class=\"divider mr-8\"></span>\n <span><button class=\"sb-btn sb-btn-xs sb-btn-outline-gray mr-5 q-sb-layout-single\" [ngClass]=\"{active: 'mcq-vertical' === templateType}\" (click)=\"setTemplete('mcq-vertical')\"><i class=\"mr-10 h-7\"></i> {{configService.labelConfig?.lbl?.vertical}}</button></span>\n <span><button class=\"sb-btn sb-btn-xs sb-btn-outline-gray mr-5 q-sb-layout-two\" [ngClass]=\"{active: 'mcq-vertical-split' === templateType}\" (click)=\"setTemplete('mcq-vertical-split')\"><i class=\"mr-10 h-7 w-20\"></i>{{configService.labelConfig?.lbl?.grid}}</button></span>\n <span><button class=\"sb-btn sb-btn-xs sb-btn-outline-gray q-sb-layout-three\" [ngClass]=\"{active: 'mcq-horizontal' === templateType}\" (click)=\"setTemplete('mcq-horizontal')\"> <i class=\"mr-10 h-7\"></i> {{configService.labelConfig?.lbl?.horizontal}}</button></span>\n </div>\n <label *ngIf=\"showFormError && !editorState.answer && sourcingSettings?.enforceCorrectAnswer\" class=\"ui basic red error label pt-1 mt-10\">\n {{configService.labelConfig?.lbl?.selectOneAns}}</label>\n <div class=\"d-flex pt-10 flex-dc sb-mcq-form\">\n <div class=\"d-flex sb-mcq-item flex-w-wrap\" *ngFor=\"let option of editorState.options; let i = index\">\n <div class=\"sb-w-85 sb-ckeditor relative mb-15\">\n <button [disabled]=\"editorState.options.length < 3\" class=\"sb-btn sb-ckeditor-close absolute\"\n (click)=\"editorState.deleteOption(i);editorDataHandler($event);\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('delete_option','click','submit',telemetryService.telemetryPageId)\">\n <i class=\"icon close\"></i>\n </button>\n <lib-ckeditor-tool [setCharacterLimit]=\"setCharacterLimit\" (editorDataOutput)=\"option.body = $event.body; option.length = $event.length; editorDataHandler($event)\"\n [editorDataInput]=\"option.body\" class=\"ckeditor-tool__option mb-10\"\n [class.mb-5]=\"showFormError && ([undefined, ''].includes(option.body) || option.length > setCharacterLimit)\">\n </lib-ckeditor-tool>\n <label *ngIf=\"\n showFormError && (option.body === undefined || option.body === '')\n \" class=\"sb-color-error fs-0-785\">{{configService.labelConfig?.lbl?.fillThisOption}}</label>\n <label *ngIf=\"option.length > setCharacterLimit\" class=\"ui basic red error label pt-1\">\n {{configService.labelConfig?.lbl?.reduceSize}}</label>\n </div>\n <div class=\"sb-checkbox sb-checkbox-primary pl-10 mt-0 pt-0\" [class.selected]=\"editorState.answer === i.toString()\" *ngIf=\"sourcingSettings?.enforceCorrectAnswer !== false\">\n <input type=\"radio\" id=\"answer_{{ i + 1 }}\" name=\"example\" value=\"{{ i }}\" (change)=\"editorDataHandler($event);\"\n [(ngModel)]=\"editorState.answer\" [ngModelOptions]=\"{ standalone: true }\" [checked]=\"editorState.answer === i.toString()\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('mark_as_right_anwser','click',undefined,telemetryService.telemetryPageId,{answer:i.toString()})\" />\n <label for=\"answer_{{ i + 1 }}\" class=\"mr-0 fs-0-785\">{{configService.labelConfig?.lbl?.correctAns}}</label>\n </div>\n <div class=\"w-100\" *ngIf=\"showSubMenu\">\n <lib-question-option-sub-menu [subMenus]=\"subMenus[i]\" (onChange)=\"subMenuChange($event,i)\"></lib-question-option-sub-menu>\n <div *ngIf=\"parentMeta?.allowScoring === 'Yes'\">\n <label for=\"score\" class=\"d-block mt-10 optionLabel\">Score <span class=\"sb-required\">*</span></label>\n <input\n class=\"sb-textbox false mb-30\"\n [placeholder]=\"'Add score here'\"\n (change)=\"setScore($event.target.value,i)\"\n *ngIf=\"sourcingSettings.showAddScore\"\n type=\"number\"\n [value]=\"mapping[i]?.outcomes?.score\"\n />\n </div>\n </div>\n </div>\n <div class=\"d-flex\">\n <button *ngIf=\"editorState.options.length < editorState.maximumOptions\"\n class=\"sb-btn sb-btn-outline-primary sb-btn-xs sb-left-icon-btn text-inherit b-0 bg-none no-hover p-0 mb-10 mt-10\"\n (click)=\"editorState.addOptions();editorDataHandler($event);\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('add_option','click','submit',telemetryService.telemetryPageId)\" >\n <i class=\"plus circle icon fs-1-286 pull-left mr-0\" aria-hidden=\"true\"></i><span class=\"sb-line-height-24\">{{configService.labelConfig?.lbl?.addOption}}</span>\n </button>\n </div>\n </div>\n</ng-container>\n\n<ng-template #readOnlyContainer>\n <div class=\"row mb-0 p-0\" *ngFor=\"let option of editorState.options; let i=index\">\n <div class=\"twelve wide column p-0\">\n <div class=\"ckeditor-tool width-100\">\n <div class=\"ckeditor-tool__question-readonly mb-24\">\n <label class=\"px-16 py-8 fs-0-92 mb-0 ckeditor-tool__label width-100\">Option {{ i+1 }}</label>\n <div class=\"ckeditor-tool__solution__body\">\n <p class=\"fs-0-785 p-16\" [innerHTML]=\"option.body | sanitizeHtml\"></p>\n <div class=\"mcq-checkbox-answer\" *ngIf=\"editorState.answer === i.toString()\">\n <div class=\"sb-checkbox sb-checkbox-primary mr-auto selected\">\n <input type=\"checkbox\" id=\"check1\" name=\"example\" disabled checked>\n <label for=\"check1\">{{configService.labelConfig?.lbl?.correctAns}}</label>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"w-100\" *ngIf=\"showSubMenu\">\n <lib-question-option-sub-menu [subMenus]=\"subMenus[i]\" (onChange)=\"subMenuChange($event,i)\"></lib-question-option-sub-menu>\n <div *ngIf=\"parentMeta?.allowScoring === 'Yes'\">\n <label for=\"score\" class=\"d-block mt-10 optionLabel\">Score</label>\n <input\n class=\"sb-textbox false mb-30\"\n [placeholder]=\"'Add score here'\"\n (change)=\"setScore($event.target.value,i)\"\n *ngIf=\"sourcingSettings.showAddScore\"\n type=\"number\"\n [value]=\"mapping[i]?.outcomes?.score\" \n disabled\n />\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { ConfigService } from '../../services/config/config.service';\n@Component({\n selector: 'lib-answer',\n templateUrl: './answer.component.html',\n styleUrls: ['./answer.component.scss']\n})\nexport class AnswerComponent implements OnInit {\n @Input() editorState;\n @Input() showFormError;\n @Output() editorDataOutput: EventEmitter<any> = new EventEmitter<any>();\n constructor(public configService: ConfigService) { }\n\n ngOnInit() {\n this.editorDataHandler({body: this.editorState.answer});\n }\n\n editorDataHandler(event) {\n const body = this.prepareAnwserData(event);\n this.editorDataOutput.emit({body, mediaobj: event.mediaobj});\n }\n\n prepareAnwserData(event) {\n return {\n answer: event.body,\n editorState: {\n answer: event.body\n },\n name: 'Subjective Question',\n qType: 'SA',\n primaryCategory: 'Subjective Question'\n };\n }\n}\n","<div class=\"sb-field-group mt-15\">\n <label class=\"fs-0-92\">{{configService.labelConfig?.lbl?.answers}}<span class=\"sb-required\">*</span></label><i class=\"icon info circle ml-2\" aria-hidden=\"true\" suiPopup popupDelay=\"500\" popupText={{configService.labelConfig?.lbl?.answersPopupText}}></i>\n <div class=\"sb-field\">\n <div class=\"ckeditor-tool__option mb-5\">\n <lib-ckeditor-tool (editorDataOutput)=\"editorDataHandler($event)\"\n [editorDataInput]=\"editorState.answer\"></lib-ckeditor-tool>\n </div>\n <label *ngIf=\"showFormError && [undefined, ''].includes(editorState.answer)\"\n class=\"sb-color-error fs-0-785\">{{configService.labelConfig?.lbl?.answersRequired}}</label>\n </div>\n</div>","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {ConfigService} from '../../services/config/config.service';\nimport {EditorTelemetryService} from '../../services/telemetry/telemetry.service';\nimport {EditorService} from '../../services/editor/editor.service';\n\n@Component({\n selector: 'lib-term-and-condition',\n templateUrl: './term-and-condition.component.html',\n styleUrls: ['./term-and-condition.component.scss']\n})\nexport class TermAndConditionComponent implements OnInit {\n @Input() showEditingConsent = true;\n @Input() showSubmitConfirmPopup;\n @Output() sendForReviewOutput = new EventEmitter();\n allConsent = false;\n termsConsent = false;\n editingConsent = false;\n\n constructor(public editorService: EditorService, public configService: ConfigService,\n public telemetryService: EditorTelemetryService) {\n }\n\n ngOnInit() {\n }\n\n get contentPolicyUrl() {\n return this.editorService.contentPolicyUrl;\n }\n\n onConsentChange(event, consentType) {\n switch (consentType) {\n case 'ALL':\n this.termsConsent = event.target.checked;\n this.editingConsent = event.target.checked;\n break;\n case 'TERM':\n case 'EDITING':\n this.allConsent = this.termsConsent && this.editingConsent;\n break;\n }\n }\n\n sendForReview() {\n this.sendForReviewOutput.emit({\n termsConsent: this.termsConsent,\n editingConsent: this.editingConsent,\n });\n this.resetAll();\n }\n\n onModalClose() {\n this.sendForReviewOutput.emit();\n this.resetAll();\n }\n\n resetAll() {\n this.showSubmitConfirmPopup = false;\n this.termsConsent = false;\n this.editingConsent = false;\n this.allConsent = false;\n }\n}\n","<sui-modal *ngIf='showSubmitConfirmPopup' [mustScroll]=\"false\" [isClosable]=\"true\" [transitionDuration]=\"0\"\n [size]=\"'normal'\" class=\"sb-modal overflow-modal\" (dismissed)=\"onModalClose()\">\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.acceptTerms}}\n </div>\n <div class=\"sb-modal-content\">\n <div class=\"ui grid\">\n <div class=\"twelve wide column sb-checkbox-tnc\" *ngIf=\"showEditingConsent\">\n <div class=\"sb-checkbox sb-checkbox-primary font-italic p-0 m-0\">\n <input [(ngModel)]=\"allConsent\" (change)=\"onConsentChange($event, 'ALL')\" id=\"checkAll\" name=\"example\"\n type=\"checkbox\">\n <label for=\"checkAll\" class=\"fsmall pl-32\">\n {{configService.labelConfig?.lbl?.acceptBothConsentNote}}\n </label>\n </div>\n </div>\n <div class=\"twelve wide column sb-checkbox-tnc\">\n <div class=\"sb-checkbox sb-checkbox-primary font-italic p-0 m-0\">\n <input [(ngModel)]=\"termsConsent\" (change)=\"onConsentChange($event, 'TERM')\" id=\"termsConsent\"\n name=\"example\" type=\"checkbox\">\n <label for=\"termsConsent\" class=\"fsmall pl-32\">\n <span class=\"font-weight-bold mb-4 d-block\">\n {{configService.labelConfig?.lbl?.iAgreeSubmit}}\n </span>\n <div class=\"sb-color-gray-300\">{{configService.labelConfig?.lbl?.iconfirmContent}}\n <a class=\"sb-color-primary font-weight-bold cursor-pointer\"\n href=\"https://creativecommons.org/licenses\" rel=\"noopener\" target=\"_blank\">\n {{configService.labelConfig?.lbl?.createCommonFramework}}\n </a>\n {{configService.labelConfig?.lbl?.accordance}}\n <a class=\"sb-color-primary font-weight-bold cursor-pointer\" href=\"{{contentPolicyUrl}}\" rel=\"noopener\"\n target=\"_blank\">\n {{configService.labelConfig?.lbl?.contentPolicy}}\n </a>\n {{configService.labelConfig?.lbl?.privacyRights}}\n <span class=\"sb-required\">*</span>\n </div>\n </label>\n </div>\n </div>\n <div class=\"twelve wide column sb-checkbox-tnc\" *ngIf=\"showEditingConsent\">\n <div class=\"sb-checkbox sb-checkbox-primary font-italic p-0 m-0\">\n <input [(ngModel)]=\"editingConsent\" (change)=\"onConsentChange($event, 'EDITING')\" id=\"editingConsent\"\n name=\"example\" type=\"checkbox\">\n <label for=\"editingConsent\" class=\"fsmall pl-32\">\n {{configService.labelConfig?.lbl?.editingConsentNote}}\n </label>\n </div>\n </div>\n </div>\n </div>\n <div class=\"sb-modal-actions\">\n <button type=\"button\" class=\"sb-btn sb-btn-normal\"\n [ngClass]=\"!termsConsent ? 'sb-btn-disabled' : 'sb-btn-primary'\"\n [disabled]=\"!termsConsent\"\n (click)=\"sendForReview()\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('submit','click','submit', this.telemetryService.telemetryPageId,{key: 'dialog_id', value: 'accepting_terms_conditions','termAndConditions' : termsConsent})\">\n {{configService.labelConfig?.button_labels?.submit_btn_label}}\n </button>\n </div>\n</sui-modal>\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {ConfigService} from '../../services/config/config.service';\n\n@Component({\n selector: 'lib-quality-params-modal',\n templateUrl: './quality-params-modal.component.html',\n styleUrls: ['./quality-params-modal.component.css']\n})\nexport class QualityParamsModalComponent implements OnInit {\n @Input() qualityFormConfig: any;\n @Input() showQualityParameterPopup: boolean;\n @Output() qualityParamChanged = new EventEmitter<any>();\n @Input() labelConfigData: any;\n formData: any;\n isApprovalBtnEnable: boolean;\n isRequestChangeBtnEnable: boolean;\n totalScoreValue = 0;\n\n constructor(public configService: ConfigService) {\n }\n\n ngOnInit(): void {\n }\n\n onStatusChanges(event) {\n this.isApprovalBtnEnable = event?.isValid;\n this.isRequestChangeBtnEnable = event?.isValid;\n }\n\n valueChanges(event) {\n this.formData = event;\n this.totalScoreValue = 0;\n for (const key in this.formData) {\n if (this.formData[key] && !isNaN(this.formData[key])) {\n this.totalScoreValue += parseInt(this.formData[key]);\n }\n }\n }\n\n submitApproval() {\n this.qualityParamChanged.emit({action: 'submit', data: this.formData});\n }\n\n requestChanges() {\n this.qualityParamChanged.emit({action: 'requestChange', data: this.formData});\n }\n\n onModalClose() {\n this.qualityParamChanged.emit({action: 'close'});\n }\n}\n","<sui-modal [mustScroll]=\"true\" *ngIf=\"showQualityParameterPopup\" [transitionDuration]=\"0\" [size]=\"'normal'\"\n class=\"sb-modal bx-none overflow-modal publish-checklist\" appBodyScroll #modal (dismissed)=\"onModalClose()\">\n <div class=\"sb-modal-header\">\n \n </div>\n <div class=\"sb-modal-content\">\n <h2> Score each parameter out of 5</h2>\n <div class=\"sb-form-fields\">\n <div class=\"form-container upload-form\">\n <sb-dynamic-form [config]=\"qualityFormConfig\" (statusChanges)=\"onStatusChanges($event)\"\n (valueChanges)=\"valueChanges($event)\"></sb-dynamic-form>\n </div>\n </div> \n <label>{{configService.labelConfig?.lbl?.totalScore}}: {{totalScoreValue}}</label>\n <p><em>{{configService.labelConfig?.lbl?.qualityReview}}</em></p>\n </div>\n <div class=\"sb-modal-actions\">\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary\" [disabled]=\"!isApprovalBtnEnable\" (click)=\"submitApproval()\">\n {{configService.labelConfig?.button_labels?.publish_collection_btn_label}}\n </button>\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary\" [disabled] = \"!isRequestChangeBtnEnable\" (click)=\"requestChanges()\">\n {{configService.labelConfig?.button_labels?.reject_collection_btn_label}}\n </button>\n </div>\n</sui-modal>\n\n","import { Component, EventEmitter, Input, OnInit, Output, AfterViewInit, ViewEncapsulation, OnDestroy } from '@angular/core';\nimport * as _ from 'lodash-es';\nimport { v4 as uuidv4 } from 'uuid';\nimport { McqForm } from '../../interfaces/McqForm';\nimport { ServerResponse } from '../../interfaces/serverResponse';\nimport { QuestionService } from '../../services/question/question.service';\nimport { PlayerService } from '../../services/player/player.service';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\nimport { EditorService } from '../../services/editor/editor.service';\nimport { ToasterService } from '../../services/toaster/toaster.service';\nimport { throwError, Subject } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { ConfigService } from '../../services/config/config.service';\nimport { FrameworkService } from '../../services/framework/framework.service';\nimport { TreeService } from '../../services/tree/tree.service';\nimport { EditorCursor } from '../../collection-editor-cursor.service';\nimport { filter, finalize, take, takeUntil } from 'rxjs/operators';\n\nexport interface SubMenu {\n id: string;\n name: string;\n value: any;\n label: string;\n enabled: boolean;\n type: string;\n show: boolean;\n}\n\nexport interface ICreationContext {\n objectType?: string;\n collectionObjectType?: string;\n}\n\nconst evidenceMimeType = '';\nconst evidenceSizeLimit = '20480';\n\n@Component({\n selector: 'lib-question',\n templateUrl: './question.component.html',\n styleUrls: ['./question.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class QuestionComponent implements OnInit, AfterViewInit, OnDestroy {\n QumlPlayerConfig: any = {};\n @Input() questionInput: any;\n @Input() leafFormConfig: any;\n public initialLeafFormConfig: any;\n public childFormData: any;\n @Output() questionEmitter = new EventEmitter<any>();\n private onComponentDestroy$ = new Subject<any>();\n toolbarConfig: any = {};\n public editorState: any = {};\n public showPreview = false;\n public mediaArr: any = [];\n public videoShow = false;\n public showFormError = false;\n selectedSolutionType: string;\n selectedSolutionTypeIndex: string;\n showSolutionDropDown = true;\n showSolution = false;\n videoSolutionName: string;\n videoSolutionData: any;\n videoThumbnail: string;\n solutionUUID: string;\n solutionValue: string;\n solutionTypes: any = [{\n type: 'html',\n value: 'Text+Image'\n },\n {\n type: 'video',\n value: 'video'\n }];\n questionMetaData: any;\n questionInteractionType;\n questionId;\n tempQuestionId;\n questionSetId;\n public setCharacterLimit = 160;\n public showLoader = true;\n questionSetHierarchy: any;\n showConfirmPopup = false;\n validQuestionData = false;\n questionPrimaryCategory: string;\n pageId = 'question';\n pageStartTime: any;\n public framework;\n public frameworkDetails: any = {};\n public questionMetadataFormStatus = true;\n public buttonLoaders = {\n saveButtonLoader: false,\n review: false\n };\n public showTranslation = false;\n subMenus: SubMenu[];\n showAddSecondaryQuestionCat: boolean;\n sliderDatas: any = {};\n sliderOptions: any = {};\n hints: any;\n categoryLabel: any = {};\n scoreMapping: any;\n condition = 'default';\n targetOption: any;\n responseVariable = 'response1';\n newQuestionID: any;\n showOptions: boolean;\n selectedOptions: any;\n options = [];\n isChildQuestion = false;\n branchingLogic: any;\n selectedSectionId: any;\n sectionPrimaryCategory: any;\n maxScore = 1;\n public questionFormConfig: any;\n treeNodeData: any;\n showQualityParameterPopup: boolean = false;\n public qualityFormConfig: any;\n requestChangesPopupAction: string;\n isReadOnlyMode: boolean = false;\n showSubmitConfirmPopup: boolean = false;\n showReviewModal: boolean = false;\n contentComment: string = '';\n creationMode: string;\n actionType: string;\n creationContext: ICreationContext;\n sourcingSettings: any;\n questionCategory: string;\n constructor(\n private questionService: QuestionService, public editorService: EditorService, public telemetryService: EditorTelemetryService,\n public playerService: PlayerService, private toasterService: ToasterService, private treeService: TreeService,\n private frameworkService: FrameworkService, private router: Router, public configService: ConfigService,\n private editorCursor: EditorCursor) {\n const { primaryCategory } = this.editorService.selectedChildren;\n this.questionPrimaryCategory = primaryCategory;\n this.pageStartTime = Date.now();\n }\n\n ngOnInit() {\n const { questionSetId, questionId, type, category, creationContext, creationMode } = this.questionInput;\n this.questionInteractionType = type;\n this.questionId = questionId;\n this.questionSetId = questionSetId;\n this.toolbarConfig = this.editorService.getToolbarConfig();\n this.toolbarConfig.showPreview = this.editorService.editorMode !== 'edit';\n this.toolbarConfig.add_translation = true;\n this.treeNodeData = this.treeService.getFirstChild();\n if (_.get(this.creationContext, 'objectType') === 'question') { this.toolbarConfig.questionContribution = true; }\n this.solutionUUID = uuidv4();\n this.telemetryService.telemetryPageId = this.pageId;\n this.initialLeafFormConfig = _.cloneDeep(this.leafFormConfig);\n this.initialize();\n this.framework = _.get(this.editorService.editorConfig, 'context.framework');\n this.qualityFormConfig = this.editorService.qualityFormConfig;\n }\n\n fetchFrameWorkDetails() {\n this.frameworkService.frameworkData$.pipe(takeUntil(this.onComponentDestroy$),\n filter(data => _.get(data, `frameworkdata.${this.framework}`)), take(1)).subscribe((frameworkDetails: any) => {\n if (frameworkDetails && !frameworkDetails.err) {\n const frameworkData = frameworkDetails.frameworkdata[this.framework].categories;\n this.frameworkDetails.frameworkData = frameworkData;\n this.frameworkDetails.topicList = _.get(_.find(frameworkData, { code: 'topic' }), 'terms');\n this.populateFrameworkData();\n }\n });\n }\n populateFrameworkData() {\n const categoryMasterList = this.frameworkDetails.frameworkData;\n _.forEach(categoryMasterList, (category) => {\n _.forEach(this.leafFormConfig, (formFieldCategory) => {\n if (category.code === formFieldCategory.code) {\n formFieldCategory.terms = category.terms;\n }\n });\n });\n }\n ngAfterViewInit() {\n this.telemetryService.impression({\n type: 'edit', pageid: this.telemetryService.telemetryPageId, uri: this.router.url,\n duration: (Date.now() - this.pageStartTime) / 1000\n });\n }\n\n initialize() {\n this.editorService.fetchCollectionHierarchy(this.questionSetId).subscribe((response) => {\n this.questionSetHierarchy = _.get(response, 'result.questionSet');\n const parentId = this.editorService.parentIdentifier ? this.editorService.parentIdentifier : this.questionId;\n //only for observation,survey,observation with rubrics\n if (!_.isUndefined(parentId) && !_.isUndefined(this.editorService.editorConfig.config.renderTaxonomy)) {\n this.getParentQuestionOptions(parentId);\n const sectionData = this.treeService.getNodeById(parentId);\n const children = _.get(response, 'result.questionSet.children');\n this.sectionPrimaryCategory = _.get(response, 'result.questionSet.primaryCategory');\n this.selectedSectionId = _.get(sectionData, 'data.metadata.parent');\n this.getBranchingLogic(children);\n }\n this.questionFormConfig = _.cloneDeep(this.leafFormConfig);\n let leafFormConfigFields = _.join(_.map(this.leafFormConfig, value => (value.code)), ',');\n leafFormConfigFields += ',isReviewModificationAllowed';\n if (!_.isUndefined(this.questionId)) {\n this.questionService.readQuestion(this.questionId, leafFormConfigFields)\n .subscribe((res) => {\n if (_.get(res, 'result')) {\n this.questionMetaData = _.get(res, 'result.question');\n this.questionPrimaryCategory = _.get(this.questionMetaData, 'primaryCategory');\n // tslint:disable-next-line:max-line-length\n this.questionInteractionType = _.get(this.questionMetaData, 'interactionTypes') ? _.get(this.questionMetaData, 'interactionTypes[0]') : 'default';\n this.editorService.setIsReviewModificationAllowed(_.get(this.questionMetaData, 'isReviewModificationAllowed', false));\n this.populateFormData();\n if (this.questionInteractionType === 'default') {\n if (this.questionMetaData.editorState) {\n this.editorState = this.questionMetaData.editorState;\n }\n }\n\n if (this.questionInteractionType === 'choice') {\n const responseDeclaration = this.questionMetaData.responseDeclaration;\n const templateId = this.questionMetaData.templateId;\n const numberOfOptions = this.questionMetaData?.editorState?.options?.length || 0;\n const maximumOptions = _.get(this.questionInput, 'config.maximumOptions');\n this.editorService.optionsLength = numberOfOptions;\n const options = _.map(this.questionMetaData?.editorState?.options, option => ({ body: option.value.body }));\n const question = this.questionMetaData?.editorState?.question;\n const interactions = this.questionMetaData?.interactions;\n this.editorState = new McqForm({\n question, options, answer: _.get(responseDeclaration, 'response1.correctResponse.value')\n }, { templateId, numberOfOptions, maximumOptions });\n this.editorState.solutions = this.questionMetaData?.editorState?.solutions;\n this.editorState.interactions = interactions;\n if (_.has(this.questionMetaData, 'responseDeclaration')) {\n this.editorState.responseDeclaration = _.get(this.questionMetaData, 'responseDeclaration');\n }\n }\n if (_.has(this.questionMetaData, 'primaryCategory')) {\n this.editorState.primaryCategory = _.get(this.questionMetaData, 'primaryCategory');\n }\n this.setQuestionTitle(this.questionId);\n if (!_.isEmpty(this.editorState.solutions)) {\n this.selectedSolutionType = this.editorState.solutions[0].type;\n this.solutionUUID = this.editorState.solutions[0].id;\n this.showSolutionDropDown = false;\n this.showSolution = true;\n if (this.selectedSolutionType === 'video') {\n const index = _.findIndex(this.questionMetaData.media, (o) => {\n return o.type === 'video' && o.id === this.editorState.solutions[0].value;\n });\n this.videoSolutionName = this.questionMetaData.media[index].name;\n this.videoThumbnail = this.questionMetaData.media[index].thumbnail;\n }\n if (this.selectedSolutionType === 'html') {\n this.editorState.solutions = this.editorState.solutions[0].value;\n }\n }\n if (this.questionMetaData.media) {\n this.mediaArr = this.questionMetaData.media;\n }\n /** for observation and survey to show hint,tip,dependent question option. */\n if (!_.isUndefined(this.editorService?.editorConfig?.config?.renderTaxonomy)) {\n this.subMenuConfig();\n }\n this.contentComment = _.get(this.creationContext, 'correctionComments');\n if (this.showPreview) {\n this.previewContent();\n }\n this.showLoader = false;\n }\n }, (err: ServerResponse) => {\n const errInfo = {\n errorMsg: 'Fetching question details failed. Please try again...',\n };\n return throwError(this.editorService.apiErrorHandling(err, errInfo));\n });\n }\n if (_.isUndefined(this.questionId)) {\n this.tempQuestionId = uuidv4();\n this.populateFormData();\n this.setQuestionTitle();\n if (this.questionInteractionType === 'default') {\n let editorState: any;\n if (this.questionCategory) {\n editorState = _.get(this.configService, `editorConfig.defaultStates.nonInteractiveQuestions.${this.questionCategory}`);\n } else {\n this.editorState = { question: '', answer: '', solutions: '' };\n }\n if (editorState) {\n this.editorState = { ...editorState };\n }\n }\n else if (this.questionInteractionType === 'choice') {\n this.editorState = new McqForm({ question: '', options: [] }, { numberOfOptions: _.get(this.questionInput, 'config.numberOfOptions'), maximumOptions: _.get(this.questionInput, 'config.maximumOptions') });\n }\n /** for observation and survey to show hint,tip,dependent question option. */\n if (!_.isUndefined(this.editorService?.editorConfig?.config?.renderTaxonomy)) {\n this.subMenuConfig();\n }\n this.showLoader = false;\n }\n }, (err: ServerResponse) => {\n const errInfo = {\n errorMsg: 'Fetching question set details failed. Please try again...',\n };\n this.editorService.apiErrorHandling(err, errInfo);\n });\n }\n\n get contentPolicyUrl() {\n return this.editorService.contentPolicyUrl;\n }\n\n toolbarEventListener(event) {\n switch (event.button) {\n case 'saveContent':\n this.saveContent();\n break;\n case 'cancelContent':\n this.handleRedirectToQuestionset();\n break;\n case 'backContent':\n this.handleRedirectToQuestionset();\n break;\n case 'previewContent':\n this.previewContent();\n break;\n case 'editContent':\n this.isReadOnlyMode = false;\n this.showPreview = false;\n this.toolbarConfig.showPreview = false;\n this.previewFormData(!this.toolbarConfig.showPreview);\n break;\n case 'showReviewcomments':\n this.showReviewModal = !this.showReviewModal;\n break;\n case 'saveQualityParameters':\n this.showQualityParameterPopup = true;\n break;\n default:\n break;\n }\n }\n\n handleRedirectToQuestionset() {\n if (_.isUndefined(this.questionId)) {\n this.showConfirmPopup = true;\n } else {\n this.redirectToQuestionset();\n }\n }\n\n\n submitHandler() {\n this.validateQuestionData();\n this.validateFormFields();\n if (this.showFormError === false) {\n this.showSubmitConfirmPopup = true;\n }\n }\n\n saveContent() {\n this.validateQuestionData();\n if (this.showFormError === false && this.questionMetadataFormStatus === true) {\n this.saveQuestion();\n } else {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.044'));\n }\n }\n\n onConsentSubmit(event) {\n this.showSubmitConfirmPopup = false;\n if (event) {\n this.questionMetaData = _.assign(this.questionMetaData, { isReviewModificationAllowed: event.editingConsent });\n this.sendForReview();\n }\n }\n\n sendForReview() {\n if (!_.get(this.editorService.editorConfig, 'config.skipTwoLevelReview')) {\n let callback = function () {\n this.editorService.reviewContent(this.questionId).subscribe(data => {\n this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.002'));\n this.redirectToChapterList();\n }, err => {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.002'));\n });\n };\n if (!this.questionId) {\n callback = function () {\n this.editorService.reviewContent(this.questionId).subscribe(data => {\n this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.002'));\n this.addResourceToQuestionset();\n }, err => {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.002'));\n });\n };\n }\n callback = callback.bind(this);\n this.upsertQuestion(callback);\n } else {\n const publishCallback = this.sendQuestionForPublish.bind(this);\n const callback = this.addResourceToQuestionset.bind(this, publishCallback);\n this.upsertQuestion(callback);\n }\n }\n\n requestForChanges(comment) {\n this.editorService.submitRequestChanges(this.questionId, comment).subscribe(res => {\n this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.003'));\n this.redirectToChapterList();\n }, err => {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.003'));\n });\n }\n\n sendQuestionForPublish(event) {\n this.editorService.publishContent(this.questionId, event).subscribe(res => {\n if (!(this.creationMode === 'sourcingReview' && this.editorService.isReviewModificationAllowed)) {\n this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.037'));\n }\n this.redirectToChapterList();\n }, err => {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.038'));\n });\n }\n\n rejectQuestion(comment) {\n const editableFields = _.get(this.creationContext, 'editableFields');\n if (this.creationMode === 'orgreview' && editableFields && !_.isEmpty(editableFields[this.creationMode])) {\n this.validateFormFields();\n if (this.showFormError === true) {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.029'));\n return false;\n }\n let callback = this.requestForChanges.bind(this, [comment]);\n this.upsertQuestion(callback);\n } else {\n this.requestForChanges(comment);\n }\n }\n\n publishQuestion(event) {\n const editableFields = _.get(this.creationContext, 'editableFields');\n if (this.creationMode === 'orgreview' && editableFields && !_.isEmpty(editableFields[this.creationMode])) {\n this.validateFormFields();\n if (this.showFormError === true) {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.029'));\n return false;\n }\n let callback = this.sendQuestionForPublish.bind(this, [event]);\n this.upsertQuestion(callback);\n } else {\n this.sendQuestionForPublish(event);\n }\n }\n\n sourcingUpdate(event) {\n const editableFields = _.get(this.creationContext, 'editableFields');\n if (this.creationMode === 'sourcingreview' && editableFields && !_.isEmpty(editableFields[this.creationMode])) {\n this.validateFormFields();\n if (this.showFormError === true) {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.029'));\n return false;\n }\n }\n let questionIds = [];\n //let comments = {};\n let comments = event.comment\n let successMessage = '';\n this.editorService.fetchCollectionHierarchy(this.questionSetId).subscribe(res => {\n const questionSet = res.result['questionSet'];\n switch (event.button) {\n case 'sourcingApproveQuestion':\n questionIds = questionSet.acceptedContributions || [];\n successMessage = _.get(this.configService, 'labelConfig.messages.success.038')\n break;\n case 'sourcingRejectQuestion':\n questionIds = questionSet.rejectedContributions || [];\n comments = questionSet.rejectedContributionComments || {};\n comments[this.questionId] = event.comment;\n successMessage = _.get(this.configService, 'labelConfig.messages.success.039')\n break;\n default:\n break;\n }\n questionIds.push(this.questionId);\n event['requestBody'] = this.prepareSourcingUpdateBody(questionIds, comments);\n this.editorService.updateCollection(this.questionSetId, event).subscribe(res => {\n this.toasterService.success(successMessage);\n this.redirectToChapterList();\n })\n })\n }\n\n sendBackQuestion(event) {\n this.questionService.readQuestion(this.questionId, 'status')\n .subscribe((res) => {\n const requestObj = {\n question: {\n prevStatus: _.get(res.result, `question.status`),\n status: 'Draft',\n requestChanges: event.comment\n }\n };\n this.questionService.updateQuestion(this.questionId, requestObj).subscribe(res => {\n this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.040'));\n this.redirectToChapterList();\n });\n }, (err: ServerResponse) => {\n const errInfo = {\n errorMsg: 'Cannot update question status. Please try again...',\n };\n this.editorService.apiErrorHandling(err, errInfo);\n });\n }\n\n validateQuestionData() {\n\n if ([undefined, ''].includes(this.editorState.question)) {\n this.showFormError = true;\n return;\n }\n\n // to handle when question type is subjective\n if (this.questionInteractionType === 'default') {\n if (this.editorState.answer !== '') {\n this.showFormError = false;\n } else {\n this.showFormError = true;\n return;\n }\n }\n\n // to handle when question type is mcq\n if (this.questionInteractionType === 'choice') {\n const data = _.get(this.treeNodeData, 'data.metadata');\n if (_.get(this.editorState, 'interactionTypes[0]') === 'choice' &&\n _.isEmpty(this.editorState?.responseDeclaration?.response1?.mapping) &&\n !_.isUndefined(this.editorService?.editorConfig?.config?.renderTaxonomy) &&\n _.get(data, 'allowScoring') === 'Yes') {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.005'));\n this.showFormError = true;\n return;\n } else {\n this.showFormError = false;\n }\n const optionValid = _.find(this.editorState.options, option =>\n (option.body === undefined || option.body === '' || option.length > this.setCharacterLimit));\n if (optionValid || (!this.editorState.answer && this.sourcingSettings?.enforceCorrectAnswer)) {\n this.showFormError = true;\n return;\n } else {\n this.showFormError = false;\n }\n }\n\n if (this.questionInteractionType === 'slider') {\n const min = _.get(this.sliderDatas, 'validation.range.min');\n const max = _.get(this.sliderDatas, 'validation.range.max');\n const step = _.get(this.sliderDatas, 'step');\n if (_.isEmpty(this.sliderDatas) || _.isEmpty(min) || _.isEmpty(max) || _.isEmpty(step)) {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.005'));\n this.showFormError = true;\n } else {\n this.showFormError = false;\n }\n }\n\n }\n\n redirectToQuestionset() {\n this.showConfirmPopup = false;\n setTimeout(() => {\n if (this.showAddSecondaryQuestionCat) {\n this.questionEmitter.emit({\n type: \"createNewContent\",\n isChildQuestion: true,\n });\n } else {\n this.editorService.parentIdentifier = undefined;\n }\n this.showAddSecondaryQuestionCat = false;\n this.questionEmitter.emit({ status: false });\n }, 100);\n }\n\n addResourceToQuestionset(publishCallback?) {\n const questionSetId = _.get(this.editorService.editorConfig, 'context.identifier');\n const unitId = this.selectedSectionId || _.get(this.questionInput, 'config.parent');\n this.editorService.addResourceToQuestionset(questionSetId, unitId, this.questionId).subscribe(() => {\n this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.009'));\n if (publishCallback) {\n publishCallback();\n } else {\n this.redirectToQuestionset();\n }\n }, (err) => {\n const errInfo = {\n errorMsg: 'Failed to add question to questionset. Please try again...',\n };\n this.editorService.apiErrorHandling(err, errInfo);\n });\n }\n\n redirectToChapterList() {\n this.questionEmitter.emit({ status: false });\n }\n\n setQuestionId(questionId: string) {\n this.questionId = questionId;\n }\n\n editorDataHandler(event, type?) {\n if (type === 'question') {\n this.editorState.question = event.body;\n } else if (type === 'solution') {\n this.editorState.solutions = event.body;\n } else {\n this.editorState = _.assign(this.editorState, event.body);\n }\n\n if (event.mediaobj) {\n const media = event.mediaobj;\n this.setMedia(media);\n }\n }\n\n setMedia(media) {\n if (media) {\n const value = _.find(this.mediaArr, ob => {\n return ob.id === media.id;\n });\n if (value === undefined) {\n this.mediaArr.push(media);\n }\n }\n }\n\n saveQuestion() {\n if (_.get(this.creationContext, 'objectType') === 'question') {\n if (this.creationMode === 'edit') {\n const callback = this.addResourceToQuestionset.bind(this);\n this.upsertQuestion(callback);\n } else if (this.creationMode === 'sourcingReview') {\n const callback = this.sendQuestionForPublish.bind(this);\n this.upsertQuestion(callback);\n } else {\n this.upsertQuestion(undefined);\n }\n }\n else {\n if (_.isUndefined(this.questionId)) {\n this.createQuestion();\n }\n if (!_.isUndefined(this.questionId)) {\n this.updateQuestion();\n }\n }\n }\n\n videoDataOutput(event) {\n if (event) {\n this.videoSolutionData = event;\n this.videoSolutionName = event.name;\n this.editorState.solutions = event.identifier;\n this.videoThumbnail = event.thumbnail;\n const videoMedia: any = {};\n videoMedia.id = event.identifier;\n videoMedia.src = event.src;\n videoMedia.type = 'video';\n videoMedia.assetId = event.identifier;\n videoMedia.name = event.name;\n videoMedia.thumbnail = this.videoThumbnail;\n videoMedia.baseUrl = _.get(this.editorService.editorConfig, 'context.host') || document.location.origin;\n if (videoMedia.thumbnail) {\n const thumbnailMedia: any = {};\n thumbnailMedia.src = this.videoThumbnail;\n thumbnailMedia.type = 'image';\n thumbnailMedia.id = `video_${event.identifier}`;\n thumbnailMedia.baseUrl = _.get(this.editorService.editorConfig, 'context.host') || document.location.origin;\n this.mediaArr.push(thumbnailMedia);\n }\n this.mediaArr.push(videoMedia);\n this.showSolutionDropDown = false;\n this.showSolution = true;\n } else {\n this.deleteSolution();\n }\n this.videoShow = false;\n }\n\n selectSolutionType(data: any) {\n const index = _.findIndex(this.solutionTypes, (sol: any) => {\n return sol.value === data;\n });\n this.selectedSolutionType = this.solutionTypes[index].type;\n if (this.selectedSolutionType === 'video') {\n const showVideo = true;\n this.videoShow = showVideo;\n } else {\n this.showSolutionDropDown = false;\n }\n }\n\n deleteSolution() {\n if (this.selectedSolutionType === 'video') {\n this.mediaArr = _.filter(this.mediaArr, (item: any) => item.id !== this.editorState.solutions);\n }\n this.showSolutionDropDown = true;\n this.selectedSolutionType = '';\n this.videoSolutionName = '';\n this.editorState.solutions = '';\n this.videoThumbnail = '';\n this.showSolution = false;\n }\n\n getSolutionObj(solutionUUID, selectedSolutionType, editorStateSolutions: any) {\n let solutionObj: any;\n solutionObj = {};\n solutionObj.id = solutionUUID;\n solutionObj.type = selectedSolutionType;\n if (_.isString(editorStateSolutions)) {\n solutionObj.value = editorStateSolutions;\n }\n if (_.isArray(editorStateSolutions)) {\n if (_.has(editorStateSolutions[0], 'value')) {\n solutionObj.value = editorStateSolutions[0].value;\n }\n }\n return solutionObj;\n }\n\n getQuestionMetadata() {\n let metadata: any = {\n mimeType: 'application/vnd.sunbird.question',\n media: this.mediaArr,\n editorState: {}\n };\n metadata = _.assign(metadata, this.editorState);\n metadata.editorState.question = metadata.question;\n metadata.body = metadata.question;\n const treeNodeData = _.get(this.treeNodeData, 'data.metadata');\n\n if (!(_.get(treeNodeData, \"allowScoring\") === \"Yes\")) {\n _.set(metadata, \"responseDeclaration.response1.mapping\", []);\n }\n\n if (this.questionInteractionType === 'choice') {\n metadata.body = this.getMcqQuestionHtmlBody(this.editorState.question, this.editorState.templateId);\n }\n\n if (!_.isUndefined(this.selectedSolutionType) && !_.isEmpty(this.selectedSolutionType)) {\n const solutionObj = this.getSolutionObj(this.solutionUUID, this.selectedSolutionType, this.editorState.solutions);\n metadata.editorState.solutions = [solutionObj];\n metadata.solutions = [solutionObj];\n }\n if (_.isEmpty(this.editorState.solutions)) {\n metadata.solutions = [];\n }\n metadata = _.merge(metadata, this.getDefaultSessionContext());\n if (_.get(this.creationContext, 'objectType') === 'question') {\n metadata.programId = _.get(this.editorService, 'editorConfig.context.programId');\n metadata.collectionId = _.get(this.editorService, 'editorConfig.context.collectionIdentifier');\n metadata.organisationId = _.get(this.editorService, 'editorConfig.context.contributionOrgId');\n }\n if (this.questionInteractionType === 'choice') {\n metadata.responseDeclaration.response1.maxScore = this.maxScore;\n metadata.responseDeclaration.response1.correctResponse.outcomes.SCORE = this.maxScore;\n }\n metadata = _.merge(metadata, _.pickBy(this.childFormData, _.identity));\n if (_.get(this.creationContext, 'objectType') === 'question') {\n metadata.isReviewModificationAllowed = !!_.get(this.questionMetaData, 'isReviewModificationAllowed');\n }\n // tslint:disable-next-line:max-line-length\n return _.omit(metadata, ['question', 'numberOfOptions', 'options', 'allowMultiSelect', 'showEvidence', 'evidenceMimeType', 'showRemarks', 'markAsNotMandatory', 'leftAnchor', 'rightAnchor', 'step', 'numberOnly', 'characterLimit', 'dateFormat', 'autoCapture', 'remarksLimit', 'maximumOptions']);\n }\n\n getResponseDeclaration(type) {\n const responseDeclaration = {\n response1: {\n type: type === 'slider' ? 'integer' : 'string'\n }\n };\n if (type === 'text' || type === 'slider') {\n responseDeclaration.response1['maxScore'] = this.maxScore;\n }\n return responseDeclaration;\n }\n\n\n\n getMcqQuestionHtmlBody(question, templateId) {\n const mcqTemplateConfig = {\n // tslint:disable-next-line:max-line-length\n mcqBody: '<div class=\\'question-body\\'><div class=\\'mcq-title\\'>{question}</div><div data-choice-interaction=\\'response1\\' class=\\'{templateClass}\\'></div></div>'\n };\n const { mcqBody } = mcqTemplateConfig;\n const questionBody = mcqBody.replace('{templateClass}', templateId)\n .replace('{question}', question);\n return questionBody;\n }\n\n getDefaultSessionContext() {\n return _.omitBy(_.merge(\n {\n author: _.get(this.editorService.editorConfig, 'context.user.fullName'),\n createdBy: _.get(this.editorService.editorConfig, 'context.user.id'),\n ..._.pick(_.get(this.editorService.editorConfig, 'context'), ['board', 'medium', 'gradeLevel', 'subject', 'topic'])\n },\n {\n ..._.pick(this.questionSetHierarchy, this.configService.sessionContext)\n }\n ), key => _.isEmpty(key));\n }\n\n setQuestionTypeValues(metaData) {\n metaData.showEvidence = this.childFormData.showEvidence;\n if (metaData.showEvidence === 'Yes') {\n metaData.evidence = {\n required: 'No',\n mimeType: this.childFormData.evidenceMimeType,\n minCount: 1,\n maxCount: 1,\n sizeLimit: evidenceSizeLimit,\n };\n }\n metaData.showRemarks = this.childFormData.showRemarks;\n if (metaData.showRemarks === 'Yes') {\n metaData.remarks = {\n maxLength: this.childFormData.remarksLimit,\n required: 'No'\n };\n }\n metaData.interactions = metaData.interactions || {};\n\n metaData.interactions.validation = { required: this.childFormData.markAsNotMandatory === 'Yes' ? 'No' : 'Yes' };\n if (this.childFormData.allowMultiSelect === 'Yes') {\n metaData.responseDeclaration.response1.cardinality = 'multiple';\n } else {\n metaData.responseDeclaration.response1.cardinality = 'single';\n }\n\n if (!_.isUndefined(this.editorService?.editorConfig?.config?.renderTaxonomy)) {\n this.calculateMinMaxScore(metaData);\n }\n\n _.forEach(this.subMenus, (el: any) => {\n if (el.id === 'addHint') {\n metaData.hints = {\n en: [el.value]\n };\n }\n if (el.id === 'addTip') {\n metaData.instructions = {\n en: [el.value]\n };\n }\n });\n\n if (!_.isEmpty(this.sliderDatas) && this.questionInteractionType === 'slider') {\n metaData.interactionTypes = [this.questionInteractionType];\n metaData.primaryCategory = this.questionPrimaryCategory;\n metaData.interactions = {\n ...metaData.interactions,\n response1: {\n validation: this.sliderDatas.validation,\n step: this.sliderDatas.step\n }\n };\n }\n\n if (this.questionInteractionType === 'date') {\n metaData.interactionTypes = [this.questionInteractionType];\n metaData.primaryCategory = this.questionPrimaryCategory;\n metaData.interactions = {\n ...metaData.interactions,\n response1: {\n validation: { pattern: this.childFormData.dateFormat },\n autoCapture: this.childFormData.autoCapture\n }\n };\n }\n\n if (this.questionInteractionType === 'text') {\n metaData.interactionTypes = [this.questionInteractionType];\n metaData.primaryCategory = this.questionPrimaryCategory;\n metaData.interactions = {\n ...metaData.interactions,\n response1: {\n validation: {\n limit: {\n maxLength: this.childFormData.characterLimit,\n }\n },\n type: {\n number: this.childFormData.numberOnly\n }\n }\n };\n }\n // return metaData;\n }\n\n prepareRequestBody() {\n const questionId = this.questionId ? this.questionId : uuidv4();\n this.newQuestionID = questionId;\n const data = this.treeNodeData;\n const activeNode = this.treeService.getActiveNode();\n const selectedUnitId = _.get(activeNode, 'data.id');\n this.editorService.data = {};\n return {\n nodesModified: {\n [questionId]: {\n metadata: this.getQuestionMetadata(),\n objectType: 'Question',\n root: false,\n isNew: !this.questionId\n }\n },\n hierarchy: this.editorService.getHierarchyObj(data, questionId, selectedUnitId)\n };\n }\n\n prepareQuestionBody() {\n return this.questionId ?\n {\n question: _.omit(this.getQuestionMetadata(), ['mimeType', 'creator', 'createdBy', 'organisationId'])\n } :\n {\n question: {\n code: uuidv4(),\n ...this.getQuestionMetadata()\n }\n };\n }\n\n prepareSourcingUpdateBody(questionIds, comments?) {\n const sourcingUpdateAttribute = this.actionType === 'sourcingApproveQuestion' ? 'acceptedContributions'\n : 'rejectedContributions';\n const collectionObjectType = _.replace(_.lowerCase(this.creationContext['collectionObjectType']), ' ', '');\n const requestBody = {\n request: {\n [collectionObjectType]: {\n [sourcingUpdateAttribute]: questionIds\n }\n }\n };\n if (this.actionType === 'sourcingRejectQuestion') {\n requestBody.request[collectionObjectType]['rejectedContributionComments'] = comments;\n // requestBody.request[collectionObjectType]['rejectComment'] = comments;\n }\n return requestBody;\n }\n\n upsertQuestion(callback) {\n const requestBody = this.prepareQuestionBody();\n this.showHideSpinnerLoader(true);\n this.questionService.upsertQuestion(this.questionId, requestBody).pipe(\n finalize(() => {\n this.showHideSpinnerLoader(false);\n })).subscribe((response: ServerResponse) => {\n if (!_.includes(['submitQuestion'], this.actionType)) {\n this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.013'));\n }\n this.setQuestionId(_.get(response, 'result.identifier'));\n if (callback) callback();\n }, (err: ServerResponse) => {\n const errInfo = {\n errorMsg: 'Failed to save question. Please try again...',\n };\n this.editorService.apiErrorHandling(err, errInfo);\n });\n }\n\n createQuestion() {\n const requestBody = this.prepareRequestBody();\n this.showHideSpinnerLoader(true);\n this.questionService.updateHierarchyQuestionCreate(requestBody).pipe(\n finalize(() => {\n this.showHideSpinnerLoader(false);\n })).subscribe((response: ServerResponse) => {\n this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.007'));\n this.redirectToQuestionset();\n }, (err: ServerResponse) => {\n const errInfo = {\n errorMsg: 'Question creating failed. Please try again...',\n };\n this.editorService.apiErrorHandling(err, errInfo);\n });\n }\n\n updateQuestion() {\n const requestBody = this.prepareRequestBody();\n this.showHideSpinnerLoader(true);\n this.questionService.updateHierarchyQuestionUpdate(requestBody).pipe(\n finalize(() => {\n this.showHideSpinnerLoader(false);\n })).subscribe((response: ServerResponse) => {\n this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.008'));\n this.redirectToQuestionset();\n }, (err: ServerResponse) => {\n const errInfo = {\n errorMsg: 'Question updating failed. Please try again...',\n };\n this.editorService.apiErrorHandling(err, errInfo);\n });\n }\n\n saveQuestions(requestBody, type) {\n this.showHideSpinnerLoader(true);\n const serviceMethod = type === 'create' ?\n this.questionService.updateHierarchyQuestionCreate(requestBody) :\n this.questionService.updateHierarchyQuestionUpdate(requestBody);\n\n serviceMethod.pipe(\n finalize(() => {\n this.showHideSpinnerLoader(false);\n })).subscribe((response: ServerResponse) => {\n const successMsg = type === 'create' ?\n _.get(this.configService, 'labelConfig.messages.success.007') :\n _.get(this.configService, 'labelConfig.messages.success.008');\n this.toasterService.success(successMsg);\n this.redirectToQuestionset();\n }, (err: ServerResponse) => {\n const errInfo = {\n errorMsg: `Question ${type === 'create' ? 'creating' : 'updating'} failed. Please try again...`,\n };\n this.editorService.apiErrorHandling(err, errInfo);\n });\n }\n\n showHideSpinnerLoader(status: boolean) {\n this.buttonLoaders.saveButtonLoader = status;\n }\n\n previewContent() {\n this.validateQuestionData();\n if (this.showFormError === false && this.questionMetadataFormStatus === true) {\n this.previewFormData(false);\n const activeNode = this.treeService.getActiveNode();\n let questionId = '';\n if (_.isUndefined(this.questionId)) {\n questionId = this.tempQuestionId;\n this.setParentConfig(activeNode?.data?.metadata);\n } else {\n questionId = this.questionId;\n this.setParentConfig(activeNode?.parent?.data?.metadata);\n }\n this.questionSetHierarchy.childNodes = [questionId];\n this.setQumlPlayerData(questionId);\n this.showPreview = true;\n this.toolbarConfig.showPreview = true;\n } else {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.044'));\n }\n }\n\n setParentConfig(parentConfig) {\n this.questionSetHierarchy.showSolutions = !_.isUndefined(parentConfig?.showSolutions) ?\n parentConfig.showSolutions : 'No';\n this.questionSetHierarchy.shuffle = !_.isUndefined(parentConfig?.shuffle) ?\n parentConfig.shuffle : true;\n this.questionSetHierarchy.showFeedback = !_.isUndefined(parentConfig?.showFeedback) ?\n parentConfig.showFeedback : 'No';\n }\n\n setQumlPlayerData(questionId: string) {\n const questionMetadata: any = _.cloneDeep(this.getQuestionMetadata());\n questionMetadata.identifier = questionId;\n this.questionSetHierarchy.children = [questionMetadata];\n if (this.questionSetHierarchy.shuffle === true) {\n // tslint:disable-next-line:no-string-literal\n this.questionSetHierarchy['maxScore'] = 1;\n } else {\n if (questionMetadata.qType === 'SA') {\n this.questionSetHierarchy = _.omit(this.questionSetHierarchy, 'maxScore');\n } else if (questionMetadata.maxScore) {\n // tslint:disable-next-line:no-string-literal\n this.questionSetHierarchy['maxScore'] = this.maxScore;\n }\n }\n this.editorCursor.setQuestionMap(questionId, questionMetadata);\n }\n\n getPlayerEvents(event) {\n console.log('get player events', JSON.stringify(event));\n }\n\n getTelemetryEvents(event) {\n console.log('event is for telemetry', JSON.stringify(event));\n }\n\n setQuestionTitle(questionId?) {\n let index;\n let questionTitle = '';\n let hierarchyChildren = this.treeService.getChildren();\n if (!_.isUndefined(questionId)) {\n const parentNode = this.treeService.getActiveNode().getParent();\n hierarchyChildren = parentNode.getChildren();\n index = _.findIndex(hierarchyChildren, (node) => node.data.id === questionId);\n const question = hierarchyChildren[index];\n questionTitle = `Q${(index + 1).toString()} | ` + question.data.primaryCategory;\n } else {\n index = hierarchyChildren.length;\n questionTitle = `Q${(index + 1).toString()} | `;\n if (!_.isUndefined(this.questionPrimaryCategory)) {\n questionTitle = questionTitle + this.questionPrimaryCategory;\n }\n }\n this.toolbarConfig.title = questionTitle;\n }\n output(event) { }\n\n onStatusChanges(event) {\n console.log(event);\n if (_.has(event, 'isValid')) {\n this.questionMetadataFormStatus = event.isValid;\n }\n }\n\n valueChanges(event) {\n if (_.has(event, 'maxScore')) {\n // tslint:disable-next-line:radix\n event.maxScore = !_.isNull(event.maxScore) ? parseInt(event.maxScore) : this.maxScore;\n this.maxScore = event.maxScore;\n }\n this.childFormData = event;\n }\n validateFormFields() {\n _.forEach(this.leafFormConfig, (formFieldCategory) => {\n if (formFieldCategory.required && !this.childFormData[formFieldCategory.code]) {\n this.showFormError = true;\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.008'));\n return false;\n }\n });\n return true;\n }\n previewFormData(status) {\n const formConfig = _.cloneDeep(this.leafFormConfig);\n this.questionFormConfig = null;\n _.forEach(formConfig, (formFieldCategory) => {\n if (_.has(formFieldCategory, 'editable') && !_.isUndefined(formFieldCategory.editable)) {\n formFieldCategory.editable = status ? _.find(this.leafFormConfig, { code: formFieldCategory.code }).editable : status;\n formFieldCategory.default = this.childFormData[formFieldCategory.code];\n }\n });\n this.leafFormConfig = formConfig;\n }\n populateFormData() {\n this.childFormData = {};\n _.forEach(this.leafFormConfig, (formFieldCategory) => {\n if (!_.isUndefined(this.questionId)) {\n if (formFieldCategory.code === 'maxScore' && this.questionInteractionType === 'choice') {\n this.childFormData[formFieldCategory.code] = _.has(this.questionMetaData, 'responseDeclaration.response1.maxScore') ?\n _.get(this.questionMetaData, 'responseDeclaration.response1.maxScore') : this.maxScore;\n } else if (formFieldCategory.code === 'allowMultiSelect' && this.questionInteractionType === 'choice') {\n this.childFormData[formFieldCategory.code] = _.get(this.questionMetaData, 'responseDeclaration.response1.cardinality') === 'multiple' ? 'Yes' : 'No';\n }\n else if (this.questionMetaData && _.has(this.questionMetaData, formFieldCategory.code)) {\n formFieldCategory.default = this.questionMetaData[formFieldCategory.code];\n this.childFormData[formFieldCategory.code] = this.questionMetaData[formFieldCategory.code];\n }\n try {\n const availableAlias = {\n dateFormat: 'interactions.response1.validation.pattern',\n autoCapture: 'interactions.response1.autoCapture',\n markAsNotMandatory: 'interactions.validation.required',\n numberOnly: 'interactions.response1.type.number',\n characterLimit: 'interactions.response1.validation.limit.maxLength',\n remarksLimit: 'remarks.maxLength',\n evidenceMimeType: 'evidence.mimeType'\n };\n if (this.questionMetaData && _.has(availableAlias, formFieldCategory.code)) {\n let defaultValue = _.get(this.questionMetaData, availableAlias[formFieldCategory.code]);\n if (formFieldCategory.code === 'markAsNotMandatory') {\n defaultValue = defaultValue === 'Yes' ? 'No' : 'Yes';\n }\n formFieldCategory.default = defaultValue;\n this.childFormData[formFieldCategory.code] = defaultValue;\n }\n } catch (error) {\n\n }\n } else {\n // tslint:disable-next-line:max-line-length\n const questionSetDefaultValue = _.get(this.questionSetHierarchy, formFieldCategory.code) ? _.get(this.questionSetHierarchy, formFieldCategory.code) : '';\n const defaultEditStatus = _.find(this.initialLeafFormConfig, { code: formFieldCategory.code }).editable === true ? true : false;\n formFieldCategory.default = defaultEditStatus ? '' : questionSetDefaultValue;\n this.childFormData[formFieldCategory.code] = formFieldCategory.default;\n if (formFieldCategory.code === 'maxScore' && this.questionInteractionType === 'choice') {\n this.childFormData[formFieldCategory.code] = this.maxScore;\n }\n }\n });\n this.fetchFrameWorkDetails();\n (this.isReadOnlyMode === true && !_.isUndefined(this.editorService?.editorConfig?.config?.renderTaxonomy)) ? this.previewFormData(false) : this.previewFormData(true);\n }\n\n subMenuChange({ index, value }) {\n if (this.subMenus[index].id === 'addDependantQuestion') {\n this.showAddSecondaryQuestionCat = true;\n this.saveContent();\n if (this.showFormError) {\n this.showAddSecondaryQuestionCat = false;\n return;\n }\n }\n this.subMenus[index].value = value;\n }\n\n get dependentQuestions() {\n try {\n return this.subMenus.filter(menu => menu.id === 'addDependantQuestion')[0].value;\n } catch (error) {\n return null;\n }\n }\n subMenuConfig() {\n this.subMenus = [\n {\n id: 'addHint',\n name: 'Add Hint',\n value: _.get(this.questionMetaData, 'hints.en[0]'),\n label: 'Hint',\n enabled: _.get(this.questionMetaData, 'hints.en[0]') ? true : false,\n type: 'input',\n show: _.get(this.sourcingSettings, 'showAddHints')\n },\n {\n id: 'addTip',\n name: 'Add Tip',\n value: _.get(this.questionMetaData, 'instructions.en[0]'),\n label: 'Tip',\n enabled: _.get(this.questionMetaData, 'instructions.en[0]') ? true : false,\n type: 'input',\n show: _.get(this.sourcingSettings, 'showAddTips')\n },\n {\n id: 'addDependantQuestion',\n name: 'Add Dependant Question',\n label: '',\n value: [],\n enabled: false,\n type: '',\n show: _.get(this.sourcingSettings, 'showAddSecondaryQuestion') && !this.questionInput.setChildQueston\n },\n ];\n if (!_.get(this.sourcingSettings, 'showAddSecondaryQuestion') && !this.questionInput.setChildQueston) {\n this.showOptions = false;\n } else {\n this.showOptions = (this.questionInput.setChildQueston === true) ? true : false;\n }\n }\n ngOnDestroy() {\n this.onComponentDestroy$.next();\n this.onComponentDestroy$.complete();\n this.editorCursor.clearQuestionMap();\n }\n\n sliderData($event) {\n const val = $event;\n const obj = {\n validation: {\n range: {\n min: '',\n max: ''\n }\n },\n step: ''\n };\n if (val.leftAnchor) {\n obj.validation.range.min = val.leftAnchor;\n }\n if (val.rightAnchor) {\n obj.validation.range.max = val.rightAnchor;\n }\n if (val.step) {\n obj.step = val.step;\n }\n this.sliderDatas = obj;\n }\n\n optionHandler(e) {\n this.targetOption = e.target.value;\n }\n\n\n buildCondition(type) {\n if (this.condition === 'default' || _.isEmpty(this.selectedOptions)) {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.038'));\n return;\n }\n const questionId = this.questionId ? this.questionId : uuidv4();\n const data = this.treeNodeData;\n const hierarchyData = this.editorService.getHierarchyObj(data, '', this.selectedSectionId);\n const sectionData = _.get(hierarchyData, `${this.selectedSectionId}`);\n const sectionName = sectionData.name;\n const branchingLogic = {\n ...this.branchingLogic,\n [this.editorService.parentIdentifier]: {\n target: this.updateTarget(questionId),\n preCondition: {},\n source: []\n },\n [questionId]: {\n target: [],\n source: [this.editorService.parentIdentifier],\n preCondition: {\n and: [\n {\n [this.condition]: [\n {\n var: `${this.editorService.parentIdentifier}.${this.responseVariable}.value`,\n type: 'responseDeclaration',\n },\n this.selectedOptions,\n ],\n },\n ],\n },\n },\n };\n this.updateTreeCache(sectionName, branchingLogic, this.selectedSectionId);\n const metaData = this.getQuestionMetadata();\n this.setQuestionTypeValues(metaData);\n const finalResult = {\n nodesModified: {\n [questionId]: {\n metadata: metaData,\n objectType: 'Question',\n root: false,\n isNew: this.questionId ? false : true\n },\n [this.selectedSectionId]: {\n ...this.treeService.treeCache.nodesModified[this.selectedSectionId]\n }\n },\n hierarchy: this.editorService.getHierarchyObj(data, questionId, this.selectedSectionId, this.editorService.parentIdentifier)\n };\n this.saveQuestions(finalResult, type);\n }\n\n updateTarget(questionId) {\n if (!_.isEmpty(this.branchingLogic) && _.get(this.branchingLogic, `${this.editorService.parentIdentifier}.target`)) {\n if (this.branchingLogic[this.editorService.parentIdentifier].target.includes(questionId)) {\n return [...this.branchingLogic[this.editorService.parentIdentifier].target];\n }\n return [...this.branchingLogic[this.editorService.parentIdentifier].target, `${questionId}`];\n }\n return [`${questionId}`];\n }\n\n getOptions() {\n if (this.editorService.optionsLength) {\n this.options = [];\n Array.from({ length: this.editorService.optionsLength }, (x, i) => {\n this.options.push({ value: i, label: i });\n });\n }\n }\n\n getParentQuestionOptions(questionId) {\n this.editorService.parentIdentifier = questionId;\n this.questionService.readQuestion(questionId)\n .subscribe((res) => {\n if (res.responseCode === 'OK') {\n const result = res.result.question;\n if (result.interactionTypes[0] === 'choice') {\n const numberOfOptions = result.editorState.options.length;\n this.editorService.optionsLength = numberOfOptions;\n this.getOptions();\n }\n }\n });\n }\n\n updateTreeCache(sectionName, branchingLogic, selectedSection) {\n const metadata = {\n name: sectionName,\n primaryCategory: this.sectionPrimaryCategory,\n allowBranching: 'Yes',\n branchingLogic\n };\n this.treeService.updateNode(metadata, selectedSection, this.sectionPrimaryCategory);\n }\n\n setCondition(data) {\n const Condition = _.get(data?.branchingLogic, `${this.questionId}.preCondition.and[0]`);\n const getCondition = Object.keys(Condition);\n this.condition = getCondition[0];\n this.selectedOptions = Condition[getCondition][1];\n }\n\n getBranchingLogic(children) {\n _.forEach(children, (data) => {\n if (data.identifier === this.selectedSectionId) {\n this.branchingLogic = data?.branchingLogic ? data?.branchingLogic : {};\n if (_.get(data?.branchingLogic, `${this.questionId}.source[0]`)) {\n this.isChildQuestion = true;\n this.getParentQuestionOptions(data.branchingLogic[this.questionId].source[0]);\n this.setCondition(data);\n }\n }\n if (data?.children) {\n this.getBranchingLogic(data?.children);\n }\n });\n }\n\n onQualityFormSubmit(event) {\n switch (event.action) {\n case 'submit':\n this.saveQualityParameters(event.data, this.sendQuestionForPublish.bind(this, {}));\n break;\n case 'requestChange':\n this.requestChangesPopupAction = null;\n this.saveQualityParameters(event.data, this.openRequestChangesPopup.bind(this, {}));\n break;\n default:\n this.showQualityParameterPopup = false;\n }\n }\n\n saveQualityParameters(qualityParameters, callback) {\n const requestObj = {\n question: {\n reviewerQualityChecks: qualityParameters\n }\n };\n this.questionService.updateQuestion(this.questionId, requestObj).subscribe(res => {\n this.showQualityParameterPopup = false;\n if (callback) {\n callback();\n }\n });\n }\n\n openRequestChangesPopup() {\n this.requestChangesPopupAction = 'rejectQuestion';\n }\n\n calculateMinMaxScore(metaData) {\n const scores = [];\n if (!_.isEmpty(metaData.responseDeclaration.response1.mapping)) {\n metaData.responseDeclaration.response1.mapping.forEach(item => scores.push(item.outcomes.score));\n metaData.responseDeclaration.response1.minScore = Math.min(...scores);\n if (_.get(metaData, 'responseDeclaration.response1.cardinality') === 'multiple') {\n let sum = 0;\n metaData.responseDeclaration.response1.mapping.forEach(item => sum += +(item.outcomes.score));\n metaData.responseDeclaration.response1.maxScore = sum;\n } else {\n metaData.responseDeclaration.response1.maxScore = Math.max(...scores);\n }\n }\n }\n}","<div class=\"sb-editor-container mb-0\" *ngIf=\"!showLoader\">\n <lib-header [labelConfigData]=\"toolbarConfig\" [buttonLoaders]=\"buttonLoaders\" [pageId]=\"pageId\" [requestChange] = \"requestChangesPopupAction\" (toolbarEmitter)=\"toolbarEventListener($event)\">\n </lib-header>\n\n <div class=\"sb-bg-white py-20\">\n <div class=\"ui container sb-container\">\n <div class=\"ui twelve column wide h-100\">\n <div class=\"px-16\">\n <div *ngIf=\"showPreview\" class=\"br-2 b-1-100\">\n <lib-quml-player [questionSetHierarchy]=\"questionSetHierarchy\" [isSingleQuestionPreview]=\"true\" ></lib-quml-player>\n </div>\n <div style=\"display: flex;align-items: flex-end;justify-content: flex-end;\"\n *ngIf=\"showOptions || isChildQuestion \">\n <div class=\"options\">\n <sui-select [(ngModel)]=\"condition\" valueField=\"value\" class=\"selection multiselect\"\n labelField=\"label\" [placeholder]=\"'Select Condition'\" #select [isDisabled]=\"isReadOnlyMode\">\n <sui-select-option [value]=\"{label:'Equal to',value:'eq'}\"></sui-select-option>\n <sui-select-option [value]=\"{label:'Not equal',value:'ne'}\"></sui-select-option>\n </sui-select>\n\n <sui-multi-select class=\"selection multiselect\" [(ngModel)]=\"selectedOptions\" valueField=\"value\"\n labelField=\"label\" [isSearchable]=\"false\" #multiSelect [placeholder]=\"'Select options'\" [isDisabled]=\"isReadOnlyMode\" >\n <sui-select-option *ngFor=\"let option of options\" [value]=\"option\">\n </sui-select-option>\n </sui-multi-select>\n </div>\n </div>\n <div class=\"py-20 px-32 br-4 b-1-100\" *ngIf=\"!showPreview\" [ngClass]=\"{'sb-bg-color-primary-0': !isReadOnlyMode}\">\n <div class=\"sb-field-group\">\n <label class=\"fs-0-92 font-weight-bold\">{{configService.labelConfig?.lbl?.question}}<span class=\"sb-required\">*</span></label>\n <div class=\"sb-field\">\n <div class=\"ckeditor-tool__question mb-5\">\n <lib-ckeditor-tool\n (editorDataOutput)=\"editorDataHandler($event, 'question')\"\n [editorDataInput]=\"editorState.question\"\n (videoDataOutput)=\"videoDataOutput($event)\" [videoShow]=\"videoShow\"></lib-ckeditor-tool>\n </div>\n <label *ngIf=\"\n showFormError &&\n [undefined, ''].includes(editorState.question)\n \" class=\"sb-color-error fs-0-785\">{{configService.labelConfig?.lbl?.questionRequired}}</label>\n </div>\n\n <lib-answer *ngIf=\"questionInteractionType === 'default'\"\n [editorState]=\"editorState\" [showFormError]=\"showFormError\"\n (editorDataOutput)=\"editorDataHandler($event)\"></lib-answer>\n\n <lib-options *ngIf=\"questionInteractionType === 'choice'\"\n [editorState]=\"editorState\" [showFormError]=\"showFormError\"\n (editorDataOutput)=\"editorDataHandler($event)\"></lib-options>\n\n <div class=\"d-flex flex-ai-center ckeditor-tool__solution py-10 px-16 mt-15 sb-bg-color-white\">\n <label class=\"fs-0-92 mb-0 ckeditor-tool__label pb-4\">\n <span class=\"sb-color-primary fs-0-785 mr-4\">{{configService.labelConfig?.lbl?.solution}}</span>\n <span class=\"sb-color-gray-200 fxsmall font-weight-normal\">{{configService.labelConfig?.lbl?.optional}}</span>\n </label>\n <div\n class=\"ui dropdown sb-btn sb-btn-outline-primary sb-btn-normal sb-right-icon-btn sb-btn-radius ml-auto\"\n suiDropdown autoClose=\"itemClick\" *ngIf=\"showSolutionDropDown\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('choose_type','click','single_select', telemetryService.telemetryPageId)\">\n <div class=\"text gray-200\">{{configService.labelConfig?.lbl?.chooseType}}</div>\n <i class=\"dropdown icon mx-8\"></i>\n <div class=\"menu\" suiDropdownMenu>\n <div class=\"item\" (click)=\"selectSolutionType('Text+Image')\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('solution_type','select','single_select', telemetryService.telemetryPageId, {solution_type:'Text+Image'})\">\n {{configService.labelConfig?.lbl?.textImage}}\n </div>\n <div class=\"item\" (click)=\"selectSolutionType('video')\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('solution_type','select','single_select', telemetryService.telemetryPageId, {solution_type:'video'})\">\n {{configService.labelConfig?.lbl?.video}}\n </div>\n </div>\n </div>\n </div>\n <div class=\"solution_html\" *ngIf=\"selectedSolutionType == 'html'\">\n <div class=\"ckeditor-tool-container\">\n <div class=\"sb-ckeditor relative mb-8\">\n <button (click)=\"deleteSolution()\" class=\"sb-btn sb-ckeditor-close absolute\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('delete_solution','click','cancel', telemetryService.telemetryPageId, {solution_type:'Text+Image'})\">\n <i class=\"icon close\"></i>\n </button>\n <lib-ckeditor-tool (editorDataOutput)=\"\n editorDataHandler($event, 'solution')\n \"[editorDataInput]=\"editorState.solutions\"\n class=\"ckeditor-tool__option\"></lib-ckeditor-tool>\n </div>\n </div>\n </div>\n <div class=\"solution_video\" *ngIf=\"selectedSolutionType == 'video' && showSolution\">\n <div class=\"ckeditor-tool__solution sb-bg-color-white sb-ckeditor relative\">\n <div class=\"solution-media p-16 d-flex flex-ai-center ckeditor-tool__option p-16\">\n <div class=\"mcq-checkbox-answer\">\n <button class=\"sb-btn sb-ckeditor-close absolute\" (click)=\"deleteSolution()\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('delete_solution','click','cancel', this.telemetryService.telemetryPageId, {solution_type:'video'})\">\n <i class=\"icon close\"></i>\n </button>\n </div>\n <div class=\"solution-media__video relative position\">\n <div class=\"overlay-image\" [ngStyle]=\"\n videoThumbnail\n ? { background: 'url(' + videoThumbnail + ')' }\n : { background: 'rgba(0,0,0,0.3)' }\n \">\n <i class=\"play circle icon\"></i>\n </div>\n </div>\n <div class=\"solution-media__desc ml-16 sb-color-primary\">\n {{ videoSolutionName\n }}\n <!-- <i class=\"icon ellipsis vertical sb-color-black\"></i> -->\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- <lib-translations *ngIf=\"showTranslation\"></lib-translations> -->\n <!-- child question section -->\n <div class=\"b-1-100 br-4 my-15 px-32 py-10 sb-bg-color-primary-0\"\n *ngFor=\"let question of dependentQuestions;let childindex=index\">\n {{ questionSetHierarchy.children ? 'Q'+ (questionSetHierarchy.children.length+1):''}} {{'. '+\n (childindex+1)}}\n <button\n class=\"sb-btn sb-btn-outline-primary sb-btn-xs sb-left-icon-btn text-inherit b-0 bg-none no-hover pl-0\">\n <span class=\"sb-line-height-24\">edit question</span>\n </button>\n </div>\n <hr>\n <div *ngIf=\"questionFormConfig\">\n <div class=\"pl-5 py-10 font-weight-bold fs-0-92\">\n {{configService.labelConfig?.lbl?.Questiondetails}}\n </div>\n <div class=\"form-container px-30\">\n <sb-dynamic-form [config]=\"leafFormConfig\" (initialize)=\"output($event)\"\n (statusChanges)=\"onStatusChanges($event)\" (valueChanges)=\"valueChanges($event)\"></sb-dynamic-form>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<sui-modal *ngIf=\"showConfirmPopup\" [mustScroll]=\"true\" [isClosable]=\"true\" [transitionDuration]=\"0\" [size]=\"'small'\"\n class=\"sb-modal bx-none overflow-modal\" appBodyScroll (dismissed)=\"showConfirmPopup = !showConfirmPopup\" #modal>\n <div class=\"sb-modal-header\"></div>\n <div class=\"sb-modal-content\">\n {{configService.labelConfig?.lbl?.confirmQuestionNotSaved}}\n </div>\n <div class=\"sb-modal-actions\">\n <button class=\"sb-btn sb-btn-normal sb-btn-primary\" (click)=\"redirectToQuestionset()\">\n {{configService.labelConfig?.button_labels?.yes_btn_label}}\n </button>\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary\" (click)=\"showConfirmPopup = !showConfirmPopup\">\n {{configService.labelConfig?.button_labels?.no_btn_label}}\n </button>\n </div>\n</sui-modal>\n\n<lib-term-and-condition\n [showEditingConsent]=\"editorService.isReviewerEditEnable\"\n [showSubmitConfirmPopup]=\"showSubmitConfirmPopup\" (sendForReviewOutput)=\"onConsentSubmit($event)\">\n</lib-term-and-condition>\n\n<sui-modal *ngIf=\"showReviewModal\" [mustScroll]=\"true\" [isClosable]=\"false\" [transitionDuration]=\"0\"\n [size]=\"'normal'\" class=\"sb-modal bx-none overflow-modal\" appBodyScroll #modal (dismissed)=\"showReviewModal = false;\">\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.reviewComments}}\n </div>\n <div class=\"sb-modal-content\">\n <div class=\"sb-field\">\n <label>{{configService.labelConfig?.lbl?.comments}}</label>\n <textarea disabled=\"disabled\" type=\"text\" class=\"wmd-input width-100 sb-form-control p-10 sb-disabled-textarea\" id=\"wmd-input\" [(ngModel)]=\"contentComment\" name=\"rejectedComment\"></textarea>\n </div>\n </div>\n <div class=\"sb-modal-actions\">\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary\" (click)=\"modal.deny('denied')\"\n libTelemetryInteract [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('close','click','cancel', telemetryService.telemetryPageId, {key: 'dialog_id', value: 'review_comments'})\">{{configService.labelConfig?.button_labels?.close_btn_label}}</button>\n </div>\n</sui-modal>\n\n<lib-quality-params-modal\n [labelConfigData]=\"toolbarConfig\"\n [showQualityParameterPopup]=\"showQualityParameterPopup\"\n [qualityFormConfig]=\"qualityFormConfig\"\n (qualityParamChanged)=\"onQualityFormSubmit($event)\">\n</lib-quality-params-modal>\n","import { Component, OnInit, ViewChild, OnDestroy, Output, Input, EventEmitter } from '@angular/core';\nimport * as _ from 'lodash-es';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\nimport { ConfigService } from '../../services/config/config.service';\n\n@Component({\n selector: 'lib-template',\n templateUrl: './template.component.html',\n styleUrls: ['./template.component.scss']\n})\nexport class TemplateComponent implements OnInit, OnDestroy {\n\n @Input() templateList: any;\n @ViewChild('modal') private modal;\n @Output() templateSelection = new EventEmitter<any>();\n public showButton = false;\n public templateSelected;\n\n constructor(public telemetryService: EditorTelemetryService, public configService: ConfigService) { }\n\n ngOnInit() { }\n\n next() {\n this.templateSelection.emit(this.templateSelected);\n }\n\n onClosePopup() {\n this.modal.deny();\n this.templateSelection.emit({ type: 'close' });\n }\n\n ngOnDestroy() {\n if (this.modal && this.modal.deny) {\n this.modal.deny();\n }\n }\n\n}\n","<sui-modal [mustScroll]=\"false\" [isClosable]=\"true\" [transitionDuration]=\"0\" [size]=\"'normal'\" class=\"sb-modal overflow-modal\"\n appBodyScroll (dismissed)=\"onClosePopup()\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.createNew}}\n </div>\n <div class=\"sb-modal-content\">\n <div class=\"mt-8 mb-20\">\n <label class=\"fs-16\">{{configService.labelConfig?.lbl?.selectTemplate}}</label>\n </div>\n <div class=\"twelve wide column\">\n <div class=\"ui grid flex-jc-center my-16\">\n <div class=\"ui card text-center common-contribution-card m-16\" *ngFor=\"let template of templateList\"\n (click)=\"showButton=true; templateSelected = template\"\n [ngClass]=\"{'active': templateSelected === template}\">\n <div class=\"content\">\n <i class=\"check circle icon\"></i>\n <img class=\"mt-16\" rel=\"placeholder\" src=\"assets/images/MCQ.png\">\n <div class=\"content-title pt-16 pb-8 fsmall\">{{template}}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"sb-modal-actions\">\n <button type=\"button\" class=\"sb-btn sb-btn-normal\"\n [ngClass]=\"{'sb-btn-primary': showButton, 'sb-btn-disabled': !showButton}\" [disabled]=\"!showButton\" (click)=\"next()\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('next','click','submit', this.telemetryService.telemetryPageId, {key: 'dialog_id', value: 'create_new','template_id' : templateSelected})\">{{configService.labelConfig?.button_labels?.next_btn_label}} </button>\n </div>\n</sui-modal>","import { Component, OnInit, Input, Output, EventEmitter, NgZone } from '@angular/core';\nimport { ConfigService } from '../../services/config/config.service';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\nimport { ToasterService } from '../../services/toaster/toaster.service';\nimport { EditorService } from '../../services/editor/editor.service';\nimport { catchError, map } from 'rxjs/operators';\nimport { Observable, throwError } from 'rxjs';\nimport * as _ from 'lodash-es';\ndeclare const SunbirdFileUploadLib: any;\n\n@Component({\n selector: 'lib-csv-upload',\n templateUrl: './csv-upload.component.html',\n styleUrls: ['./csv-upload.component.scss']\n})\nexport class CsvUploadComponent implements OnInit {\n @Input() collectionId;\n @Input() isCreateCsv;\n @Output() csvUploadEmitter = new EventEmitter<any>();\n public showSuccessCsv = false;\n public showCsvValidationStatus = false;\n public isUploadCsvEnable = false;\n public errorCsvStatus = false;\n public errorCsvMessage: any;\n public isClosable = true;\n public sampleCsvUrl: any;\n public updateCSVFile = false;\n public uploadCSVFile = false;\n public fileName: any;\n public file: any;\n constructor(public telemetryService: EditorTelemetryService, public configService: ConfigService,\n private toasterService: ToasterService, private editorService: EditorService, private ngZone: NgZone) { }\n\n ngOnInit(): void {\n this.handleInputCondition();\n }\n handleInputCondition() {\n if (this.isCreateCsv) {\n this.uploadCSVFile = true;\n // tslint:disable-next-line:max-line-length\n this.sampleCsvUrl = _.get(this.editorService, 'editorConfig.config.publicStorageAccount') + _.get(this.configService.urlConFig, 'URLS.CSV.SAMPLE_COLLECTION_HIERARCHY');\n } else {\n this.updateCSVFile = true;\n }\n }\n uploadCSV(event) {\n if (event && event.target && event.target.files) {\n this.file = event.target.files[0];\n this.fileName = this.file.name;\n this.isUploadCsvEnable = true;\n } else {\n this.isUploadCsvEnable = false;\n }\n }\n\n updateContentWithURL(fileURL, mimeType, contentId) {\n const data = new FormData();\n data.append('fileUrl', fileURL);\n data.append('mimeType', mimeType);\n const config = {\n enctype: 'multipart/form-data',\n processData: false,\n contentType: false,\n cache: false\n };\n const option = {\n data,\n param: config\n };\n this.editorService.validateCSVFile(option, contentId).subscribe(res => {\n this.ngZone.run(() => {\n this.isClosable = true;\n this.showSuccessCsv = true;\n this.showCsvValidationStatus = false;\n this.csvUploadEmitter.emit({ status: true, type: 'updateHierarchy' });\n });\n }, error => {\n this.ngZone.run(() => {\n this.showCsvValidationStatus = false;\n this.errorCsvStatus = true;\n this.errorCsvMessage = _.get(error, 'error.params.errmsg').split('\\n');\n this.isClosable = true;\n });\n });\n }\n closeHierarchyModal(modal) {\n this.resetConditions();\n this.uploadCSVFile = false;\n this.updateCSVFile = false;\n this.csvUploadEmitter.emit({ status: true, type: 'closeModal' });\n modal.deny();\n }\n onClickReupload() {\n if (this.isCreateCsv) {\n this.uploadCSVFile = true;\n } else {\n this.updateCSVFile = true;\n }\n this.showCsvValidationStatus = false;\n this.resetConditions();\n }\n resetConditions() {\n this.errorCsvStatus = false;\n this.errorCsvMessage = '';\n this.isUploadCsvEnable = false;\n this.file = null;\n this.fileName = '';\n }\n downloadSampleCSVFile() {\n const downloadConfig = {\n blobUrl: this.sampleCsvUrl,\n successMessage: false,\n fileType: 'csv',\n fileName: this.collectionId\n };\n window.open(downloadConfig.blobUrl, '_blank');\n /*this.editorService.downloadBlobUrlFile(downloadConfig);*/\n }\n uploadToBlob(signedURL, file, config): Observable<any> {\n const csp = _.get(this.editorService.editorConfig, 'context.cloudStorage.provider', 'azure');\n return new Observable((observer) => {\n const uploaderLib = new SunbirdFileUploadLib.FileUploader();\n uploaderLib.upload({ url: signedURL, file, csp })\n .on('error', (error) => {\n const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.018')};\n this.isClosable = true;\n this.errorCsvStatus = true;\n this.showCsvValidationStatus = false;\n this.errorCsvMessage = _.get(error, 'error.params.errmsg') || errInfo.errorMsg;\n observer.error(this.editorService.apiErrorHandling(error, errInfo));\n }).on('completed', (completed) => {\n observer.next(completed);\n observer.complete();\n });\n });\n }\n validateCSVFile() {\n this.showCsvValidationStatus = true;\n this.uploadCSVFile = false;\n this.isUploadCsvEnable = false;\n this.isClosable = false;\n this.updateCSVFile = false;\n const request = {\n content: {\n fileName: this.fileName\n }\n };\n this.editorService.generatePreSignedUrl(request, this.collectionId, 'hierarchy').pipe(catchError(err => {\n const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.026') };\n this.isClosable = true;\n this.errorCsvStatus = true;\n this.showCsvValidationStatus = false;\n this.errorCsvMessage = _.get(err, 'error.params.errmsg') || errInfo.errorMsg;\n return throwError(this.editorService.apiErrorHandling(err, errInfo));\n })).subscribe((response) => {\n const signedURL = _.get(response.result, 'pre_signed_url');\n let blobConfig = {\n processData: false,\n contentType: 'text/csv'\n };\n blobConfig = this.editorService.appendCloudStorageHeaders(blobConfig);\n this.uploadToBlob(signedURL, this.file, blobConfig).subscribe(() => {\n const fileURL = signedURL.split('?')[0];\n this.updateContentWithURL(fileURL, this.file.type, this.collectionId);\n });\n });\n }\n}\n","<sui-modal [mustScroll]=\"true\" [isClosable]=\"isClosable\" [transitionDuration]=\"0\" [size]=\"'normal'\"\n class=\"sb-modal bx-none overflow-modal\" appBodyScroll (dismissed)=\"closeHierarchyModal(modal)\" #modal>\n <div class=\"sb-modal-header\">\n <span *ngIf=\"isCreateCsv\"> {{configService.labelConfig?.lbl?.createHierarchyCsv}} </span>\n <span *ngIf=\"!isCreateCsv\"> {{configService.labelConfig?.lbl?.uploadUpdateCSV}}</span> \n\n </div>\n <div class=\"sb-modal-content\">\n <div>\n <!-- upload csv file -->\n <div class=\"d-flex\" *ngIf=\"uploadCSVFile\">\n <div class=\"pl-20 pt-20 d-block w-50\">\n <p>{{configService.labelConfig?.lbl?.downloadSampleHierarchyCSv}} </p>\n <div class=\"sb-color-gray-200 fs-0-785\">{{configService.labelConfig?.lbl?.makeSureFile}} </div>\n <ul class=\"ui ordered list sb-dock-ordered-list mt-15\">\n <li class=\"item\">{{configService.labelConfig?.lbl?.allColumnsAreAvailable}}</li>\n <li class=\"item\">{{configService.labelConfig?.lbl?.hasAllMandatoryColumn}}</li>\n <li class=\"item\">{{configService.labelConfig?.lbl?.noDuplicateRow}}</li>\n </ul>\n <a target=\"_blank\" (click)=\"downloadSampleCSVFile()\"\n class=\"sb-btn sb-btn-normal sb-btn-outline-primary my-20 text-decor-none sb-color-primary\"><i\n aria-hidden=\"true\" class=\"fa fa-download pr-10\"></i>{{configService.labelConfig?.lbl?.downloadSampleCSV}}</a>\n </div>\n <div class=\"p-10 w-60 text-center sb-bg-color-primary-0 sb-br-primary\">\n <img src=\"../../assets/images/bulkuploadfile.png\" alt=\"\" class=\"w-20 pb-10\">\n <div id=\"qq-upload-actions\" class=\"upload-file-description d-flex flex-ai-center flex-dc\">\n <h5 class=\"mb-8 sb-color-gray-400\">\n {{configService.labelConfig?.lbl?.dragAndDropCSV}} <br />\n </h5>\n <h6 class=\"mb-8 sb-color-gray-400 mt-10\">{{configService.labelConfig?.lbl?.Or}}</h6>\n <button class=\"upload-input-button sb-btn sb-btn-success sb-btn-normal\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('select_csv_upload','click',configService.labelConfig?.lbl?.selectFileToUpload,\n this.telemetryService.telemetryPageId, {key: 'identifier', value: collectionId})\"\n ><i aria-hidden=\"true\" class=\"icon upload\"></i>\n {{configService.labelConfig?.lbl?.selectFileToUpload}} \n <input (change)=\"uploadCSV($event)\" accept=\".csv\" type=\"file\" >\n </button>\n <p class=\"sb-color-gray-200 fs-0-785\">{{configService.labelConfig?.lbl?.uploadEntries}}</p>\n <span class=\"sb-color-primary fs-0-785\" *ngIf=\"fileName\">{{fileName}}</span>\n </div>\n </div>\n </div> \n <!-- update csv file -->\n <div class=\"p-20 text-center sb-bg-color-primary-0 sb-br-primary\" *ngIf=\"updateCSVFile\">\n <img src=\"../../assets/images/bulkuploadfile.png\" alt=\"\" class=\"w-10 pb-10\">\n <div id=\"qq-upload-actions\" class=\"upload-file-description d-flex flex-ai-center flex-dc\">\n <h5 class=\"mb-8 sb-color-gray-400\">\n {{configService.labelConfig?.lbl?.dragAndDropCSV}}<br />\n </h5>\n <h6 class=\"mb-8 sb-color-gray-400 mt-10\">{{configService.labelConfig?.lbl?.Or}}</h6>\n <button class=\"upload-input-button sb-btn sb-btn-success sb-btn-normal\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('select_csv_update','click',configService.labelConfig?.lbl?.selectFileToUpload,\n this.telemetryService.telemetryPageId, {key: 'identifier', value: collectionId})\"\n ><i aria-hidden=\"true\" class=\"icon upload\"></i>\n {{configService.labelConfig?.lbl?.selectFileToUpload}} \n <input (change)=\"uploadCSV($event)\" accept=\".csv\" type=\"file\" >\n </button>\n <p class=\"sb-color-gray-200 fs-0-785\">{{configService.labelConfig?.lbl?.uploadEntries}}</p>\n <span class=\"sb-color-primary fs-0-785\" *ngIf=\"fileName\">{{fileName}}</span>\n </div>\n </div>\n <div *ngIf=\"updateCSVFile\" class=\"py-20\"><i aria-hidden=\"true\" class=\"icon info circle pr-10 sb-color-gray-200\"></i> \n <span class=\"sb-color-gray-200 fs-0-785\">{{configService.labelConfig?.lbl?.csvDownloadInstruction}}</span></div>\n <!-- Validation message -->\n <div class=\"d-flex sb-min-h-250 flex-ai-center mn-15 sb-bg-color-primary-0\" *ngIf=\"showCsvValidationStatus\">\n <div class=\"w-50 text-center\">\n <img src=\"../../assets/images/bulkuploadfile.png\" alt=\"\" class=\"w-30\">\n </div>\n <div class=\"w-50\">\n <div class=\"pos-relative\">\n <span class=\"sb-loader sb-success-loader\"></span>\n <div class=\"font-weight-bold mb-10\">\n {{configService.labelConfig?.lbl?.pleaseWait}}\n </div>\n <span class=\"sb-color-gray-400 \"> {{configService.labelConfig?.lbl?.validateCsvFile}}</span>\n </div>\n </div>\n </div>\n\n <!-- Validation failed message = 4 -->\n <div class=\"d-flex sb-min-h-250 flex-ai-center\" *ngIf=\"errorCsvStatus\">\n <div class=\"w-50 text-center\">\n <img src=\"../../assets/images/bulkuploadfile.png\" alt=\"\" class=\"w-30\">\n </div>\n <div class=\"w-50\">\n <i class=\"fa fa-exclamation-triangle pr-5 sb-color-error pr-10\" aria-hidden=\"true\"></i> {{configService.labelConfig?.lbl?.hierarchyValidationError}}\n <div class=\"sb-color-gray-200 pt-20 fs-0-785\"> {{configService.labelConfig?.lbl?.followingErrors}}</div>\n <ul class=\"mt-15 sb-circle-ul\">\n <li class=\"item\" *ngFor=\"let error of errorCsvMessage\">{{error}}</li>\n </ul>\n <div class=\"qq-upload-button-selector sb-btn sb-btn-normal sb-btn-success my-20\" \n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('select_csv_reupload','click',configService.labelConfig?.lbl?.reUploadCSV,\n this.telemetryService.telemetryPageId, {key: 'identifier', value: collectionId})\"\n (click)=\"onClickReupload()\">\n <div><i aria-hidden=\"true\" class=\"icon refresh\"></i>{{configService.labelConfig?.lbl?.reUploadCSV}}</div>\n </div>\n </div>\n </div>\n\n <div class=\"d-flex sb-bg-color-success-0 p-10 sb-min-h-250 mn-15\" *ngIf=\"showSuccessCsv\">\n <div class=\"w-50 text-center\">\n <img src=\"../../assets/images/bulkuploadfile.png\" alt=\"\" class=\"w-30\">\n </div>\n <div class=\"w-50 flex-ai-center\">\n <div class=\"d-flex\">\n <i class=\"icon check circle outline sb-color-success\" aria-hidden=\"true\"></i>\n <div>\n <span *ngIf=\"isCreateCsv\" class=\"fs-0-92\"> {{configService.labelConfig?.lbl?.hierarchyAdded}} </span>\n <span *ngIf=\"!isCreateCsv\" class=\"fs-0-92\"> {{configService.labelConfig?.lbl?.hierarchyUpdated}} </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"sb-modal-actions\">\n <button class=\"sb-btn sb-btn-normal \" \n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('close_popup','click',configService.labelConfig?.button_labels?.close_btn_label,\n this.telemetryService.telemetryPageId, {key: 'identifier', value: collectionId})\"\n (click)=\"closeHierarchyModal(modal)\"[disabled]=\"!isClosable\" \n [ngClass]=\"{'sb-btn-primary': isClosable, 'sb-btn-disabled': !isClosable}\" >\n {{configService.labelConfig?.button_labels?.close_btn_label}}\n </button>\n <button class=\"sb-btn sb-btn-normal \"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('csv_upload','click',configService.labelConfig?.button_labels?.next_btn_label,\n this.telemetryService.telemetryPageId, {key: 'identifier', value: collectionId})\"\n (click)=\"validateCSVFile()\"[disabled]=\"!isUploadCsvEnable\" \n [ngClass]=\"{'sb-btn-primary': isUploadCsvEnable, 'sb-btn-disabled': !isUploadCsvEnable}\" >\n {{configService.labelConfig?.button_labels?.next_btn_label}}\n </button>\n </div>\n</sui-modal>","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\nimport { ToasterService } from '../../services/toaster/toaster.service';\nimport { EditorService } from '../../services/editor/editor.service';\nimport { HelperService } from '../../services/helper/helper.service';\nimport { ConfigService } from '../../services/config/config.service';\n\nimport * as _ from 'lodash-es';\n@Component({\n selector: 'lib-manage-collaborator',\n templateUrl: './manage-collaborator.component.html',\n styleUrls: ['./manage-collaborator.component.scss']\n})\nexport class ManageCollaboratorComponent implements OnInit {\n @Output() modalDismissEmitter = new EventEmitter<any>();\n @ViewChild('modal') private modal;\n @Input() addCollaborator;\n @Input() collectionId;\n public showCollaborationPopup: boolean;\n public contentCollaborators: any;\n public contentOwner;\n public creatorAndCollaboratorsIds;\n public selectedUsers = [];\n public selectedcollaborators = [];\n public users = [];\n public collaborators = [];\n public manageCollaboratorTabVisit = 0;\n public updatedCollaborators = [];\n public isAddCollaboratorTab: boolean;\n public searchKeyword = '';\n public searchRes = { count: 0, content: [], isEmptyResponse: false, errorMessage: '', searchStatus: 'start' };\n public userSearchBody = {\n request: {\n query: '',\n filters: {\n 'organisations.roles': 'CONTENT_CREATOR',\n rootOrgId: ''\n },\n fields: ['email', 'firstName', 'identifier', 'lastName', 'organisations', 'rootOrgName', 'phone'],\n offset: 0,\n limit: 200\n }\n };\n public isContentOwner = false;\n public isRootOrgAdmin: boolean;\n public currentUser: any;\n public allUsersCount = 0;\n\n constructor(\n public helperService: HelperService,\n public toasterService: ToasterService,\n public configService: ConfigService,\n public editorService: EditorService,\n public telemetryService: EditorTelemetryService\n ) { }\n\n ngOnInit() {\n this.currentUser = _.get(this.editorService.editorConfig, 'context.user');\n this.isRootOrgAdmin = _.has(this.currentUser, 'isRootOrgAdmin') ? this.currentUser.isRootOrgAdmin : false;\n if (_.has(this.currentUser, 'orgIds')) {\n this.userSearchBody.request.filters.rootOrgId = this.currentUser.orgIds;\n }\n this.setCreatorAndCollaborators();\n }\n\n setCreatorAndCollaborators() {\n this.editorService.fetchContentDetails(this.collectionId).subscribe(res => {\n this.contentCollaborators = _.get(res.result.content, 'collaborators', []);\n this.contentOwner = [_.get(res.result.content, 'createdBy')];\n this.creatorAndCollaboratorsIds = [...this.contentCollaborators, ...this.contentOwner];\n this.checkUserRole();\n });\n }\n\n checkUserRole() {\n if (this.contentOwner && (this.contentOwner[0] === this.currentUser.id)) {\n this.isContentOwner = true;\n }\n if (this.isContentOwner || this.isRootOrgAdmin) {\n this.isAddCollaboratorTab = true;\n this.getAllUserList();\n } else {\n this.getCollaborators();\n }\n this.showCollaborationPopup = this.addCollaborator;\n }\n\n dismissCollaborationPopup() {\n this.showCollaborationPopup = false;\n this.modalDismissEmitter.emit({});\n }\n\n getAllUserList() {\n this.helperService.getAllUser(this.userSearchBody).subscribe((response: any) => {\n this.users = [];\n if (_.has(response, 'result.response.content')) {\n const allUsers = _.get(response, 'result.response.content');\n this.allUsersCount = allUsers.length - 1;\n this.users = this.excludeCreatorAndCollaborators(allUsers);\n }\n },\n (error) => {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.001'));\n console.log(error);\n });\n }\n\n excludeCreatorAndCollaborators(allUsers) {\n return _.filter(allUsers, user => {\n return !_.includes(this.creatorAndCollaboratorsIds, user.identifier);\n });\n }\n\n toggleSelectionUser(userIdentifier) {\n _.forEach(this.users, user => {\n if (user.identifier === userIdentifier) {\n if (_.has(user, 'isSelected') && user.isSelected === true) {\n user.isSelected = false;\n const index = this.selectedUsers.indexOf(userIdentifier);\n if (index > -1) {\n this.selectedUsers.splice(index, 1);\n }\n } else {\n user.isSelected = true;\n this.selectedUsers.push(userIdentifier);\n }\n }\n });\n }\n\n toggleSelectionCollaborator(userIdentifier) {\n _.forEach(this.collaborators, user => {\n if (user.identifier === userIdentifier) {\n if (_.has(user, 'isSelected') && user.isSelected === true) {\n user.isSelected = false;\n const index = this.selectedcollaborators.indexOf(userIdentifier);\n if (index > -1) {\n this.selectedcollaborators.splice(index, 1);\n }\n } else {\n user.isSelected = true;\n this.selectedcollaborators.push(userIdentifier);\n }\n }\n });\n }\n\n addRemoveCollaboratorToCourse(modal) {\n this.updatedCollaborators = this.contentCollaborators;\n this.updatedCollaborators = _.concat(this.updatedCollaborators, this.selectedUsers);\n this.updatedCollaborators = _.difference(this.updatedCollaborators, this.selectedcollaborators);\n this.helperService.updateCollaborator(this.collectionId, this.updatedCollaborators).subscribe((response: any) => {\n if (response.params.status === 'successful') {\n this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.012'));\n } else {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.001'));\n }\n },\n (error) => {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.001'));\n console.log(error);\n });\n modal.deny();\n }\n\n /* to be called when user change tab to add collaborator */\n getAllusers() {\n this.isAddCollaboratorTab = true;\n }\n\n /* to be called when user change tab to manage collaborator */\n getCollaborators() {\n this.isAddCollaboratorTab = false;\n this.manageCollaboratorTabVisit += 1;\n if (this.manageCollaboratorTabVisit <= 1) {\n // tslint:disable-next-line:no-string-literal\n this.userSearchBody.request.filters['userId'] = this.contentCollaborators;\n if (!_.isEmpty(this.contentCollaborators)) {\n this.helperService.getAllUser(this.userSearchBody).subscribe((response: any) => {\n this.collaborators = [];\n if (_.has(response, 'result.response.content')) {\n this.collaborators = _.get(response, 'result.response.content');\n }\n },\n (error) => {\n this.collaborators = [];\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.001'));\n console.log(error);\n });\n }\n }\n }\n\n sortUsersList(value) {\n if (value === 'firstName') {\n this.users = _.orderBy(this.users, [user => user[value].toLowerCase()]);\n } else {\n this.users = _.orderBy(this.users, [user => user.organisations[0].orgName ? user.organisations[0].orgName.toLowerCase() : '']);\n }\n }\n\n searchByKeyword() {\n const searchRequest = this.userSearchBody;\n if (this.validateEmail(this.searchKeyword)) {\n // tslint:disable-next-line:no-string-literal\n searchRequest.request.filters['email'] = this.searchKeyword;\n } else if (/^\\d+$/.test(this.searchKeyword)) {\n // tslint:disable-next-line:no-string-literal\n searchRequest.request.filters['phone'] = this.searchKeyword;\n } else {\n searchRequest.request.query = this.searchKeyword;\n }\n\n this.helperService.getAllUser(searchRequest).subscribe((response: any) => {\n this.searchRes.searchStatus = 'end';\n if (_.has(response, 'result.response.content')) {\n this.searchRes.content = this.excludeCreatorAndCollaborators(_.get(response, 'result.response.content'));\n if (this.searchRes.content.length) {\n this.searchRes.isEmptyResponse = false;\n } else {\n this.searchRes.isEmptyResponse = true;\n this.searchRes.content = [];\n }\n }\n },\n (error) => {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.001'));\n console.log(error);\n this.searchRes.content = [];\n this.searchRes.isEmptyResponse = true;\n this.searchRes.errorMessage = _.get(this.configService, 'labelConfig.messages.error.001');\n });\n }\n\n resetSearch() {\n this.searchRes.content = [];\n this.searchRes.isEmptyResponse = false;\n }\n\n refreshSearch() {\n this.searchKeyword = '';\n this.searchByKeyword();\n }\n\n validateEmail(email) {\n // tslint:disable-next-line:max-line-length\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(String(email).toLowerCase());\n }\n\n selectUser(user) {\n user.isSelected = true;\n let index = _.findIndex(this.users, (element) => { return element.identifier === user.identifier; });\n if (index > -1) {\n this.users.splice(index, 1);\n this.users.unshift(user);\n }\n const selectedIndex = this.selectedUsers.indexOf(user.identifier);\n if (selectedIndex === -1) {\n this.selectedUsers.push(user.identifier);\n }\n }\n\n viewAllResults() {\n this.users = this.searchRes.content;\n }\n}\n","<sui-modal *ngIf=\"showCollaborationPopup\" [mustScroll]=\"true\" [isClosable]=\"true\" [transitionDuration]=\"0\"\n [size]=\"'fullscreen'\" class=\"sb-modal sb-modal-fullscreen showCollaborator\" appBodyScroll \n (dismissed)=\"dismissCollaborationPopup()\" #modal>\n <div class=\"sb-modal-header\">\n </div>\n <div class=\"sb-modal-content sb-bg-color-primary-100 pt-0\">\n <div class=\"d-flex flex-jc-space-between py-10 flex-align-item-center h-70 sb-bg-color-white\">\n <div class=\"fs-1 font-weight-bold\">{{configService.labelConfig?.lbl?.collaborators}}</div>\n <div>\n <div class=\"sb-search-box small no-btn mr-10\" *ngIf=\"isAddCollaboratorTab\">\n <div class=\"input-div relative\">\n <i class=\"search icon\" aria-hidden=\"true\"></i>\n <input (keyup)=\"searchKeyword.length >= 3 ? searchByKeyword() : resetSearch()\" class=\"sb-search-input\" [(ngModel)]=\"searchKeyword\"\n type=\"text\" placeholder={{configService.labelConfig?.lbl?.searchPlaceholder}} />\n <i class=\"close icon\" aria-hidden=\"true\" (click)=\"refreshSearch()\" [hidden]=\"!(searchRes.searchStatus == 'end' && searchKeyword.length >= 3 )\"></i>\n </div>\n <button class=\"sb-btn sb-btn-normal\">{{configService.labelConfig?.button_labels?.search_btn_label}}</button>\n </div>\n <div class=\"ui right floated header searcher\" *ngIf=\"isAddCollaboratorTab\">\n <ul *ngIf=\"searchKeyword.length >= 3 && searchRes.content.length\">\n <li class=\"searchResult\" *ngFor=\"let user of searchRes.content\">\n <p (click)=\"selectUser(user)\">{{user.firstName}}</p>\n </li>\n <li class=\"searchResult font-weight-bold\" id=\"view-all-results\" *ngIf=\"searchRes.content.length >= 5\" (click)=\"viewAllResults()\"><span>View All Results</span></li>\n </ul>\n <ul *ngIf=\"searchKeyword.length >= 3 && searchRes.isEmptyResponse\">\n <li class=\"searchResultMsg\"><strong>{{configService.labelConfig?.err?.resultNotFound}}</strong></li>\n </ul>\n <ul *ngIf=\"searchRes.errorMessage.length && (searchKeyword.length >= 3)\">\n <strong class=\"searchResultMsg\">{{searchRes.errorMessage}}</strong>\n </ul>\n </div>\n </div>\n </div>\n <sui-tabset>\n <div class=\"ui pointing secondary menu\">\n <a class=\"item\" *ngIf=\"(isContentOwner || isRootOrgAdmin)\" (activate)=\"getAllusers()\" suiTabHeader=\"1\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('add_collaborators','click','launch', telemetryService.telemetryPageId)\"\n >{{configService.labelConfig?.lbl?.addCollaborators}}</a>\n <a class=\"item\" (activate)=\"getCollaborators()\" suiTabHeader=\"2\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('manage_collaborators','click','launch', telemetryService.telemetryPageId)\"\n >{{configService.labelConfig?.lbl?.manageCollaborators}}</a>\n </div>\n <div class=\"ui segment px-0 py-15 mt-1 sb-bg-color-primary-100\" suiTabContent=\"1\">\n <div *ngIf=\"!users?.length\" class=\"font-weight-bold sb-bg-color-white p-10\">\n {{configService.labelConfig?.err?.userNotFound}}\n </div>\n <div class=\"d-flex py-10\">\n <div *ngIf=\"users?.length\" class=\"w-100 pt-10 font-weight-bold\">Showing {{users.length}} out of {{allUsersCount}}</div>\n <select class=\"search dropdown py-5 sb-bg-color-white mb-10 font-weight-bold\" *ngIf=\"users?.length\"\n (change)=\"sortUsersList($event.target.value)\">\n <option value=\"\">Sort By</option>\n <option value=\"firstName\">Name</option>\n <option value=\"organisations\">Organisation</option>\n </select>\n </div>\n <div class=\"masonry-grid\" *ngIf=\"users?.length\">\n <div *ngFor=\"let user of users\" class=\"sb-card\">\n <div class=\"sb-card-body\">\n <div class=\"sb-card-metas\">\n <div class=\"sb-card-image mr-16 font-weight-bold\">\n {{(user.firstName).charAt(0)}}\n </div>\n <div class=\"sb-card-meta course\">\n <div class=\"sb-card-meta-item mb-16 font-weight-bold\">\n {{user.firstName}} {{user.lastName}}\n </div>\n <div class=\"sb-color-gray-400 fs-0-92\">\n {{user.organisations[0].orgName}}\n </div>\n </div>\n <div class=\"d-flex flex-align-self-end sb-custom-toggle\">\n <a class=\"sb-color-primary d-flex fs-0-785 font-weight-bold flex-ai-end\" \n *ngIf=\"!user.isSelected\" (click)=\"toggleSelectionUser(user.identifier)\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('add_user','click','select', telemetryService.telemetryPageId, {identifier: user.identifier})\">\n <i class=\"icon plus\" aria-hidden=\"true\"></i>\n {{configService.labelConfig?.button_labels?.add_btn_label}}\n </a>\n <div class=\"ui right floated compact segment\" *ngIf=\"user.isSelected\" (click)=\"toggleSelectionUser(user.identifier)\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('remove_user','click','select', telemetryService.telemetryPageId, {identifier: user.identifier})\">\n <div class=\"ui mini fitted toggle checkbox\">\n <input type=\"checkbox\" checked><label></label>\n </div>\n </div>\n </div>\n </div>\n </div> \n </div>\n </div>\n </div>\n <div class=\"ui segment px-0 py-15 mt-1 sb-bg-color-primary-100\" suiTabContent=\"2\">\n <div *ngIf=\"!collaborators?.length\" class=\"p-10 font-weight-bold sb-bg-color-white\">\n {{configService.labelConfig?.err?.collaboratorsNotFound}}\n </div>\n <div *ngIf=\"collaborators?.length\" class=\"w-100 pt-10 font-weight-bold\">{{collaborators.length}} collaborators exists</div>\n <div class=\"masonry-grid mt-20\" *ngIf=\"collaborators?.length\">\n <div *ngFor=\"let collaborator of collaborators\" class=\"sb-card\">\n <div class=\"sb-card-body\">\n <div class=\"sb-card-metas\">\n <div class=\"sb-card-image mr-16\">\n {{(collaborator.firstName).charAt(0)}}\n </div>\n <div class=\"sb-card-meta course\">\n <div class=\"sb-card-meta-item mb-16 font-weight-bold\">\n {{collaborator.firstName}} {{collaborator.lastName}}\n </div>\n <div class=\"sb-color-gray-400 fs-0-92\">\n {{collaborator.organisations[0].orgName}}\n </div>\n </div>\n <div class=\"d-flex flex-align-self-end sb-custom-toggle\">\n <a class=\"sb-color-error d-flex fs-0-785 font-weight-bold flex-ai-end\" \n *ngIf=\"!collaborator.isSelected && (isContentOwner || isRootOrgAdmin)\" (click)=\"toggleSelectionCollaborator(collaborator.identifier)\"\n libTelemetryInteract [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('remove_collaborator','click','select',\n telemetryService.telemetryPageId, {identifier: collaborator.identifier})\">\n {{configService.labelConfig?.button_labels?.remove_btn_label}}\n </a>\n <div class=\"ui right floated compact segment\" *ngIf=\"collaborator.isSelected && (isContentOwner || isRootOrgAdmin)\" (click)=\"toggleSelectionCollaborator(collaborator.identifier)\"\n libTelemetryInteract [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('add_collaborator','click','select',\n telemetryService.telemetryPageId, {identifier: collaborator.identifier})\">\n <div class=\"ui mini fitted toggle checkbox\">\n <input type=\"checkbox\" checked><label></label>\n </div>\n </div>\n </div>\n </div>\n </div> \n </div>\n </div>\n </div>\n </sui-tabset>\n </div>\n <div class=\"sb-modal-actions\">\n <button class=\"sb-btn sb-btn-normal sb-btn-primary\"\n [ngClass]=\"{'sb-btn-disabled': (selectedUsers.length === 0 && selectedcollaborators.length === 0)}\"\n [disabled]=\"(selectedUsers.length === 0 && selectedcollaborators.length === 0)\"\n (click)=\"addRemoveCollaboratorToCourse(modal)\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('done','click','submit',\n telemetryService?.telemetryPageId)\">\n {{configService.labelConfig?.button_labels?.done_btn_label}}\n </button>\n </div>\n</sui-modal>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport 'jquery.fancytree';\nimport * as _ from 'lodash-es';\nimport { EditorService } from '../../services/editor/editor.service';\n\ndeclare var $: any;\n\n@Component({\n selector: 'lib-plain-tree',\n templateUrl: './plain-tree.component.html',\n styleUrls: ['./plain-tree.component.scss'],\n})\nexport class PlainTreeComponent implements OnInit, AfterViewInit {\n @ViewChild('plainTree') public tree: ElementRef;\n @Input() treeData;\n @Output() treeEmitter: EventEmitter<any> = new EventEmitter<any>();\n\n constructor(private editorService: EditorService) {}\n\n ngOnInit(): void {}\n\n ngAfterViewInit() {\n this.renderTree(this.getTreeConfig());\n }\n\n renderTree(options) {\n $(this.tree.nativeElement).fancytree(options);\n }\n\n buildTreeData(data) {\n let tree = [];\n _.forEach(data, (child: any) => {\n if (child.children) {\n _.forEach(child.children, (data) => {\n tree.push({\n id: data?.id,\n title: data?.title,\n tooltip: data?.title,\n primaryCategory: _.get(\n this.editorService,\n 'editorConfig.config.primaryCategory'\n ),\n metadata: {\n objectType: _.get(\n this.editorService,\n 'editorConfig.config.objectType'\n ),\n name: data?.title,\n },\n folder: true,\n root: false,\n icon: 'fa fa-folder-o',\n });\n });\n }\n });\n return tree;\n }\n\n getQuestionsList(data) {\n this.treeEmitter.emit({\n identifier: _.get(data, 'id'),\n criteriaName: _.get(data, 'metadata.name')\n });\n }\n\n getTreeConfig() {\n const rootNode = [\n {\n title: 'Criteria Name',\n key: '2',\n folder: true,\n expanded: true,\n root: true,\n icon: 'fa fa-folder-o',\n children: this.buildTreeData(this.treeData),\n },\n ];\n const options: any = {\n extensions: ['glyph', 'dnd5'],\n clickFolderMode: 3,\n source: rootNode,\n escapeTitles: true,\n glyph: {\n preset: 'awesome4',\n map: {\n folder: 'icon folder sb-fancyTree-icon',\n folderOpen: 'icon folder outline sb-fancyTree-icon',\n },\n },\n dnd5: {\n autoExpandMS: 400,\n // focusOnClick: true,\n preventVoidMoves: true, // Prevent dropping nodes 'before self', etc.\n preventRecursion: true, // Prevent dropping nodes on own descendants\n filter: {\n autoApply: true,\n autoExpand: false,\n counter: true,\n fuzzy: false,\n hideExpandedCounter: true,\n hideExpanders: false,\n highlight: true,\n leavesOnly: false,\n nodata: true,\n mode: 'dimm',\n },\n },\n init: (event, data) => {},\n click: (event, data): boolean => {\n this.tree.nativeElement.click();\n return true;\n },\n activate: (event, data) => {\n if (!_.isUndefined(data.node.data.id)){\n this.getQuestionsList(_.get(data, 'node.data'));\n }\n },\n renderNode: (event, data) => {\n const node = data.node;\n const $nodeSpan = $(node.span);\n\n // check if span of node already rendered\n if (!$nodeSpan.data('rendered')) {\n // span rendered\n $nodeSpan.data('rendered', true);\n }\n },\n };\n return options;\n }\n\n}\n","<div #plainTree></div>\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { EditorService } from '../../services/editor/editor.service';\nimport { QuestionService } from '../../services/question/question.service';\nimport { TreeService } from '../../services/tree/tree.service';\nimport * as _ from 'lodash-es';\n\n@Component({\n selector: 'lib-assign-page-number',\n templateUrl: './assign-page-number.component.html',\n styleUrls: ['./assign-page-number.component.scss']\n})\nexport class AssignPageNumberComponent implements OnInit {\n\n toolbarConfig: any = {};\n pageId = 'pagination';\n treeData: any;\n questions = [];\n // tslint:disable-next-line:variable-name\n rendering_sequence: any;\n @Output() assignPageEmitter = new EventEmitter<any>();\n recordedBy: any;\n criteriaId: any;\n createArray = [];\n pageNumArray = [];\n numArray = [];\n\n constructor(private editorService: EditorService, private treeService: TreeService,\n private questionService: QuestionService) { }\n\n ngOnInit() {\n this.toolbarConfig = this.editorService.getToolbarConfig();\n this.toolbarConfig.title = 'Observation Form';\n this.treeData = this.editorService.treeData;\n this.createSequence(this.treeData);\n this.treeEventListener({\n identifier: _.get(this.treeData[0], 'children[0].id'),\n criteriaName: _.get(this.treeData[0], 'children[0].title')\n });\n }\n\n toolbarEventListener(event) {\n switch (event.button) {\n case 'backContent':\n this.redirectToQuestionSet();\n break;\n }\n }\n\n redirectToQuestionSet() {\n this.assignPageEmitter.emit({ status: false });\n }\n\n treeEventListener(event) {\n this.createArray = [];\n this.criteriaId = event?.identifier;\n const data = this.treeService.getFirstChild();\n const hierarchy = this.editorService.getHierarchyObj(data, '', event?.identifier);\n this.questionService.getQuestionList(_.get(hierarchy[event?.identifier], 'children'), 'editorState')\n .subscribe((response: any) => {\n this.questions = [];\n const questionsArray = _.get(response, 'result.questions');\n questionsArray.forEach(element => {\n this.questions.push({\n question: element?.editorState?.question,\n identifier: element?.identifier,\n page_no: null,\n });\n });\n this.setPageNumber(event);\n }, (error: any) => {\n console.log(error);\n });\n }\n\n setPageNumber(event) {\n this.pageNumArray = this.findSequenceCriteria().pages;\n this.pageNumArray.forEach((entry, index) => {\n if (!_.isEmpty(entry)) {\n entry.forEach((identifier) => {\n const getQuestion = this.questions.find((el) => el.identifier === identifier);\n getQuestion.page_no = index + 1;\n });\n }\n });\n }\n\nupdateRenderingSequence() {\n let newArray;\n if (this.createArray.length === this.pageNumArray.length) {\n this.createArray = this.pageNumArray;\n } else if (this.pageNumArray.length > this.createArray.length) {\n const result = this.pageNumArray.slice(0);\n newArray = result.splice.apply(result, [0, this.createArray.length].concat(this.createArray));\n } else {\n newArray = [...this.pageNumArray, ...this.createArray.slice(this.pageNumArray.length)];\n }\n this.createArray = newArray ? newArray : this.pageNumArray;\n }\n\n onValueChange(event, question, index) {\n if (+event === 0) {\n this.createArrayBySubjects(index, question);\n this.setNewArrayToCreateArray();\n this.pageNumArray = this.findSequenceCriteria().pages;\n this.updateRenderingSequence();\n return true;\n }\n\n question.page_no = +event;\n this.addArrayToPage();\n this.pageNumArray = this.findSequenceCriteria().pages;\n\n if (this.pageNumArray.length !== 0) {\n this.setNewArrayToCreateArray();\n this.updateRenderingSequence();\n this.pageNumArray = [];\n } else {\n this.setNewArrayToCreateArray();\n }\n\n _.forEach(this.rendering_sequence?.sequence, (data) => {\n if (data.value === this.criteriaId) {\n this.createArray.filter((arr, index1) => arr.some((e, index2) => {\n if (e === question.identifier) {\n this.createArray[index1].splice(index2, 1);\n }\n }));\n this.createArray[Number(event) - 1].push(question.identifier);\n data.pages = this.createArray;\n }\n });\n }\n\n setNewArrayToCreateArray() {\n for (let i = 0; i < Math.max(...this.numArray); i++) {\n if (!this.createArray[i]) {\n this.createArray[i] = new Array();\n }\n }\n }\n\n createArrayBySubjects(index, question) {\n const subjectObject = this.findSequenceCriteria();\n \n if (subjectObject) {\n const questionsIdArray = subjectObject.pages[question.page_no - 1];\n const questionIndex = questionsIdArray.indexOf(question.identifier);\n questionsIdArray.splice(questionIndex, 1);\n }\n this.questions[index].page_no = null;\n this.addArrayToPage();\n this.createArray = [];\n\n }\n\n addArrayToPage() {\n this.numArray = [];\n // tslint:disable-nevxt-line:no-shadowed-variable\n _.forEach(this.questions, (data) => {\n this.numArray.push(data.page_no);\n });\n\n this.createArray = [];\n }\n\n clearInput(event, question, index) {\n this.createArrayBySubjects(index, question);\n this.setNewArrayToCreateArray();\n this.pageNumArray = this.findSequenceCriteria().pages;\n this.updateRenderingSequence();\n }\n\n findSequenceCriteria() {\n return _.find(this.rendering_sequence?.sequence, (data) => {\n return data.value === this.criteriaId;\n });\n }\n\n createSequence(data) {\n this.recordedBy = _.get(this.treeService.getFirstChild(), 'data.metadata.recordedBy');\n // tslint:disable-next-line:variable-name\n const dataArray = [];\n // tslint:disable-next-line:variable-name\n this.rendering_sequence = {\n name: this.recordedBy === 'Self' ? 'Criteria' : 'Ecm',\n sequence: []\n };\n _.forEach(data, (child: any) => {\n if (child.children) {\n _.forEach(child.children, (seq) => {\n dataArray.push(seq);\n });\n }\n });\n _.forEach(dataArray, (seq, i) => {\n this.rendering_sequence.sequence.push({\n value: seq?.id,\n name: seq?.title,\n pages: [],\n index: i\n });\n });\n }\n}\n","<div class=\"sb-editor-container mb-0\">\n <lib-header [labelConfigData]=\"toolbarConfig\" [pageId]=\"pageId\" (toolbarEmitter)=\"toolbarEventListener($event)\">\n </lib-header>\n <div class=\"add-to-library mb-0\">\n <div class=\"h-100vh sb-bg-white\">\n <div class=\"ui\">\n <div class=\"ui twelve column grid m-0\">\n <div class=\"three wide column p-0 overflow-y mb-40 h-100vh\">\n <lib-plain-tree class=\"sb-collectionTree-fancyTree sb-collectionTree-fancyTreelist sb-questionset-scroll\"\n [treeData]=\"treeData\" (treeEmitter)=\"treeEventListener($event)\">\n </lib-plain-tree>\n </div>\n <!-- Right Player Sections -->\n <div class=\"eight wide column bg-white pl-40 mb-10 w-73\">\n <table aria-describedby=\"pagination\">\n <thead>\n <tr>\n <th>Questions</th>\n <th class=\"right\">Page no</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let question of questions; let i=index\">\n <td innerHtml=\"{{question?.question}}\"></td>\n <td><i [ngStyle]=\"{'visibility:hidden':question?.page_no > 0 && question?.page_no}\" [ngClass]=\"{'close-button-dynamic':question?.page_no > 0 }\" class=\"close icon close-button\" (click)=\"clearInput($event.target.value, question, i)\"></i>\n <input type=\"number\" name=\"pageNo\" pattern=\"^[1-9][0-9]*$\" oninput=\"if(!this.value.match('^[1-9][0-9]*$'))this.value='';\"\n (input)=\"onValueChange($event.target.value,question, i)\" value=\"{{question?.page_no}}\" /></td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { EditorService } from '../../services/editor/editor.service';\n\n@Component({\n selector: 'lib-progress-status',\n templateUrl: './progress-status.component.html',\n styleUrls: ['./progress-status.component.scss']\n})\nexport class ProgressStatusComponent implements OnInit {\n toolbarConfig: any = {};\n pageId = 'progressStatus';\n data=[{criteria:\"Classrooms\",maxScore:10,minScore:10,questionsCreated:10,isExpanded:false},\n {criteria:\"Toilets\",maxScore:10,minScore:10,questionsCreated:10,isExpanded:false},\n {criteria:\"Assembly\",maxScore:10,minScore:10,questionsCreated:10,isExpanded:false},\n {criteria:\"Teaching and Learning\",maxScore:10,minScore:10,questionsCreated:10,isExpanded:false}]\n expandedElement=\"\";\n @Output() assignPageEmitter = new EventEmitter<any>();\n \n constructor(private editorService: EditorService) { }\n\n ngOnInit(): void {\n this.toolbarConfig = this.editorService.getToolbarConfig();\n this.toolbarConfig.title = 'Observation Form';\n }\n\n toolbarEventListener(event) {\n switch (event.button) {\n case 'backContent':\n this.redirectToQuestionSet();\n break;\n default :\n break;\n }\n }\n\n redirectToQuestionSet() {\n this.assignPageEmitter.emit({ status: false });\n }\n\n expand(event){\n this.expandedElement = (this.expandedElement==event.criteria)?\"\":event.criteria;\n }\n\n}\n","<div class=\"sb-editor-container mb-0\">\n <lib-header [labelConfigData]=\"toolbarConfig\" [pageId]=\"pageId\" (toolbarEmitter)=\"toolbarEventListener($event)\">\n </lib-header>\n <div class=\"add-to-library mb-0\">\n <div class=\"h-100vh sb-bg-white\">\n <div class=\"ui\">\n <div class=\"ui twelve column grid m-0\">\n <div class=\"three wide column p-0 overflow-y mb-40 h-100vh\">\n </div>\n <!-- Right Player Sections -->\n <div class=\"eight wide column bg-white pl-40 mb-10 w-73\">\n <table aria-describedby=\"progress\">\n <thead>\n <tr>\n <th class=\"width-40\">Criteria</th>\n <th class=\"width-13\">Max Score</th>\n <th class=\"width-13\">Min Score</th>\n <th class=\"width-24\">Questions Created</th>\n <th class=\"width-10\"></th>\n </tr>\n </thead>\n <tbody *ngFor=\"let item of data;let i=index\">\n <tr>\n <td class=\"padding-x-25 font-blue font-bold\">{{item.criteria}}</td>\n <td><input type=\"number\" value=\"{{item.maxScore}}\" disabled></td>\n <td><input type=\"number\" value=\"{{item.minScore}}\" disabled></td>\n <td><input type=\"number\" value=\"{{item.questionsCreated}}\" disabled></td>\n <td class=\"border flex\" (click)=\"expand(item)\"><i [class]=\"expandedElement==item?.criteria ? 'chevron up icon font-blue' : 'chevron down icon font-blue'\"></i></td>\n </tr>\n <tr *ngIf=\"expandedElement==item?.criteria\" class=\"hidden-block\">\n <td class=\"padding-x-20\"></td>\n <td><div><label class=\"label\">Level 1</label></div><input class=\"hidden-input\" type=\"number\" value=\"{{item.maxScore}}\" disabled></td>\n <td><div><label class=\"label\">Level 2</label></div><input class=\"hidden-input\" type=\"number\" value=\"{{item.minScore}}\" disabled></td>\n <td><div><label class=\"label\">Level 3</label></div><input class=\"hidden-input\" type=\"number\" value=\"{{item.questionsCreated}}\" disabled></td>\n <td class=\"flex\"></td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>","import {\n Component, HostListener, Input, OnDestroy, OnInit, ChangeDetectorRef,\n EventEmitter, Output, ViewEncapsulation, AfterViewInit, ViewChild\n} from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { EditorService } from '../../services/editor/editor.service';\nimport { TreeService } from '../../services/tree/tree.service';\nimport { FrameworkService } from '../../services/framework/framework.service';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\nimport { ToasterService } from '../../services/toaster/toaster.service';\nimport { HelperService } from '../../services/helper/helper.service';\nimport { IEditorConfig } from '../../interfaces/editor';\nimport { Router } from '@angular/router';\nimport { filter, map, switchMap, take, takeUntil, tap, catchError } from 'rxjs/operators';\nimport { Observable, throwError, forkJoin, Subscription, Subject, merge, of } from 'rxjs';\nimport * as _ from 'lodash-es';\nimport { ConfigService } from '../../services/config/config.service';\nimport { DialcodeService } from '../../services/dialcode/dialcode.service';\n@Component({\n selector: 'lib-editor',\n templateUrl: './editor.component.html',\n styleUrls: ['./editor.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EditorComponent implements OnInit, OnDestroy, AfterViewInit {\n\n @Input() editorConfig: IEditorConfig | undefined;\n @Output() editorEmitter = new EventEmitter<any>();\n @ViewChild('modal') private modal;\n public questionComponentInput: any = {};\n public collectionTreeNodes: any;\n public selectedNodeData: any = {};\n public templateList: any;\n public showConfirmPopup = false;\n public terms = false;\n public pageId = 'collection_editor';\n public pageStartTime;\n public rootFormConfig: any;\n public unitFormConfig: any;\n public leafFormConfig: any;\n public showLibraryPage = false;\n public libraryComponentInput: any = {};\n public editorMode;\n public collectionId;\n public isCurrentNodeFolder: boolean;\n public isCurrentNodeRoot: boolean;\n public isQumlPlayer: boolean;\n public showQuestionTemplatePopup = false;\n public deleteConfirmMessage;\n public showDeleteConfirmationPopUp = false;\n public showPreview = false;\n public actionType: string;\n private formStatusMapper: { [key: string]: boolean } = {};\n public targetFramework;\n public organisationFramework;\n public primaryCategoryDef: any;\n toolbarConfig: any;\n public buttonLoaders = {\n saveAsDraftButtonLoader: false,\n addFromLibraryButtonLoader: false,\n addQuestionFromLibraryButtonLoader: false,\n previewButtonLoader: false,\n showReviewComment: false\n };\n public contentComment: string;\n public showComment: boolean;\n public showReviewModal: boolean;\n public csvDropDownOptions: any = {};\n public showCsvUploadPopup = false;\n public isObjectTypeCollection: any;\n public isCreateCsv = true;\n public isStatusReviewMode = false;\n public isEnableCsvAction : any;\n public isTreeInitialized: any;\n public ishierarchyConfigSet = false;\n public addCollaborator: boolean;\n public publishchecklist: any;\n public isComponenetInitialized = false;\n public unSubscribeShowLibraryPageEmitter: Subscription;\n public unSubscribeshowQuestionLibraryPageEmitter: Subscription;\n public sourcingSettings: any;\n public setChildQuestion: any;\n public unsubscribe$ = new Subject<void>();\n public onComponentDestroy$ = new Subject<any>();\n public outcomeDeclaration: any;\n public levelsArray: any;\n public objectType: any;\n public relationFormConfig: any;\n public questionlibraryInput: any = {};\n public creationContext: any;\n private evidenceMimeType: any;\n private ecm: any;\n constructor(private editorService: EditorService, public treeService: TreeService, private frameworkService: FrameworkService,\n private helperService: HelperService, public telemetryService: EditorTelemetryService, private router: Router,\n private toasterService: ToasterService, private dialcodeService: DialcodeService,\n public configService: ConfigService, private changeDetectionRef: ChangeDetectorRef) {\n }\n\n @HostListener('window:unload', ['$event'])\n unloadHandler(event) {\n this.generateTelemetryEndEvent();\n }\n\n ngOnInit() {\n\n if (this.editorConfig) {\n if (typeof this.editorConfig === 'string') {\n try {\n this.editorConfig = JSON.parse(this.editorConfig);\n } catch (error) {\n console.error('Invalid editorConfig: ', error);\n }\n }\n }\n \n this.editorService.initialize(this.editorConfig);\n this.editorMode = this.editorService.editorMode;\n this.treeService.initialize(this.editorConfig);\n this.collectionId = _.get(this.editorConfig, 'context.identifier');\n this.objectType = _.get(this.editorConfig, 'config.objectType');\n this.toolbarConfig = this.editorService.getToolbarConfig();\n this.isObjectTypeCollection = this.configService.categoryConfig[this.editorConfig.config.objectType] === 'questionSet' ? false : true;\n this.isStatusReviewMode = this.isReviewMode();\n this.mergeCollectionExternalProperties().subscribe(\n (response) => {\n const hierarchyResponse = _.first(response);\n const collection = _.get(hierarchyResponse, `result.${this.configService.categoryConfig[this.editorConfig.config.objectType]}`);\n this.toolbarConfig.title = collection.name;\n this.toolbarConfig.isAddCollaborator = (collection.createdBy === _.get(this.editorConfig, 'context.user.id'));\n this.organisationFramework = _.get(collection, 'framework') || _.get(this.editorConfig, 'context.framework');\n this.targetFramework = _.get(collection, 'targetFWIds') || _.get(this.editorConfig, 'context.targetFWIds');\n if (this.organisationFramework) {\n this.frameworkService.initialize(this.organisationFramework);\n }\n if (!_.isEmpty(this.targetFramework)) {\n this.frameworkService.getTargetFrameworkCategories(this.targetFramework);\n }\n const channel = _.get(collection, 'channel') || _.get(this.editorConfig, 'context.channel');\n this.helperService.initialize(channel);\n });\n this.editorService.getCategoryDefinition(this.editorConfig.config.primaryCategory,\n this.editorConfig.context.channel, this.editorConfig.config.objectType)\n .subscribe(\n (response) => {\n // tslint:disable-next-line:max-line-length\n const dialcode = _.get(response, 'result.objectCategoryDefinition.objectMetadata.schema.properties.generateDIALCodes.default');\n this.toolbarConfig.showDialcode = dialcode ? dialcode.toLowerCase() : 'no';\n // tslint:disable-next-line:max-line-length\n const enableBulkUpload = _.get(response, 'result.objectCategoryDefinition.objectMetadata.config.sourcingSettings.collection.enableBulkUpload');\n this.toolbarConfig.showBulkUploadBtn = enableBulkUpload ? enableBulkUpload : false;\n\n this.sourcingSettings = _.get(response, 'result.objectCategoryDefinition.objectMetadata.config.sourcingSettings', {});\n this.helperService.channelData$.subscribe(\n (channelResponse) => {\n this.sethierarchyConfig(response);\n this.primaryCategoryDef = response;\n }\n );\n },\n (error) => {\n console.log(error);\n }\n );\n this.pageStartTime = Date.now();\n this.telemetryService.initializeTelemetry(this.editorConfig);\n this.telemetryService.telemetryPageId = this.pageId;\n this.telemetryService.start({ type: 'editor', pageid: this.telemetryService.telemetryPageId });\n this.unSubscribeShowLibraryPageEmitter = this.editorService.getshowLibraryPageEmitter()\n .subscribe(item => this.showLibraryComponentPage());\n this.treeService.treeStatus$.pipe(takeUntil(this.unsubscribe$)).subscribe((status) => {\n if (status === 'loaded') {\n this.getFrameworkDetails(this.primaryCategoryDef);\n }\n });\n }\n\n getFrameworkDetails(categoryDefinitionData) {\n let orgFWIdentifiers: any;\n let targetFWIdentifiers: any;\n let orgFWType: any;\n let targetFWType: any;\n orgFWIdentifiers = _.get(categoryDefinitionData, 'result.objectCategoryDefinition.objectMetadata.schema.properties.framework.enum') ||\n _.get(categoryDefinitionData, 'result.objectCategoryDefinition.objectMetadata.schema.properties.framework.default');\n if (_.get(this.editorConfig, 'config.renderTaxonomy') === true) {\n const orgId = _.get(this.editorConfig, 'context.identifier');\n this.editorService.fetchOutComeDeclaration(orgId).toPromise()\n .then(data => {\n if (data?.result) {\n this.outcomeDeclaration = _.get(data?.result, 'questionset.outcomeDeclaration');\n this.levelsArray = Object.keys(this.outcomeDeclaration);\n }\n });\n }\n // tslint:disable-next-line:max-line-length\n this.publishchecklist = _.get(categoryDefinitionData, 'result.objectCategoryDefinition.forms.publishchecklist.properties') || _.get(categoryDefinitionData, 'result.objectCategoryDefinition.forms.review.properties') || [];\n if (_.isEmpty(this.targetFramework || _.get(this.editorConfig, 'context.targetFWIds'))) {\n // tslint:disable-next-line:max-line-length\n targetFWIdentifiers = _.get(categoryDefinitionData, 'result.objectCategoryDefinition.objectMetadata.schema.properties.targetFWIds.default');\n if (_.isEmpty(targetFWIdentifiers)) {\n // tslint:disable-next-line:max-line-length\n targetFWType = _.get(categoryDefinitionData, 'result.objectCategoryDefinition.objectMetadata.config.frameworkMetadata.targetFWType');\n const channelFrameworks = _.get(this.helperService.channelInfo, 'frameworks');\n const channelFrameworksType = _.map(channelFrameworks, 'type');\n const channelFrameworksIdentifiers = _.map(_.get(this.helperService.channelInfo, 'frameworks'), 'identifier');\n const difference = _.difference(targetFWType, _.uniq(channelFrameworksType));\n\n if (targetFWType && channelFrameworksType && _.isEmpty(difference)) {\n this.targetFramework = _.get(_.first(_.filter(channelFrameworks, framework => {\n return framework.type === _.first(targetFWType);\n })), 'identifier');\n this.treeService.updateMetaDataProperty('targetFWIds', _.castArray(this.targetFramework));\n this.frameworkService.getTargetFrameworkCategories(_.castArray(this.targetFramework));\n } else if ((targetFWType && channelFrameworksType && !_.isEmpty(difference)) || _.isEmpty(channelFrameworksType)) {\n this.frameworkService.getFrameworkData(undefined, difference, undefined, 'Yes').subscribe(\n (targetResponse) => {\n this.targetFramework = _.get(_.first(_.get(targetResponse, 'result.Framework')), 'identifier');\n if (!_.isEmpty(this.targetFramework)) {\n this.treeService.updateMetaDataProperty('targetFWIds', _.castArray(this.targetFramework));\n this.frameworkService.getTargetFrameworkCategories(_.castArray(this.targetFramework));\n }\n }\n );\n }\n } else {\n this.frameworkService.getFrameworkData(undefined, undefined, targetFWIdentifiers).subscribe(\n (targetResponse) => {\n this.targetFramework = _.get(_.first(_.get(targetResponse, 'result.Framework')), 'identifier');\n if (!_.isEmpty(this.targetFramework)) {\n this.treeService.updateMetaDataProperty('targetFWIds', _.castArray(this.targetFramework));\n this.frameworkService.getTargetFrameworkCategories(_.castArray(this.targetFramework));\n }\n }\n );\n }\n }\n\n if (_.isEmpty(orgFWIdentifiers)) {\n let orgFrameworkList = [];\n orgFWType = _.get(categoryDefinitionData, 'result.objectCategoryDefinition.objectMetadata.config.frameworkMetadata.orgFWType');\n const channelFrameworksType = _.map(_.get(this.helperService.channelInfo, 'frameworks'), 'type');\n const difference = _.difference(orgFWType, _.uniq(channelFrameworksType));\n if (channelFrameworksType) {\n orgFrameworkList = _.map(_.get(this.helperService.channelInfo, 'frameworks'), (framework) => {\n return { label: framework.name, identifier: framework.identifier };\n });\n }\n\n if (orgFWType && channelFrameworksType && _.isEmpty(difference)) {\n this.frameworkService.frameworkValues = orgFrameworkList;\n this.setEditorForms(categoryDefinitionData);\n } else if (orgFWType && channelFrameworksType && !_.isEmpty(difference) || _.isEmpty(channelFrameworksType)) {\n this.frameworkService.getFrameworkData(undefined, difference, undefined, 'Yes').subscribe(\n (response) => {\n this.frameworkService.frameworkValues = _.concat(_.map(_.get(response, 'result.Framework'), framework => {\n return { label: framework.name, identifier: framework.identifier };\n }), orgFrameworkList);\n this.setEditorForms(categoryDefinitionData);\n }, error => {\n console.log('error', error);\n }\n );\n } else if (this.organisationFramework) {\n this.setEditorForms(categoryDefinitionData);\n }\n } else {\n this.frameworkService.getFrameworkData(undefined, undefined, orgFWIdentifiers).subscribe(\n (response) => {\n this.frameworkService.frameworkValues = _.concat(_.map(_.get(response, 'result.Framework'), framework => {\n return { label: framework.name, identifier: framework.identifier };\n }));\n this.setEditorForms(categoryDefinitionData);\n }, error => {\n console.log('error', error);\n }\n );\n }\n }\n\n setEditorForms(categoryDefinitionData) {\n const formsConfigObj = _.get(categoryDefinitionData, 'result.objectCategoryDefinition.forms');\n this.unitFormConfig = _.get(formsConfigObj, 'unitMetadata.properties');\n this.rootFormConfig = _.get(formsConfigObj, 'create.properties');\n let formData;\n if (this.rootFormConfig?.length) {\n formData = this.rootFormConfig[0].fields || [];\n }\n formData.forEach((field) => {\n if (field.code === 'evidenceMimeType') {\n this.evidenceMimeType = field.range;\n field.options = this.setEvidence;\n field.range = null;\n } else if (field.code === 'allowECM') {\n field.options = this.setAllowEcm;\n } else if (field.code === 'ecm') {\n this.ecm = field.options;\n field.options = this.setEcm;\n }\n });\n if ( this.objectType === 'questionset' && _.has(formsConfigObj, 'searchConfig')) {\n this.libraryComponentInput.searchFormConfig = _.get(formsConfigObj, 'searchConfig.properties');\n } else {\n this.libraryComponentInput.searchFormConfig = _.get(formsConfigObj, 'search.properties');\n }\n this.leafFormConfig = _.get(formsConfigObj, 'childMetadata.properties');\n this.relationFormConfig = _.get(formsConfigObj, 'relationalMetadata.properties');\n }\n\n ngAfterViewInit() {\n this.telemetryService.impression({\n type: 'edit', pageid: this.telemetryService.telemetryPageId, uri: this.router.url,\n duration: (Date.now() - this.pageStartTime) / 1000\n });\n this.isComponenetInitialized = true;\n }\n\n mergeCollectionExternalProperties(): Observable<any> {\n const requests = [];\n this.collectionTreeNodes = null;\n this.isTreeInitialized = true;\n const objectType = this.configService.categoryConfig[this.editorConfig.config.objectType];\n requests.push(this.editorService.fetchCollectionHierarchy(this.collectionId));\n if (objectType === 'questionSet') {\n requests.push(this.editorService.readQuestionSet(this.collectionId));\n }\n return forkJoin(requests).pipe(tap(responseList => {\n const hierarchyResponse = _.first(responseList);\n this.collectionTreeNodes = {\n data: _.get(hierarchyResponse, `result.${objectType}`)\n };\n this.buttonLoaders.showReviewComment = this.showCommentAddedAgainstContent();\n if (_.isEmpty(this.collectionTreeNodes.data.children)) {\n this.toolbarConfig.hasChildren = false;\n } else {\n this.toolbarConfig.hasChildren = true;\n }\n\n if (objectType === 'questionSet') {\n const questionSetResponse = _.last(responseList);\n const data = _.get(questionSetResponse, _.toLower(`result.${objectType}`));\n this.collectionTreeNodes.data.instructions = data.instructions ? data.instructions : '';\n }\n }\n ));\n }\n sethierarchyConfig(primaryCatConfig) {\n let hierarchyConfig;\n if (_.get(primaryCatConfig, 'result.objectCategoryDefinition.objectMetadata.config')) {\n hierarchyConfig = _.get(primaryCatConfig, 'result.objectCategoryDefinition.objectMetadata.config.sourcingSettings.collection');\n if (!_.isEmpty(hierarchyConfig.children)) {\n hierarchyConfig.children = this.getHierarchyChildrenConfig(hierarchyConfig.children);\n }\n if (!_.isEmpty(hierarchyConfig.hierarchy)) {\n _.forEach(hierarchyConfig.hierarchy, (hierarchyValue) => {\n if (_.get(hierarchyValue, 'children')) {\n hierarchyValue['children'] = this.getHierarchyChildrenConfig(_.get(hierarchyValue, 'children'));\n }\n });\n }\n }\n this.editorConfig.config = _.assign(this.editorConfig.config, hierarchyConfig);\n if (_.get(this.editorConfig, 'config.renderTaxonomy') === true && _.isEmpty(_.get(this.collectionTreeNodes, 'data.children'))) {\n this.fetchFrameWorkDetails();\n } else {\n this.ishierarchyConfigSet = true;\n }\n }\n\n fetchFrameWorkDetails() {\n this.frameworkService.frameworkData$.pipe(\n takeUntil(this.onComponentDestroy$),\n filter(data => _.get(data, `frameworkdata.${this.frameworkService.organisationFramework}`)),\n take(1)\n ).subscribe((frameworkDetails: any) => {\n if (frameworkDetails && !frameworkDetails.err) {\n const orgFrameworkData = _.get(frameworkDetails, `frameworkdata.${this.frameworkService.organisationFramework}.categories`);\n const categoryInstanceData = _.find(orgFrameworkData, {code: _.get(this.editorConfig, 'config.categoryInstance')});\n this.collectionTreeNodes.data.children = _.get(categoryInstanceData, 'terms');\n this.ishierarchyConfigSet = true;\n }\n });\n }\n\n getHierarchyChildrenConfig(childrenData) {\n _.forEach(childrenData, (value, key) => {\n if (_.isEmpty(value)) {\n switch (key) {\n case 'Question':\n childrenData[key] = _.map(this.helperService.questionPrimaryCategories, 'name') || this.editorConfig.config.questionPrimaryCategories;; \n break;\n case 'Content':\n childrenData[key] = _.map(this.helperService.contentPrimaryCategories, 'name') || [];\n break;\n case 'Collection':\n childrenData[key] = _.map(this.helperService.collectionPrimaryCategories, 'name') || [];\n break;\n case 'QuestionSet':\n childrenData[key] = _.map(this.helperService.questionsetPrimaryCategories, 'name') || [];\n break;\n }\n }\n });\n return childrenData;\n }\n\n toggleCollaboratorModalPoup() {\n this.isEnableCsvAction = true;\n if (this.addCollaborator) {\n this.addCollaborator = false;\n } else if (!this.addCollaborator) {\n this.addCollaborator = true;\n } else {\n }\n }\n\n toolbarEventListener(event) {\n this.actionType = event.button;\n switch (event.button) {\n case 'saveContent':\n this.buttonLoaders.saveAsDraftButtonLoader = true;\n this.saveContent().then((message: string) => {\n this.buttonLoaders.saveAsDraftButtonLoader = false;\n this.toasterService.success(message);\n this.isEnableCsvAction = true;\n }).catch(((error: string) => {\n this.buttonLoaders.saveAsDraftButtonLoader = false;\n this.isEnableCsvAction = false;\n this.toasterService.error(error);\n }));\n break;\n case 'previewContent':\n this.previewContent();\n break;\n case 'addFromLibrary':\n this.showLibraryComponentPage();\n break;\n case 'submitContent':\n this.submitHandler();\n break;\n case 'removeContent':\n this.deleteConfirmMessage = this.configService.labelConfig?.lbl?.confirmDeleteNode;\n this.showDeleteConfirmationPopUp = true;\n break;\n case 'editContent':\n this.redirectToQuestionTab('edit');\n break;\n case 'rejectContent':\n this.rejectContent(event.comment);\n break;\n case 'publishContent':\n this.publishContent(event);\n break;\n case 'onFormStatusChange':\n const selectedNode = this.treeService.getActiveNode();\n if (selectedNode && selectedNode.data.id) {\n this.formStatusMapper[selectedNode.data.id] = event.event.isValid;\n }\n if (this.isObjectTypeCollection) {\n this.handleCsvDropdownOptionsOnCollection();\n }\n break;\n case 'onFormValueChange':\n this.updateToolbarTitle(event);\n break;\n case 'backContent':\n this.redirectToChapterListTab();\n break;\n case 'sendForCorrections':\n this.redirectToChapterListTab({ comment: event.comment });\n break;\n case 'sourcingApprove':\n this.sourcingApproveContent(event);\n break;\n case 'sourcingReject':\n this.sourcingRejectContent({ comment: event.comment })\n break;\n case 'addCollaborator':\n this.toggleCollaboratorModalPoup();\n break;\n case 'showReviewcomments':\n this.showReviewModal = !this.showReviewModal;\n break;\n case 'reviewContent':\n this.redirectToQuestionTab('review');\n break;\n case 'pagination':\n this.pageId = 'pagination';\n break;\n case 'progressStatus':\n this.pageId = 'progressStatus';\n break;\n // case 'showCorrectioncomments':\n // this.contentComment = _.get(this.editorConfig, 'context.correctionComments')\n // this.showReviewModal = !this.showReviewModal;\n // break;\n default:\n break;\n }\n }\n\n redirectToChapterListTab(data?: any) {\n this.editorEmitter.emit({\n close: true, library: 'collection_editor', action: this.actionType, identifier: this.collectionId,\n ...data\n });\n }\n\n updateToolbarTitle(data: any) {\n const selectedNode = this.treeService.getActiveNode();\n if (!_.isEmpty(data?.data?.name) && selectedNode?.data?.root) {\n this.toolbarConfig.title = data.data.name;\n } else if (_.isEmpty(data?.data?.name) && selectedNode?.data?.root) {\n this.toolbarConfig.title = 'Untitled';\n }\n }\n\n showLibraryComponentPage() {\n if (this.editorService.checkIfContentsCanbeAdded()) {\n this.buttonLoaders.addFromLibraryButtonLoader = true;\n this.saveContent().then(res => {\n this.libraryComponentInput.collectionId = this.collectionId;\n this.buttonLoaders.addFromLibraryButtonLoader = false;\n this.pageId = 'library';\n }).catch(err => {\n this.toasterService.error(err);\n this.buttonLoaders.addFromLibraryButtonLoader = false;\n });\n }\n }\n showQuestionLibraryComponentPage() {\n if (_.isUndefined(this.libraryComponentInput.searchFormConfig) || _.isEmpty(this.libraryComponentInput.searchFormConfig)) {\n this.toasterService.error(_.get(this.configService, 'labelConfig.err.searchConfigNotFound'));\n return;\n }\n if (this.editorService.checkIfContentsCanbeAdded()) {\n const questionCategory = [];\n this.buttonLoaders.addQuestionFromLibraryButtonLoader = true;\n if (!_.isUndefined(this.editorService.templateList) &&\n _.isArray(this.editorService.templateList)) {\n _.forEach(this.editorService.templateList, (template) => {\n questionCategory.push({name: template, targetObjectType: 'Question'});\n });\n }\n this.saveContent().then((message: string) => {\n const activeNode = this.treeService.getActiveNode();\n this.buttonLoaders.addQuestionFromLibraryButtonLoader = false;\n this.questionlibraryInput = {\n libraryLabels: {\n itemType: _.get(this.configService, 'labelConfig.lbl.questionsetAddFromLibraryItemLabel'),\n collectionType: _.get(this.configService, 'labelConfig.lbl.questionsetAddFromLibraryCollectionLabel')\n },\n targetPrimaryCategories: questionCategory,\n collectionId: this.collectionId,\n existingcontentCounts: this.editorService.getContentChildrens().length,\n collection: activeNode?.data?.metadata,\n framework: this.organisationFramework,\n editorConfig: this.editorConfig,\n searchFormConfig: this.libraryComponentInput.searchFormConfig\n };\n this.pageId = 'question_library';\n console.log(this.questionlibraryInput);\n }).catch(((error: string) => {\n this.toasterService.error(error);\n this.buttonLoaders.addQuestionFromLibraryButtonLoader = false;\n }));\n }\n }\n\n libraryEventListener(event: any) {\n this.mergeCollectionExternalProperties().subscribe((res: any) => {\n this.pageId = 'collection_editor';\n this.telemetryService.telemetryPageId = this.pageId;\n this.isEnableCsvAction = true;\n this.isComponenetInitialized = true;\n });\n }\n\n saveContent() {\n return new Promise(async (resolve, reject) => {\n if (!this.validateFormStatus()) {\n return reject(_.get(this.configService, 'labelConfig.messages.error.029'));\n }\n const nodesModified = _.get(this.editorService.getCollectionHierarchy(), 'nodesModified');\n const objectType = this.configService.categoryConfig[this.editorConfig.config.objectType];\n if (objectType === 'questionSet') {\n const maxScore = await this.editorService.getMaxScore();\n this.treeService.updateMetaDataProperty('maxScore', maxScore);\n }\n this.editorService.updateHierarchy()\n .pipe(map(data => _.get(data, 'result'))).subscribe(response => {\n if (this.toolbarConfig.showDialcode === 'yes') {\n this.dialcodeService.highlightNodeForInvalidDialCode(response, nodesModified, this.collectionId);\n }\n if (!_.isEmpty(response.identifiers)) {\n this.treeService.replaceNodeId(response.identifiers);\n }\n this.treeService.clearTreeCache();\n this.treeService.nextTreeStatus('saved');\n resolve(_.get(this.configService, 'labelConfig.messages.success.001'));\n }, err => {\n reject(_.get(this.configService, 'labelConfig.messages.error.001'));\n });\n });\n }\n\n submitHandler() {\n if (!this.validateFormStatus()) {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.005'));\n return;\n } else if (this.toolbarConfig.showDialcode === 'yes') {\n if (this.dialcodeService.validateUnitsDialcodes()) {\n this.showConfirmPopup = true;\n } else {\n this.toasterService.warning(_.get(this.configService, 'labelConfig.messages.warning.001'));\n }\n } else {\n this.showConfirmPopup = true;\n }\n }\n\n validateFormStatus() {\n const isValid = _.every(this.formStatusMapper, Boolean);\n if (isValid) { return true; }\n _.forIn(this.formStatusMapper, (value, key) => {\n if (value) {\n this.treeService.highlightNode(key, 'remove');\n } else {\n this.treeService.highlightNode(key, 'add');\n }\n });\n return false;\n }\n\n previewContent() {\n this.buttonLoaders.previewButtonLoader = true;\n if (!this.isStatusReviewMode) {\n this.saveContent().then(res => {\n this.setUpdatedTreeNodeData();\n }).catch(err => {\n this.toasterService.error(err);\n this.buttonLoaders.previewButtonLoader = false;\n });\n } else {\n this.setUpdatedTreeNodeData();\n }\n }\n sendForReview() {\n this.saveContent().then(messg => {\n this.editorService.reviewContent(this.collectionId).subscribe(data => {\n this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.002'));\n this.redirectToChapterListTab();\n }, err => {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.002'));\n });\n }).catch(err => this.toasterService.error(err));\n }\n rejectContent(comment) {\n const editableFields = _.get(this.editorConfig.config, 'editableFields');\n if (this.editorMode === 'orgreview' && editableFields && !_.isEmpty(editableFields[this.editorMode])) {\n if (!this.validateFormStatus()) {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.029'));\n return false;\n }\n this.editorService.updateCollection(this.collectionId).subscribe(res => {\n this.editorService.submitRequestChanges(this.collectionId, comment).subscribe(res => {\n this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.003'));\n this.redirectToChapterListTab();\n }, err => {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.003'));\n });\n }, err => {\n this.toasterService.error(err);\n });\n } else {\n this.editorService.submitRequestChanges(this.collectionId, comment).subscribe(res => {\n this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.003'));\n this.redirectToChapterListTab();\n }, err => {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.003'));\n });\n }\n }\n\n publishContent(event) {\n const editableFields = _.get(this.editorConfig, 'config.editableFields');\n if (this.editorMode === 'orgreview' && editableFields && !_.isEmpty(editableFields[this.editorMode])) {\n if (!this.validateFormStatus()) {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.029'));\n return false;\n }\n this.editorService.updateCollection(this.collectionId).subscribe(res => {\n this.editorService.publishContent(this.collectionId, event).subscribe(response => {\n this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.004'));\n this.redirectToChapterListTab();\n }, err => {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.004'));\n });\n }, err => {\n this.toasterService.error(err);\n });\n } else {\n this.editorService.publishContent(this.collectionId, event).subscribe(res => {\n this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.004'));\n this.redirectToChapterListTab();\n }, err => {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.004'));\n });\n }\n }\n sourcingApproveContent(event) {\n const editableFields = _.get(this.editorConfig.config, 'editableFields');\n // tslint:disable-next-line:max-line-length\n if (this.editorMode === 'sourcingreview' && ((editableFields && !_.isEmpty(editableFields[this.editorMode])) || !_.isEmpty(this.publishchecklist))) {\n if (!this.validateFormStatus()) {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.029'));\n return false;\n }\n this.editorService.updateCollection(this.collectionId, event).subscribe(res => {\n this.redirectToChapterListTab();\n }, err => {\n this.toasterService.error(err);\n });\n } else {\n this.redirectToChapterListTab();\n }\n }\n sourcingRejectContent(obj) {\n const editableFields = _.get(this.editorConfig.config, 'editableFields');\n if (this.editorMode === 'sourcingreview' && editableFields && !_.isEmpty(editableFields[this.editorMode])) {\n if (!this.validateFormStatus()) {\n this.toasterService.error(_.get(this.configService, 'labelConfig.messages.error.029'));\n return false;\n }\n this.editorService.updateCollection(this.collectionId).subscribe(res => {\n this.redirectToChapterListTab(obj);\n }, err => {\n this.toasterService.error(err);\n });\n } else {\n this.redirectToChapterListTab(obj);\n }\n }\n setUpdatedTreeNodeData() {\n this.editorService.fetchCollectionHierarchy(this.collectionId).subscribe((res) => {\n console.log('hierarchyData', res);\n this.collectionTreeNodes = {\n data: _.get(res, `result.${this.configService.categoryConfig[this.editorConfig.config.objectType]}`)\n };\n this.updateTreeNodeData();\n this.buttonLoaders.previewButtonLoader = false;\n this.showPreview = true;\n setTimeout(() => {\n const element: any = document.querySelector('#previewPlayerContainer');\n if (element) {\n element.focus();\n }\n }, 500);\n }, error => {\n this.buttonLoaders.previewButtonLoader = false;\n this.toasterService.error(_.get(error, 'error.params.errmsg'));\n });\n }\n updateTreeNodeData() {\n const treeNodeData = _.get(this.treeService.getFirstChild(), 'data.metadata');\n if (!treeNodeData.timeLimits) {\n treeNodeData.timeLimits = {};\n }\n if (treeNodeData.maxTime) {\n treeNodeData.timeLimits.maxTime = this.helperService.hmsToSeconds(treeNodeData.maxTime);\n }\n if (treeNodeData.warningTime) {\n treeNodeData.timeLimits.warningTime = this.helperService.hmsToSeconds(treeNodeData.warningTime);\n }\n this.collectionTreeNodes.data = _.merge(this.collectionTreeNodes.data, _.omit(treeNodeData, ['childNodes']));\n }\n treeEventListener(event: any) {\n this.actionType = event.type;\n this.updateTreeNodeData();\n if (this.isObjectTypeCollection) {\n this.handleCsvDropdownOptionsOnCollection();\n }\n switch (event.type) {\n case 'nodeSelect':\n this.updateSubmitBtnVisibility();\n this.selectedNodeData = _.cloneDeep(event.data);\n this.isCurrentNodeFolder = _.get(this.selectedNodeData, 'folder');\n this.isCurrentNodeRoot = _.get(this.selectedNodeData, 'data.root');\n // TODO: rethink below line code\n this.isQumlPlayer = _.get(this.selectedNodeData, 'data.metadata.mimeType') === 'application/vnd.sunbird.question';\n this.setTemplateList();\n this.changeDetectionRef.detectChanges();\n break;\n case 'deleteNode':\n this.deleteConfirmMessage = this.configService.labelConfig?.lbl?.confirmDeleteNode;\n if (!event.isContent && _.has(this.editorConfig.config, 'hierarchy.level1')) {\n // tslint:disable-next-line:max-line-length\n this.deleteConfirmMessage = _.replace(this.deleteConfirmMessage, 'Node', _.get(this.editorConfig.config, 'hierarchy.level1.name'));\n }\n this.showDeleteConfirmationPopUp = true;\n break;\n case 'createNewContent':\n if (this.editorService.checkIfContentsCanbeAdded()) {\n this.buttonLoaders.addFromLibraryButtonLoader = true;\n this.saveContent().then((message: string) => {\n this.buttonLoaders.addFromLibraryButtonLoader = false;\n this.showQuestionTemplatePopup = true;\n }).catch(((error: string) => {\n this.toasterService.error(error);\n this.buttonLoaders.addFromLibraryButtonLoader = false;\n }));\n }\n break;\n default:\n break;\n }\n }\n\n setTemplateList() {\n if (this.isCurrentNodeRoot) {\n this.templateList = _.flatMap(_.get(this.editorConfig, 'config.children'));\n } else {\n this.templateList = _.flatMap(\n _.get(this.editorService.editorConfig.config, `hierarchy.level${this.selectedNodeData.getLevel() - 1}.children`)\n );\n }\n }\n\n deleteNode() {\n const activeNode = this.treeService.getActiveNode();\n delete this.formStatusMapper[activeNode.data.id];\n const children = this.treeService.getChildren();\n _.forEach(children, (node) => {\n if (_.has(this.formStatusMapper, node.data.id)) {\n delete this.formStatusMapper[node.data.id];\n }\n });\n this.treeService.removeNode();\n this.updateSubmitBtnVisibility();\n this.showDeleteConfirmationPopUp = false;\n this.collectionTreeNodes.data.childNodes = _.filter(this.collectionTreeNodes.data.childNodes, (key) => {\n return key !== activeNode.data.id;\n });\n }\n\n updateSubmitBtnVisibility() {\n const rootFirstChildNode = this.treeService.getFirstChild();\n if (rootFirstChildNode && !rootFirstChildNode.children) {\n this.toolbarConfig.hasChildren = false;\n } else {\n this.toolbarConfig.hasChildren = true;\n }\n }\n\n generateTelemetryEndEvent() {\n const telemetryEnd = {\n type: 'editor',\n pageid: this.telemetryService?.telemetryPageId,\n mode: this.editorMode,\n duration: _.toString((Date.now() - this.pageStartTime) / 1000)\n };\n this.telemetryService?.end(telemetryEnd);\n }\n\n handleTemplateSelection($event) {\n const selectedQuestionType = $event;\n this.showQuestionTemplatePopup = false;\n if (selectedQuestionType && selectedQuestionType.type === 'close') {\n return false;\n }\n // tslint:disable-next-line:max-line-length\n this.editorService.getCategoryDefinition(selectedQuestionType, null, 'Question').pipe(catchError(error => {\n const errInfo = {\n errorMsg: _.get(this.configService, 'labelConfig.messages.error.006'),\n };\n return throwError(this.editorService.apiErrorHandling(error, errInfo));\n })).subscribe((res) => {\n const selectedtemplateDetails = res.result.objectCategoryDefinition;\n this.editorService.selectedChildren['label']=selectedtemplateDetails.label;\n const selectedTemplateFormFields = _.get(selectedtemplateDetails, 'forms.create.properties');\n if (!_.isEmpty(selectedTemplateFormFields)) {\n const questionCategoryConfig = selectedTemplateFormFields;\n questionCategoryConfig.forEach(field => {\n if (field.code === 'evidenceMimeType') {\n this.evidenceMimeType = field.range;\n field.options = this.setEvidence;\n field.range = null;\n }\n });\n this.leafFormConfig = questionCategoryConfig;\n }\n\n const catMetaData = _.get(selectedtemplateDetails, 'objectMetadata');\n this.sourcingSettings = _.get(catMetaData, 'config.sourcingSettings') || {};\n !_.isUndefined(this.editorConfig.config.renderTaxonomy) ? (this.questionComponentInput.config ={maximumOptions:_.get(catMetaData, 'config.maximumOptions')}) : '' ;\n if (!_.has(this.sourcingSettings, 'enforceCorrectAnswer')) {\n this.sourcingSettings.enforceCorrectAnswer = true;\n }\n if (_.isEmpty(_.get(catMetaData, 'schema.properties.interactionTypes.items.enum'))) {\n // this.toasterService.error(this.resourceService.messages.emsg.m0026);\n this.editorService.selectedChildren = {\n primaryCategory: selectedQuestionType,\n mimeType: catMetaData.schema.properties.mimeType.enum[0],\n interactionType: null\n };\n this.redirectToQuestionTab(undefined, 'default');\n } else {\n const interactionTypes = catMetaData.schema.properties.interactionTypes.items.enum;\n this.editorService.selectedChildren = {\n primaryCategory: selectedQuestionType,\n mimeType: catMetaData.schema.properties.mimeType.enum[0],\n interactionType: interactionTypes[0]\n };\n this.redirectToQuestionTab(undefined, interactionTypes[0]);\n }\n });\n }\n\n redirectToQuestionTab(mode, interactionType?) {\n let questionId = !_.isUndefined(mode) ? this.selectedNodeData?.data?.metadata?.identifier : undefined;\n let questionCategory = '';\n if (this.objectType === 'question') {\n questionId = _.get(this.editorConfig, 'context.identifier');\n interactionType = _.get(this.editorConfig, 'config.interactionType');\n questionCategory = _.get(this.editorConfig, 'config.questionCategory');\n this.creationContext = {\n mode: mode,\n objectType: this.objectType,\n collectionObjectType: _.get(this.editorConfig, 'context.collectionObjectType'),\n isReadOnlyMode: _.get(this.editorConfig, 'config.isReadOnlyMode'),\n unitIdentifier: _.get(this.editorConfig, 'context.unitIdentifier'),\n correctionComments: _.get(this.editorConfig, 'context.correctionComments'),\n editableFields: _.get(this.editorConfig, 'config.editableFields')\n };\n }\n\n this.questionComponentInput = {\n questionSetId: this.collectionId,\n questionId: questionId,\n type: interactionType,\n setChildQueston:mode === 'edit' ? false : this.setChildQuestion,\n category: questionCategory,\n creationContext: this.creationContext, // Pass the creation context to the question-component\n creationMode: mode\n };\n\n if(!_.isUndefined(mode) && !_.isUndefined(this.editorConfig.config.renderTaxonomy)){\n this.editorService.selectedChildren = {\n primaryCategory: _.get(this.selectedNodeData, 'data.metadata.primaryCategory'),\n interactionType: _.get(this.selectedNodeData, 'data.metadata.interactionTypes[0]')\n };\n this.questionComponentInput = {\n ...this.questionComponentInput,\n creationContext:{\n isReadOnlyMode: mode !== 'edit' ? true : false,\n correctionComments:this.contentComment\n }\n }\n this.editorService.getCategoryDefinition(this.selectedNodeData.data.metadata.primaryCategory, null, 'Question')\n .subscribe((res) => {\n const selectedtemplateDetails = res.result.objectCategoryDefinition;\n this.editorService.selectedChildren['label']=selectedtemplateDetails.label;\n const selectedTemplateFormFields = _.get(selectedtemplateDetails, 'forms.create.properties');\n this.questionComponentInput.config ={maximumOptions:_.get(selectedtemplateDetails, 'objectMetadata.config.maximumOptions')}\n if (!_.isEmpty(selectedTemplateFormFields)) {\n const questionCategoryConfig = selectedTemplateFormFields;\n questionCategoryConfig.forEach(field => {\n if (field.code === 'evidenceMimeType') {\n this.evidenceMimeType = field.range;\n field.options = this.setEvidence;\n field.range = null;\n }\n });\n this.leafFormConfig = questionCategoryConfig;\n }\n const catMetaData = selectedtemplateDetails.objectMetadata;\n this.sourcingSettings = catMetaData?.config?.sourcingSettings || {};\n if (!_.has(this.sourcingSettings, 'enforceCorrectAnswer')) {\n this.sourcingSettings.enforceCorrectAnswer = true;\n }\n this.pageId = 'question';\n },(error) => {\n const errInfo = {\n errorMsg: _.get(this.configService, 'labelConfig.messages.error.006'),\n };\n return throwError(this.editorService.apiErrorHandling(error, errInfo))\n });\n }\n else{\n this.pageId = 'question';\n }\n }\n\n questionEventListener(event: any) {\n this.selectedNodeData = undefined;\n this.mergeCollectionExternalProperties().subscribe((res: any) => {\n this.pageId = 'collection_editor';\n this.telemetryService.telemetryPageId = this.pageId;\n this.isEnableCsvAction = true;\n });\n }\n\n get contentPolicyUrl() {\n return this.editorService.contentPolicyUrl;\n }\n\n showCommentAddedAgainstContent() {\n // tslint:disable-next-line:max-line-length\n if (this.collectionTreeNodes.data.status === 'Draft' && this.collectionTreeNodes.data.prevStatus === 'Review' && _.has(this.collectionTreeNodes.data, 'rejectComment')) {\n this.contentComment = _.get(this.collectionTreeNodes.data, 'rejectComment');\n return true;\n } else if (_.get(this.editorService, 'editorConfig.config.showCorrectionComments')) {\n this.contentComment = _.get(this.editorConfig, 'context.correctionComments');\n return true;\n }\n return false;\n }\n handleCsvDropdownOptionsOnCollection() {\n if (this.isTreeInitialized) {\n this.isEnableCsvAction = true;\n this.isTreeInitialized = false;\n } else {\n this.isEnableCsvAction = false;\n }\n this.setCsvDropDownOptionsDisable(true);\n }\n onClickFolder() {\n if (this.isComponenetInitialized) {\n this.isComponenetInitialized = false;\n this.setCsvDropDownOptionsDisable();\n } else if (this.isEnableCsvAction) {\n this.setCsvDropDownOptionsDisable();\n }\n }\n setCsvDropDownOptionsDisable(disable?) {\n const status = this.editorService.getHierarchyFolder().length ? true : false;\n this.csvDropDownOptions.isDisableCreateCsv = disable ? disable : status;\n this.csvDropDownOptions.isDisableUpdateCsv = disable ? disable : !status;\n this.csvDropDownOptions.isDisableDownloadCsv = disable ? disable : !status;\n }\n downloadHierarchyCsv() {\n this.editorService.downloadHierarchyCsv(this.collectionId).subscribe(res => {\n const tocUrl = _.get(res, 'result.collection.tocUrl');\n this.downloadCSVFile(tocUrl);\n }, error => {\n this.toasterService.error(_.get(error, 'error.params.errmsg'));\n });\n }\n isReviewMode() {\n return _.includes([ 'review', 'read', 'sourcingreview', 'orgreview' ], this.editorService.editorMode);\n }\n downloadCSVFile(tocUrl) {\n const downloadConfig = {\n blobUrl: tocUrl,\n successMessage: false,\n fileType: 'csv',\n fileName: this.collectionId\n };\n window.open(downloadConfig.blobUrl, '_blank');\n /*this.editorService.downloadBlobUrlFile(downloadConfig);*/\n }\n hanndleCsvEmitter(event) {\n switch (event.type) {\n case 'closeModal':\n this.showCsvUploadPopup = false;\n break;\n case 'updateHierarchy':\n this.mergeCollectionExternalProperties().subscribe((res: any) => {\n this.pageId = 'collection_editor';\n this.telemetryService.telemetryPageId = this.pageId;\n this.isEnableCsvAction = true;\n });\n break;\n case 'createCsv':\n this.showCsvUploadPopup = true;\n this.isCreateCsv = true;\n break;\n case 'updateCsv':\n this.showCsvUploadPopup = true;\n this.isCreateCsv = false;\n break;\n case 'downloadCsv':\n this.downloadHierarchyCsv();\n break;\n default:\n break;\n }\n }\n\n onFormStatusChange(form) {\n const selectedNode = this.treeService.getActiveNode();\n if (selectedNode && selectedNode.data.id) {\n this.formStatusMapper[selectedNode.data.id] = form.isValid;\n }\n }\n\n assignPageEmitterListener(event: any) {\n this.pageId = 'collection_editor';\n }\n\n ngOnDestroy() {\n if (this.telemetryService && this.telemetryService?.end) {\n this.generateTelemetryEndEvent();\n }\n if (this.treeService) {\n this.treeService.clearTreeCache();\n }\n if (this.dialcodeService) {\n this.dialcodeService.clearDialCodeMaps();\n }\n if (this.modal && this.modal.deny) {\n this.modal.deny();\n }\n if (this.unSubscribeShowLibraryPageEmitter) {\n this.unSubscribeShowLibraryPageEmitter.unsubscribe();\n }\n if (this.unSubscribeshowQuestionLibraryPageEmitter) {\n this.unSubscribeshowQuestionLibraryPageEmitter.unsubscribe();\n }\n this.unsubscribe$ && this.unsubscribe$.next();\n this.unsubscribe$ && this.unsubscribe$.complete();\n }\n\n\n setEvidence(control, depends: FormControl[], formGroup: FormGroup, loading, loaded) {\n control.isVisible = 'no';\n control.range = this.evidenceMimeType;\n return merge(..._.map(depends, depend => depend.valueChanges)).pipe(\n switchMap((value: any) => {\n if (!_.isEmpty(value) && _.toLower(value) === 'yes') {\n control.isVisible = 'yes';\n return of({range: this.evidenceMimeType});\n } else {\n control.isVisible = 'no';\n return of(null);\n }\n })\n );\n }\n\n setEcm(control, depends: FormControl[], formGroup: FormGroup, loading, loaded) {\n control.isVisible = 'no';\n control.options = this.ecm;\n return merge(..._.map(depends, depend => depend.valueChanges)).pipe(\n switchMap((value: any) => {\n if (!_.isEmpty(value) && _.toLower(value) === 'yes') {\n control.isVisible = 'yes';\n return of({options: this.ecm});\n } else {\n control.isVisible = 'no';\n return of(null);\n }\n })\n );\n }\n\n setAllowEcm(control, depends: FormControl[]) {\n control.isVisible = 'no';\n const response = merge(..._.map(depends, depend => depend.valueChanges)).pipe(\n switchMap((value: any) => {\n if (!_.isEmpty(value) && _.toLower(value) === 'self' ) {\n control.isVisible = 'no';\n return of(null);\n } else {\n control.isVisible = 'yes';\n return of(null);\n }\n })\n );\n return response;\n }\n\n}\n","<ng-container [ngSwitch]=\"pageId\">\n <ng-container *ngSwitchCase=\"'collection_editor'\">\n <div class=\"add-to-library mb-10\">\n <lib-header [pageId]=\"pageId\" [publishchecklist]=\"publishchecklist\"\n [labelConfigData]=\"toolbarConfig\" [buttonLoaders]=\"buttonLoaders\" (toolbarEmitter)=\"toolbarEventListener($event)\"> </lib-header>\n <div class=\"h-100vh sb-bg-white\">\n <div class=\"ui\">\n <div class=\"ui twelve column grid m-0 \">\n <!-- Left Sidebar for cards -->\n <div class=\"p-50 sb-folder-menu\" *ngIf=\"isObjectTypeCollection\">\n <div> {{configService.labelConfig?.lbl?.folders}} </div>\n <a class=\"profile-avtar computer only p-0 pr-10\" tabindex=\"0\">\n <div suiDropdown class=\"ui dropdown right top pointing z-index-9\" id=\"dropdown-menu-list-header\" *ngIf=\"!isStatusReviewMode\">\n <i class=\"icon ellipsis vertical h-1\" aria-hidden=\"true\" [ngClass]=\"{'sb-disable-icon': isStatusReviewMode}\" (click)=\"onClickFolder()\"></i>\n <div class=\"menu\" suiDropdownMenu >\n <button type=\"button\" class=\"item fs-0-785 bg-none\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('open_popup','click',configService.labelConfig?.lbl?.createHierarchyCsv,\n this.telemetryService.telemetryPageId,{key: 'dialog_id', value: configService.labelConfig?.lbl?.createHierarchyCsv})\"\n (click)=\"hanndleCsvEmitter({type: 'createCsv'})\" [disabled]=\"csvDropDownOptions.isDisableCreateCsv\">\n <i class=\"icon folder outline sb-color-primary\" [ngClass]=\"{'sb-disable-icon': csvDropDownOptions.isDisableCreateCsv}\" aria-hidden=\"true\"></i>\n <span class=\"text\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableCreateCsv}\">{{configService.labelConfig?.lbl?.createHierarchyCsv}}</span>\n </button>\n <div class=\"ui divider\"></div>\n <button libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('csv_download','click',configService.labelConfig?.lbl?.downloadFoldersInCSV,\n this.telemetryService.telemetryPageId,{key: 'identifier', value: collectionId})\"\n type=\"button\" class=\"item fs-0-785 bg-none\" (click)=\"hanndleCsvEmitter({type: 'downloadCsv'})\" [disabled]=\"csvDropDownOptions.isDisableDownloadCsv\">\n <i class=\"icon download sb-color-primary\" [ngClass]=\"{'sb-disable-icon': csvDropDownOptions.isDisableDownloadCsv}\" aria-hidden=\"true\"></i> \n <span class=\"text\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableDownloadCsv}\" > \n {{configService.labelConfig?.lbl?.downloadFoldersInCSV}}</span>\n </button>\n <div class=\"ui divider\">\n </div>\n <button \n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('open_popup','click',configService.labelConfig?.lbl?.uploadUpdateCSV,\n this.telemetryService.telemetryPageId,{key: 'dialog_id', value: configService.labelConfig?.lbl?.uploadUpdateCSV})\"\n type=\"button\" class=\"item fs-0-785 bg-none\" (click)=\"hanndleCsvEmitter({type: 'updateCsv'})\" [disabled]=\"csvDropDownOptions.isDisableUpdateCsv\">\n <i class=\"icon upload sb-color-primary\" aria-hidden=\"true\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableUpdateCsv}\"></i> \n <span class=\"text\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableUpdateCsv}\" > \n {{configService.labelConfig?.lbl?.uploadUpdateCSV}}\n </span>\n </button>\n </div>\n </div>\n </a>\n </div>\n <div class=\"three wide column p-0 overflow-y mb-40 h-100vh\" [ngClass]=\"{'mt-50': isObjectTypeCollection}\">\n <lib-fancy-tree *ngIf=\"collectionTreeNodes && collectionTreeNodes.data && ishierarchyConfigSet\"\n [nodes]=\"collectionTreeNodes\" [options]=\"{ showConnectors: true }\" [buttonLoaders]=\"buttonLoaders\"\n (treeEventEmitter)=\"treeEventListener($event)\" class=\"sb-collectionTree-fancyTree sb-collectionTree-fancyTreelist sb-questionset-scroll\">\n </lib-fancy-tree>\n </div>\n <!-- Right Player Sections -->\n <div class=\"eight wide column bg-white pl-40 mb-10 w-73\">\n <ng-container *ngIf=\"(isCurrentNodeFolder === true || isCurrentNodeRoot === true) && unitFormConfig && selectedNodeData && rootFormConfig\">\n <lib-meta-form [rootFormConfig]=\"rootFormConfig\" [nodeMetadata]=\"selectedNodeData\" [unitFormConfig]=\"unitFormConfig\"\n (toolbarEmitter)=\"toolbarEventListener($event)\"></lib-meta-form>\n </ng-container>\n <ng-container *ngIf=\"isCurrentNodeFolder === false && isCurrentNodeRoot !== true\">\n <lib-contentplayer-page *ngIf=\"!isQumlPlayer\" [contentMetadata]=\"selectedNodeData\" ></lib-contentplayer-page>\n <lib-qumlplayer-page *ngIf=\"isQumlPlayer\" [questionMetaData]=\"selectedNodeData\" [questionSetHierarchy]=\"collectionTreeNodes?.data\"\n (toolbarEmitter)=\"toolbarEventListener($event)\">\n </lib-qumlplayer-page>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n\n <sui-modal *ngIf=\"showDeleteConfirmationPopUp\" [mustScroll]=\"true\" [isClosable]=\"true\" [transitionDuration]=\"0\"\n [size]=\"'normal'\" class=\"sb-modal bx-none overflow-modal\" appBodyScroll\n (dismissed)=\"showDeleteConfirmationPopUp = !showDeleteConfirmationPopUp\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.confirmDeleteContent}}\n </div>\n <div class=\"sb-modal-content\">\n <!-- <div class=\"sb-publish-content\">\n <div class=\"review-modal-list\">\n {{ contentComment }}\n </div> -->\n <div> {{deleteConfirmMessage}}</div>\n </div>\n <div class=\"sb-modal-actions\">\n <button type=\"button\" class=\"sb-btn sb-btn-normal sb-btn-primary mr-8\" (click)=\"showDeleteConfirmationPopUp = !showDeleteConfirmationPopUp\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('no','click','cancel', this.telemetryService.telemetryPageId,{key: 'dialog_id', value: 'confirm_delete_content','identifier' : selectedNodeData?.data?.id})\"> {{configService.labelConfig?.button_labels?.no_btn_label}} </button>\n <button type=\"button\" class=\"sb-btn sb-btn-secondary sb-btn-normal \" (click)=\"deleteNode();\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('yes','click','submit', this.telemetryService.telemetryPageId,{key: 'dialog_id', value: 'confirm_delete_content','identifier' : selectedNodeData?.data?.id})\"> {{configService.labelConfig?.button_labels?.yes_btn_label}} </button>\n </div>\n </sui-modal>\n <sui-modal *ngIf='showConfirmPopup' [mustScroll]=\"false\" [isClosable]=\"true\" [transitionDuration]=\"0\" [size]=\"'normal'\"\n class=\"sb-modal overflow-modal\" appBodyScroll (dismissed)=\"showConfirmPopup = !showConfirmPopup; terms = false;\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.acceptTerms}}\n </div>\n <div class=\"sb-modal-content\">\n <div class=\"ui grid\">\n <div class=\"twelve wide column sb-checkbox-tnc mt-10\">\n <div class=\"sb-checkbox sb-checkbox-primary font-italic p-0 m-0\"><input [(ngModel)]=\"terms\" id=\"termAndConditions\"\n name=\"example\" type=\"checkbox\">\n <label for=\"termAndConditions\" class=\"fsmall pl-32\">\n <div class=\"d-flex flex-ai-center\">\n <span class=\"sb-required\">*</span><span\n class=\"font-weight-bold mb-4 d-block\">\"{{configService.labelConfig?.lbl?.iAgreeSubmit}}</span>\n </div>\n <div class=\"sb-color-gray-300\">{{configService.labelConfig?.lbl?.iconfirmContent}}<a\n class=\"sb-color-primary font-weight-bold cursor-pointer\" href=\"https://creativecommons.org/licenses\" target=\"_blank\" > {{configService.labelConfig?.lbl?.createCommonFramework}}</a>\n {{configService.labelConfig?.lbl?.accordance}} \n <a class=\"sb-color-primary font-weight-bold cursor-pointer\" href=\"{{contentPolicyUrl}}\" target=\"_blank\" >{{configService.labelConfig?.lbl?.contentPolicy}}</a> {{configService.labelConfig?.lbl?.privacyRights}}\"</div>\n </label>\n </div>\n </div>\n </div>\n </div>\n <div class=\"sb-modal-actions\">\n <button type=\"button\" class=\"sb-btn sb-btn-normal\" [ngClass]=\"!terms ? 'sb-btn-disabled' : 'sb-btn-primary'\" [disabled]=\"!terms\"\n (click)=\"sendForReview()\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('submit','click','submit', this.telemetryService.telemetryPageId,{key: 'dialog_id', value: 'accepting_terms_conditions','termAndConditions' : terms})\">\n {{configService.labelConfig?.button_labels?.submit_btn_label}}\n </button>\n </div>\n </sui-modal>\n <sui-modal *ngIf='showPreview' [mustScroll]=\"false\" [isClosable]=\"true\" [transitionDuration]=\"0\" [size]=\"'large'\"\n class=\"sb-modal overflow-modal preview-modal\" appBodyScroll (dismissed)=\"showPreview = !showPreview;\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.questionSetPreview}}\n </div>\n <div class=\"sb-modal-content\">\n <div class=\"br-2 b-1-100\" id=\"previewPlayerContainer\" tabindex=\"0\" cdkTrapFocus>\n <lib-quml-player [questionSetHierarchy]=\"collectionTreeNodes?.data\"></lib-quml-player>\n </div>\n </div>\n </sui-modal>\n <lib-template *ngIf='showQuestionTemplatePopup' [templateList]=\"templateList\"\n (templateSelection)=\"handleTemplateSelection($event)\">\n </lib-template>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'library'\">\n <lib-library [libraryInput]=\"libraryComponentInput\" (libraryEmitter)=\"libraryEventListener($event)\">\n </lib-library>\n </ng-container>\n <ng-container *ngSwitchCase=\"'question'\">\n <lib-question [questionInput]=\"questionComponentInput\" [leafFormConfig]=\"leafFormConfig\" (questionEmitter)=\"questionEventListener($event)\">\n </lib-question>\n </ng-container>\n <ng-container *ngSwitchCase=\"'pagination'\">\n <lib-assign-page-number (assignPageEmitter)=\"assignPageEmitterListener($event)\"></lib-assign-page-number>\n </ng-container>\n <ng-container *ngSwitchCase=\"'progressStatus'\">\n <lib-progress-status (assignPageEmitter)=\"assignPageEmitterListener($event)\"></lib-progress-status>\n </ng-container>\n</ng-container>\n<ng-container *ngIf=\"addCollaborator\">\n <lib-manage-collaborator [addCollaborator]=\"addCollaborator\" [collectionId]=\"collectionId\" (modalDismissEmitter)=\"toggleCollaboratorModalPoup()\"></lib-manage-collaborator>\n</ng-container>\n<sui-modal *ngIf=\"showReviewModal\" [mustScroll]=\"true\" [isClosable]=\"false\" [transitionDuration]=\"0\"\n [size]=\"'normal'\" class=\"sb-modal bx-none overflow-modal\" appBodyScroll #modal (dismissed)=\"showReviewModal = false;\">\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.reviewComments}}\n </div>\n <div class=\"sb-modal-content\">\n <div class=\"sb-field\">\n <label>{{configService.labelConfig?.lbl?.comments}}</label>\n <textarea disabled=\"disabled\" type=\"text\" class=\"wmd-input width-100 sb-form-control p-10 sb-disabled-textarea\" id=\"wmd-input\" [(ngModel)]=\"contentComment\" name=\"rejectedComment\"></textarea>\n </div>\n </div>\n <div class=\"sb-modal-actions\">\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary\" (click)=\"modal.deny('denied')\"\n libTelemetryInteract [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('close','click','cancel', telemetryService.telemetryPageId, {key: 'dialog_id', value: 'review_comments'})\">{{configService.labelConfig?.button_labels?.close_btn_label}}</button>\n </div>\n</sui-modal>\n\n <lib-csv-upload *ngIf=\"showCsvUploadPopup\" [isCreateCsv]= \"isCreateCsv\" (csvUploadEmitter)= \"hanndleCsvEmitter($event)\" [collectionId]=\"collectionId\">\n </lib-csv-upload>\n\n","import { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { CommonFormElementsModule, DialcodeCursor } from '@project-sunbird/common-form-elements-full';\nimport { SuiModule } from '@project-sunbird/ng2-semantic-ui';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\nimport { HttpClientModule } from '@angular/common/http';\nimport { CollectionEditorLibraryComponent } from './collection-editor-library.component';\nimport { ContentplayerPageComponent } from './components/contentplayer-page/contentplayer-page.component';\nimport { EditorComponent } from './components/editor/editor.component';\nimport { HeaderComponent } from './components/header/header.component';\nimport { FancyTreeComponent } from './components/fancy-tree/fancy-tree.component';\nimport { MetaFormComponent } from './components/meta-form/meta-form.component';\nimport { LibraryComponent } from './components/library/library.component';\nimport { LibraryFilterComponent } from './components/library-filter/library-filter.component';\nimport { LibraryListComponent } from './components/library-list/library-list.component';\nimport { LibraryPlayerComponent } from './components/library-player/library-player.component';\nimport { TemplateComponent } from './components/template/template.component';\nimport { ResourceReorderComponent } from './components/resource-reorder/resource-reorder.component';\nimport { SkeletonLoaderComponent } from './components/skeleton-loader/skeleton-loader.component';\nimport { QumlplayerPageComponent } from './components/qumlplayer-page/qumlplayer-page.component';\nimport { OptionsComponent } from './components/options/options.component';\nimport { AnswerComponent } from './components/answer/answer.component';\nimport { CkeditorToolComponent } from './components/ckeditor-tool/ckeditor-tool.component';\nimport { QuestionComponent } from './components/question/question.component';\nimport { QumlLibraryModule } from '@project-sunbird/sunbird-quml-player';\nimport { CarouselModule } from 'ngx-bootstrap/carousel';\nimport { TelemetryInteractDirective } from './directives/telemetry-interact/telemetry-interact.directive';\nimport { AssetBrowserComponent } from './components/asset-browser/asset-browser.component';\nimport { CollectionIconComponent } from './components/collection-icon/collection-icon.component';\nimport { QumlPlayerComponent } from './components/quml-player/quml-player.component';\nimport { DialcodeComponent } from './components/dialcode/dialcode.component';\nimport { DialcodeService } from './services/dialcode/dialcode.service';\nimport { CsvUploadComponent } from './components/csv-upload/csv-upload.component';\nimport { ManageCollaboratorComponent } from './components/manage-collaborator/manage-collaborator.component';\nimport { PublishChecklistComponent } from './components/publish-checklist/publish-checklist.component';\nimport { ResourceLibraryModule } from '@project-sunbird/sunbird-resource-library';\nimport { AssignPageNumberComponent } from './components/assign-page-number/assign-page-number.component';\nimport { PlainTreeComponent } from './components/plain-tree/plain-tree.component';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { ProgressStatusComponent } from './components/progress-status/progress-status.component';\nimport { TermAndConditionComponent } from './components/term-and-condition/term-and-condition.component';\nimport { QualityParamsModalComponent } from './components/quality-params-modal/quality-params-modal.component';\nimport { SanitizeHtmlPipe } from './pipes/sanitize-html.pipe';\n@NgModule({\n declarations: [\n CollectionEditorLibraryComponent,\n ContentplayerPageComponent,\n EditorComponent,\n QumlplayerPageComponent,\n HeaderComponent,\n FancyTreeComponent,\n MetaFormComponent,\n LibraryComponent,\n LibraryFilterComponent,\n LibraryListComponent,\n QuestionComponent,\n OptionsComponent,\n AnswerComponent,\n CkeditorToolComponent,\n LibraryPlayerComponent,\n ResourceReorderComponent,\n SkeletonLoaderComponent,\n TemplateComponent,\n TelemetryInteractDirective,\n AssetBrowserComponent,\n CollectionIconComponent,\n QumlPlayerComponent,\n DialcodeComponent,\n CsvUploadComponent,\n ManageCollaboratorComponent,\n PublishChecklistComponent,\n AssignPageNumberComponent,\n PlainTreeComponent,\n ProgressStatusComponent,\n TermAndConditionComponent,\n QualityParamsModalComponent,\n SanitizeHtmlPipe\n ],\n imports: [CommonModule, FormsModule, ReactiveFormsModule, RouterModule.forChild([]), SuiModule,\n CommonFormElementsModule, InfiniteScrollModule, HttpClientModule,\n QumlLibraryModule, CarouselModule, ResourceLibraryModule, A11yModule],\n providers: [\n { provide: DialcodeCursor, useExisting: DialcodeService }\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],\n exports: [EditorComponent],\n})\nexport class CollectionEditorLibraryModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["observableThrowError","observableOf","uuidv4","playerConfig","i1.PublicDataService","i2.ConfigService","i3.DataService","i1.ToasterService","i2.HelperService","i3.ConfigService","i1.HelperService","i1.TreeService","i2.ToasterService","i4.EditorTelemetryService","i5.PublicDataService","i6.DataService","i7","i1.EditorService","i1.DataService","i3.PublicDataService","i2.PlayerService","i4.FrameworkService","i1.ConfigService","i2.PublicDataService","i3.TreeService","i4.ToasterService","i1.EditorTelemetryService","i3.EditorService","i4","i5","i4.TreeService","i6.TelemetryInteractDirective","i7.QumlPlayerComponent","i2.TreeService","i3.DialcodeService","i6.ConfigService","i7.EditorService","i8","i9","i10","i11.TelemetryInteractDirective","i3","i2.EditorTelemetryService","i6","i7.TelemetryInteractDirective","i8.DialcodeComponent","i9.PublishChecklistComponent","i2.EditorService","i3.EditorTelemetryService","i4.HelperService","i5.ToasterService","i7.DialcodeService","i9.TelemetryInteractDirective","i2","i4.PublicDataService","i5.EditorService","i3.QuestionService","i3.AssetBrowserComponent","i3.FrameworkService","i5.ConfigService","i6.ToasterService","i9.CollectionIconComponent","i1.FrameworkService","i6.HelperService","i10.TelemetryInteractDirective","i8.TelemetryInteractDirective","i6.ContentplayerPageComponent","i1","i7.HelperService","i9.LibraryFilterComponent","i10.LibraryListComponent","i11.LibraryPlayerComponent","i12.ResourceReorderComponent","i13.SkeletonLoaderComponent","i14.TelemetryInteractDirective","i1.QuestionService","i3.ToasterService","i4.ConfigService","i6.CkeditorToolComponent","i8.SanitizeHtmlPipe","i4.CkeditorToolComponent","i4.PlayerService","i6.TreeService","i7.FrameworkService","i9.ConfigService","i10.EditorCursor","i11","i12","i13","i14","i15.HeaderComponent","i16.OptionsComponent","i17.AnswerComponent","i18.CkeditorToolComponent","i19.TelemetryInteractDirective","i20.QumlPlayerComponent","i21.TermAndConditionComponent","i22.QualityParamsModalComponent","i5.TelemetryInteractDirective","i4.EditorService","i5.EditorTelemetryService","i5.HeaderComponent","i6.PlainTreeComponent","i3.HeaderComponent","i7.ToasterService","i8.DialcodeService","i15.ContentplayerPageComponent","i16.QumlplayerPageComponent","i17.HeaderComponent","i18.FancyTreeComponent","i19.MetaFormComponent","i20.LibraryComponent","i21.QuestionComponent","i22.TemplateComponent","i23.TelemetryInteractDirective","i24.QumlPlayerComponent","i25.CsvUploadComponent","i26.ManageCollaboratorComponent","i27.AssignPageNumberComponent","i28.ProgressStatusComponent"],"mappings":"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"}
|