{"version":3,"file":"compass-collection-editor.mjs","sources":["../../../projects/questionset-editor-library/src/lib/pipes/sanitize-html.pipe.ts","../../../projects/questionset-editor-library/src/lib/pipes/interpolate.pipe.ts","../../../projects/questionset-editor-library/src/lib/questionset-editor-library.component.ts","../../../projects/questionset-editor-library/src/lib/services/toaster/toaster.service.ts","../../../projects/questionset-editor-library/src/lib/services/data/data.service.ts","../../../projects/questionset-editor-library/src/lib/services/public-data/public-data.service.ts","../../../projects/questionset-editor-library/src/lib/services/config/config.service.ts","../../../projects/questionset-editor-library/src/lib/services/helper/helper.service.ts","../../../projects/questionset-editor-library/src/lib/services/tree/tree.service.ts","../../../projects/questionset-editor-library/src/lib/services/telemetry/telemetry.service.ts","../../../projects/questionset-editor-library/src/lib/services/editor/editor.service.ts","../../../projects/questionset-editor-library/src/lib/services/framework/framework.service.ts","../../../projects/questionset-editor-library/src/lib/directives/telemetry-interact/telemetry-interact.directive.ts","../../../projects/questionset-editor-library/src/lib/services/player/player.service.ts","../../../projects/questionset-editor-library/src/lib/components/quml-player/quml-player.component.ts","../../../projects/questionset-editor-library/src/lib/components/quml-player/quml-player.component.html","../../../projects/questionset-editor-library/src/lib/components/qumlplayer-page/qumlplayer-page.component.ts","../../../projects/questionset-editor-library/src/lib/components/qumlplayer-page/qumlplayer-page.component.html","../../../projects/questionset-editor-library/src/lib/components/publish-checklist/publish-checklist.component.ts","../../../projects/questionset-editor-library/src/lib/components/publish-checklist/publish-checklist.component.html","../../../projects/questionset-editor-library/src/lib/components/header/header.component.ts","../../../projects/questionset-editor-library/src/lib/components/header/header.component.html","../../../projects/questionset-editor-library/src/lib/components/fancy-tree/fancy-tree.component.ts","../../../projects/questionset-editor-library/src/lib/components/fancy-tree/fancy-tree.component.html","../../../projects/questionset-editor-library/src/lib/components/asset-browser/asset-browser.data.ts","../../../projects/questionset-editor-library/src/lib/services/question/question.service.ts","../../../projects/questionset-editor-library/src/lib/components/asset-browser/asset-browser.component.ts","../../../projects/questionset-editor-library/src/lib/components/asset-browser/asset-browser.component.html","../../../projects/questionset-editor-library/src/lib/components/collection-icon/collection-icon.component.ts","../../../projects/questionset-editor-library/src/lib/components/collection-icon/collection-icon.component.html","../../../projects/questionset-editor-library/src/lib/components/meta-form/meta-form.component.ts","../../../projects/questionset-editor-library/src/lib/components/meta-form/meta-form.component.html","../../../projects/questionset-editor-library/src/lib/interfaces/McqForm.ts","../../../projects/questionset-editor-library/src/lib/questionset-editor-cursor.service.ts","../../../projects/questionset-editor-library/src/lib/components/ckeditor-tool/ckeditor-tool.component.ts","../../../projects/questionset-editor-library/src/lib/components/ckeditor-tool/ckeditor-tool.component.html","../../../projects/questionset-editor-library/src/lib/components/question-option-sub-menu/question-option-sub-menu.component.ts","../../../projects/questionset-editor-library/src/lib/components/question-option-sub-menu/question-option-sub-menu.component.html","../../../projects/questionset-editor-library/src/lib/components/options/options.component.ts","../../../projects/questionset-editor-library/src/lib/components/options/options.component.html","../../../projects/questionset-editor-library/src/lib/components/answer/answer.component.ts","../../../projects/questionset-editor-library/src/lib/components/answer/answer.component.html","../../../projects/questionset-editor-library/src/lib/components/slider/slider.component.ts","../../../projects/questionset-editor-library/src/lib/components/slider/slider.component.html","../../../projects/questionset-editor-library/src/lib/components/app-loader/app-loader.component.ts","../../../projects/questionset-editor-library/src/lib/components/app-loader/app-loader.component.html","../../../projects/questionset-editor-library/src/lib/components/term-and-condition/term-and-condition.component.ts","../../../projects/questionset-editor-library/src/lib/components/term-and-condition/term-and-condition.component.html","../../../projects/questionset-editor-library/src/lib/components/quality-params-modal/quality-params-modal.component.ts","../../../projects/questionset-editor-library/src/lib/components/quality-params-modal/quality-params-modal.component.html","../../../projects/questionset-editor-library/src/lib/components/question/question.component.ts","../../../projects/questionset-editor-library/src/lib/components/question/question.component.html","../../../projects/questionset-editor-library/src/lib/components/template/template.component.ts","../../../projects/questionset-editor-library/src/lib/components/template/template.component.html","../../../projects/questionset-editor-library/src/lib/components/relational-metadata/relational-metadata.component.ts","../../../projects/questionset-editor-library/src/lib/components/relational-metadata/relational-metadata.component.html","../../../projects/questionset-editor-library/src/lib/components/plain-tree/plain-tree.component.ts","../../../projects/questionset-editor-library/src/lib/components/plain-tree/plain-tree.component.html","../../../projects/questionset-editor-library/src/lib/components/assign-page-number/assign-page-number.component.ts","../../../projects/questionset-editor-library/src/lib/components/assign-page-number/assign-page-number.component.html","../../../projects/questionset-editor-library/src/lib/components/progress-status/progress-status.component.ts","../../../projects/questionset-editor-library/src/lib/components/progress-status/progress-status.component.html","../../../projects/questionset-editor-library/src/lib/components/editor/editor.component.ts","../../../projects/questionset-editor-library/src/lib/components/editor/editor.component.html","../../../projects/questionset-editor-library/src/lib/components/translations/translations.component.ts","../../../projects/questionset-editor-library/src/lib/components/translations/translations.component.html","../../../projects/questionset-editor-library/src/lib/questionset-editor-library.module.ts","../../../projects/questionset-editor-library/src/compass-collection-editor.ts"],"sourcesContent":["import { Pipe, PipeTransform } from \"@angular/core\";\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\n\n@Pipe({ name: \"sanitizeHtml\" })\nexport class SanitizeHtmlPipe implements PipeTransform {\n  constructor(private _sanitizer: DomSanitizer) {}\n\n  transform(value: string): SafeHtml {\n    return this._sanitizer.bypassSecurityTrustHtml(value);\n  }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport * as _ from \"lodash-es\";\n\n@Pipe({\n  name: \"interpolate\",\n})\nexport class InterpolatePipe implements PipeTransform {\n  transform(text: string, replaceText: string, replacedWith: string): string {\n    return _.replace(text, replaceText, replacedWith);\n  }\n}\n","import { Component } from '@angular/core';\n@Component({\n  selector: 'lib-questionset-editor-library',\n  template: ``,\n  styles: []\n})\nexport class QuestionsetEditorLibraryComponent {\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 { Injectable } from '@angular/core';\nimport { v4 as uuidv4 } from 'uuid';\nimport { ServerResponse } from '../../interfaces/serverResponse';\nimport { RequestParam } from '../../interfaces/requestParam';\nimport { HttpOptions } from '../../interfaces/httpOptions';\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   * Constructor\n   * @param HttpClient http HttpClient reference\n   */\n  constructor(http: HttpClient) {\n    this.http = http;\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\n  public http: HttpClient;\n  constructor(http: HttpClient) {\n    super(http);\n    this.baseUrl = '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}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, of, throwError } from 'rxjs';\nimport { catchError, map, skipWhile} 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.COMPOSITE.SEARCH}`,\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  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 let $: 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  previousNode: any;\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?: any) {\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    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 if (attributions && _.isArray(attributions)) {\n      newData.attributions = attributions;\n    } else {\n      newData.attributions = [];\n    }\n    const { maxTime, copyrightYear } = newData;\n\n    if (copyrightYear) {\n      newData.copyrightYear = _.toNumber(copyrightYear);\n    }\n    if (objectType) {\n      newData.objectType = objectType;\n    }\n    const timeLimits: any = {questionSet: {max: 0, min: 0}};\n    if (maxTime) {\n      timeLimits.questionSet.max = _.parseInt(this.helperService.hmsToSeconds(maxTime));\n    }\n    if (!_.isEmpty(timeLimits)) {\n      newData.timeLimits = timeLimits;\n    }\n    delete newData.maxTime;\n    if (primaryCategory) {\n      newData.primaryCategory = primaryCategory;\n    }\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  setActiveNode(node?) {\n    const rootFirstChildNode = this.getFirstChild();\n    if (node) {\n      node.setActive(true);\n    } else {\n      rootFirstChildNode.setActive(true);\n    }\n  }\n\n  getParent() {\n    const selectedNode = this.getActiveNode();\n    return !_.isEmpty(selectedNode) ? selectedNode.getParent() : this.getNodeById(this.previousNode) || this.getFirstChild();\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  getLeafNodes() {\n    const nodes = [];\n    this.getActiveNode().visit((node) => {\n      if (!_.includes(node.icon, 'folder')) { 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    }\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      this.updateEvaluable(nodeId);\n    } else {\n      this.treeCache.nodesModified[nodeId] = {\n        root: 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  updateEvaluable(nodeId){\n    if(this.treeCache.nodesModified[nodeId].metadata.primaryCategory === this.configService.editorConfig.evaluableQuestionSet) {\n      this.treeCache.nodesModified[nodeId].metadata.evalMode = this.configService.editorConfig.evalMode\n    }\n      if(!this.treeCache.nodesModified[nodeId].root){\n          if(this.getFirstChild().data.primaryCategory === this.configService.editorConfig.evaluableQuestionSet) {\n            this.treeCache.nodesModified[nodeId].metadata.evalMode = this.configService.editorConfig.evalMode;\n          }\n          this.overrideEvaluable(nodeId);\n        } else {\n          if(this.getFirstChild().data?.metadata?.serverMode) {\n            this.treeCache.nodesModified[nodeId].metadata.evalMode = this.configService.editorConfig.evalMode;\n            this.updateFirstChild(this.treeCache.nodesModified[nodeId].metadata.evalMode)\n          } else if(!this.getFirstChild().data?.metadata?.serverMode) {\n            delete this.treeCache.nodesModified[nodeId].metadata.evalMode;\n            delete $(this.treeNativeElement).fancytree('getRootNode').getFirstChild()?.data?.evalMode\n          }\n      }\n  }\n\n  updateFirstChild(evalMode:any) {\n    $(this.treeNativeElement).fancytree('getRootNode').getFirstChild().data.evalMode = evalMode;\n  }\n\n  getEval() {\n    if(this.getFirstChild().data?.serverMode || this.getFirstChild().data?.metadata?.serverMode) {\n      return true\n    }\n    return false\n  }\n\n  overrideEvaluable(nodeId){\n   const firstNode = this.getFirstChild()\n   if(this.getFirstChild().data?.metadata?.serverMode && firstNode.data?.metadata?.serverMode) {\n      this.treeCache.nodesModified[nodeId].metadata.evalMode = this.configService.editorConfig.evalMode\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    CsTelemetryModule.instance.telemetryService.raiseEndTelemetry({\n      edata,\n      options: this.getEventOptions()\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 } 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 'jquery.fancytree';\ndeclare let $: any;\ninterface SelectedChildren {\n  label?: string;\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 showQuestionLibraryPage: EventEmitter<any> = new EventEmitter();\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    this._isReviewerEditEnable = value;\n  }\n\n  get isReviewModificationAllowed() {\n    return this._isReviewModificationAllowed;\n  }\n\n  setIsReviewModificationAllowed(value: boolean) {\n    this._isReviewModificationAllowed = value;\n  }\n\n  get contentPolicyUrl() {\n    const url = _.get(this.editorConfig, 'config.contentPolicyUrl');\n    return url ? url : this.configService.urlConFig.URLS.ContentPolicyUrl;\n  }\n\n  get commonFrameworkLicenseUrl() {\n    const url = _.get(this.editorConfig, 'config.commonFrameworkLicenseUrl');\n    return !_.isEmpty(url) ? url : this.configService.urlConFig.URLS.commonFrameworkLicenseUrl;\n  }\n\n  getToolbarConfig() {\n    return _.cloneDeep(_.merge(this.configService.labelConfig.button_labels, _.get(this.editorConfig, 'context.labels')));\n  }\n\n  emitshowQuestionLibraryPageEvent(page) {\n    this.showQuestionLibraryPage.emit(page);\n  }\n  getshowQuestionLibraryPageEmitter() {\n    return this.showQuestionLibraryPage;\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    const 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, event: any = {}) {\n    let objType = this.configService.categoryConfig[this.editorConfig.config.objectType];\n    let url = this.configService.urlConFig.URLS[this.editorConfig.config.objectType];\n    let requestBody = {\n      request: { }\n    };\n    objType = objType.toLowerCase();\n\n    if (event.button === 'sourcingApproveQuestion' || event.button === 'sourcingRejectQuestion') {\n      objType = this.configService.categoryConfig[this.editorConfig.context['collectionObjectType']];\n      objType = objType.toLowerCase();\n      url = this.configService.urlConFig.URLS[this.editorConfig.context['collectionObjectType']];\n\n      requestBody = event.requestBody;\n      requestBody.request[objType]['lastPublishedBy'] = this.editorConfig.context.user.id;\n    }\n    else {\n      const fieldsObj = this.getFieldsToUpdate(collectionId);\n      requestBody = {\n        request: {\n          [objType]: {\n            ...fieldsObj,\n            lastPublishedBy: this.editorConfig.context.user.id\n          }\n        }\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.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.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.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.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 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  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 if (question?.responseDeclaration?.response1) {\n        return sum + (question?.outcomeDeclaration?.maxScore?.defaultValue ? _.get(question, 'outcomeDeclaration.maxScore.defaultValue') : 0);\n      } else {\n        return sum + 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.getUpdatedNodeMetaData(),\n      hierarchy: instance.getHierarchyObj(data)\n    };\n  }\n\n  getUpdatedNodeMetaData() {\n    const parentNodeId = _.findKey(this.treeService.treeCache.nodesModified,(node)=>{\n      return node.root;\n    });\n    const parentNode = this.treeService.getFirstChild().data;\n    _.forEach(this.treeService.treeCache.nodesModified, (node, nodeId)=>{\n      if(!node.root && parentNode?.evalMode || parentNode?.metadata?.evalMode){\n        this.treeService.treeCache.nodesModified[nodeId].metadata.evalMode = parentNode?.evalMode || parentNode?.metadata?.evalMode;\n      }\n\n    })\n    if(this.treeService.treeCache.nodesModified[parentNodeId]?.metadata.hasOwnProperty('serverMode')) {\n      delete this.treeService.treeCache.nodesModified[parentNodeId]?.metadata?.serverMode\n    }\n    return this.treeService.treeCache.nodesModified;\n  }\n\n  getHierarchyObj(data, questionId?, selectUnitId?, parentId?) {\n    const instance = this;\n    if (data?.data) {\n      const relationalMetadata = this.getRelationalMetadataObj(data.children);\n      instance.data[data.data.id] = {\n        name: data.title,\n        children: _.map(data.children, (child) => child.data.id),\n        ...(!_.isEmpty(relationalMetadata) &&  {relationalMetadata}),\n        root: data.data.root\n      };\n      if (questionId && selectUnitId && selectUnitId === data.data.id) {\n          if (parentId) {\n            const children = instance.data[data.data.id].children;\n            const index = _.findIndex(children, (e) => {\n              return e === parentId;\n            }, 0);\n            const setIndex = index + 1;\n            children.splice(setIndex, 0, questionId);\n          } else {\n            instance.data[data.data.id].children.push(questionId);\n          }\n      }\n      if (questionId && selectUnitId && data.folder === false) {\n          delete instance.data[data.data.id];\n      }\n      _.forEach(data.children, (collection) => {\n        instance.getHierarchyObj(collection, questionId, selectUnitId, parentId);\n      });\n    }\n    return instance.data;\n  }\n\n\n _toFlatObjFromHierarchy(data) {\n    const instance = this;\n    if (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) : Observable<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(buttonAction) {\n    const config = {\n      errorMessage: '',\n      maxLimit: 0\n    };\n    if (_.get(this.editorConfig, 'config.objectType') === 'QuestionSet') {\n      config.maxLimit = _.get(this.editorConfig, 'config.questionSet.maxQuestionsLimit');\n      if (buttonAction === 'add') {\n        config.errorMessage = _.get(this.configService, 'labelConfig.messages.error.032');\n      }\n      if (buttonAction === 'create') {\n        config.errorMessage = _.get(this.configService, 'labelConfig.messages.error.031');\n      }\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  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\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  get qualityFormConfig(){\n    return this._qualityFormConfig;\n  }\n\n  private setQualityFormConfig(value: any){\n    this._qualityFormConfig = value;\n  }\n\n  get isReviewerQualityCheckEnabled(){\n    return this._isReviewerQualityCheckEnabled;\n    }\n  \n    private setIsReviewerQualityCheckEnabled(value: boolean){\n      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    }\n    return config;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { skipWhile } from 'rxjs/operators';\nimport * as _ from 'lodash-es';\nimport { ServerResponse } from '../../interfaces/serverResponse';\nimport { Framework, 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\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 { Directive, Input, HostListener } from '@angular/core';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\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 { Injectable } from '@angular/core';\nimport * as _ from 'lodash-es';\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) { }\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","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnInit , Output, ViewChild, 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, AfterViewInit {\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  @ViewChild('qumlPlayer') qumlPlayer: ElementRef;\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 = _.get(this.qumlPlayerConfig, 'config.objectType') === 'Question' ? [] : 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 = false;\n        this.qumlPlayerConfig.metadata.requiresSubmit = 'No';\n        this.qumlPlayerConfig.config.showLegend = false;\n      }\n    }\n    console.log('qumlPlayerConfig:: ', this.qumlPlayerConfig);\n  }\n\n  ngAfterViewInit() {\n    (window as any).questionListUrl = `/api/${_.get(this.configService, 'urlConFig.URLS.Question.LIST')}`;\n    const qumlElement = document.createElement('sunbird-quml-player');\n    qumlElement.setAttribute('player-config', JSON.stringify(this.qumlPlayerConfig));\n\n    qumlElement.addEventListener('playerEvent', this.getPlayerEvents);\n\n    qumlElement.addEventListener('telemetryEvent', this.getTelemetryEvents);\n    this.qumlPlayer.nativeElement.append(qumlElement);\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 handle-zoom\" data-ratio=\"16:9\">\n     <div class=\"content-player\">\n        <div class=\"w-100 h-100\">\n                <div class=\"contentViewerIframeShadow\" *ngIf=\"!showViewButton\">\n                    <span id=\"qumlPlayer\" #qumlPlayer></span>\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, 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';\nimport { FrameworkService } from '../../services/framework/framework.service';\nimport { filter } from 'rxjs/operators';\n\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() leafFormConfig: 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  showForm = false;\n  questionFormConfig: any;\n  frameworkDetails: any = {};\n\n  constructor(public telemetryService: EditorTelemetryService, public configService: ConfigService, public editorService: EditorService,\n              private treeService: TreeService, private frameworkService: FrameworkService) { }\n\n  ngOnChanges() {\n    if (_.has(this.questionMetaData, 'data.metadata')) {\n      this.initQumlPlayer();\n      this.questionFormConfig = _.cloneDeep(this.leafFormConfig);\n      const framework = _.get(this.questionSetHierarchy, 'framework') ||  _.get(this.editorService.editorConfig, 'context.framework')\n      if (framework) {\n        this.fetchFrameWorkDetails(framework);\n      } else {\n        this.setFormDefaultValues();\n      }\n    }\n  }\n\n  fetchFrameWorkDetails(framework) {\n    this.frameworkService.frameworkData$.pipe(\n      filter(data => _.get(data, `frameworkdata.${framework}`))).subscribe((frameworkDetails: any) => {\n      if (frameworkDetails && !frameworkDetails.err) {\n        const frameworkData = frameworkDetails.frameworkdata[framework].categories;\n        this.frameworkDetails.frameworkData = frameworkData;\n        this.setFieldsTerms();\n      }\n    });\n  }\n\n  setFieldsTerms() {\n    const categoryMasterList = this.frameworkDetails.frameworkData;\n    _.forEach(categoryMasterList, (category) => {\n      _.forEach(this.questionFormConfig, (formFieldCategory) => {\n        if (category.code === formFieldCategory.code) {\n          formFieldCategory.terms = category.terms;\n        }\n      });\n    });\n    this.setFormDefaultValues();\n  }\n\n  setFormDefaultValues() {\n    _.forEach(this.questionFormConfig, (formField) => {\n      const fieldcode = formField.code;\n      formField.default = this.questionMetaData[fieldcode];\n      formField.editable = false;\n    });\n  this.showForm = true;\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        this.hierarchy['outcomeDeclaration'] = {maxScore: {defaultValue: 1}};\n      } else {\n        if (this.questionMetaData.qType === 'SA') {\n          this.hierarchy['outcomeDeclaration'] = {maxScore: {defaultValue: 0}};\n        } else {\n          this.hierarchy['outcomeDeclaration'] = {maxScore: {defaultValue: this.questionMetaData?.maxScore}};\n        }\n      }\n      const parent = this.treeService.getParent()?.data?.metadata;\n      this.hierarchy.showSolutions = parent?.showSolutions || false;\n      this.hierarchy.showFeedback = parent?.showFeedback || false;\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 mr-15\"*ngIf=\"(questionMetaData?.status != 'Live' &&\n            questionMetaData?.status !='Approved')\" (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\"\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<sb-dynamic-form *ngIf=\"showForm\" [config]=\"questionFormConfig\"></sb-dynamic-form>\n","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  @Input() objectType: string;\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?.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\n  onStatusChanges(event) {\n    this.isButtonEnable = event.isValid;\n  }\n\n  valueChanges(event: any) {\n    this.fieldsAvailable = event;\n  }\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 | interpolate: '${objectType}': objectType }}\n  </div>\n  <div class=\"sb-modal-content\">\n    <span *ngIf=\"!publishchecklist?.length\"> {{configService.labelConfig?.lbl?.confirmPublishCollection | interpolate: '${objectType}': objectType}} </span>\n    <div class=\"sectionTitle\" *ngIf=\"publishchecklist?.length\">{{configService.labelConfig?.lbl?.publishchecklistTitle}}</div>\n    <sb-dynamic-form *ngIf=\"publishchecklist?.length\" [config]=\"publishchecklist\"\n      (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>\n","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() 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 showPublishCollectionPopup: boolean;\n  public showRequestChangesPopup: boolean;\n  public rejectComment: string;\n  public actionType: string;\n  public objectType: string;\n  public sourcingStatusText: string;\n  public sourcingStatusClass: string;\n  public originPreviewUrl: string;\n  public correctionComments: string;\n\n  constructor(private editorService: EditorService,\n    public telemetryService: EditorTelemetryService,\n    public configService: ConfigService) { }\n\n  async ngOnInit() {\n    this.objectType = _.get(this.editorService, 'editorConfig.config.objectType');\n    await this.handleActionButtons();\n    this.getSourcingData();\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.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.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  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)\" aria-label=\"back\">\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\" tabindex=\"0\">\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 class=\"fs-0-92\" data-title=\"View review comments\" (click)=\"buttonEmitter({type: 'showReviewcomments'})\" *ngIf=\"buttonLoaders?.showReviewComment || visibility.showCorrectionComments\" libTelemetryInteract [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('view_comments','click','launch', telemetryService.telemetryPageId)\">\n        <i class=\"icon comment alternate outline sb-color-primary 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 === 'questionset_editor' && labelConfigData\">\n    <button *ngIf=\"visibility && visibility?.submitContent && 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 && 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    <button *ngIf=\"visibility && visibility?.previewContent  && labelConfigData?.hasChildren\" 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('send_for_review','click','launch', 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          </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\" [objectType]=\"objectType\" [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';\n\n\nimport { Subject } from 'rxjs';\nimport { v4 as uuidv4 } from 'uuid';\ndeclare let $: 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 unsubscribe$ = new Subject<void>();\n  public nodeParentDependentMap = {};\n  public treeData: any = [];\n  public branchingObject = {};\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  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) { }\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  }\n\n  ngAfterViewInit() {\n    this.renderTree(this.getTreeConfig());\n  }\n\n  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  arrangeTreeChildren(data) {\n    for(const key in data.branchingLogic) {\n      let childrenIndex,parentId,parentIndex,item;\n      data.children.forEach((element:any,index:number) => {\n        if(element.identifier == key && data.branchingLogic[key].source.length > 0) { \n          childrenIndex = index;\n          parentId = data.branchingLogic[key].source[0];\n        }})\n      if(childrenIndex >= 0) {\n        item = data.children[childrenIndex]\n        data.children.splice(childrenIndex,1)\n        parentIndex = data.children.findIndex((element) => element.identifier == parentId)\n        data.children.splice(parentIndex+1,0,item)\n      }\n    }\n    return data;\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    // This section will change the children array order to match with branching logic parent children order.\n    if(data.branchingLogic && Object.keys(data?.branchingLogic).length > 0) {\n      this.arrangeTreeChildren(data);\n    }\n    // section to add children in the tree.\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        extraClasses: !_.isEmpty(this.nodeParentDependentMap[child.identifier]) ? this.nodeParentDependentMap[child.identifier] : '',\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      const previousNode = this.treeService.getNodeById(this.treeService.previousNode);\n      if (!_.isEmpty(previousNode)) {\n        this.treeService.setActiveNode(previousNode);\n      }\n      if (_.get(previousNode, 'folder') !== true) {\n        const prevNodeParent = this.treeService.getParent();\n        if (!_.isEmpty(prevNodeParent.data)) {\n          this.treeService.setActiveNode(prevNodeParent);\n        }\n      }\n      const rootNode = this.treeService.getFirstChild();\n      rootNode.setExpanded(true);\n      this.eachNodeActionButton(rootNode);\n      this.treeService.nextTreeStatus('loaded');\n      this.showTree = true;\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        this.treeService.previousNode = _.get(data, 'node.data.id');\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    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    this.handleCreateAddVisibility(node, nodeLevel);\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  handleCreateAddVisibility(node, nodeLevel) {\n    if (nodeLevel === 0) {\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.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\n  addChild() {\n    this.telemetryService.interact({ edata: this.getTelemetryInteractEdata('add_child') });\n    const tree = $(this.tree.nativeElement).fancytree('getTree');\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    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      });\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      const currentNodeDependency = this.editorService.getDependentNodes(currentNode.otherNode.data.id);\n      if (!_.isEmpty(currentNodeDependency)) {\n        this.moveDependentNodes(targetNode, currentNode);\n      } else {\n        currentNode.otherNode.moveTo(targetNode, currentNode.hitMode);\n      }\n      this.treeService.nextTreeStatus('reorder');\n      return true;\n\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?.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  addQuestionFromLibrary() {\n    this.editorService.emitshowQuestionLibraryPageEvent('showQuestionLibraryPage');\n  }\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  moveDependentNodes(targetNode, currentNode) {\n    const currentNodeDependency = this.editorService.getDependentNodes(currentNode.otherNode.data.id);\n    const currentSectionId = _.get(currentNode, 'otherNode.parent.data.id');\n    let movingNodeIds = [];\n    if (!_.isEmpty(currentNodeDependency)) {\n    // tslint:disable-next-line:max-line-length\n    const nodeId =  _.get(currentNode, 'otherNode.data.id');\n    if (!_.isEmpty(currentNodeDependency.target) || !_.isEmpty(currentNodeDependency.sourceTarget)) {\n      if (currentNode.hitMode === 'after') {\n        // tslint:disable-next-line:max-line-length\n        movingNodeIds = _.uniq(_.compact(_.concat(currentNodeDependency.source, currentNodeDependency.target, currentNodeDependency.sourceTarget,nodeId)));\n      }\n      else {\n        // tslint:disable-next-line:max-line-length\n        movingNodeIds = _.uniq(_.compact(_.concat(currentNodeDependency.source, nodeId, currentNodeDependency.target, currentNodeDependency.sourceTarget)));\n      }\n      _.forEach(movingNodeIds, id => {\n        const dependentNode = this.treeService.getNodeById(id);\n        dependentNode.moveTo(targetNode, currentNode.hitMode);\n      });\n    }\n    const isFolder: boolean = _.get(targetNode, 'folder');\n    const targetNodeId = isFolder ? _.get(targetNode, 'data.id') : _.get(targetNode, 'parent.data.id');\n\n    // tslint:disable-next-line:max-line-length\n    this.rearrangeBranchingLogic(nodeId, currentSectionId, targetNodeId, currentNodeDependency, movingNodeIds);\n   }\n  }\n\n\n  rearrangeBranchingLogic(nodeId, currentSectionId, targetSectionId, dependentNodeIDs, movingNodeIds) {\n    const currentSectionBranchingLogic = this.editorService.getBranchingLogicByFolder(currentSectionId);\n    const targetSectionBranchingLogic = this.editorService.getBranchingLogicByFolder(targetSectionId);\n    const movingNodesBranchingEntry = _.pick(currentSectionBranchingLogic, movingNodeIds);\n    const updateCurrentSectionBranchingLogic = _.omit(currentSectionBranchingLogic, movingNodeIds);\n    const updateTargetSectionBranchingLogic = _.assign({}, targetSectionBranchingLogic, movingNodesBranchingEntry);\n    const currentSectionName = _.get(this.treeService.getNodeById(currentSectionId), 'data.metadata.name');\n    const targetSectionName = _.get(this.treeService.getNodeById(targetSectionId), 'data.metadata.name');\n    this.updateTreeCache(currentSectionName, updateCurrentSectionBranchingLogic, currentSectionId);\n    this.updateTreeCache(targetSectionName, updateTargetSectionBranchingLogic, targetSectionId);\n  }\n\n  updateTreeCache(name, branchingLogic, id, additionalMetadata?) {\n    const primaryCategoryName = this.editorService.getPrimaryCategoryName(id);\n    const metadata = {\n      name,\n      primaryCategory: primaryCategoryName,\n      ...( !_.isUndefined(additionalMetadata) &&  {...additionalMetadata}),\n      allowBranching: 'Yes',\n      ...(!_.isUndefined(branchingLogic) && {branchingLogic})\n    };\n    this.treeService.updateTreeNodeMetadata(metadata, id, primaryCategoryName);\n  }\n\n  ngOnDestroy() {\n    this.onComponentDestroy$.next();\n    this.onComponentDestroy$.complete();\n  }\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  <div class=\"d-flex mt-10 mr-30\" *ngIf=\"config.objectType === 'QuestionSet'\">\n    <button [disabled]=\"!visibility?.addQuestionFromLibrary\" (click)=\"addQuestionFromLibrary();\"\n    [ngClass]=\"[!visibility?.addQuestionFromLibrary ? 'sb-btn-outline-disabled' : 'sb-btn-outline-primary', (visibility?.addQuestionFromLibrary && buttonLoaders?.addQuestionFromLibraryButtonLoader) ? 'sb-btn-loading-spinner sb-btn-outline-disabled': '']\"\n    class=\"sb-btn sb-btn-normal  mr-10\" libTelemetryInteract\n    [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('add_from_library','click','launch', telemetryService.telemetryPageId)\">\n    <i class=\"icon plus\" aria-hidden=\"true\" *ngIf=\"!buttonLoaders?.addQuestionFromLibraryButtonLoader\"></i>\n    <div class=\"sb-loading-spinner\" *ngIf=\"buttonLoaders?.addQuestionFromLibraryButtonLoader\" role=\"status\" aria-hidden=\"true\">\n    </div>\n    {{configService.labelConfig?.button_labels?.add_from_library_btn_label}}\n  </button>\n  <button class=\"sb-btn sb-btn-normal sb-btn-primary\" [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\"  (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>\n</div>\n","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 { ConfigService } from '../config/config.service';\nimport { EditorService } from '../editor/editor.service';\ndeclare const SunbirdFileUploadLib: any;\n\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  upsertQuestion(questionId, questionBody) {\n    let mode = questionId ? 'UPDATE' : 'CREATE';\n    const req = {\n      url: `${this.configService.urlConFig.URLS[this.editorService.editorConfig.config.objectType][mode]}${mode === 'UPDATE' ? questionId : ''}`,\n      data: {\n        request: questionBody\n      }\n    }\n    return mode === 'UPDATE' ? this.publicDataService.patch(req)\n      : this.publicDataService.post(req);\n  }\n\n  updateQuestion(questionId, requestObj) {\n    const objectType = _.get(this.editorService.editorConfig, 'config.objectType');\n    const req = {\n      url: `${this.configService.urlConFig.URLS[objectType].SYSYTEM_UPDATE}${questionId}`,\n      data: {\n        request: requestObj\n      }\n    };\n    return this.publicDataService.patch(req);\n  }\n\n  updateQuestionHierarchy(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.COMPOSITE.SEARCH'),\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.ASSET.CREATE'),\n      data: {\n        request: {\n          asset: {\n            primaryCategory: '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.ASSET.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  uploadToBlob(signedURL, file, csp) {\n    return new Observable((observer) => {\n      const uploaderLib = new SunbirdFileUploadLib.FileUploader();\n      uploaderLib.upload({ url: signedURL, file, csp })\n      .on(\"error\", (error) => {\n        observer.error(error);\n      }).on(\"completed\", (completed) => {\n        observer.next(completed);\n        observer.complete();\n      })\n    });\n  }\n\n  getVideo(videoId) {\n    const reqParam = {\n      url: `${this.configService.urlConFig.URLS.ASSET.READ}${videoId}`\n    };\n    return this.publicDataService.get(reqParam);\n  }\n\n  getQuestionList(req, field?: any) {\n    const reqParam: any = {\n      url: _.get(this.configService.urlConFig, 'URLS.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}\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';\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  isClosable = true;\n  loading = false;\n  public assetsCount: any;\n  public searchMyInput = '';\n  public searchAllInput: any;\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  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    this.imageFile = event.target.files[0];\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.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.isClosable = false;\n    this.loading = true;\n    this.showErrorMsg = false;\n    this.imageFormValid = false;\n    this.questionService.createMediaAsset({ asset: this.assestData }).pipe(catchError(err => {\n      const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.019') };\n      this.loading = false;\n      this.isClosable = true;\n      this.imageFormValid = true;\n      return throwError(this.editorService.apiErrorHandling(err, errInfo));\n    })).subscribe((res) => {\n      const imgId = res.result.node_id;\n      const preSignedRequest = {\n        content: {\n          fileName: this.assetName\n        }\n      };\n      this.questionService.generatePreSignedUrl(preSignedRequest, imgId).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.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  }\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 this.questionService.uploadToBlob(signedURL, file, csp).pipe(catchError(err => {\n      const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.018') };\n      this.isClosable = true;\n      this.loading = false;\n      return throwError(this.editorService.apiErrorHandling(err, errInfo));\n    }), map(data => data));\n  }\n\n  dismissImageUploadModal() {\n    if (this.isClosable) {\n    this.showImagePicker = true;\n    this.showImageUploadModal = false;\n    }\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    this.loading = false;\n    this.isClosable = true;\n  }\n  dismissPops(modal) {\n    this.dismissImagePicker();\n    if (modal?.deny) {\n      modal.deny();\n    }\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]=\"isClosable\" [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          <button type=\"button\" class=\"sb-btn sb-btn-normal text-left sb-btn-loading-spinner sb-btn-primary\"\n          [disabled]=\"!imageFormValid\"  (click)=\"uploadAndUseImage(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?.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","import { Component, EventEmitter, Input, 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 {\n  @Input() appIcon;\n  @Input() appIconConfig;\n  @Output() iconEmitter = new EventEmitter<any>();\n  public showImagePicker = false;\n\n  constructor(public configService: ConfigService) { }\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\" aria-label=\"app icon\" tabindex=\"0\">\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\" class=\"ui image sb-appicon\" src=\"{{appIcon}}\" alt=\"app icon\"/>\n    </div>\n    <lib-asset-browser *ngIf=\"showImagePicker\" [showImagePicker]=\"showImagePicker\" (assetBrowserEmitter)=\"collectionIconHandler($event)\" (modalDismissEmitter)=\"handleModalDismiss($event)\"></lib-asset-browser>\n</ng-container>\n","import { Component, EventEmitter, Input, OnChanges, OnDestroy, 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 { UntypedFormControl, UntypedFormGroup } 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 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  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  }\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            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    const isRootNode = _.get(this.nodeMetadata, 'data.root');\n    const categoryMasterList = this.frameworkDetails.frameworkData ||\n    !isRootNode && 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') || isRootNode ? _.cloneDeep(this.rootFormConfig) : _.cloneDeep(this.unitFormConfig);\n    formConfig = formConfig && _.has(_.first(formConfig), 'fields') ? formConfig : [{name: '', fields: formConfig}];\n    if (!_.isEmpty(this.frameworkDetails.targetFrameworks)) {\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)) { // field.code\n              field.terms = frameworkCategory.terms;\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'], field.code)) {\n            const value = _.get(metaDataFields, 'timeLimits.questionSet.max') ? _.toString(_.get(metaDataFields, 'timeLimits.questionSet.max')) : '';\n            field.default = !_.isEmpty(value) ?\n            _.toString(moment.utc(moment.duration(value, 'seconds').asMilliseconds()).format(this.helperService.getTimerFormat(field))) : null;\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?.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') || '' ;\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        if (field.code === 'serverMode') {\n          field.default = _.get(metaDataFields, 'evalMode') == this.configService.editorConfig.evalMode || _.get(metaDataFields, 'serverMode') === true ? true : false;\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, field.editable);\n        _.set(field, 'editable', ifEditable);\n\n      });\n    });\n\n    this.formFieldProperties = _.cloneDeep(formConfig);\n  }\n  isReviewMode() {\n    return  _.includes([ 'review', 'read', 'sourcingreview', 'orgreview' ], this.editorService.editorMode);\n  }\n  ifFieldIsEditable(fieldCode, primaryCategoryEditableConfig?) {\n    const ediorMode = this.editorService.editorMode;\n    if (!this.isReviewMode()) {\n      if(primaryCategoryEditableConfig === false) return false;\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\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: UntypedFormControl[], formGroup: UntypedFormGroup, 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: UntypedFormControl[], formGroup: UntypedFormGroup, 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']);\n    if (!_.isEmpty(event?.levels)) {\n      data.outcomeDeclaration = {\n        levels: this.createLeavels(event.levels)\n      };\n    }\n    if (event?.instance) {\n      data.instances = { label : event?.instances }\n    }\n    if (!_.isEmpty(this.appIcon) && this.showAppIcon) {\n      data.appIcon = this.appIcon;\n    }\n    this.toolbarEmitter.emit({ button: 'onFormValueChange', data });\n    delete data.selectedQuestionType;\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}\n","<ng-container *ngIf=\"formFieldProperties\">\n  <lib-collection-icon *ngIf=\"showAppIcon\" [appIcon]=\"appIcon\" [appIconConfig]=\"appIconConfig\" (iconEmitter)=\"appIconDataHandler($event)\"></lib-collection-icon>\n  <sb-dynamic-form [config]=\"formFieldProperties\" (statusChanges)=\"onStatusChanges($event)\" (valueChanges)=\"valueChanges($event)\"></sb-dynamic-form>\n</ng-container>","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  complexityLevel?: 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 complexityLevel;\n  public maxScore;\n  public numberOfOptions;\n  public maximumOptions;\n  constructor({question, options, answer, learningOutcome, complexityLevel, 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.complexityLevel = complexityLevel;\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  abstract removeQuestionMap(key: string): 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';\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.editorService.editorConfig, 'config.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    if (this.isClosable) {\n    this.showImageUploadModal = false;\n  }\n  }\n  initiateImageUploadModal() {\n    this.showImagePicker = false;\n    this.showImageUploadModal = true;\n    this.loading = false;\n    this.isClosable = 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: imageName,\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    this.imageFile = event.target.files[0];\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.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.isClosable = false;\n    this.loading = true;\n    this.showErrorMsg = false;\n    this.imageFormValid = false;\n    this.questionService.createMediaAsset({ asset: this.assestData }).pipe(catchError(err => {\n      const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.019') };\n      this.loading = false;\n      this.isClosable = true;\n      this.imageFormValid = true;\n      return throwError(this.editorService.apiErrorHandling(err, errInfo));\n    })).subscribe((res) => {\n      const imgId = res.result.node_id;\n      const preSignedRequest = {\n        content: {\n          fileName: this.assetName\n        }\n      };\n      this.questionService.generatePreSignedUrl(preSignedRequest, imgId).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.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  }\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    this.loading = false;\n    this.isClosable = true;\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({ asset: 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 this.questionService.uploadToBlob(signedURL, file, csp).pipe(catchError(err => {\n      const errInfo = { errorMsg: _.get(this.configService.labelConfig, 'messages.error.018') };\n      this.isClosable = true;\n      this.loading = false;\n      this.imageFormValid = true;\n      return throwError(this.editorService.apiErrorHandling(err, errInfo));\n    }), map(data => data));\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 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, data.name)\" alt=\"{{data?.name}}\" [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, data.name)\" alt=\"{{data?.name}}\" [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]=\"true\" 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\" alt=\"{{data?.name}}\">\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\" alt=\"{{data?.name}}\">\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]=\"isClosable\" [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          <button type=\"button\" class=\"sb-btn sb-btn-normal text-left sb-btn-loading-spinner sb-btn-primary\"\n          [disabled]=\"!imageFormValid\"  (click)=\"uploadAndUseImage(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?.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>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { EditorService } from '../../services/editor/editor.service';\n\nexport class SubMenuEvent {\n  index: number;\n  value: any;\n}\nexport interface SubMenu {\n  id: string;\n  name: string;\n  label: string;\n  value: string|any[];\n  enabled: boolean;\n  type: string;\n  show: boolean;\n}\n@Component({\n  selector: 'lib-question-option-sub-menu',\n  templateUrl: './question-option-sub-menu.component.html',\n  styleUrls: ['./question-option-sub-menu.component.css'],\n})\nexport class QuestionOptionSubMenuComponent {\n  @Input() subMenus: SubMenu[];\n  @Output() public onChange: EventEmitter<SubMenuEvent> = new EventEmitter<SubMenuEvent>();\n\n  constructor(public editorService: EditorService){\n\n  }\n \n  onMenuClick(index) {\n    const selectedMenu = this.subMenus[index];\n    selectedMenu.enabled = !selectedMenu.enabled;\n    if (selectedMenu.enabled && selectedMenu.type !== 'input' && Array.isArray(selectedMenu.value)) {\n      this.onChange.emit({index, value: undefined});\n    }\n  }\n\n  onValueChange(event, index) {\n    if (this.subMenus[index].type === 'input') { this.subMenus[index].value = event.target.value; }\n    this.onChange.emit({ index, value: event.target.value});\n  }\n}\n","<div class=\"d-flex\" *ngIf=\"editorService.editorMode === 'edit'\">\n  <div class=\"mr-30 my-10\" *ngFor=\"let menu of subMenus; let i = index\">\n    <div *ngIf=\"menu?.show\" (click)=\"onMenuClick(i)\">\n      <button 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        <i class=\"plus circle icon fs-1-286 pull-left mr-0\"></i><span class=\"sb-line-height-24\">{{ menu?.name }}</span>\n      </button>\n    </div>\n  </div>\n</div>\n<div>\n  <div\n    *ngFor=\"let menu of subMenus; let index = index\"\n    [ngClass]=\"{ 'd-none': !(menu?.enabled && menu?.type === 'input') }\"\n  >\n    <label for=\"\">{{ menu?.label }}</label>\n    <div class=\"d-flex sb-w-85\">\n      <input\n        (change)=\"onValueChange($event, index)\"\n        class=\"sb-textbox false w-100 my-10\"\n        [placeholder]=\"menu.value || menu.name\"\n        type=\"text\" \n        [disabled]=\"(editorService.editorMode !== 'edit') ? true : false\"\n      />\n      <button *ngIf=\"editorService.editorMode === 'edit'\"\n        class=\"b-0 bg-none no-hover sb-btn sb-btn-dashed-gray\"\n        (click)=\"menu.enabled = !menu.enabled; menu.value = ''\"\n      >\n        <i class=\"icon close\"></i>\n      </button>\n    </div>\n  </div>\n</div>\n","import { Component, OnInit, Input, EventEmitter, Output, OnChanges, SimpleChanges } from '@angular/core';\nimport * as _ from 'lodash-es';\nimport { EditorTelemetryService } from '../../services/telemetry/telemetry.service';\nimport { ConfigService } from '../../services/config/config.service';\nimport { SubMenu } from '../question-option-sub-menu/question-option-sub-menu.component';\nimport { TreeService } from '../../services/tree/tree.service';\nimport { EditorService } from '../../services/editor/editor.service';\nimport { v4 as uuidv4 } from 'uuid';\n@Component({\n  selector: 'lib-options',\n  templateUrl: './options.component.html',\n  styleUrls: ['./options.component.scss'],\n})\nexport class OptionsComponent implements OnInit, OnChanges {\n  @Input() editorState: any;\n  @Input() showFormError;\n  @Input() sourcingSettings;\n  @Input() questionPrimaryCategory;\n  @Input() mapping = [];\n  @Input() isReadOnlyMode;\n  @Input() maxScore;\n  @Output() editorDataOutput: EventEmitter<any> = new EventEmitter<any>();\n  public setCharacterLimit = 160;\n  public setImageLimit = 1;\n  public templateType = 'mcq-vertical';\n  subMenus: SubMenu[][];\n  hints:any = {};\n  showSubMenu:boolean=false;\n  parentMeta: any;\n  selectedOptions = [];\n  constructor(\n    public telemetryService: EditorTelemetryService,\n    public configService: ConfigService,\n    public treeService: TreeService,\n    private editorService: EditorService\n  ) {}\n\n  ngOnInit() {\n    this.hints = this.editorState.hints ? this.editorState.hints : {};\n    if(!_.isUndefined(this.editorState.answer)) {\n      this.addSelectedOptions();\n    }\n    if (!_.isUndefined(this.editorState.templateId)) {\n      this.templateType = this.editorState.templateId;\n    }\n    this.mapping = _.get(this.editorState, 'responseDeclaration.response1.mapping') || [];\n    this.editorDataHandler();\n    if(!_.isUndefined(this.editorService.editorConfig.config.renderTaxonomy)){\n      this.parentMeta = this.treeService.getFirstChild().data.metadata;\n      this.showSubMenu=true;\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges){\n    if (!_.isUndefined(changes.maxScore.previousValue) && !_.isNaN(changes.maxScore.currentValue)) {\n      this.setMapping();\n      this.editorDataHandler();\n    }\n  }\n\n  addSelectedOptions() {\n    if (_.isNumber(this.editorState.answer)) {\n      this.selectedOptions.push(this.editorState.answer);\n    } else if (_.isArray(this.editorState.answer)) {\n      this.selectedOptions = this.editorState.answer;\n    }\n    if (!_.isEmpty(this.editorState.options)) {\n      _.forEach(this.editorState.options, (option, index) => {\n        const resindex = Number(index);\n        if (_.includes(this.selectedOptions, resindex)) {\n          option['selected'] = true;\n        } else {\n          option['selected'] = false;\n        }\n      })\n    }\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    let options;\n    if (_.isNumber(correctAnswer)) {\n      options = _.map(editorState.options, (opt, key) => {\n        resindex = Number(key);\n        if (correctAnswer === resindex) {\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    } else if (_.isArray(correctAnswer) && !_.isEmpty(correctAnswer)) {\n      options = _.map(editorState.options, (opt, key) => {\n        resindex = Number(key);\n        if (_.includes(correctAnswer, resindex)) {\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    }\n    metadata = {\n      templateId: this.templateType,\n      name: this.questionPrimaryCategory || 'Multiple Choice Question',\n      responseDeclaration: this.getResponseDeclaration(editorState),\n      outcomeDeclaration: this.getOutcomeDeclaration(),\n      interactionTypes: ['choice'],\n      interactions: this.getInteractions(editorState.options),\n      hints:this.hints,\n      editorState: {\n        options,\n      },\n      qType: 'MCQ',\n      primaryCategory: this.questionPrimaryCategory || 'Multiple Choice Question',\n    };\n    this.subMenuConfig(editorState.options);\n    return metadata;\n  }\n\n  getResponseDeclaration(editorState) {\n    const responseDeclaration = {\n      response1: {\n        cardinality: this.getCardinality(),\n        type: 'integer',\n        correctResponse: {\n          value: editorState.answer,\n        },\n        mapping: this.mapping,\n      },\n    };\n    return responseDeclaration;\n  }\n\n  getOutcomeDeclaration() {\n    const outcomeDeclaration = {\n      maxScore: {\n        cardinality: this.getCardinality(),\n        type: 'integer',\n        defaultValue: this.maxScore\n      }\n    };\n    return outcomeDeclaration;\n  }\n\n  getCardinality() {\n    let questionCardinality = 'single';\n    if (this.mapping.length > 1) {\n      questionCardinality = 'multiple';\n    }\n    return questionCardinality;\n  }\n\n  setMapping() {\n    if(!_.isEmpty(this.selectedOptions)) {\n      this.mapping = [];\n      const scoreForEachOption = _.round((this.maxScore/this.selectedOptions.length), 2);\n      _.forEach(this.selectedOptions, (value) => {\n        const optionMapping = {\n          value: value,\n          score: scoreForEachOption,\n        }\n        this.mapping.push(optionMapping)\n      })\n    } else {\n      this.mapping = [];\n    }\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,  hint: this.hints[this.editorState?.interactions?.response1?.options[index]?.hint] ? Object.keys(this.hints).find(element => element == this.editorState?.interactions?.response1?.options[index]?.hint) : '' };\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    if(value.length && Object.keys(this.hints).length < this.editorState.interactions.response1.options.length ) {\n      const hint = {[uuidv4()] : {en:value}}\n      this.hints = {...this.hints, ...hint}\n      this.editorState.interactions.response1.options[optionIndex].hint = Object.keys(hint)[0]\n    }\n    else if (value.length) {\n      this.hints[this.editorState.interactions.response1.options[optionIndex].hint].en = value;\n    }\n  }\n\n  subMenuConfig(options) {\n    this.subMenus = []\n    options.map((opt, index) => {\n      const uuid  = _.get(this.editorState, `interactions.response1.options[${index}].hint`)\n      this.subMenus[index] = [\n        {\n          id: 'addHint',\n          name: 'Add Hint',\n          value: (():any => {\n            if(this.hints[uuid]) {\n              return this.hints[uuid].en\n            }\n            else {\n              return this.editorState?.hints?.[uuid] ? this.editorState.hints[uuid].en : ''\n            }\n          })(),\n          label: 'Hint',\n          enabled: uuid ? true : false,\n          type: 'input',\n          show: _.get(this.sourcingSettings, 'showAddHints'),\n        },\n      ];\n    });\n  }\n\n  onOptionChange(event) {\n    const optionIndex = _.parseInt(event.target.value);\n      if(event.target.checked === true && !_.includes(this.selectedOptions, optionIndex)) {\n        this.selectedOptions.push(optionIndex);\n      } else if(event.target.checked === false) {\n        _.remove(this.selectedOptions, (n) => {\n          return n === optionIndex;\n        });\n      }\n      if (this.selectedOptions.length === 1) {\n        this.editorState.answer = this.selectedOptions[0];\n      } else if(this.selectedOptions.length > 1) {\n        this.editorState.answer = this.selectedOptions;\n      } else {\n        this.editorState.answer = undefined;\n      }\n      this.setMapping();\n      this.editorDataHandler();\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","<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 == undefined && 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]=\"option.selected === true\" *ngIf=\"sourcingSettings?.enforceCorrectAnswer !== false\">\n        <input type=\"checkbox\" id=\"answer_{{ i + 1 }}\" name=\"example\" value=\"{{ i }}\"  (click)=\"onOptionChange($event);\"\n        [checked]=\"option.selected === true\"\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})\nexport class AnswerComponent implements OnInit {\n  @Input() editorState;\n  @Input() questionPrimaryCategory;\n  @Input() showFormError;\n  @Input() isReadOnlyMode;\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: this.questionPrimaryCategory || '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 [ngClass]=\"{'ckeditor-tool__option': !isReadOnlyMode, 'ckeditor-tool__option-readonly': isReadOnlyMode, 'mb-5': true}\">\n      <lib-ckeditor-tool *ngIf=\"!isReadOnlyMode\" (editorDataOutput)=\"editorDataHandler($event)\"\n        [editorDataInput]=\"editorState.answer\"></lib-ckeditor-tool>\n      <ng-container *ngIf=\"isReadOnlyMode\">\n        <label class=\"px-16 py-8 mb-0 ckeditor-tool__label width-100\">{{configService.labelConfig?.lbl?.answers}}</label>\n        <div class=\"ckeditor-tool__solution__body\">\n            <p class=\"fs-0-785 p-16\" [innerHTML]=\"editorState.answer | sanitizeHtml\"></p>\n        </div>\n      </ng-container>\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>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ConfigService } from '../../services/config/config.service';\nimport { EditorService } from '../../services/editor/editor.service';\nimport * as _ from 'lodash-es';\n\nexport class SilderEvent {\n  leftAnchor: number;\n  step: number;\n  rightAnchor: number;\n}\n\n@Component({\n  selector: 'lib-slider',\n  templateUrl: './slider.component.html',\n  styleUrls: ['./slider.component.scss']\n})\nexport class SliderComponent implements OnInit {\n  sliderValue:any = {};\n  @Input() editorDataInput;\n  leftAnchor: any;\n  rightAnchor: any;\n  step: any;\n  @Output() onChange: EventEmitter<SilderEvent> = new EventEmitter<SilderEvent>();\n  constructor(public configService: ConfigService,public editorService: EditorService) { }\n\n  ngOnInit(){\n    if (_.get(this.editorDataInput,\"step\")) {\n      this.step = this.editorDataInput.step;\n      this.sliderValue['step']= this.editorDataInput.step;\n    }\n    if (_.get(this.editorDataInput,\"validation.range.min\")) {\n      this.leftAnchor = this.editorDataInput.validation.range.min;\n      this.sliderValue['leftAnchor']=this.leftAnchor;\n    }\n    if (_.get(this.editorDataInput,\"validation.range.max\")) {\n      this.rightAnchor = this.editorDataInput.validation.range.max;\n      this.sliderValue['rightAnchor']=this.rightAnchor;\n    }\n  }\n\n  onValueChange(event,key){\n    this.sliderValue[key]=event.target.value\n    this.onChange.emit(this.sliderValue);\n  }\n\n}\n","<div class=\"slider-align\">\n    <label class=\"fs-0-92 font-weight-bold\">{{configService.labelConfig?.lbl?.sliderValue}}<span class=\"sb-required\">*</span><i class=\"icon info circle ml-8\" suiPopup popupDelay=\"500\" popupPlacement=\"top\" popupText={{configService.labelConfig?.lbl?.slidervalue}}></i></label>\n    <div class=\"form-container flex-container\">\n        <div>\n            <label><strong>{{configService.labelConfig?.lbl?.left}}</strong><i class=\"icon info circle ml-8\" suiPopup popupDelay=\"500\" popupPlacement=\"top\" popupText={{configService.labelConfig?.lbl?.minSizeInfo}}></i></label>\n            <input class=\"textbox\" placeholder=\"Add minimum value\" type=\"number\" [(ngModel)]=\"leftAnchor\"  (change)=\"onValueChange($event,'leftAnchor')\" required [disabled]=\"(editorService.editorMode !== 'edit') ? true : false\">\n        </div>\n        <div>\n            <label><strong>{{configService.labelConfig?.lbl?.stepSize}}</strong><i class=\"icon info circle ml-8\" suiPopup popupDelay=\"500\" popupPlacement=\"top\" popupText={{configService.labelConfig?.lbl?.stepSizeInfo}}></i></label>\n            <input class=\"textbox\" placeholder=\"Add step size\" type=\"number\" [(ngModel)]=\"step\"  (change)=\"onValueChange($event,'step')\" required [disabled]=\"(editorService.editorMode !== 'edit') ? true : false\">\n        </div>\n        <div>\n            <label><strong>{{configService.labelConfig?.lbl?.right}}</strong><i class=\"icon info circle ml-8\" suiPopup popupDelay=\"500\" popupPlacement=\"top\" popupText={{configService.labelConfig?.lbl?.maxSizeInfo}}></i></label>\n            <input class=\"textbox\" placeholder=\"Add maximum size\" type=\"number\" [(ngModel)]=\"rightAnchor\"  (change)=\"onValueChange($event,'rightAnchor')\" required [disabled]=\"(editorService.editorMode !== 'edit') ? true : false\">\n        </div>\n    </div>\n</div>","import { Component, OnInit, Input } from '@angular/core';\nimport {ILoaderMessage} from '../../interfaces/loader';\nimport { ConfigService } from '../../services/config/config.service';\nimport * as _ from 'lodash-es';\n\n/**\n * loader component\n */\n@Component({\n  selector: 'app-loader',\n  templateUrl: './app-loader.component.html'\n})\nexport class AppLoaderComponent implements OnInit {\n  @Input() data: ILoaderMessage;\n  headerMessage: string;\n  loaderMessage: string;\n\n  constructor(public configService: ConfigService) {\n    this.headerMessage =  _.get(this.configService, 'labelConfig.lbl.loaderHeading');\n    this.loaderMessage =  _.get(this.configService, 'labelConfig.lbl.loaderMessage');\n  }\n\n  ngOnInit() {\n    if (this.data) {\n      this.headerMessage = this.data.headerMessage || this.headerMessage;\n      this.loaderMessage = this.data.loaderMessage || this.loaderMessage;\n    }\n  }\n}\n","<div class=\"ui icon message mt-30\">\n  <i class=\"notched circle loading icon\"></i>\n  <div class=\"content\">\n      <div class=\"header\">\n          {{headerMessage}}\n      </div>\n      <p>{{loaderMessage}}</p>\n  </div>\n</div>","import {Component, EventEmitter, Input, 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})\nexport class TermAndConditionComponent {\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    get contentPolicyUrl() {\n        return this.editorService.contentPolicyUrl;\n    }\n\n    get commonFrameworkLicenseUrl() {\n        return this.editorService.commonFrameworkLicenseUrl;\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=\"{{commonFrameworkLicenseUrl}}\" 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, 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 {\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    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 '../../questionset-editor-cursor.service';\nimport { filter, finalize, take, takeUntil } from 'rxjs/operators';\nimport { SubMenu } from '../question-option-sub-menu/question-option-sub-menu.component';\nimport { ICreationContext } from '../../interfaces/CreationContext';\n\nconst evidenceSizeLimit='20480';\nconst DEFAULT_SCORE = 1;\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  @Input() questionInput: any;\n  @Input() leafFormConfig: any;\n  @Input() sourcingSettings: 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  public actionType: string;\n  selectedSolutionType: string;\n  showSolutionDropDown = true;\n  showSolution = false;\n  videoSolutionName: string;\n  videoThumbnail: string;\n  solutionUUID: 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  questionCategory;\n  questionId;\n  creationContext: ICreationContext;\n  creationMode;\n  tempQuestionId;\n  questionSetId;\n  unitId;\n  public setCharacterLimit = 160;\n  public showLoader = true;\n  public isReadOnlyMode = false;\n  public contentComment : string;\n  public showReviewModal: boolean = false;\n  questionSetHierarchy: any;\n  showConfirmPopup = false;\n  showSubmitConfirmPopup = 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 = DEFAULT_SCORE;\n  public questionFormConfig: any;\n  treeNodeData:any;\n  showQualityParameterPopup: boolean =false;\n  public qualityFormConfig: any;\n  requestChangesPopupAction: string;\n  hintsUUID: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, label } = this.editorService.selectedChildren;\n    this.questionPrimaryCategory = primaryCategory;\n    this.pageStartTime = Date.now();\n    this.categoryLabel = [];\n    this.getOptions();\n    if (!_.isUndefined(label)) {\n      this.categoryLabel[primaryCategory] = label;\n    }\n  }\n\n  ngOnInit() {\n    const { questionSetId, questionId, type, category, creationContext, creationMode } = this.questionInput;\n    this.questionInteractionType = type;\n    this.questionCategory = category;\n    this.questionId = questionId;\n    this.questionSetId = questionSetId;\n    this.creationContext = creationContext;\n    this.creationMode = creationMode;\n    this.unitId = this.creationContext?.unitIdentifier;\n    this.isReadOnlyMode = this.creationContext?.isReadOnlyMode;\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\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    this.questionFormConfig = _.cloneDeep(this.leafFormConfig);\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 (_.includes(['default', 'text', 'date', 'slider'], this.questionInteractionType)) {\n                if (this.questionMetaData.editorState) {\n                  this.editorState = this.questionMetaData.editorState;\n                }\n              }\n\n              if (this.questionInteractionType === 'slider') {\n                if (this.questionMetaData?.interactions) {\n                  this.sliderOptions = this.questionMetaData.interactions?.response1;\n                  this.sliderDatas = this.questionMetaData.interactions?.response1;\n                  this.hints = this.questionMetaData?.hints;\n                }\n              }\n\n              if (this.questionInteractionType === 'choice') {\n                const responseDeclaration = this.questionMetaData.responseDeclaration;\n                this.scoreMapping = _.get(responseDeclaration, 'response1.mapping');\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(this.questionMetaData?.hints) {\n                  this.editorState.hints = this.questionMetaData.hints;\n                }\n                else {\n                  this.editorState.hints = {};\n                }\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              if(this.questionMetaData?.outcomeDeclaration?.hint) {\n                this.hintsUUID = this.questionMetaData?.outcomeDeclaration?.hint?.defaultValue\n              }\n              else {\n                this.hintsUUID = uuidv4()\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.hintsUUID = uuidv4();\n        this.populateFormData();\n        this.setQuestionTitle();\n        let editorState = {}\n        this.editorState.hints = {};\n        if (this.questionInteractionType === 'default') {\n          if (this.questionCategory) {\n            editorState = _.get(this.configService, `editorConfig.defaultStates.nonInteractiveQuestions.${this.questionCategory}`);\n          } else {\n            this.editorState = { question: '', answer: '', solutions: '' };\n          }\n          this.editorState = { ...editorState };\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        this.showLoader = false;\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      }\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  toolbarEventListener(event) {\n    this.actionType = event.button;\n    switch (event.button) {\n      case 'saveContent':\n        this.showAddSecondaryQuestionCat = false;\n        this.saveContent();\n        break;\n      case 'showTranslation':\n        this.showTranslation = true;\n        break;\n      case 'submitQuestion':\n        this.submitHandler();\n        break;\n      case 'cancelContent':\n        this.handleRedirectToQuestionset();\n        break;\n      case 'rejectQuestion':\n        this.rejectQuestion(event.comment);\n        break;\n      case 'publishQuestion':\n        this.publishQuestion(event);\n        break;\n      case 'sourcingApproveQuestion':\n        this.sourcingUpdate(event);\n        break;\n      case 'sourcingRejectQuestion':\n        this.sourcingUpdate(event);\n        break;\n      case 'sendForCorrectionsQuestion':\n        this.sendBackQuestion(event);\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) || this.creationMode === 'edit') {\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.042'));\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      let questionIds = [];\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    if ([undefined, ''].includes(this.editorState.question)) {\n      this.showFormError = true;\n      return;\n    } else {\n      this.showFormError = false;\n    }\n\n    // to handle when question type is subjective\n    if (this.questionInteractionType === 'default') {\n      this.validateDefaultQuestionData();\n    }\n\n    // to handle when question type is mcq\n    if (this.questionInteractionType === 'choice') {\n      this.validateChoiceQuestionData();\n    }\n\n    if (this.questionInteractionType === 'slider') {\n      this.validateSliderQuestionData();\n    }\n\n  }\n\n  validateDefaultQuestionData() {\n    if (this.editorState.answer !== '') {\n      this.showFormError = false;\n    } else {\n      this.showFormError = true;\n      return;  //NOSONAR\n    }\n  }\n\n  validateChoiceQuestionData() {\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 || (_.isUndefined(this.editorState.answer) && this.sourcingSettings?.enforceCorrectAnswer)) {\n      this.showFormError = true;\n      return; //NOSONAR\n    } else {\n      this.showFormError = false;\n    }\n  }\n\n  validateSliderQuestionData() {\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  redirectToQuestionset() {\n    this.showConfirmPopup = false;\n    this.treeService.clearTreeCache();\n    setTimeout(() => {\n      this.showAddSecondaryQuestionCat ?\n      this.questionEmitter.emit({ type: 'createNewContent', isChildQuestion: true }) :\n      this.editorService.parentIdentifier = undefined;\n      this.showAddSecondaryQuestionCat = false;\n      this.questionEmitter.emit({ status: false });\n    }, 100);\n  }\n\n  redirectToChapterList() {\n    this.showConfirmPopup = false;\n    setTimeout(() => {\n      this.questionEmitter.emit({ type: 'close', actionType: this.actionType, identifier: this.questionId });\n    }, 100);\n  }\n\n  editorDataHandler(event, type?) {\n    if (type === 'question') {\n      this.editorState.question = event.body;\n      this.editorState.responseDeclaration = event.body.responseDeclaration\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  addResourceToQuestionset(callback = null) {\n    this.editorService.addResourceToQuestionset(this.questionSetId, this.unitId, this.questionId).subscribe(res => {\n      if (callback) {\n        callback();\n      } else {\n        this.redirectToChapterList();\n      }\n    }, err => {\n        const errInfo = {\n          errorMsg: 'Adding question to questionset failed. Please try again.',\n        };\n        return throwError(this.editorService.apiErrorHandling(err, errInfo));\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.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  setQuestionProperties(metadata) {\n    if (this.questionInteractionType != 'choice') {\n      if (!_.isUndefined(metadata.answer)) {\n        const answerHtml = this.getAnswerHtml(metadata.answer);\n        const finalAnswer = this.getAnswerWrapperHtml(answerHtml);\n        metadata.answer = finalAnswer;\n      } else {\n        metadata.answer = '';\n      }\n    }\n\n    if (this.questionInteractionType === 'choice') {\n      metadata.body = this.getMcqQuestionHtmlBody(this.editorState.question, this.editorState.templateId);\n      if(_.isNumber(metadata.answer)) {\n        metadata.answer = [metadata.answer];\n      }\n      const correctAnswersData = this.getInteractionValues(metadata.answer, metadata.interactions);\n      let concatenatedAnswers = '';\n      _.forEach(correctAnswersData, (answer) => {\n        const optionAnswer = this.getAnswerHtml(answer.label);\n        concatenatedAnswers = concatenatedAnswers.concat(optionAnswer);\n      })\n      const finalAnswer = this.getAnswerWrapperHtml(concatenatedAnswers);\n      metadata.answer = finalAnswer;\n    } else if (this.questionInteractionType != 'default' && this.questionInteractionType != 'choice') {\n      metadata.responseDeclaration = this.getResponseDeclaration(this.questionInteractionType);\n    }\n    return metadata;\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    if (!_.isUndefined(this.editorService?.editorConfig?.config?.renderTaxonomy)) {\n      const treeNodeData = _.get(this.treeNodeData, 'data.metadata');\n      if (_.get(treeNodeData,'allowScoring') != 'Yes') {\n       _.set(metadata,'responseDeclaration.response1.mapping',[]);\n      }\n    }\n\n    metadata = this.setQuestionProperties(metadata);\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 = this.getQuestionSolution(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    metadata['outcomeDeclaration'] = this.getOutcomeDeclaration(metadata);\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  getAnswerHtml(optionLabel) {\n    const answerHtml = '<div class=\\'answer-body\\'>{answer}</div>';\n    const optionHtml = answerHtml.replace('{answer}', optionLabel);\n    return optionHtml;\n  }\n\n  getAnswerWrapperHtml(concatenatedAnswers) {\n    const answerTemplate = '<div class=\\'answer-container\\'>{answers}</div>';\n    const answer = answerTemplate.replace('{answers}', concatenatedAnswers);\n    return answer;\n  }\n\n  getInteractionValues(answer, interactions) {\n    const correctAnswers = _.filter(interactions.response1.options, (value, key) => {\n      return _.includes(answer, value.value);\n    });\n    return correctAnswers;\n  }\n\n  getQuestionSolution(solutionObj) {\n    if (solutionObj?.type === 'html') {\n      return {[solutionObj?.id]: solutionObj.value};\n    } else if (solutionObj?.type === 'video') {\n      const videoMedia = this.getMediaById(solutionObj?.value);\n      const videoThumbnail = videoMedia?.thumbnail ? videoMedia?.thumbnail : '';\n      const videoSolution = this.getVideoSolutionHtml(videoThumbnail, videoMedia?.src, videoMedia.id);\n      return {[solutionObj.id]: videoSolution};\n    }\n  }\n\n  getMediaById(mediaId) {\n    return _.find(this.mediaArr, { 'id': mediaId });\n  }\n\n  getResponseDeclaration(type) {\n    const responseDeclaration = {\n      response1: {\n        type: type === 'slider' ? 'integer' : 'string'\n      }\n    };\n    return responseDeclaration;\n  }\n\n  getVideoSolutionHtml(posterURL, srcUrl, solutionMediaId) {\n    const videoSolutionHtml = '<video data-asset-variable=\\'{solutionMediaId}\\' width=\\'400\\' controls=\\'\\' poster=\\'{posterUrl}\\'><source type=\\'video/mp4\\' src=\\'{sourceURL}\\'><source type=\\'video/webm\\' src=\\'{sourceURL}\\'></video>'\n    const videoSolutionValue = videoSolutionHtml.replace('{posterUrl}', posterURL).replace('{sourceURL}', srcUrl).replace('{sourceURL}', srcUrl).replace('{solutionMediaId}', solutionMediaId);\n    return videoSolutionValue;\n  }\n\n\n  getMcqQuestionHtmlBody(question, templateId) {\n    const mcqTemplateConfig = {\n      // tslint:disable-next-line:max-line-length\n      mcqBody: '<div class=\\'question-body\\' tabindex=\\'-1\\'><div class=\\'mcq-title\\' tabindex=\\'0\\'>{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        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    if (this.questionInteractionType !== 'default' && metaData.interactions.response1) {\n      metaData.interactions.response1.validation = { required: this.childFormData.markAsNotMandatory === 'Yes' ? 'No' : 'Yes'};\n    }\n\n    if (this.childFormData.allowMultiSelect === 'Yes') {\n      metaData.responseDeclaration.response1.cardinality = 'multiple';\n    }\n\n    this.InsertHintAndInstructions(metaData)\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  InsertHintAndInstructions(metaData) {\n    _.forEach(this.subMenus, (el: any) => {\n      if (el.id === 'addHint') {\n        metaData.hints = metaData.hints ? metaData.hints : {};\n        metaData.hints[this.hintsUUID] = {en: el.value}\n        this.getOutcomeDeclaration(metaData)\n      }\n      if (el.id === 'addTip') {\n        metaData.instructions = el.value;\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    this.editorService.selectedSection = selectedUnitId;\n    let metaData = this.getQuestionMetadata();\n    \n    const evalMode = activeNode?.data.metadata?.evalMode || data?.data?.evalMode || data?.data?.metadata?.evalMode;\n    if(evalMode){\n      metaData.evalMode = evalMode;\n    }\n    this.setQuestionTypeValues(metaData);\n    return {\n      nodesModified: {\n        [questionId]: {\n          metadata: _.omit(metaData, ['creator']),\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\n  createQuestion() {\n    if (this.showOptions) {\n      this.buildCondition('create');\n    } else {\n      const requestBody = this.prepareRequestBody();\n      this.saveQuestions(requestBody, 'create');\n  }\n}\n\n\n  saveQuestions(requestBody, type) {\n    this.showHideSpinnerLoader(true);\n    this.questionService.updateQuestionHierarchy(requestBody).pipe(\n      finalize(() => {\n        this.showHideSpinnerLoader(false);\n      })).subscribe((response: ServerResponse) => {\n        if (this.showAddSecondaryQuestionCat) {\n          const result = _.get(response.result.identifiers, this.newQuestionID);\n          this.editorService.parentIdentifier = result;\n        }\n\n        if (type === 'create') {\n          this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.007'));\n        } else {\n          this.toasterService.success(_.get(this.configService, 'labelConfig.messages.success.008'));\n        }\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\n  updateQuestion() {\n    if (this.isChildQuestion) {\n      this.buildCondition('update');\n    } else {\n      this.saveUpdateQuestions();\n    }\n  }\n\n saveUpdateQuestions() {\n    const requestBody = this.prepareRequestBody();\n    this.showHideSpinnerLoader(true);\n    this.questionService.updateQuestionHierarchy(requestBody).pipe(\n      finalize(() => {\n        this.showHideSpinnerLoader(false);\n      })).subscribe((response: ServerResponse) => {\n        if (this.showAddSecondaryQuestionCat) {\n          const result = _.get(response.result.identifiers, this.questionId);\n          this.editorService.parentIdentifier = result;\n        }\n\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  showHideSpinnerLoader(status: boolean, type?) {\n    this.buttonLoaders.saveButtonLoader = status;\n    if(type) {\n      this.buttonLoaders[type] = status;\n    }\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.042'));\n    }\n  }\n\n  setParentConfig(parentConfig) {\n    this.questionSetHierarchy.showSolutions = !_.isUndefined(parentConfig?.showSolutions) ?\n    parentConfig.showSolutions : false;\n    this.questionSetHierarchy.shuffle = !_.isUndefined(parentConfig?.shuffle) ?\n    parentConfig.shuffle : false;\n    this.questionSetHierarchy.showFeedback = !_.isUndefined(parentConfig?.showFeedback) ?\n    parentConfig.showFeedback : false;\n  }\n\n  setQumlPlayerData(questionId: string) {\n    const questionMetadata: any = _.cloneDeep(this.getQuestionMetadata());\n    questionMetadata.identifier = questionId;\n    this.questionSetHierarchy.children = [questionMetadata];\n    this.questionSetHierarchy['outcomeDeclaration'] = this.getOutcomeDeclaration(questionMetadata);\n    if (this.questionSetHierarchy.shuffle === true) {\n      this.questionSetHierarchy.outcomeDeclaration.maxScore.defaultValue = DEFAULT_SCORE;\n    } else {\n      if (questionMetadata.qType === 'SA') {\n        this.questionSetHierarchy['outcomeDeclaration'] = {maxScore: {defaultValue: 0}};\n      }\n    }\n    this.editorCursor.setQuestionMap(questionId, questionMetadata);\n  }\n\n  getOutcomeDeclaration(questionMetadata) {\n    let cardinality = 'single';\n    if (!_.isUndefined(questionMetadata?.responseDeclaration?.response1?.mapping) &&\n    (questionMetadata.responseDeclaration.response1.mapping).length > 1) {\n        cardinality = 'multiple';\n    }\n    const outcomeDeclaration = {\n      maxScore: {\n        cardinality: cardinality,\n        type: 'integer',\n        defaultValue: this.maxScore\n      },\n      hint: {\n        cardinality: \"single\",\n        type: \"string\",\n        defaultValue: this.hintsUUID ? this.hintsUUID : ''\n      }\n    };\n    return outcomeDeclaration;\n  }\n\n  setQuestionId(questionId) {\n    this.questionId = questionId;\n  }\n\n  setQuestionTitle(questionId?) {\n    let index;\n    let questionTitle = '';\n    if (_.get(this.creationContext, 'objectType') === 'question') {\n      if (!_.isUndefined(this.questionPrimaryCategory)) {\n        questionTitle = this.questionPrimaryCategory;\n      }\n    } else {\n      if (!_.isUndefined(questionId)) {\n        questionTitle = this.getExistingQuestionTitle(questionId);\n      } else {\n        const hierarchyChildren = this.treeService.getChildren();\n        index = hierarchyChildren.length;\n        questionTitle = `Q${(index + 1).toString()} | `;\n        if (!_.isUndefined(this.questionPrimaryCategory)) {\n          questionTitle = questionTitle + (_.get(this.categoryLabel, `${this.questionPrimaryCategory}`) || this.questionPrimaryCategory);\n        }\n      }\n    }\n    this.toolbarConfig.title = questionTitle;\n  }\n\n  getExistingQuestionTitle(questionId) {\n    let index;\n    let questionTitle = '';\n    const parentNode = this.treeService.getActiveNode().getParent();\n    let hierarchyChildren = parentNode.getChildren();\n    _.forEach(hierarchyChildren, (child) => {\n      if (child.children) {\n        index =  _.findIndex(child.children, { identifier: questionId });\n        const question  = child.children[index];\n        // tslint:disable-next-line:max-line-length\n        questionTitle = `Q${(index + 1).toString()} | ` + (_.get(this.categoryLabel, `${question.primaryCategory}`) || question.primaryCategory);\n      } else {\n        index =  _.findIndex(hierarchyChildren, (node) => node.data.id === questionId);\n        const question  = hierarchyChildren[index];\n        // tslint:disable-next-line:max-line-length\n        questionTitle = `Q${(index + 1).toString()} | ` + (_.get(this.categoryLabel, `${_.get(question, 'data.primaryCategory')}`) || _.get(question, 'data.primaryCategory'));\n      }\n    });\n    return questionTitle;\n  }\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\n  validateFormFields() {\n    _.forEach(this.questionFormConfig, (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\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.questionFormConfig = formConfig;\n  }\n\n  populateFormData() {\n    this.childFormData = {};\n      if (!_.isUndefined(this.questionId)) {\n        this.setExistingQuestionData();\n      } else {\n        _.forEach(this.leafFormConfig, (formFieldCategory) => {\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;\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  setExistingQuestionData() {\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    _.forEach(this.leafFormConfig, (formFieldCategory) => {\n      if (formFieldCategory.code === 'maxScore' && this.questionInteractionType === 'choice') {\n        const defaultValue = _.get(this.questionMetaData, 'outcomeDeclaration.maxScore.defaultValue');\n        this.childFormData[formFieldCategory.code] = defaultValue || this.maxScore;\n      }\n      else if (formFieldCategory.code === 'allowMultiSelect' && this.questionInteractionType === 'choice') {\n        const defaultValue = _.get(this.questionMetaData, 'responseDeclaration.response1.cardinality')\n        this.childFormData[formFieldCategory.code] =  defaultValue === 'multiple' ? 'Yes' : 'No';\n      }\n      else if (this.questionMetaData && _.has(availableAlias, formFieldCategory.code)) {\n        this.setChildAliasData(availableAlias, formFieldCategory);\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    });\n  }\n\n  setChildAliasData(availableAlias, formFieldCategory) {\n    let defaultValue = _.get(this.questionMetaData, availableAlias[formFieldCategory.code]);\n        if (formFieldCategory.code === 'markAsNotMandatory') {\n          defaultValue === 'Yes' ? (defaultValue = 'No') : (defaultValue = 'Yes');\n        }\n        formFieldCategory.default = defaultValue;\n        this.childFormData[formFieldCategory.code] = defaultValue;\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      this.getHints(),\n      this.getInstructions(),\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  getHints() {\n    return {\n      id: 'addHint',\n      name: 'Add Hint',\n      value:(() => { \n        if(this.questionMetaData?.outcomeDeclaration ) {\n          return this.questionMetaData?.hints[this.questionMetaData.outcomeDeclaration.hint.defaultValue].en;\n        }\n        else {\n           return '';\n        }\n      })(),\n      label: 'Hint',\n      enabled:(() => { \n        if(this.questionMetaData?.outcomeDeclaration && this.questionMetaData?.hints[this.questionMetaData.outcomeDeclaration.hint.defaultValue].en.length > 0) {\n          return true;\n        }\n        else {\n          return false;\n        }\n      })(),\n      type: 'input',\n      show: _.get(this.sourcingSettings, 'showAddHints')\n    }\n  }\n\n  getInstructions() {\n    return {\n      id: 'addTip',\n      name: 'Add Tip',\n      value: (() => { \n        if(this.questionMetaData) {\n          return this.questionMetaData?.instructions\n        }\n        else {\n          return '';\n        }\n      })(),\n      label: 'Tip',\n      enabled: (() => { \n        if(this.questionMetaData && this.questionMetaData?.instructions?.length > 0) {\n          return true;\n        }\n        else {\n           return false;\n        }\n      })(),\n      type: 'input',\n      show: _.get(this.sourcingSettings, 'showAddTips')\n    }\n  }\n  ngOnDestroy() {\n    this.onComponentDestroy$.next();\n    this.onComponentDestroy$.complete();\n    this.editorCursor.clearQuestionMap();\n    this.editorCursor.removeQuestionMap(this.questionId || this.tempQuestionId);\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.interactions.response1.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}","<div *ngIf='showLoader' class=\"ui container\">\n  <app-loader></app-loader>\n</div>\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 *ngIf=\"!isReadOnlyMode\" class=\"fs-0-92 font-weight-bold\">{{configService.labelConfig?.lbl?.question}}<span class=\"sb-required\">*</span></label>\n              <div class=\"sb-field\">\n                <div [ngClass]=\"{'ckeditor-tool__question': !isReadOnlyMode, 'ckeditor-tool__question-readonly': isReadOnlyMode, 'mb-5': true}\">\n                  <lib-ckeditor-tool\n                    *ngIf=\"!isReadOnlyMode\"\n                    (editorDataOutput)=\"editorDataHandler($event, 'question')\"\n                    [editorDataInput]=\"editorState.question\"\n                    (videoDataOutput)=\"videoDataOutput($event)\" [videoShow]=\"videoShow\"></lib-ckeditor-tool>\n                  <ng-container *ngIf=\"isReadOnlyMode\">\n                    <label class=\"px-16 py-8 fs-0-92 mb-0 ckeditor-tool__label width-100\">{{configService.labelConfig?.lbl?.question}}</label>\n                    <div class=\"ckeditor-tool__solution__body\">\n                      <p class=\"fs-0-785 p-16\" [innerHTML]=\"editorState.question | sanitizeHtml\"></p>\n                    </div>\n                  </ng-container>\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              <lib-question-option-sub-menu *ngIf=\"subMenus?.length\" [subMenus]=\"subMenus\"\n                (onChange)=\"subMenuChange($event)\"></lib-question-option-sub-menu>\n\n              <lib-answer *ngIf=\"questionInteractionType === 'default'\"\n                [questionPrimaryCategory]=\"questionPrimaryCategory\"\n                [editorState]=\"editorState\" [showFormError]=\"showFormError\"\n                (editorDataOutput)=\"editorDataHandler($event)\" [isReadOnlyMode]=\"isReadOnlyMode\"></lib-answer>\n\n              <lib-options *ngIf=\"questionInteractionType === 'choice'\"\n                [questionPrimaryCategory]=\"questionPrimaryCategory\"\n                [editorState]=\"editorState\" [showFormError]=\"showFormError\"\n                (editorDataOutput)=\"editorDataHandler($event)\"\n                [sourcingSettings]=\"sourcingSettings\" [mapping]=\"scoreMapping\" [maxScore]=\"maxScore\"\n                [isReadOnlyMode]=\"isReadOnlyMode\"></lib-options>\n\n              <lib-slider *ngIf=\"questionInteractionType === 'slider'\" [editorDataInput]=\"sliderOptions\"\n                (onChange)=\"sliderData($event)\"></lib-slider>\n\n              <ng-container *ngIf=\"!isReadOnlyMode; else readOnlySolutionsContainer\">\n                <div *ngIf=\"sourcingSettings?.showSolution !== false\" 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')\" (keydown.enter)=\"selectSolutionType('Text+Image')\" tabindex=\"0\" 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')\" (keydown.enter)=\"selectSolutionType('video')\" tabindex=\"0\" 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                      </div>\n                    </div>\n                  </div>\n                </div>\n              </ng-container>\n              <ng-template #readOnlySolutionsContainer>\n                <div class=\"row\" *ngIf=\"editorState.solutions\">\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\">Solution</label>\n                              <div class=\"ckeditor-tool__solution__body\" *ngIf=\"selectedSolutionType == 'html'\">\n                                  <p class=\"fs-0-785 p-16\" [innerHTML]=\"editorState.solutions | sanitizeHtml\"></p>\n                              </div>\n                              <div class=\"ckeditor-tool__solution__body\" *ngIf=\"selectedSolutionType == 'video' && showSolution\">\n                                  <div class=\"solution-media p-16 d-flex flex-ai-center\">\n                                      <div class=\"solution-media__video relative position\">\n                                      <div class=\"overlay-image\" [ngStyle]=\"videoThumbnail ?  {'background' : 'url(' + videoThumbnail + ')' }  : {'background': 'rgba(0,0,0,0.3)'}\"><i class=\"play circle icon\"></i></div>\n                                      </div>\n                                      <div class=\"solution-media__desc ml-16\">\n                                      {{videoSolutionName}}\n                                      </div>\n                                  </div>\n                              </div>\n                          </div>\n                      </div>\n                  </div>\n              </div>\n              </ng-template>\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]=\"questionFormConfig\"\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, ViewChild, OnDestroy, Output, Input, EventEmitter } from '@angular/core';\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 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  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\" alt=\"{{template + 'icon' }}\">\n            <div class=\"content-title pt-16 pb-8 fsmall\">{{configService.labelConfig?.categoryLabels[template] || 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, EventEmitter, Input, OnChanges, Output } from '@angular/core';\nimport * as _ from 'lodash-es';\nimport { EditorService } from '../../services/editor/editor.service';\nimport { TreeService } from '../../services/tree/tree.service';\n\n@Component({\n  selector: 'lib-relational-metadata',\n  templateUrl: './relational-metadata.component.html'\n})\nexport class RelationalMetadataComponent implements OnChanges {\n\n  @Input() contentMetadata: any;\n  @Input() formConfig: any;\n  public contentId;\n  @Output() statusChanges = new EventEmitter<any>();\n  @Output() valueChanges = new EventEmitter<any>();\n  public formFieldProperties: any;\n  constructor(private editorService: EditorService, private treeService: TreeService) { }\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.attachDefaultValues();\n    }\n  }\n\n  attachDefaultValues() {\n    let formConfig = _.cloneDeep(this.formConfig);\n    formConfig = this.formConfig && _.has(_.first(formConfig), 'fields') ? formConfig : [{name: '', fields: formConfig}];\n    const metaDataFields = _.get(this.contentMetadata, 'relationalMetadata', {});\n    _.forEach(formConfig, (section) => {\n      _.forEach(section.fields, field => {\n        if (metaDataFields) {\n          if (_.has(metaDataFields, field.code)) {\n            field.default = _.get(metaDataFields, field.code);\n          }\n        }\n        const ifEditable = this.ifFieldIsEditable(field.code);\n        _.set(field, 'editable', ifEditable);\n\n      });\n    });\n    this.formFieldProperties = _.cloneDeep(formConfig);\n  }\n\n  isReviewMode() {\n    return  _.includes([ 'review', 'read', 'sourcingreview', 'orgreview' ], this.editorService.editorMode);\n  }\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\n  onFormStatusChange(event) {\n    this.statusChanges.emit(event);\n  }\n\n  onFormValueChange(event) {\n    this.valueChanges.emit(event);\n    const selectedNode = this.treeService.getActiveNode();\n    let relationalMetadata = _.get(selectedNode, 'data.metadata.relationalMetadata', {});\n    relationalMetadata = _.assign({}, relationalMetadata, event);\n    selectedNode.data.metadata = {...selectedNode.data.metadata, relationalMetadata};\n  }\n\n}\n","<sb-dynamic-form *ngIf=\"formFieldProperties\"  [config]=\"formFieldProperties\" (statusChanges)=\"onFormStatusChange($event)\" (valueChanges)=\"onFormValueChange($event)\"></sb-dynamic-form> \n","import {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\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 const $: any;\n\n@Component({\n  selector: 'lib-plain-tree',\n  templateUrl: './plain-tree.component.html'\n})\nexport class PlainTreeComponent implements 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  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@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  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    if (event?.button === 'backContent') {\n      this.redirectToQuestionSet();\n    }\n  }\n\n  redirectToQuestionSet() {\n      this.assignPageEmitter.emit({ status: false });\n  }\n\n  treeEventListener(event) {\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    }, (error: any) => {\n      console.log(error);\n    });\n  }\n\n  onValueChange(event, question) {\n    question.page_no = +event;\n    console.log(this.questions);\n    const numArray = [];\n    // tslint:disable-next-line:no-shadowed-variable\n    _.forEach(this.questions, (question) => {\n      numArray.push(question.page_no);\n    });\n    const createArray = new Array(Math.max(...numArray));\n    console.log(createArray);\n    for (let i = 0; i < createArray.length; i++) {\n      createArray[i] = new Array(1);\n    }\n    for (const [index] of this.questions.entries()){\n      console.log(index);\n    }\n    _.forEach(this.rendering_sequence?.sequence, (data) => {\n      if (data.value === this.criteriaId) {\n        data.pages = createArray;\n      }\n    });\n    console.log(this.rendering_sequence);\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    console.log(this.rendering_sequence);\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;\">\n                  <td innerHtml=\"{{question?.question}}\"></td>\n                  <td><i class=\"close icon close-button\"></i><input type=\"number\" name=\"pageNo\"\n                      (input)=\"onValueChange($event.target.value,question)\" value=\"{{question?.pageNo}}\"></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    if(event?.button === 'backContent') {\n      this.redirectToQuestionSet();\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 { 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 { ICreationContext } from '../../interfaces/CreationContext';\nimport { Router } from '@angular/router';\nimport { filter, map, switchMap, take, takeUntil, tap } 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 { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\n\nlet evidenceMimeType;\nlet ecm;\n\n@Component({\n  selector: 'lib-questionset-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 creationContext: ICreationContext;\n  public collectionTreeNodes: any;\n  public selectedNodeData: any = {};\n  public templateList: any;\n  public showConfirmPopup = false;\n  public terms = false;\n  public pageId: string;\n  public pageStartTime;\n  public rootFormConfig: any;\n  public unitFormConfig: any;\n  public searchFormConfig: any;\n  public leafFormConfig: any;\n  public relationFormConfig: any;\n  public questionlibraryInput: 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  public collectionPrimaryCategoryDef: 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 showReviewModal: boolean;\n  public objectType: string;\n  public isStatusReviewMode = false;\n  public ishierarchyConfigSet =  false;\n  public publishchecklist: any;\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  constructor(private editorService: EditorService, public treeService: TreeService, private frameworkService: FrameworkService,\n              private helperService: HelperService, public telemetryService: EditorTelemetryService, private router: Router,\n              private toasterService: ToasterService,\n              public configService: ConfigService, private changeDetectionRef: ChangeDetectorRef) {\n  }\n\n  @HostListener('window:unload', ['$event'])\n  unloadHandler(event) {\n    this.generateTelemetryEndEvent();\n  }\n\n  setEditorConfig() {\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 editor config: ', error);\n        }\n      }\n    }\n  }\n\n  ngOnInit() {\n    this.setEditorConfig();\n    this.editorService.initialize(this.editorConfig);\n    this.editorMode = this.editorService.editorMode;\n    this.treeService.initialize(this.editorConfig);\n    this.objectType = this.configService.categoryConfig[this.editorConfig.config.objectType];\n    this.collectionId = _.get(this.editorConfig, 'context.identifier');\n    this.toolbarConfig = this.editorService.getToolbarConfig();\n    this.isStatusReviewMode = this.isReviewMode();\n\n    if (this.objectType === 'question') {\n      this.handleQuestionObjectType();\n    } else {\n      this.pageId = 'questionset_editor';\n      this.mergeCollectionExternalProperties().subscribe(\n        (response) => {\n          const hierarchyResponse = _.first(response);\n          const collection = _.get(hierarchyResponse, `result.${this.objectType}`);\n          this.toolbarConfig.title = collection.name;\n          this.initializeFrameworkAndChannel(collection);\n        });\n    }\n\n    this.editorService.getCategoryDefinition(this.editorConfig.config.primaryCategory,\n      this.editorConfig.context.channel, this.editorConfig.config.objectType)\n      .subscribe(\n        (response) => {\n          this.sourcingSettings = _.get(response, 'result.objectCategoryDefinition.objectMetadata.config.sourcingSettings', {});\n          this.helperService.channelData$.subscribe(\n            (channelResponse) => {\n              this.primaryCategoryDef = response;\n              if (this.objectType !== 'question') { this.sethierarchyConfig(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.unSubscribeshowQuestionLibraryPageEmitter = this.editorService.getshowQuestionLibraryPageEmitter()\n    .subscribe(item => this.showQuestionLibraryComponentPage());\n    this.treeService.treeStatus$.pipe(takeUntil(this.unsubscribe$)).subscribe((status) => {\n      if (status === 'loaded') {\n        this.getFrameworkDetails(this.primaryCategoryDef);\n      }\n    });\n  }\n\n  handleQuestionObjectType() {\n    this.collectionId = _.get(this.editorConfig, 'context.collectionIdentifier');\n    this.initializeFrameworkAndChannel();\n    this.editorService.getCategoryDefinition(_.get(this.editorConfig, 'context.collectionPrimaryCategory'),\n    this.editorConfig.context.channel, _.get(this.editorConfig, 'context.collectionObjectType'))\n    .subscribe(\n      (response) => {\n        this.collectionPrimaryCategoryDef = response;\n        this.getFrameworkDetails(this.collectionPrimaryCategoryDef);\n        this.editorService.selectedChildren = {\n          primaryCategory: _.get(this.editorConfig, 'config.primaryCategory'),\n          mimeType: _.get(this.editorConfig, 'config.mimeType'),\n          interactionType: _.get(this.editorConfig, 'config.interactionType')\n        };\n        const objectMetadata = _.get(response, 'result.objectCategoryDefinition.objectMetadata');\n        if (objectMetadata.childrenConfig) {\n          this.questionComponentInput.config = objectMetadata.childrenConfig[_.get(this.editorConfig, 'config.interactionType')] || {};\n        }\n        this.redirectToQuestionTab(_.get(this.editorConfig, 'config.mode'));\n      }\n    );\n  }\n\n  initializeFrameworkAndChannel(collection?: any) {\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\n  getFrameworkDetails(categoryDefinitionData) {\n    this.setPublishCheckList(categoryDefinitionData);\n    if (_.isEmpty(this.targetFramework || _.get(this.editorConfig, 'context.targetFWIds'))) {\n      this.setTargetFrameworkData(categoryDefinitionData);\n    }\n    this.setOrgFrameworkData(categoryDefinitionData)\n\n  }\n\n  setOrgFrameworkData(categoryDefinitionData) {\n    let orgFWIdentifiers: any;\n    let orgFWType: any;\n    orgFWIdentifiers = _.get(categoryDefinitionData, 'result.objectCategoryDefinition.objectMetadata.schema.properties.framework.enum') ||\n    _.get(categoryDefinitionData, 'result.objectCategoryDefinition.objectMetadata.schema.properties.framework.default');\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  setTargetFrameworkData(categoryDefinitionData) {\n    let targetFWIdentifiers;\n    let targetFWType;\n    targetFWIdentifiers = _.get(categoryDefinitionData, 'result.objectCategoryDefinition.objectMetadata.schema.properties.targetFWIds.default');\n    if (_.isEmpty(targetFWIdentifiers)) {\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 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  setPublishCheckList(categoryDefinitionData) {\n    this.publishchecklist = _.get(categoryDefinitionData, 'result.objectCategoryDefinition.forms.publishchecklist.properties') || _.get(categoryDefinitionData, 'result.objectCategoryDefinition.forms.review.properties') || [];\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        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        ecm = field.options;\n        field.options = this.setEcm;\n      }\n    });\n    if ( this.objectType === 'questionset' && _.has(formsConfigObj, 'searchConfig')) {\n        this.questionlibraryInput.searchFormConfig = _.get(formsConfigObj, 'searchConfig.properties');\n        this.questionlibraryInput.metadataFormConfig = _.get(formsConfigObj, 'childMetadata')\n    } else {\n      this.questionlibraryInput.searchFormConfig = _.get(formsConfigObj, 'search.properties');\n      this.questionlibraryInput.metadataFormConfig = _.get(formsConfigObj, 'childMetadata')\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  }\n\n  mergeCollectionExternalProperties(): Observable<any> {\n    const requests = [];\n    this.collectionTreeNodes = null;\n    requests.push(this.editorService.fetchCollectionHierarchy(this.collectionId));\n    if (this.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.${this.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 (this.objectType === 'questionset') {\n        const questionSetResponse = _.last(responseList);\n        const data = _.get(questionSetResponse, _.toLower(`result.${this.objectType}`));\n        this.collectionTreeNodes.data.instructions = data.instructions ? data.instructions : '';\n        this.collectionTreeNodes.data.outcomeDeclaration = data?.outcomeDeclaration;\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  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          if (_.get(this.editorConfig, 'config.enableQuestionCreation') === false) {\n            this.mergeCollectionExternalProperties().subscribe(response => {\n              this.redirectToChapterListTab({\n                collection: _.get(this.collectionTreeNodes, 'data')\n              });\n            });\n\n          }\n        }).catch(((error: string) => {\n          this.buttonLoaders.saveAsDraftButtonLoader = false;\n          this.toasterService.error(error);\n        }));\n        break;\n      case 'previewContent':\n        this.previewContent();\n        break;\n      case 'showQuestionLibraryPage':\n        this.showQuestionLibraryComponentPage();\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        this.onFormStatusChange(event.event);\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 '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: 'questionset_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  showQuestionLibraryComponentPage() {\n    if (_.isUndefined(this.questionlibraryInput.searchFormConfig) || _.isEmpty(this.questionlibraryInput.searchFormConfig)) {\n      this.toasterService.error(_.get(this.configService, 'labelConfig.err.searchConfigNotFound'));\n      return;\n    }\n    if (_.isUndefined(this.questionlibraryInput.metadataFormConfig) || _.isEmpty(this.questionlibraryInput.metadataFormConfig)) {\n      this.toasterService.error(_.get(this.configService, 'labelConfig.err.metadataFormConfigNotFound'));\n      return;\n    }\n    if (this.editorService.checkIfContentsCanbeAdded('add')) {\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            createdByField: _.get(this.editorConfig, 'config.createdByField')\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.questionlibraryInput.searchFormConfig,\n          metadataFormConfig: this.questionlibraryInput.metadataFormConfig\n        };\n        if(this.treeService.getEval()) {\n          this.questionlibraryInput.collection.evalMode = \"server\"\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 = 'questionset_editor';\n      this.telemetryService.telemetryPageId = this.pageId;\n    });\n  }\n\n  onQuestionLibraryChange(event: any) {\n    switch (event.action) {\n      case 'addBulk':\n        this.addResourceToQuestionset(event.collectionIds, event.resourceType);\n        break;\n      case 'back':\n        this.libraryEventListener({});\n        break;\n    }\n  }\n\n  public addResourceToQuestionset(contentId, resourceType) {\n    const activeNode = this.treeService.getActiveNode();\n    const children: any[] = _.isArray(contentId) ? contentId : [contentId];\n    if (resourceType === 'Question') {\n      if (activeNode?.data?.id) {\n        this.editorService.addResourceToQuestionset(this.collectionId, activeNode.data.id,\n          children).subscribe(res => {\n          if (_.get(res, 'responseCode') === 'OK') {\n            this.libraryEventListener({});\n          }\n        }, err => {\n          const errInfo = {\n            errorMsg: _.get(this.configService, 'labelConfig.messages.error.041')\n          };\n          return throwError(this.editorService.apiErrorHandling(err, errInfo));\n        });\n      }\n    }\n  }\n\n  saveContent() {\n    return new Promise(async (resolve, reject) => { //NOSONAR\n      if (!this.validateFormStatus()) {\n        return reject(_.get(this.configService, 'labelConfig.messages.error.029'));\n      }\n      if (this.objectType.toLowerCase() === 'questionset') {\n        const maxScore = await this.editorService.getMaxScore();\n        this.treeService.updateMetaDataProperty('outcomeDeclaration', { maxScore: { cardinality: 'single', type: 'integer', defaultValue: maxScore } });\n      }\n      this.editorService.updateHierarchy()\n        .pipe(map(data => _.get(data, 'result'))).subscribe(response => {\n          if (!_.isEmpty(response.identifiers)) {\n            this.treeService.replaceNodeId(response.identifiers);\n          }\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    } 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      this.collectionTreeNodes = {\n        data: _.get(res, `result.${this.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      _.set(treeNodeData.timeLimits, 'questionSet.max', _.parseInt(this.helperService.hmsToSeconds(treeNodeData.maxTime)));\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    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        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        this.setChildQuestion = event.isChildQuestion;\n        if (this.editorService.checkIfContentsCanbeAdded('create')) {\n          this.buttonLoaders.addFromLibraryButtonLoader = true;\n          this.templateList = this.editorService.templateList;\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    this.editorService.templateList = this.templateList;\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    // this will activate the save and cancel button\n    this.editorConfig.config.showSourcingStatus = false;\n    // tslint:disable-next-line:max-line-length\n    this.editorService.getCategoryDefinition(selectedQuestionType, this.editorConfig.context.channel, '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      if (!_.isEmpty(selectedTemplateFormFields)) {\n        this.setLeafFormConfig(selectedTemplateFormFields);\n      }\n\n      const catMetaData = _.get(selectedtemplateDetails, 'objectMetadata');\n      if (_.get(this.editorConfig, 'config.renderTaxonomy') === true) {\n        this.questionComponentInput.config = {maximumOptions:_.get(catMetaData, 'config.maximumOptions')};\n      } else {\n        this.questionComponentInput.config = {};\n      }\n      this.setEnforceCorrectAnswer(catMetaData);\n      if (_.isEmpty(_.get(catMetaData, 'schema.properties.interactionTypes.items.enum'))) {\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    },(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\n  setEnforceCorrectAnswer(catMetaData) {\n    this.sourcingSettings = _.get(catMetaData, 'config.sourcingSettings') || {};\n    if (!_.has(this.sourcingSettings, 'enforceCorrectAnswer')) {\n      this.sourcingSettings.enforceCorrectAnswer = true;\n    }\n  }\n\n  setLeafFormConfig(selectedTemplateFormFields) {\n    const questionCategoryConfig = selectedTemplateFormFields;\n    questionCategoryConfig.forEach(field => {\n      if (field.code === 'evidenceMimeType') {\n        evidenceMimeType = field.range;\n        field.options = this.setEvidence;\n        field.range = null;\n      }\n    });\n    this.leafFormConfig = questionCategoryConfig;\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      ...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    this.pageId = 'question';\n\n    if(!_.isUndefined(mode) && _.get(this.editorConfig, 'config.renderTaxonomy') === true){\n      this.setQuestionInputOnRenderTaxonomy(mode);\n    }\n  }\n\n  setQuestionInputOnRenderTaxonomy(mode) {\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            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.setEnforceCorrectAnswer(catMetaData);\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\n  questionEventListener(event: any) {\n    if (event.type === 'createNewContent') {\n      this.treeEventListener(event)\n    }\n    this.selectedNodeData = undefined;\n    if (this.objectType === 'question') {\n      this.editorEmitter.emit({\n        close: true, library: 'questionset_editor', action: event.actionType, identifier: event.identifier\n      });\n    } else {\n      this.mergeCollectionExternalProperties().subscribe((res: any) => {\n        this.pageId = 'questionset_editor';\n        this.telemetryService.telemetryPageId = this.pageId;\n      });\n    }\n  }\n\n  get contentPolicyUrl() {\n    return this.editorService.contentPolicyUrl;\n  }\n\n  get commonFrameworkLicenseUrl() {\n    return this.editorService.commonFrameworkLicenseUrl;\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\n  isReviewMode() {\n    return  _.includes([ 'review', 'read', 'sourcingreview', 'orgreview' ], this.editorService.editorMode);\n   }\n\n  onFormStatusChange(form) {\n    const selectedNode = this.treeService.getActiveNode();\n    if (selectedNode?.data?.id) {\n      this.formStatusMapper[selectedNode.data.id] = form.isValid;\n    }\n  }\n\n  assignPageEmitterListener(event: any) {\n    this.pageId = 'questionset_editor';\n  }\n\n  ngOnDestroy() {\n    if (this.telemetryService) {\n      this.generateTelemetryEndEvent();\n    }\n    if (this.treeService) {\n      this.treeService.clearTreeCache();\n    }\n    if (this?.modal && this?.modal?.deny) {\n      this.modal.deny();\n    }\n\n    if (this.unSubscribeshowQuestionLibraryPageEmitter) {\n      this.unSubscribeshowQuestionLibraryPageEmitter.unsubscribe();\n    }\n    this.unsubscribe$.next();\n    this.unsubscribe$.complete();\n  }\n\n\n  setEvidence(control, depends: UntypedFormControl[], formGroup: UntypedFormGroup, loading, loaded) {\n    control.isVisible = 'no';\n    control.range = 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: evidenceMimeType});\n            } else {\n                control.isVisible = 'no';\n                return of(null);\n            }\n        })\n    );\n  }\n\n  setEcm(control, depends: UntypedFormControl[], formGroup: UntypedFormGroup, loading, loaded) {\n    control.isVisible = 'no';\n    control.options = 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: ecm});\n            } else {\n                control.isVisible = 'no';\n                return of(null);\n            }\n        })\n    );\n  }\n\n  setAllowEcm(control, depends: UntypedFormControl[]) {\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=\"'questionset_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=\"three wide column p-0 overflow-y  mb-40 h-100vh\">\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-qumlplayer-page *ngIf=\"isQumlPlayer\" [leafFormConfig]=\"leafFormConfig\" [questionMetaData]=\"selectedNodeData\" [questionSetHierarchy]=\"collectionTreeNodes?.data\"\n                      (toolbarEmitter)=\"toolbarEventListener($event)\">\n                    </lib-qumlplayer-page>\n                  <div *ngIf=\"relationFormConfig\" class=\"p-2\">\n                    <hr>\n                    <lib-relational-metadata [contentMetadata]=\"selectedNodeData\" [formConfig]=\"relationFormConfig\" (statusChanges)=\"onFormStatusChange($event)\"></lib-relational-metadata>\n                  </div>\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> {{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=\"{{commonFrameworkLicenseUrl}}\" 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=\"'question_library'\">\n    <lib-library [libraryInput]=\"questionlibraryInput\" (libraryEmitter)=\"onQuestionLibraryChange($event)\"></lib-library>\n  </ng-container>\n  <ng-container *ngSwitchCase=\"'question'\">\n    <lib-question *ngIf=\"leafFormConfig\" [questionInput]=\"questionComponentInput\" [leafFormConfig]=\"leafFormConfig\" [sourcingSettings]=\"sourcingSettings\"  (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<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>","import { Component} from \"@angular/core\";\nimport { ConfigService } from \"../../services/config/config.service\";\n\n@Component({\n  selector: \"lib-translations\",\n  templateUrl: \"./translations.component.html\",\n  styleUrls: [\"./translations.component.scss\"],\n})\nexport class TranslationsComponent {\n  public editorState: any = {};\n  sampleJson = {\n    body: {\n      en: \"What is the shape of the earth?\",\n    },\n    responseDeclaration: {\n      response1: {\n        maxScore: 1,\n        cardinality: \"single\",\n        type: \"integer\",\n        mapping: [\n          {\n            response: 0,\n            outcomes: {\n              FEEDBACK: \"feedback1\",\n            },\n          },\n          {\n            response: 1,\n            outcomes: {\n              FEEDBACK: \"feedback2\",\n            },\n          },\n          {\n            response: 2,\n            outcomes: {\n              FEEDBACK: \"feedback3\",\n            },\n          },\n        ],\n      },\n    },\n    interactionTypes: [\"choice\"],\n    hints: {\n      en: [\"hints in the specified language\"],\n    },\n    instructions: \"instructions in the specified language\",\n    interactions: {\n      response1: {\n        type: \"choice\",\n        validation: {\n          required: \"Yes/No\",\n        },\n        options: [\n          {\n            label: {\n              en: [\"Circular\"],\n            },\n            hints: {\n              en: [\"hints in the specified language\"],\n            },\n            value: 0,\n          },\n          {\n            label: {\n              en: [\"Spherical\"],\n            },\n            hints: {\n              en: [\"hints in the specified language\"],\n            },\n            value: 1,\n          },\n          {\n            label: {\n              en: [\"Rectangle\"],\n            },\n            hints: {\n              en: [\"hints in the specified language\"],\n            },\n            value: 1,\n          },\n          {\n            label: {\n              en: [\"Square\"],\n            },\n            hints: {\n              en: [\"hints in the specified language\"],\n            },\n            value: 1,\n          },\n        ],\n      },\n    },\n    solution: [],\n    media: [],\n    showEvidence: \"Yes/No\",\n    evidence: {\n      required: \"Yes/No\",\n      mimeType: [\"image/png\", \"audio/mp3\", \"video/mp4\", \"video/webm\"],\n      minCount: 1,\n      maxCount: 1,\n      sizeLimit: \"20480\",\n      caption: \"Yes/No\",\n    },\n    showRemarks: \"Yes/No\",\n    remarks: {\n      maxLength: \"\",\n      required: \"Yes/No\",\n    },\n    canBeNotApplicable: \"Yes/No\",\n  };\n  constructor(public configService: ConfigService) {}\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    }\n\n    if (event.mediaobj) {\n      const media = event.mediaobj;\n      console.log(media);\n    }\n  }\n}\n","<div class=\"tarnslation\">\n    <label class=\"fs-0-92 font-weight-bold\">{{configService.labelConfig?.lbl?.translation}}</label>\n</div>\n<div class=\"py-20 px-32 sb-bg-color-primary-0 br-4 b-1-100\">\n    <div class=\"sb-field-group\" *ngIf=\"sampleJson\">\n        <label class=\"fs-0-92 font-weight-bold\">{{configService.labelConfig?.lbl?.question}}</label>\n        <div class=\"fs-0-92\" *ngIf=\"sampleJson.body\">\n            <h5 class=\"label-align\">{{sampleJson.body.en}}</h5>\n            <div class=\"ckeditor-tool__question mb-5 mt-15\">\n                <lib-ckeditor-tool (editorDataOutput)=\"editorDataHandler($event, 'question')\"\n                    [editorDataInput]=\"editorState.question\"></lib-ckeditor-tool>\n            </div>\n        </div>\n        <div *ngIf=\"sampleJson.interactionTypes[0]=='choice' &&sampleJson.interactions.response1.options.length\">\n            <label class=\"fs-0-92 font-weight-bold\">{{configService.labelConfig?.lbl?.options}}</label>\n            <div class=\"fs-0-92\" *ngFor=\"let options of sampleJson.interactions.response1.options\">\n                <h5 class=\"label-align mt-15\">{{options.label.en}}</h5>\n                <div class=\"ckeditor-tool__question mb-5\">\n                    <lib-ckeditor-tool (editorDataOutput)=\"editorDataHandler($event, 'question')\"\n                        [editorDataInput]=\"editorState.question\"></lib-ckeditor-tool>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgModule } from '@angular/core';\nimport { CommonFormElementsModule } from '@project-sunbird/common-form-elements-full';\nimport { SuiModule } from 'ng2-semantic-ui-v9';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\nimport { HttpClientModule } from '@angular/common/http';\nimport { SanitizeHtmlPipe } from './pipes/sanitize-html.pipe';\nimport { InterpolatePipe } from './pipes/interpolate.pipe';\nimport { QuestionsetEditorLibraryComponent } from './questionset-editor-library.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 { TemplateComponent } from './components/template/template.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 { 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 { QuestionOptionSubMenuComponent } from './components/question-option-sub-menu/question-option-sub-menu.component';\nimport { SliderComponent } from './components/slider/slider.component';\nimport { TranslationsComponent } from './components/translations/translations.component';\nimport { PublishChecklistComponent } from './components/publish-checklist/publish-checklist.component';\nimport { RelationalMetadataComponent } from './components/relational-metadata/relational-metadata.component';\nimport { ResourceLibraryModule } from 'compass-resource-library';\nimport { AppLoaderComponent } from './components/app-loader/app-loader.component';\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';\n\nimport { QualityParamsModalComponent } from './components/quality-params-modal/quality-params-modal.component';\n@NgModule({\n  declarations: [\n    QuestionsetEditorLibraryComponent,\n    InterpolatePipe,\n    SanitizeHtmlPipe,\n    EditorComponent,\n    QumlplayerPageComponent,\n    HeaderComponent,\n    FancyTreeComponent,\n    MetaFormComponent,\n    QuestionComponent,\n    OptionsComponent,\n    AnswerComponent,\n    CkeditorToolComponent,\n    TemplateComponent,\n    TelemetryInteractDirective,\n    AssetBrowserComponent,\n    CollectionIconComponent,\n    QumlPlayerComponent,\n    PublishChecklistComponent,\n    QuestionOptionSubMenuComponent,\n    SliderComponent,\n    TranslationsComponent,\n    AppLoaderComponent,\n    RelationalMetadataComponent,\n    AssignPageNumberComponent,\n    PlainTreeComponent,\n    ProgressStatusComponent,\n    TermAndConditionComponent,\n    QualityParamsModalComponent\n  ],\n  imports: [CommonModule, FormsModule, ReactiveFormsModule.withConfig({callSetDisabledState: 'whenDisabledForLegacyCode'}), RouterModule.forChild([]), SuiModule,\n  CommonFormElementsModule, InfiniteScrollModule, HttpClientModule, ResourceLibraryModule, A11yModule],\n  providers: [\n  ],\n  exports: [EditorComponent],\n})\nexport class QuestionsetEditorLibraryModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["observableThrowError","observableOf","uuidv4","i1","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.DataService","i3.PublicDataService","i1.EditorTelemetryService","i1.EditorService","i1.ConfigService","i2.PlayerService","i3.EditorService","i4","i4.TreeService","i5.FrameworkService","i6","i8.TelemetryInteractDirective","i9.QumlPlayerComponent","i3","i5","i6.TelemetryInteractDirective","i7.InterpolatePipe","i2.EditorTelemetryService","i7.TelemetryInteractDirective","i8.PublishChecklistComponent","i2.EditorService","i3.EditorTelemetryService","i4.HelperService","i5.ToasterService","i6.ConfigService","i2","i4.PublicDataService","i5.EditorService","i3.QuestionService","i3.AssetBrowserComponent","i2.TreeService","i3.FrameworkService","i5.ConfigService","i6.ToasterService","i8","i9.CollectionIconComponent","i1.QuestionService","i3.ToasterService","i4.ConfigService","i9","i3.TreeService","i4.EditorService","i7.CkeditorToolComponent","i9.QuestionOptionSubMenuComponent","i10.SanitizeHtmlPipe","i4.CkeditorToolComponent","i5.SanitizeHtmlPipe","i4.PlayerService","i6.TreeService","i7.FrameworkService","i9.ConfigService","i10.EditorCursor","i11","i12","i14","i15.HeaderComponent","i16.OptionsComponent","i17.AnswerComponent","i18.CkeditorToolComponent","i19.TelemetryInteractDirective","i20.QumlPlayerComponent","i21.QuestionOptionSubMenuComponent","i22.SliderComponent","i23.AppLoaderComponent","i24.TermAndConditionComponent","i25.QualityParamsModalComponent","i26.SanitizeHtmlPipe","i5.TelemetryInteractDirective","i5.HeaderComponent","i6.PlainTreeComponent","i3.HeaderComponent","i5.EditorTelemetryService","i7.ToasterService","i8.ConfigService","i10","i13","i14.QumlplayerPageComponent","i16.FancyTreeComponent","i17.MetaFormComponent","i18.QuestionComponent","i19.TemplateComponent","i20.TelemetryInteractDirective","i21.QumlPlayerComponent","i22.RelationalMetadataComponent","i23.AssignPageNumberComponent","i24.ProgressStatusComponent","i3.CkeditorToolComponent"],"mappings":"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"}