cedar-embeddable-editor 0.9.2 → 0.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/main.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"main.js","mappings":"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AAc,EAAE,CAAC;CAClB;AAED,IAAI,6EAAsB,EAAE;IAC1B,yFAAsB,EAAE,CAAC,eAAe,CAAC,+DAAa,CAAC;SACpD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;CACrC;KAAM;IACL,yFAAsB,EAAE,CAAC,eAAe,CAAC,6DAAY,CAAC;SACnD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;CACrC;;;;;;;;;;;AC3BD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/app.component.dev.ts","./src/app/app.component.prod.ts","./src/app/app.module.dev.ts","./src/app/app.module.prod.ts","./src/app/modules/input-types/components/cedar-foo-bar/cedar-foo-bar.component.ts","./src/app/modules/input-types/components/cedar-input-attribute-value/cedar-input-attribute-value.component.ts","./src/app/modules/input-types/components/cedar-input-checkbox/cedar-input-checkbox.component.ts","./src/app/modules/input-types/components/cedar-input-controlled/cedar-input-controlled.component.ts","./src/app/modules/input-types/components/cedar-input-datetime/cedar-input-datetime.component.ts","./src/app/modules/input-types/components/cedar-input-email/cedar-input-email.component.ts","./src/app/modules/input-types/components/cedar-input-link/cedar-input-link.component.ts","./src/app/modules/input-types/components/cedar-input-multiple-choice/cedar-input-multiple-choice.component.ts","./src/app/modules/input-types/components/cedar-input-numeric/cedar-input-numeric.component.ts","./src/app/modules/input-types/components/cedar-input-phone/cedar-input-phone.component.ts","./src/app/modules/input-types/components/cedar-input-select/cedar-input-select.component.ts","./src/app/modules/input-types/components/cedar-input-text/cedar-input-text.component.ts","./src/app/modules/input-types/components/cedar-static-image/cedar-static-image.component.ts","./src/app/modules/input-types/components/cedar-static-page-break/cedar-static-page-break.component.ts","./src/app/modules/input-types/components/cedar-static-rich-text/cedar-static-rich-text.component.ts","./src/app/modules/input-types/components/cedar-static-section-break/cedar-static-section-break.component.ts","./src/app/modules/input-types/components/cedar-static-youtube/cedar-static-youtube.component.ts","./src/app/modules/input-types/input-types.module.ts","./src/app/modules/shared/components/cedar-component-header/cedar-component-header.component.ts","./src/app/modules/shared/components/cedar-component-renderer/cedar-component-renderer.component.ts","./src/app/modules/shared/components/cedar-data-saver/cedar-data-saver.component.ts","./src/app/modules/shared/components/cedar-embeddable-metadata-editor-wrapper/cedar-embeddable-metadata-editor-wrapper.component.ts","./src/app/modules/shared/components/cedar-embeddable-metadata-editor/cedar-embeddable-metadata-editor.component.ts","./src/app/modules/shared/components/cedar-multi-pager/cedar-multi-pager.component.ts","./src/app/modules/shared/components/date-picker/date-picker.component.ts","./src/app/modules/shared/components/file-uploader/bytes/bytes.pipe.ts","./src/app/modules/shared/components/file-uploader/file-upload-input-for/file-upload-input-for.directive.ts","./src/app/modules/shared/components/file-uploader/file-uploader.component.ts","./src/app/modules/shared/components/file-uploader/mat-file-upload-queue/mat-file-upload-queue.component.ts","./src/app/modules/shared/components/file-uploader/mat-file-upload-queue/mat-file-upload-queue.service.ts","./src/app/modules/shared/components/file-uploader/mat-file-upload.module.ts","./src/app/modules/shared/components/file-uploader/mat-file-upload/mat-file-upload.component.ts","./src/app/modules/shared/components/file-uploader/mat-file-upload/mat-file-upload.service.ts","./src/app/modules/shared/components/preferences-menu/preferences-menu.component.ts","./src/app/modules/shared/components/sample-templates/sample-template-select/sample-template-select.component.ts","./src/app/modules/shared/components/sample-templates/sample-templates.component.ts","./src/app/modules/shared/components/sample-templates/sample-templates.service.ts","./src/app/modules/shared/components/source-panels/source-panels.component.ts","./src/app/modules/shared/components/static-footer/static-footer.component.ts","./src/app/modules/shared/components/static-header/static-header.component.ts","./src/app/modules/shared/components/timezone-picker/timezone-picker.component.ts","./src/app/modules/shared/factory/template-representation.factory.ts","./src/app/modules/shared/handler/component-type.handler.ts","./src/app/modules/shared/handler/data-object-builder.handler.ts","./src/app/modules/shared/handler/data-object-data-value.handler.ts","./src/app/modules/shared/handler/data-object-structure.handler.ts","./src/app/modules/shared/handler/multi-instance-object.handler.ts","./src/app/modules/shared/models/cedar-model.model.ts","./src/app/modules/shared/models/element/abstract-element-component.model.ts","./src/app/modules/shared/models/element/multi-element-component.model.ts","./src/app/modules/shared/models/element/single-element-component.model.ts","./src/app/modules/shared/models/enum/data-object-building-mode.model.ts","./src/app/modules/shared/models/field/abstract-field-component.model.ts","./src/app/modules/shared/models/field/multi-field-component.model.ts","./src/app/modules/shared/models/field/single-field-component.model.ts","./src/app/modules/shared/models/info/basic-info.model.ts","./src/app/modules/shared/models/info/choice-info.model.ts","./src/app/modules/shared/models/info/choice-option.model.ts","./src/app/modules/shared/models/info/content-info.model.ts","./src/app/modules/shared/models/info/controlled-info.model.ts","./src/app/modules/shared/models/info/label-info.model.ts","./src/app/modules/shared/models/info/multi-info.model.ts","./src/app/modules/shared/models/info/multi-instance-info.model.ts","./src/app/modules/shared/models/info/multi-instance-object-info.model.ts","./src/app/modules/shared/models/info/number-info.model.ts","./src/app/modules/shared/models/info/value-info.model.ts","./src/app/modules/shared/models/input-type.model.ts","./src/app/modules/shared/models/instance-extract-data.model.ts","./src/app/modules/shared/models/instance-full-data.model.ts","./src/app/modules/shared/models/javascript-types.model.ts","./src/app/modules/shared/models/json-schema.model.ts","./src/app/modules/shared/models/numbers.model.ts","./src/app/modules/shared/models/rest/integrated-search/integrated-search-request-parameter-object.ts","./src/app/modules/shared/models/rest/integrated-search/integrated-search-request-value-constraints.ts","./src/app/modules/shared/models/rest/integrated-search/integrated-search-request.ts","./src/app/modules/shared/models/static/static-field-component.model.ts","./src/app/modules/shared/models/template/cedar-template.model.ts","./src/app/modules/shared/models/template/empty-template.model.ts","./src/app/modules/shared/models/template/null-template.model.ts","./src/app/modules/shared/models/temporal.model.ts","./src/app/modules/shared/models/ui/cedar-ui-component.model.ts","./src/app/modules/shared/models/xsd.model.ts","./src/app/modules/shared/pipe/keep-html.pipe.ts","./src/app/modules/shared/pipe/rdf.pipe.ts","./src/app/modules/shared/service/active-component-registry.service.ts","./src/app/modules/shared/service/component-data.service.ts","./src/app/modules/shared/service/controlled-field-data.service.ts","./src/app/modules/shared/service/date-time/custom-date-adapter.ts","./src/app/modules/shared/service/date-time/date-time.service.ts","./src/app/modules/shared/service/local-settings.service.ts","./src/app/modules/shared/service/message-handler.service.ts","./src/app/modules/shared/service/page-break-paginator.service.ts","./src/app/modules/shared/shared.module.ts","./src/app/modules/shared/util/data-context.ts","./src/app/modules/shared/util/data-object-util.ts","./src/app/modules/shared/util/handler-context.ts","./src/app/modules/shared/util/template-object-util.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import {Component, OnInit} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {LocalSettingsService} from './modules/shared/service/local-settings.service';\nimport {environment} from '../environments/environment';\n\n@Component({\n selector: 'app-component-dev',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponentDev implements OnInit {\n\n ceeConfig = {\n showTemplateUpload: true,\n templateUploadBaseUrl: 'http://localhost:8000',\n // templateUploadBaseUrl: 'https://api-php.cee.metadatacenter.orgx',\n templateUploadEndpoint: '/upload.php',\n templateDownloadEndpoint: '/download.php',\n templateUploadParamName: '3520cf061bba4919a8ea4b74a07af01b',\n templateDownloadParamName: '9ff482bacac84c499655ab58efdf590a',\n\n showDataSaver: true,\n dataSaverEndpointUrl: 'http://localhost:8000/datasave.php',\n\n sampleTemplateLocationPrefix: 'http://localhost:4240/cedar-embeddable-editor-sample-templates/',\n // sampleTemplateLocationPrefix: 'https://component.staging.metadatacenter.org/cedar-embeddable-editor-sample-templates/',\n loadSampleTemplateName: '45',\n showSampleTemplateLinks: true,\n expandedSampleTemplateLinks: true,\n showTemplateRenderingRepresentation: true,\n showHeader: true,\n showFooter: false,\n\n // terminologyProxyUrl: 'https://api-php.cee.metadatacenter.orgx/index.php',\n // terminologyProxyUrl: 'http://localhost:8000/index.php',\n terminologyProxyUrl: 'https://terminology.metadatacenter.orgx/bioportal/integrated-search',\n showInstanceDataCore: true,\n expandedInstanceDataCore: false,\n showMultiInstanceInfo: true,\n expandedMultiInstanceInfo: false,\n collapseStaticComponents: true,\n\n showStaticText: true,\n };\n\n languages = {\n selected: 'en',\n options: [{value: 'en', viewValue: 'en'}, {value: 'hu', viewValue: 'hu'}]\n };\n\n\n constructor(\n ) {\n }\n\n ngOnInit(): void {\n }\n\n // getCurrentLanguageCode() {\n // return this.translateService.currentLang;\n // }\n //\n // switchLanguage($event: any, language: string) {\n // $event.preventDefault();\n // this.translateService.use(language);\n // this.localSettings.setLanguage(language);\n // }\n //\n // setLanguage(language: string) {\n // this.translateService.use(language);\n // this.localSettings.setLanguage(language);\n // }\n\n}\n","import {Component, OnInit} from '@angular/core';\nimport {LocalSettingsService} from './modules/shared/service/local-settings.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {environment} from '../environments/environment';\n\n@Component({\n selector: 'app-component-prod',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponentProd implements OnInit {\n\n ceeConfig = {\n showTemplateUpload: true,\n templateUploadBaseUrl: 'http://localhost:8000',\n // templateUploadBaseUrl: 'https://api-php.cee.metadatacenter.orgx',\n templateUploadEndpoint: '/upload.php',\n templateDownloadEndpoint: '/download.php',\n templateUploadParamName: '3520cf061bba4919a8ea4b74a07af01b',\n templateDownloadParamName: '9ff482bacac84c499655ab58efdf590a',\n\n showDataSaver: true,\n dataSaverEndpointUrl: 'http://localhost:8000/datasave.php',\n\n sampleTemplateLocationPrefix: 'https://component.metadatacenter.orgx/cedar-embeddable-editor-sample-templates/',\n // sampleTemplateLocationPrefix: 'https://component.staging.metadatacenter.org/cedar-embeddable-editor-sample-templates/',\n loadSampleTemplateName: '45',\n showSampleTemplateLinks: true,\n expandedSampleTemplateLinks: true,\n showTemplateRenderingRepresentation: true,\n showHeader: false,\n showFooter: false,\n\n // terminologyProxyUrl: 'https://api-php.cee.metadatacenter.orgx/index.php',\n // terminologyProxyUrl: 'http://localhost:8000/index.php',\n terminologyProxyUrl: 'https://terminology.metadatacenter.org/bioportal/integrated-search',\n showInstanceDataCore: true,\n expandedInstanceDataCore: false,\n showMultiInstanceInfo: true,\n expandedMultiInstanceInfo: false,\n collapseStaticComponents: true,\n\n showStaticText: true,\n };\n\n\n languages = {\n selected: 'en',\n options: [{value: 'en', viewValue: 'en'}, {value: 'hu', viewValue: 'hu'}]\n };\n\n\n constructor(\n ) {\n }\n\n ngOnInit(): void {\n }\n\n // getCurrentLanguageCode() {\n // return this.translateService.currentLang;\n // }\n //\n // switchLanguage($event: any, language: string) {\n // $event.preventDefault();\n // this.translateService.use(language);\n // this.localSettings.setLanguage(language);\n // }\n //\n // setLanguage(language: string) {\n // this.translateService.use(language);\n // this.localSettings.setLanguage(language);\n // }\n\n\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport {Injector, NgModule} from '@angular/core';\nimport {createCustomElement} from '@angular/elements';\nimport {HttpClient, HttpClientModule} from '@angular/common/http';\nimport {AppComponentDev} from './app.component.dev';\nimport {SharedModule} from './modules/shared/shared.module';\nimport {JsonPipe} from '@angular/common';\nimport {InputTypesModule} from './modules/input-types/input-types.module';\nimport {\n CedarEmbeddableMetadataEditorWrapperComponent\n} from './modules/shared/components/cedar-embeddable-metadata-editor-wrapper/cedar-embeddable-metadata-editor-wrapper.component';\nimport {TranslateHttpLoader} from '@ngx-translate/http-loader';\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\n\nexport function HttpLoaderFactory(http: HttpClient): TranslateHttpLoader {\n return new TranslateHttpLoader(http, '/assets/i18n-cee/');\n}\n\n@NgModule({\n declarations: [\n AppComponentDev\n ],\n imports: [\n BrowserModule,\n HttpClientModule,\n SharedModule,\n InputTypesModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient]\n }\n }),\n ],\n providers: [\n JsonPipe\n ],\n bootstrap: [\n AppComponentDev\n ],\n exports: [],\n entryComponents: [\n CedarEmbeddableMetadataEditorWrapperComponent\n ]\n})\nexport class AppModuleDev {\n\n constructor(private injector: Injector) {\n }\n\n ngDoBootstrap(): void {\n const cedarCustomElement = createCustomElement(CedarEmbeddableMetadataEditorWrapperComponent, {\n injector: this.injector\n });\n customElements.define('cedar-embeddable-editor', cedarCustomElement);\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport {Injector, NgModule} from '@angular/core';\nimport {createCustomElement} from '@angular/elements';\nimport {HttpClient, HttpClientModule} from '@angular/common/http';\nimport {AppComponentProd} from './app.component.prod';\nimport {SharedModule} from './modules/shared/shared.module';\nimport {JsonPipe} from '@angular/common';\nimport {InputTypesModule} from './modules/input-types/input-types.module';\nimport {\n CedarEmbeddableMetadataEditorWrapperComponent\n} from './modules/shared/components/cedar-embeddable-metadata-editor-wrapper/cedar-embeddable-metadata-editor-wrapper.component';\nimport {TranslateHttpLoader} from '@ngx-translate/http-loader';\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\n\nexport function HttpLoaderFactory(http: HttpClient): TranslateHttpLoader {\n return new TranslateHttpLoader(http, '/assets/i18n-cee/');\n}\n\n@NgModule({\n declarations: [\n AppComponentProd\n ],\n imports: [\n BrowserModule,\n HttpClientModule,\n SharedModule,\n InputTypesModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient]\n }\n }),\n ],\n providers: [\n JsonPipe\n ],\n bootstrap: [],\n exports: [],\n entryComponents: [\n CedarEmbeddableMetadataEditorWrapperComponent\n ]\n})\nexport class AppModuleProd {\n\n constructor(private injector: Injector) {\n }\n\n ngDoBootstrap(): void {\n const cedarCustomElement = createCustomElement(CedarEmbeddableMetadataEditorWrapperComponent, {\n injector: this.injector\n });\n customElements.define('cedar-embeddable-editor', cedarCustomElement);\n }\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {FormBuilder} from '@angular/forms';\nimport {CedarUIComponent} from '../../../shared/models/ui/cedar-ui-component.model';\nimport {ActiveComponentRegistryService} from '../../../shared/service/active-component-registry.service';\nimport {HandlerContext} from '../../../shared/util/handler-context';\nimport {StaticFieldComponent} from '../../../shared/models/static/static-field-component.model';\n\n@Component({\n selector: 'app-cedar-foo-bar',\n templateUrl: './cedar-foo-bar.component.html',\n styleUrls: ['./cedar-foo-bar.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarFooBarComponent extends CedarUIComponent implements OnInit {\n\n component: StaticFieldComponent;\n @Input() handlerContext: HandlerContext;\n\n constructor(\n fb: FormBuilder,\n private activeComponentRegistry: ActiveComponentRegistryService\n ) {\n super();\n this.activeComponentRegistry = activeComponentRegistry;\n }\n\n ngOnInit(): void {\n }\n\n @Input() set componentToRender(componentToRender: StaticFieldComponent) {\n this.component = componentToRender;\n this.activeComponentRegistry.registerComponent(this.component, this);\n }\n\n setCurrentValue(currentValue: any): void {\n // DO NOTHING\n }\n\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {FieldComponent} from '../../../shared/models/component/field-component.model';\nimport {FormBuilder, FormControl, FormGroup} from '@angular/forms';\nimport {CedarUIComponent} from '../../../shared/models/ui/cedar-ui-component.model';\nimport {ActiveComponentRegistryService} from '../../../shared/service/active-component-registry.service';\nimport {HandlerContext} from '../../../shared/util/handler-context';\n\n\n@Component({\n selector: 'app-cedar-input-attribute-value',\n templateUrl: './cedar-input-attribute-value.component.html',\n styleUrls: ['./cedar-input-attribute-value.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarInputAttributeValueComponent extends CedarUIComponent implements OnInit {\n\n component: FieldComponent;\n options: FormGroup;\n nameInputControl = new FormControl(null, null);\n valueInputControl = new FormControl(null, null);\n @Input() handlerContext: HandlerContext;\n\n constructor(\n fb: FormBuilder,\n private activeComponentRegistry: ActiveComponentRegistryService\n ) {\n super();\n this.options = fb.group({\n nameInputValue: this.nameInputControl,\n valueInputValue: this.valueInputControl,\n });\n }\n\n ngOnInit(): void {\n }\n\n @Input() set componentToRender(componentToRender: FieldComponent) {\n this.component = componentToRender;\n this.activeComponentRegistry.registerComponent(this.component, this);\n }\n\n nameChanged($event: Event): void {\n let name: string = null;\n\n if ($event) {\n name = ($event.target as HTMLTextAreaElement).value;\n } else {\n name = this.nameInputControl.value;\n }\n const value = this.valueInputControl.value;\n this.handlerContext.changeAttributeValue(this.component, name, value);\n this.activeComponentRegistry.updateViewToModel(this.component, this.handlerContext);\n }\n\n valueChanged($event: Event): void {\n let value: string = null;\n\n if ($event) {\n value = ($event.target as HTMLTextAreaElement).value;\n } else {\n value = this.valueInputControl.value;\n }\n\n if (value && value.length === 0) {\n value = null;\n }\n const name = this.nameInputControl.value;\n this.handlerContext.changeAttributeValue(this.component, name, value);\n }\n\n setCurrentValue(currentValue: any): void {\n this.nameInputControl.setValue(Object.keys(currentValue)[0]);\n this.valueInputControl.setValue(Object.values(currentValue)[0]);\n }\n\n deleteCurrentValue(): void {\n const name = this.nameInputControl.value;\n this.handlerContext.deleteAttributeValue(this.component, name);\n }\n\n clearName(): void {\n this.nameInputControl.setValue(null);\n this.handlerContext.changeAttributeValue(this.component, null, this.valueInputControl.value);\n }\n\n clearValue(): void {\n this.valueInputControl.setValue(null);\n this.handlerContext.changeAttributeValue(this.component, this.nameInputControl.value, null);\n }\n\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {FieldComponent} from '../../../shared/models/component/field-component.model';\nimport {FormArray, FormBuilder, FormControl, FormGroup} from '@angular/forms';\nimport {CedarUIComponent} from '../../../shared/models/ui/cedar-ui-component.model';\nimport {ActiveComponentRegistryService} from '../../../shared/service/active-component-registry.service';\nimport {HandlerContext} from '../../../shared/util/handler-context';\n\n@Component({\n selector: 'app-cedar-input-checkbox',\n templateUrl: './cedar-input-checkbox.component.html',\n styleUrls: ['./cedar-input-checkbox.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarInputCheckboxComponent extends CedarUIComponent implements OnInit {\n component: FieldComponent;\n options: FormGroup;\n @Input() handlerContext: HandlerContext;\n\n\n constructor(\n fb: FormBuilder,\n private activeComponentRegistry: ActiveComponentRegistryService\n ) {\n super();\n this.options = fb.group({\n // initialize checked box value holder\n checkedChoices: new FormArray([])\n });\n }\n\n ngOnInit(): void {\n for (const choice of this.component.choiceInfo.choices) {\n const fc = new FormControl();\n this.options.addControl(this.getFormControlName(choice.label), fc);\n }\n this.populateValuesOnLoad();\n }\n\n @Input() set componentToRender(componentToRender: FieldComponent) {\n this.component = componentToRender;\n this.activeComponentRegistry.registerComponent(this.component, this);\n }\n\n inputChanged(event): void {\n this.setInput(event.target.checked, event.target.value);\n }\n\n setCurrentValue(currentValue: any): void {\n const arrVal = currentValue as Array<string>;\n\n for (const choice of this.component.choiceInfo.choices) {\n if (arrVal.indexOf(choice.label) >= 0) {\n this.setInput(true, choice.label);\n } else {\n this.setInput(false, choice.label);\n }\n }\n }\n\n getFormControlName(val): string {\n return val.replace(/\\s+/g, '');\n }\n\n private populateValuesOnLoad(): void {\n for (const choice of this.component.choiceInfo.choices) {\n this.setInput(choice.selectedByDefault, choice.label);\n }\n }\n\n private setInput(isChecked, val): void {\n const formArray: FormArray = this.options.get('checkedChoices') as FormArray;\n\n /* Selected */\n if (isChecked) {\n // Add a new control in the arrayForm\n if (formArray.value.indexOf(val) < 0) {\n formArray.push(new FormControl(val));\n }\n this.options.get(this.getFormControlName(val)).setValue('checked');\n }\n /* unselected */\n else {\n // find the unselected element\n let i = 0;\n\n formArray.controls.forEach((ctrl: FormControl) => {\n if (ctrl.value === val) {\n // Remove the unselected element from the arrayForm\n formArray.removeAt(i);\n this.options.get(this.getFormControlName(val)).setValue(null);\n return;\n }\n i++;\n });\n }\n\n // Keep the values in the original sort order\n const sortingArr = this.component.choiceInfo.choices.map(a => a.label);\n formArray.value.sort((a, b) => sortingArr.indexOf(a) - sortingArr.indexOf(b));\n\n this.handlerContext.changeListValue(this.component, formArray.value);\n }\n\n}\n","import {AfterViewInit, Component, Input, OnInit, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {FieldComponent} from '../../../shared/models/component/field-component.model';\nimport {FormBuilder, FormControl, FormGroup, FormGroupDirective, NgForm, Validators} from '@angular/forms';\nimport {ComponentDataService} from '../../../shared/service/component-data.service';\nimport {CedarUIComponent} from '../../../shared/models/ui/cedar-ui-component.model';\nimport {ActiveComponentRegistryService} from '../../../shared/service/active-component-registry.service';\nimport {HandlerContext} from '../../../shared/util/handler-context';\nimport {ErrorStateMatcher} from '@angular/material/core';\nimport {Observable} from 'rxjs';\nimport {debounceTime, distinctUntilChanged, map, startWith, switchMap} from 'rxjs/operators';\nimport {IntegratedSearchResponseItem} from '../../../shared/models/rest/integrated-search/integrated-search-response-item';\nimport {JsonSchema} from '../../../shared/models/json-schema.model';\nimport {ControlledFieldDataService} from '../../../shared/service/controlled-field-data.service';\nimport {MessageHandlerService} from '../../../shared/service/message-handler.service';\nimport {MatAutocompleteTrigger} from '@angular/material/autocomplete';\nexport class TextFieldErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.invalid && (control.dirty || control.touched));\n }\n}\n\n@Component({\n selector: 'app-cedar-input-controlled',\n templateUrl: './cedar-input-controlled.component.html',\n styleUrls: ['./cedar-input-controlled.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarInputControlledComponent extends CedarUIComponent implements OnInit, AfterViewInit {\n @ViewChild('autoCompleteInput', { static: false, read: MatAutocompleteTrigger }) trigger: MatAutocompleteTrigger;\n selectedData = new FormControl();\n component: FieldComponent;\n options: FormGroup;\n inputValueControl = new FormControl(null, null);\n errorStateMatcher = new TextFieldErrorStateMatcher();\n @Input() handlerContext: HandlerContext;\n model: IntegratedSearchResponseItem = null;\n\n filteredOptions: Observable<IntegratedSearchResponseItem[]>;\n\n constructor(\n fb: FormBuilder,\n public cds: ComponentDataService,\n private activeComponentRegistry: ActiveComponentRegistryService,\n private controlledFieldDataService: ControlledFieldDataService,\n private messageHandlerService: MessageHandlerService\n ) {\n super();\n this.options = fb.group({\n inputValue: this.inputValueControl,\n });\n }\n\n ngOnInit(): void {\n const validators: any[] = [];\n\n if (this.component.valueInfo.requiredValue) {\n validators.push(Validators.required);\n }\n this.inputValueControl = new FormControl(null, validators);\n\n if (this.component.valueInfo.defaultValue &&\n typeof this.component.valueInfo.defaultValue === 'object' &&\n (this.component.valueInfo.defaultValue as object).hasOwnProperty(JsonSchema.termUri)) {\n this.setValueUIAndModel(this.component.valueInfo.defaultValue ? this.component.valueInfo.defaultValue[JsonSchema.termUri] : null,\n this.component.valueInfo.defaultValue ? this.component.valueInfo.defaultValue[JsonSchema.rdfsLabel] : null);\n }\n\n this.filteredOptions = this.inputValueControl.valueChanges\n .pipe(\n startWith(''),\n debounceTime(400),\n distinctUntilChanged(),\n switchMap(val => {\n return this.filter(val || '');\n })\n );\n }\n\n ngAfterViewInit(): void {\n this.trigger.panelClosingActions\n .subscribe(e => {\n if (!e){\n this.clearValue();\n }\n });\n }\n\n filter(val: string): Observable<IntegratedSearchResponseItem[]> {\n return this.controlledFieldDataService.getData(val, this.component).pipe(\n map(response => {\n if (response == null) {\n return null;\n } else if (response.collection) {\n return response.collection.filter(option => {\n return option.prefLabel.toLowerCase().indexOf(val.toLowerCase()) === 0;\n });\n } else {\n if (!val) {\n val = 'empty string';\n }\n this.messageHandlerService.errorObject(val, response);\n }\n })\n );\n }\n\n @Input() set componentToRender(componentToRender: FieldComponent) {\n this.component = componentToRender;\n this.activeComponentRegistry.registerComponent(this.component, this);\n }\n\n onSelectionChange(option: IntegratedSearchResponseItem): void {\n this.handlerContext.changeControlledValue(this.component, option[JsonSchema.atId], option.prefLabel);\n }\n\n inputChanged(event): void {\n if (!(event.target as HTMLTextAreaElement).value) {\n this.clearValue();\n }\n }\n\n setCurrentValue(currentValue: any): void {\n this.inputValueControl.setValue(currentValue);\n }\n\n clearValue(): void {\n this.inputValueControl.setValue(null);\n this.handlerContext.changeControlledValue(this.component, null, null);\n }\n\n private setValueUIAndModel(atId: string, prefLabel: string): void {\n this.inputValueControl.setValue(prefLabel);\n this.handlerContext.changeControlledValue(this.component, atId, prefLabel);\n }\n}\n","import {AfterViewInit, ChangeDetectorRef, Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {FieldComponent} from '../../../shared/models/component/field-component.model';\nimport {FormBuilder, FormControl} from '@angular/forms';\nimport {CedarUIComponent} from '../../../shared/models/ui/cedar-ui-component.model';\nimport {ActiveComponentRegistryService} from '../../../shared/service/active-component-registry.service';\nimport {HandlerContext} from '../../../shared/util/handler-context';\nimport {DatePickerComponent} from '../../../shared/components/date-picker/date-picker.component';\nimport {Xsd} from '../../../shared/models/xsd.model';\nimport {Temporal} from '../../../shared/models/temporal.model';\nimport moment, {Moment} from 'moment';\nimport {TimezonePickerComponent, TZone} from '../../../shared/components/timezone-picker/timezone-picker.component';\n// import {Moment} from 'moment';\n// import * as moment from 'moment-timezone';\n\n\n@Component({\n selector: 'app-cedar-input-datetime',\n templateUrl: './cedar-input-datetime.component.html',\n styleUrls: ['./cedar-input-datetime.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class CedarInputDatetimeComponent extends CedarUIComponent implements OnInit, AfterViewInit {\n\n component: FieldComponent;\n\n timePickerTime: Date;\n decimalSeconds: number;\n timezone: TZone;\n setDefaultZone = false;\n datetimeParsed: DatetimeRepresentation;\n dateMonthYearControl: FormControl;\n required: boolean;\n\n @Input() handlerContext: HandlerContext;\n\n constructor(\n fb: FormBuilder,\n private activeComponentRegistry: ActiveComponentRegistryService,\n private cdr: ChangeDetectorRef\n ) {\n super();\n this.datetimeParsed = new DatetimeRepresentation();\n this.timePickerTime = this.getDefaultTime();\n }\n\n ngOnInit(): void {\n }\n\n ngAfterViewInit(): void {\n this.cdr.detectChanges();\n }\n\n @Input() set componentToRender(componentToRender: FieldComponent) {\n this.component = componentToRender;\n this.required = this.component.valueInfo.requiredValue;\n this.activeComponentRegistry.registerComponent(this.component, this);\n }\n\n dateInputChanged(event): void {\n this.datetimeParsed.setDate(event);\n this.handlerContext.changeValue(this.component, this.datetimeParsed.toStorageRepresentation());\n }\n\n timeInputChanged(event): void {\n this.datetimeParsed.setHours(this.timePickerTime.getHours());\n this.datetimeParsed.setAMPM(this.enableMeridian());\n\n if (!this.disableMinute()) {\n this.datetimeParsed.setMinutes(this.timePickerTime.getMinutes());\n }\n\n if (this.showSeconds()) {\n this.datetimeParsed.setSeconds(this.timePickerTime.getSeconds());\n }\n this.handlerContext.changeValue(this.component, this.datetimeParsed.toStorageRepresentation());\n }\n\n decimalSecondsChanged(event): void {\n this.datetimeParsed.setDecimalSeconds(this.decimalSeconds);\n this.handlerContext.changeValue(this.component, this.datetimeParsed.toStorageRepresentation());\n }\n\n timezoneInputChanged(event): void {\n if (event != null) {\n this.datetimeParsed.setTimezone(event);\n this.handlerContext.changeValue(this.component, this.datetimeParsed.toStorageRepresentation());\n }\n }\n\n showDatePicker(): boolean {\n return [Xsd.dateTime, Xsd.date].indexOf(this.component.valueInfo.temporalType) > -1;\n }\n\n dateFormat(): string {\n let format = DatePickerComponent.YEAR_MONTH_DAY_FORMAT;\n\n if (this.component.valueInfo.temporalType === Xsd.date) {\n switch (this.component.basicInfo.temporalGranularity) {\n case Temporal.month:\n format = DatePickerComponent.YEAR_MONTH_FORMAT;\n break;\n case Temporal.year:\n format = DatePickerComponent.YEAR_FORMAT;\n break;\n }\n }\n return format;\n }\n\n showTimePicker(): boolean {\n return [Xsd.dateTime, Xsd.time].indexOf(this.component.valueInfo.temporalType) > -1;\n }\n\n enableMeridian(): boolean {\n return (this.component.basicInfo.inputTimeFormat === Temporal.inputType12h);\n }\n\n disableMinute(): boolean {\n return (this.component.basicInfo.temporalGranularity === Temporal.hour);\n }\n\n showSeconds(): boolean {\n return [Temporal.second, Temporal.decimalSecond].indexOf(this.component.basicInfo.temporalGranularity) > -1;\n }\n\n showDecimalSeconds(): boolean {\n return (this.component.basicInfo.temporalGranularity === Temporal.decimalSecond);\n }\n\n showTimezonePicker(): boolean {\n return (this.component.basicInfo.timezoneEnabled === true);\n }\n\n setCurrentValue(currentValue: any): void {\n if (currentValue) {\n this.datetimeParsed = DatetimeRepresentation.fromStorageRepresentation(currentValue as string, this.enableMeridian());\n\n if (this.datetimeParsed.dateIsSet) {\n const m = moment();\n m.set('date', +this.datetimeParsed.day);\n m.set('month', +this.datetimeParsed.month - 1);\n m.set('year', +this.datetimeParsed.year);\n this.dateMonthYearControl = new FormControl(m);\n }\n\n if (this.datetimeParsed.timeIsSet) {\n // reset timepicker UI\n this.timePickerTime = new Date();\n this.timePickerTime.setHours(+this.datetimeParsed.hours, +this.datetimeParsed.minutes, +this.datetimeParsed.seconds);\n\n // reset decimal seconds\n if (this.datetimeParsed.decimalSeconds.length > 0) {\n this.decimalSeconds = +this.datetimeParsed.decimalSeconds;\n } else {\n this.decimalSeconds = null;\n }\n\n if (this.datetimeParsed.timezoneIsSet) {\n this.timezone = {\n id: this.datetimeParsed.timezoneOffset,\n label: this.datetimeParsed.timezoneName\n };\n } else {\n this.resetTimezone();\n }\n }\n }\n // set datetime UI to default view\n else {\n this.resetDate();\n this.resetTime();\n }\n }\n\n private resetDate(): void {\n if (this.showDatePicker()) {\n const defDate = this.getDefaultDate();\n this.dateMonthYearControl = new FormControl(defDate);\n this.datetimeParsed.setDate(defDate);\n this.handlerContext.changeValue(this.component, this.datetimeParsed.toStorageRepresentation());\n }\n }\n\n private resetTime(): void {\n if (this.showTimePicker()) {\n this.timePickerTime = this.getDefaultTime();\n this.decimalSeconds = null;\n this.datetimeParsed.setDecimalSeconds(null);\n this.resetTimezone();\n this.handlerContext.changeValue(this.component, this.datetimeParsed.toStorageRepresentation());\n }\n }\n\n private resetTimezone(): void {\n if (this.showTimezonePicker()) {\n let tz = null;\n\n if (this.setDefaultZone) {\n tz = TimezonePickerComponent.guessedUserZone();\n }\n this.timezone = tz;\n this.datetimeParsed.setTimezone(tz);\n this.handlerContext.changeValue(this.component, this.datetimeParsed.toStorageRepresentation());\n }\n }\n\n private getDefaultDate(): Moment {\n const dt = moment();\n const format = this.dateFormat();\n\n switch (format) {\n case DatePickerComponent.YEAR_MONTH_FORMAT:\n dt.set('date', 1);\n break;\n case DatePickerComponent.YEAR_FORMAT:\n dt.set('date', 1);\n dt.set('month', 0);\n break;\n }\n return dt;\n }\n\n private getDefaultTime(): Date {\n const dt = new Date();\n // dt.setHours(0,0,0,0);\n return dt;\n }\n}\n\nexport class DatetimeRepresentation {\n\n static readonly DATE_SEPARATOR = '-';\n static readonly TIME_SEPARATOR = ':';\n static readonly DATE_TIME_SEPARATOR = 'T';\n static readonly TIME_DECIMAL_SECOND_SEPARATOR = '.';\n static readonly DATE_STORED_FORMAT = 'YYYY-MM-DD';\n\n dateIsSet: boolean;\n timeIsSet: boolean;\n timezoneIsSet: boolean;\n\n year: string;\n month: string;\n day: string;\n\n hours: string;\n minutes: string;\n seconds: string;\n decimalSeconds: string;\n ampm: boolean;\n\n timezoneName: string;\n timezoneOffset: string;\n\n\n constructor() {\n // set default values\n const DEF_ZERO = '00';\n const DEF_ONE = '01';\n\n this.dateIsSet = false;\n this.timeIsSet = false;\n this.timezoneIsSet = false;\n\n this.year = '';\n this.month = DEF_ONE;\n this.day = DEF_ONE;\n\n this.hours = DEF_ZERO;\n this.minutes = DEF_ZERO;\n this.seconds = DEF_ZERO;\n this.decimalSeconds = '';\n this.ampm = true;\n\n this.timezoneName = '';\n this.timezoneOffset = '';\n }\n\n static fromStorageRepresentation(storedDateStr: string, ampm: boolean): DatetimeRepresentation {\n const that = new DatetimeRepresentation();\n const datePatternStr = '^\\\\d{4}\\\\' + DatetimeRepresentation.DATE_SEPARATOR + '\\\\d{2}\\\\' + DatetimeRepresentation.DATE_SEPARATOR + '\\\\d{2}';\n const datePattern = new RegExp(datePatternStr);\n const dateStr = storedDateStr.match(datePattern);\n\n if (dateStr && dateStr.length > 0) {\n that.dateIsSet = true;\n that.setDate(moment(dateStr[0], DatetimeRepresentation.DATE_STORED_FORMAT));\n }\n const timePatternStr = '(\\\\d{2}\\\\' + DatetimeRepresentation.TIME_SEPARATOR + '\\\\d{2}\\\\' + DatetimeRepresentation.TIME_SEPARATOR + '\\\\d{2})(\\\\.[\\\\d\\\\.]+)*';\n const timePattern = new RegExp(timePatternStr);\n const timeStr = storedDateStr.match(timePattern);\n\n if (timeStr && timeStr.length > 1) {\n that.setAMPM(ampm);\n const timeArr = timeStr[1].split(DatetimeRepresentation.TIME_SEPARATOR);\n that.setHours(+timeArr[0]);\n that.setMinutes(+timeArr[1]);\n that.setSeconds(+timeArr[2]);\n\n if (timeStr.length > 2 && timeStr[2]) {\n that.setDecimalSeconds(+timeStr[2].substring(1));\n }\n const timezonePatternStr = 'Z|[\\\\-\\\\+]{1}\\\\d{2}\\\\' + DatetimeRepresentation.TIME_SEPARATOR + '\\\\d{2}$';\n const timezonePattern = new RegExp(timezonePatternStr);\n const timezoneStr = storedDateStr.match(timezonePattern);\n\n if (timezoneStr && timezoneStr.length > 0) {\n const timezone = TimezonePickerComponent.AVAILABLE_TIMEZONES.find(z => z.id === timezoneStr[0]);\n that.setTimezone(timezone);\n }\n }\n return that;\n }\n\n static regexIndexOf(text, re, i): number {\n const indexInSuffix = text.slice(i).search(re);\n return indexInSuffix < 0 ? indexInSuffix : indexInSuffix + i;\n }\n\n static indexOfEnd(sourceStr, matchStr): number {\n const io = sourceStr.indexOf(matchStr);\n return io === -1 ? -1 : io + matchStr.length;\n }\n\n setDate(dateIn: Moment): void {\n if (!dateIn){\n return;\n }\n this.dateIsSet = true;\n this.year = dateIn.year().toLocaleString().replace(/,/,'');\n this.month = this.stringify((dateIn.month() + 1).toLocaleString());\n this.day = this.stringify(dateIn.date().toLocaleString());\n }\n\n setHours(hoursIn: number): void {\n this.timeIsSet = true;\n this.hours = this.stringify(hoursIn);\n }\n\n setMinutes(minutesIn: number): void {\n this.timeIsSet = true;\n this.minutes = this.stringify(minutesIn);\n }\n\n setSeconds(secondsIn: number): void {\n this.timeIsSet = true;\n this.seconds = this.stringify(secondsIn);\n }\n\n setAMPM(val: boolean): void {\n this.ampm = val;\n }\n\n setDecimalSeconds(decSecondsIn: number): void {\n this.timeIsSet = true;\n\n if (decSecondsIn == null) {\n this.decimalSeconds = '';\n } else {\n this.decimalSeconds = decSecondsIn.toString();\n }\n }\n\n setTimezone(timezoneIn: TZone): void {\n if (timezoneIn) {\n this.timezoneIsSet = true;\n this.timezoneOffset = timezoneIn.id;\n this.timezoneName = timezoneIn.label;\n } else {\n this.timezoneIsSet = false;\n this.timezoneOffset = '';\n this.timezoneName = '';\n }\n }\n\n toDateRepresentation(): string {\n const m = moment();\n const formatArr = [];\n\n if (this.timezoneIsSet) {\n m.utcOffset(this.timezoneOffset);\n }\n\n if (this.dateIsSet) {\n m.set({year: +this.year, month: +this.month - 1, date: +this.day});\n formatArr.push(DatePickerComponent.YEAR_MONTH_DAY_FORMAT);\n }\n\n if (this.timeIsSet) {\n m.set({hour: +this.hours, minute: +this.minutes, second: +this.seconds});\n\n if (this.dateIsSet) {\n formatArr.push(' ');\n }\n\n if (this.ampm) {\n formatArr.push('hh:mm:ss A');\n } else {\n formatArr.push('HH:mm:ss'); // 24-hour clock time\n }\n }\n\n if (this.timezoneIsSet) {\n formatArr.push('Z');\n }\n return m.format(formatArr.join(''));\n }\n\n toStorageRepresentation(): string {\n let dateStr = '';\n\n if (this.dateIsSet) {\n dateStr += this.year + DatetimeRepresentation.DATE_SEPARATOR +\n this.month + DatetimeRepresentation.DATE_SEPARATOR +\n this.day;\n }\n\n if (this.timeIsSet) {\n if (this.dateIsSet) {\n dateStr += DatetimeRepresentation.DATE_TIME_SEPARATOR;\n }\n dateStr += this.hours + DatetimeRepresentation.TIME_SEPARATOR +\n this.minutes + DatetimeRepresentation.TIME_SEPARATOR +\n this.seconds;\n\n if (this.decimalSeconds.length > 0) {\n dateStr += DatetimeRepresentation.TIME_DECIMAL_SECOND_SEPARATOR +\n this.decimalSeconds;\n }\n }\n\n if (this.timezoneIsSet) {\n dateStr += this.timezoneOffset;\n }\n return dateStr;\n }\n\n toString(): string {\n return this.toStorageRepresentation();\n }\n\n private stringify(valIn: any): string {\n let str = valIn.toString();\n if (valIn < 10) {\n str = '0' + str;\n }\n return str;\n }\n\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {FormBuilder, FormControl, FormGroup, FormGroupDirective, NgForm, Validators} from '@angular/forms';\nimport {ErrorStateMatcher} from '@angular/material/core';\nimport {CedarUIComponent} from '../../../shared/models/ui/cedar-ui-component.model';\nimport {FieldComponent} from '../../../shared/models/component/field-component.model';\nimport {ActiveComponentRegistryService} from '../../../shared/service/active-component-registry.service';\nimport {HandlerContext} from '../../../shared/util/handler-context';\nimport {ComponentDataService} from '../../../shared/service/component-data.service';\n\nexport class TextFieldErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.invalid && (control.dirty || control.touched));\n }\n}\n\n@Component({\n selector: 'app-cedar-input-email',\n templateUrl: './cedar-input-email.component.html',\n styleUrls: ['./cedar-input-email.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarInputEmailComponent extends CedarUIComponent implements OnInit {\n\n component: FieldComponent;\n options: FormGroup;\n inputValueControl = new FormControl(null, null);\n errorStateMatcher = new TextFieldErrorStateMatcher();\n @Input() handlerContext: HandlerContext;\n\n constructor(\n fb: FormBuilder,\n public cds: ComponentDataService,\n private activeComponentRegistry: ActiveComponentRegistryService\n ) {\n super();\n this.options = fb.group({\n inputValue: this.inputValueControl,\n });\n }\n\n ngOnInit(): void {\n const validators: any[] = [];\n\n validators.push(Validators.email);\n\n if (this.component.valueInfo.requiredValue) {\n validators.push(Validators.required);\n }\n this.inputValueControl = new FormControl(null, validators);\n if (this.component.valueInfo.defaultValue != null) {\n this.setValueUIAndModel(this.component.valueInfo.defaultValue);\n }\n }\n\n @Input() set componentToRender(componentToRender: FieldComponent) {\n this.component = componentToRender;\n this.activeComponentRegistry.registerComponent(this.component, this);\n }\n\n inputChanged($event: Event): void {\n let val = ($event.target as HTMLTextAreaElement).value;\n\n if (val.length === 0) {\n val = null;\n }\n\n this.handlerContext.changeValue(this.component, val);\n }\n\n setCurrentValue(currentValue: any): void {\n this.inputValueControl.setValue(currentValue);\n }\n\n clearValue(): void {\n this.setValueUIAndModel(null);\n }\n\n private setValueUIAndModel(value: string): void {\n this.inputValueControl.setValue(value);\n this.handlerContext.changeValue(this.component, value);\n }\n\n getCharCountHint(): string {\n let len = 0;\n if (this.inputValueControl.value != null) {\n len = this.inputValueControl.value.length;\n }\n const s = '' + len;\n return s;\n }\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {FormBuilder, FormControl, FormGroup, FormGroupDirective, NgForm, Validators} from '@angular/forms';\nimport {ErrorStateMatcher} from '@angular/material/core';\nimport {CedarUIComponent} from '../../../shared/models/ui/cedar-ui-component.model';\nimport {FieldComponent} from '../../../shared/models/component/field-component.model';\nimport {ActiveComponentRegistryService} from '../../../shared/service/active-component-registry.service';\nimport {HandlerContext} from '../../../shared/util/handler-context';\nimport {ComponentDataService} from '../../../shared/service/component-data.service';\n\nexport class TextFieldErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.invalid && (control.dirty || control.touched));\n }\n}\n\n@Component({\n selector: 'app-cedar-input-link',\n templateUrl: './cedar-input-link.component.html',\n styleUrls: ['./cedar-input-link.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarInputLinkComponent extends CedarUIComponent implements OnInit {\n\n component: FieldComponent;\n options: FormGroup;\n inputValueControl = new FormControl(null, null);\n errorStateMatcher = new TextFieldErrorStateMatcher();\n @Input() handlerContext: HandlerContext;\n\n constructor(\n fb: FormBuilder,\n public cds: ComponentDataService,\n private activeComponentRegistry: ActiveComponentRegistryService\n ) {\n super();\n this.options = fb.group({\n inputValue: this.inputValueControl,\n });\n }\n\n ngOnInit(): void {\n const validators: any[] = [];\n\n const reg = '(https?://)?([\\\\da-z.-]+)\\\\.([a-z.]{2,6})[/\\\\w .-]*/?';\n validators.push(Validators.pattern(reg));\n\n if (this.component.valueInfo.requiredValue) {\n validators.push(Validators.required);\n }\n\n this.inputValueControl = new FormControl(null, validators);\n if (this.component.valueInfo.defaultValue != null) {\n this.setValueUIAndModel(this.component.valueInfo.defaultValue);\n }\n }\n\n @Input() set componentToRender(componentToRender: FieldComponent) {\n this.component = componentToRender;\n this.activeComponentRegistry.registerComponent(this.component, this);\n }\n\n inputChanged($event: Event): void {\n let val = ($event.target as HTMLTextAreaElement).value;\n\n if (val.length === 0) {\n val = null;\n }\n this.handlerContext.changeValue(this.component, val);\n }\n\n setCurrentValue(currentValue: any): void {\n this.inputValueControl.setValue(currentValue);\n }\n\n clearValue(): void {\n this.setValueUIAndModel(null);\n }\n\n private setValueUIAndModel(value: string): void {\n this.inputValueControl.setValue(value);\n this.handlerContext.changeValue(this.component, value);\n }\n\n getCharCountHint(): string {\n let len = 0;\n if (this.inputValueControl.value != null) {\n len = this.inputValueControl.value.length;\n }\n const s = '' + len;\n return s;\n }\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {FieldComponent} from '../../../shared/models/component/field-component.model';\nimport {FormBuilder, FormControl, FormGroup, FormGroupDirective, NgForm, Validators} from '@angular/forms';\nimport {CedarUIComponent} from '../../../shared/models/ui/cedar-ui-component.model';\nimport {ActiveComponentRegistryService} from '../../../shared/service/active-component-registry.service';\nimport {HandlerContext} from '../../../shared/util/handler-context';\nimport {ErrorStateMatcher} from '@angular/material/core';\nimport {TextFieldErrorStateMatcher} from '../cedar-input-text/cedar-input-text.component';\n\nexport class MultipleChoiceErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.invalid && (control.dirty || control.touched));\n }\n}\n@Component({\n selector: 'app-cedar-input-multiple-choice',\n templateUrl: './cedar-input-multiple-choice.component.html',\n styleUrls: ['./cedar-input-multiple-choice.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarInputMultipleChoiceComponent extends CedarUIComponent implements OnInit {\n component: FieldComponent;\n options: FormGroup;\n selectedChoiceInputControl = new FormControl(null, null);\n errorStateMatcher = new MultipleChoiceErrorStateMatcher();\n @Input() handlerContext: HandlerContext;\n\n constructor(\n fb: FormBuilder,\n private activeComponentRegistry: ActiveComponentRegistryService\n ) {\n super();\n this.options = fb.group({\n selectedChoiceValue: this.selectedChoiceInputControl\n });\n }\n\n ngOnInit(): void {\n this.populateItemsOnLoad();\n const validators: any[] = [];\n if (this.component.valueInfo.requiredValue) {\n validators.push(Validators.required);\n }\n this.selectedChoiceInputControl = new FormControl(null, validators);\n }\n\n @Input() set componentToRender(componentToRender: FieldComponent) {\n this.component = componentToRender;\n this.activeComponentRegistry.registerComponent(this.component, this);\n }\n\n inputChanged(event): void {\n this.handlerContext.changeValue(this.component, event.value);\n }\n clearValue(): void {\n this.setValueUIAndModel(null);\n }\n\n private setValueUIAndModel(value: string): void {\n this.selectedChoiceInputControl.setValue(value);\n this.handlerContext.changeValue(this.component, value);\n }\n\n setCurrentValue(currentValue: any): void {\n this.selectedChoiceInputControl.setValue(currentValue);\n }\n\n private populateItemsOnLoad(): void {\n for (const choice of this.component.choiceInfo.choices) {\n if (choice.selectedByDefault) {\n this.handlerContext.changeValue(this.component, choice.label);\n return;\n }\n }\n this.handlerContext.changeValue(this.component, null);\n }\n\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {FieldComponent} from '../../../shared/models/component/field-component.model';\nimport {FormBuilder, FormControl, FormGroup, Validators} from '@angular/forms';\nimport {ComponentDataService} from '../../../shared/service/component-data.service';\nimport {CedarUIComponent} from '../../../shared/models/ui/cedar-ui-component.model';\nimport {ActiveComponentRegistryService} from '../../../shared/service/active-component-registry.service';\nimport {HandlerContext} from '../../../shared/util/handler-context';\nimport {Numbers} from '../../../shared/models/numbers.model';\nimport {Xsd} from '../../../shared/models/xsd.model';\n\n@Component({\n selector: 'app-cedar-input-numeric',\n templateUrl: './cedar-input-numeric.component.html',\n styleUrls: ['./cedar-input-numeric.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarInputNumericComponent extends CedarUIComponent implements OnInit {\n\n component: FieldComponent;\n options: FormGroup;\n inputValueControl = new FormControl(null, Validators.min(10));\n unitOfMeasure: string = null;\n constraintMinValue = null;\n constraintMaxValue = null;\n patternErrorMessage = null;\n @Input() handlerContext: HandlerContext;\n\n\n constructor(\n fb: FormBuilder,\n public cds: ComponentDataService,\n private activeComponentRegistry: ActiveComponentRegistryService\n ) {\n super();\n this.options = fb.group({\n inputValue: this.inputValueControl,\n });\n }\n\n ngOnInit(): void {\n this.unitOfMeasure = this.component.numberInfo.unitOfMeasure;\n\n const validators: any[] = [];\n\n this.constraintMinValue = this.component.numberInfo.minValue;\n this.constraintMaxValue = this.component.numberInfo.maxValue;\n\n if (this.component.valueInfo.requiredValue) {\n validators.push(Validators.required);\n }\n\n const numberType = this.component.numberInfo.numberType;\n const decimalPlace = this.component.numberInfo.decimalPlace;\n let maxDecimalError = '';\n\n if (numberType === Xsd.int) {\n validators.push(Validators.pattern(Numbers.PATTERN_XSD_INT_AND_LONG));\n this.patternErrorMessage = ' The value should be an integer.';\n\n if (this.constraintMinValue == null) {\n this.constraintMinValue = Numbers.NUMBER_INT_MIN;\n }\n\n if (this.constraintMaxValue == null) {\n this.constraintMaxValue = Numbers.NUMBER_INT_MAX;\n }\n }\n\n if (numberType === Xsd.long) {\n validators.push(Validators.pattern(Numbers.PATTERN_XSD_INT_AND_LONG));\n this.patternErrorMessage = ' The value should be a long integer.';\n\n if (this.constraintMinValue == null) {\n this.constraintMinValue = Numbers.NUMBER_LONG_MIN;\n }\n\n if (this.constraintMaxValue == null) {\n this.constraintMaxValue = Numbers.NUMBER_LONG_MAX;\n }\n }\n\n if (numberType === Xsd.float || numberType === Xsd.double) {\n let pattern: string = Numbers.PATTERN_XSD_FLOAT_AND_DOUBLE;\n let maxDig = '';\n\n if (decimalPlace != null) {\n maxDig = '' + decimalPlace;\n maxDecimalError = ' maximum ' + decimalPlace + ' decimals.';\n }\n pattern = pattern.replace(new RegExp('maxDig', 'g'), maxDig);\n validators.push(Validators.pattern(pattern));\n }\n\n if (numberType === Xsd.float) {\n this.patternErrorMessage = ' The value should be a float,' + maxDecimalError;\n }\n\n if (numberType === Xsd.double) {\n this.patternErrorMessage = ' The value should be a double,' + maxDecimalError;\n }\n\n if (this.constraintMinValue != null) {\n validators.push(Validators.min(this.constraintMinValue));\n }\n\n if (this.constraintMaxValue != null) {\n validators.push(Validators.max(this.constraintMaxValue));\n }\n this.inputValueControl = new FormControl(null, validators);\n }\n\n @Input() set componentToRender(componentToRender: FieldComponent) {\n this.component = componentToRender;\n this.activeComponentRegistry.registerComponent(this.component, this);\n }\n\n inputChanged($event: Event): void {\n let val = ($event.target as HTMLTextAreaElement).value;\n\n if (val.length === 0) {\n val = null;\n }\n this.handlerContext.changeValue(this.component, val);\n }\n\n setCurrentValue(currentValue: any): void {\n this.inputValueControl.setValue(currentValue);\n }\n\n clearValue(): void {\n this.setValueUIAndModel(null);\n }\n\n private setValueUIAndModel(value: string): void {\n this.inputValueControl.setValue(value);\n this.handlerContext.changeValue(this.component, value);\n }\n\n getMinMaxValueHint(): string {\n let s = '';\n let min = null;\n let max = null;\n\n if (this.component.numberInfo.minValue != null) {\n min = this.component.numberInfo.minValue;\n }\n\n if (this.component.numberInfo.maxValue != null) {\n max = this.component.numberInfo.maxValue;\n }\n\n if (min != null || max != null) {\n if (min != null) {\n s += 'min: ' + min + '; ';\n }\n\n if (max != null) {\n s += 'max: ' + max + ';';\n }\n }\n const decimalPlace = this.component.numberInfo.decimalPlace;\n\n if (decimalPlace != null) {\n s += ' max ' + decimalPlace + ' decimals;';\n }\n return s;\n }\n\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {FormBuilder, FormControl, FormGroup, FormGroupDirective, NgForm, Validators} from '@angular/forms';\nimport {ErrorStateMatcher} from '@angular/material/core';\nimport {CedarUIComponent} from '../../../shared/models/ui/cedar-ui-component.model';\nimport {FieldComponent} from '../../../shared/models/component/field-component.model';\nimport {ActiveComponentRegistryService} from '../../../shared/service/active-component-registry.service';\nimport {HandlerContext} from '../../../shared/util/handler-context';\nimport {ComponentDataService} from '../../../shared/service/component-data.service';\n\nexport class TextFieldErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.invalid && (control.dirty || control.touched));\n }\n}\n\n@Component({\n selector: 'app-cedar-input-phone',\n templateUrl: './cedar-input-phone.component.html',\n styleUrls: ['./cedar-input-phone.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarInputPhoneComponent extends CedarUIComponent implements OnInit {\n\n component: FieldComponent;\n options: FormGroup;\n inputValueControl = new FormControl(null, null);\n errorStateMatcher = new TextFieldErrorStateMatcher();\n @Input() handlerContext: HandlerContext;\n\n constructor(\n fb: FormBuilder,\n public cds: ComponentDataService,\n private activeComponentRegistry: ActiveComponentRegistryService\n ) {\n super();\n this.options = fb.group({\n inputValue: this.inputValueControl,\n });\n }\n\n ngOnInit(): void {\n const validators: any[] = [];\n\n const reg = /^[\\+0-9\\s\\-\\(\\)]+$/im;\n validators.push(Validators.pattern(reg));\n\n if (this.component.valueInfo.requiredValue) {\n validators.push(Validators.required);\n }\n\n this.inputValueControl = new FormControl(null, validators);\n\n if (this.component.valueInfo.defaultValue != null) {\n this.setValueUIAndModel(this.component.valueInfo.defaultValue);\n }\n }\n\n @Input() set componentToRender(componentToRender: FieldComponent) {\n this.component = componentToRender;\n this.activeComponentRegistry.registerComponent(this.component, this);\n }\n\n inputChanged($event: Event): void {\n let val = ($event.target as HTMLTextAreaElement).value;\n\n if (val.length === 0) {\n val = null;\n }\n\n this.handlerContext.changeValue(this.component, val);\n }\n\n setCurrentValue(currentValue: any): void {\n this.inputValueControl.setValue(currentValue);\n }\n\n clearValue(): void {\n this.setValueUIAndModel(null);\n }\n\n private setValueUIAndModel(value: string): void {\n this.inputValueControl.setValue(value);\n this.handlerContext.changeValue(this.component, value);\n }\n\n getCharCountHint(): string {\n let len = 0;\n if (this.inputValueControl.value != null) {\n len = this.inputValueControl.value.length;\n }\n const s = '' + len;\n return s;\n }\n}\n","import {Component, Input, OnInit, ViewEncapsulation, ViewChild} from '@angular/core';\nimport {FormBuilder, FormControl, FormGroup, FormGroupDirective, NgForm, Validators} from '@angular/forms';\nimport {ErrorStateMatcher} from '@angular/material/core';\nimport {FieldComponent} from '../../../shared/models/component/field-component.model';\nimport {CedarUIComponent} from '../../../shared/models/ui/cedar-ui-component.model';\nimport {ActiveComponentRegistryService} from '../../../shared/service/active-component-registry.service';\nimport {HandlerContext} from '../../../shared/util/handler-context';\nimport {ComponentDataService} from '../../../shared/service/component-data.service';\nexport class TextFieldErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.invalid && (control.dirty || control.touched));\n }\n}\n@Component({\n selector: 'app-cedar-input-select',\n templateUrl: './cedar-input-select.component.html',\n styleUrls: ['./cedar-input-select.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarInputSelectComponent extends CedarUIComponent implements OnInit {\n @ViewChild('inputSelect') selectElement;\n readonly ITEM_ID_FIELD = 'id';\n readonly ITEM_TEXT_FIELD = 'label';\n\n component: FieldComponent;\n dropdownList = [];\n selectedItems: any;\n options: FormGroup;\n inputValueControl = new FormControl(null, null);\n errorStateMatcher = new TextFieldErrorStateMatcher();\n selections: string[];\n maxSelections: number;\n @Input() handlerContext: HandlerContext;\n\n constructor(private activeComponentRegistry: ActiveComponentRegistryService, public cds: ComponentDataService, fb: FormBuilder) {\n super();\n this.options = fb.group({\n inputValue: this.inputValueControl,\n });\n }\n ngOnInit(): void {\n this.populateItemsOnLoad();\n const validators: any[] = [];\n\n if (this.component.valueInfo.requiredValue) {\n validators.push(Validators.required);\n }\n this.inputValueControl = new FormControl(null, validators);\n }\n\n @Input() set componentToRender(componentToRender: FieldComponent) {\n this.component = componentToRender;\n this.activeComponentRegistry.registerComponent(this.component, this);\n this.maxSelections = this.component.multiInfo.maxItems;\n }\n\n inputChanged(): void {\n const values = this.inputValueControl.value || [];\n if ( this.maxSelections === undefined || (values && values.length <= this.maxSelections) ){\n this.selections = values;\n } else {\n this.inputValueControl.setValue(this.selections);\n }\n // close dropdown if max selections reached\n if (this.selectElement && this.maxSelections !== undefined && (values && values.length === this.maxSelections)){\n this.selectElement.close();\n }\n this.changeValue(this.selections);\n }\n\n setCurrentValue(currentValue: any): void {\n this.inputValueControl.setValue(currentValue);\n }\n private populateItemsOnLoad(): void {\n const multi = this.component.choiceInfo.multipleChoice;\n if (multi) {\n this.selectedItems = [];\n }\n for (const choice of this.component.choiceInfo.choices) {\n const entry = {};\n entry[this.ITEM_ID_FIELD] = choice.label;\n entry[this.ITEM_TEXT_FIELD] = choice.label;\n this.dropdownList.push(entry);\n\n if (choice.selectedByDefault) {\n if (multi) {\n this.selectedItems.push(entry);\n } else {\n this.selectedItems = entry;\n }\n }\n }\n this.inputChanged();\n }\n clearValue($event): void {\n $event.stopPropagation();\n this.inputValueControl.setValue([]);\n this.changeValue([]);\n }\n changeValue(values): void{\n const multi = this.component.choiceInfo.multipleChoice;\n if (multi) {\n this.handlerContext.changeListValue(this.component, values);\n } else {\n this.handlerContext.changeValue(this.component, values[0]);\n }\n }\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {FieldComponent} from '../../../shared/models/component/field-component.model';\nimport {FormBuilder, FormControl, FormGroup, FormGroupDirective, NgForm, Validators} from '@angular/forms';\nimport {ComponentDataService} from '../../../shared/service/component-data.service';\nimport {CedarUIComponent} from '../../../shared/models/ui/cedar-ui-component.model';\nimport {ActiveComponentRegistryService} from '../../../shared/service/active-component-registry.service';\nimport {HandlerContext} from '../../../shared/util/handler-context';\nimport {ErrorStateMatcher} from '@angular/material/core';\nimport {InputType} from '../../../shared/models/input-type.model';\n\nexport class TextFieldErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.invalid && (control.dirty || control.touched));\n }\n}\n\n@Component({\n selector: 'app-cedar-input-text',\n templateUrl: './cedar-input-text.component.html',\n styleUrls: ['./cedar-input-text.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarInputTextComponent extends CedarUIComponent implements OnInit {\n\n component: FieldComponent;\n options: FormGroup;\n inputValueControl = new FormControl(null, null);\n errorStateMatcher = new TextFieldErrorStateMatcher();\n constraintMinLength = null;\n constraintMaxLength = null;\n @Input() handlerContext: HandlerContext;\n inputText = InputType.text;\n inputTextarea = InputType.textarea;\n\n constructor(\n fb: FormBuilder,\n public cds: ComponentDataService,\n private activeComponentRegistry: ActiveComponentRegistryService\n ) {\n super();\n this.options = fb.group({\n inputValue: this.inputValueControl,\n });\n }\n\n ngOnInit(): void {\n const validators: any[] = [];\n\n this.constraintMinLength = this.component.valueInfo.minLength;\n\n if (this.constraintMinLength != null) {\n validators.push(Validators.minLength(this.constraintMinLength));\n }\n this.constraintMaxLength = this.component.valueInfo.maxLength;\n\n if (this.constraintMaxLength != null) {\n validators.push(Validators.maxLength(this.constraintMaxLength));\n }\n\n if (this.component.valueInfo.requiredValue) {\n validators.push(Validators.required);\n }\n this.inputValueControl = new FormControl(null, validators);\n\n if (this.component.valueInfo.defaultValue != null) {\n this.setValueUIAndModel(this.component.valueInfo.defaultValue);\n }\n }\n\n @Input() set componentToRender(componentToRender: FieldComponent) {\n this.component = componentToRender;\n this.activeComponentRegistry.registerComponent(this.component, this);\n }\n\n inputChanged($event: Event): void {\n let val = ($event.target as HTMLTextAreaElement).value;\n\n if (val.length === 0) {\n val = null;\n }\n\n this.handlerContext.changeValue(this.component, val);\n }\n\n setCurrentValue(currentValue: any): void {\n this.inputValueControl.setValue(currentValue);\n }\n\n clearValue(): void {\n this.setValueUIAndModel(null);\n }\n\n private setValueUIAndModel(value: string): void {\n this.inputValueControl.setValue(value);\n this.handlerContext.changeValue(this.component, value);\n }\n\n getCharCountHint(): string {\n let len = 0;\n if (this.inputValueControl.value != null) {\n len = this.inputValueControl.value.length;\n }\n let s = '' + len;\n let min = null;\n let max = null;\n if (this.component.valueInfo.minLength != null) {\n min = this.component.valueInfo.minLength;\n }\n if (this.component.valueInfo.maxLength != null) {\n max = this.component.valueInfo.maxLength;\n }\n if (min != null || max != null) {\n s += ' / ';\n if (min != null) {\n s += min + ' ';\n }\n s += ' - ';\n if (max != null) {\n s += max;\n }\n }\n return s;\n }\n\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {FormBuilder} from '@angular/forms';\nimport {ComponentDataService} from '../../../shared/service/component-data.service';\nimport {CedarUIComponent} from '../../../shared/models/ui/cedar-ui-component.model';\nimport {ActiveComponentRegistryService} from '../../../shared/service/active-component-registry.service';\nimport {HandlerContext} from '../../../shared/util/handler-context';\nimport {StaticFieldComponent} from '../../../shared/models/static/static-field-component.model';\n\n@Component({\n selector: 'app-cedar-static-image',\n templateUrl: './cedar-static-image.component.html',\n styleUrls: ['./cedar-static-image.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarStaticImageComponent extends CedarUIComponent implements OnInit {\n\n component: StaticFieldComponent;\n @Input() handlerContext: HandlerContext;\n\n constructor(\n fb: FormBuilder,\n public cds: ComponentDataService,\n private activeComponentRegistry: ActiveComponentRegistryService\n ) {\n super();\n }\n\n ngOnInit(): void {\n }\n\n @Input() set componentToRender(componentToRender: StaticFieldComponent) {\n this.component = componentToRender;\n this.activeComponentRegistry.registerComponent(this.component, this);\n }\n\n setCurrentValue(currentValue: any): void {\n // DO NOTHING\n }\n\n}\n","import {Component, Injectable, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {DataContext} from '../../../shared/util/data-context';\nimport {MatPaginatorIntl} from '@angular/material/paginator';\nimport {PageBreakPaginatorService} from '../../../shared/service/page-break-paginator.service';\n\n@Injectable()\nexport class CustomMatPaginatorIntl extends MatPaginatorIntl {\n getRangeLabel = (page: number, pageSize: number, length: number) => {\n return '';\n }\n}\n\n@Component({\n selector: 'app-cedar-static-page-break',\n templateUrl: './cedar-static-page-break.component.html',\n styleUrls: ['./cedar-static-page-break.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [{provide: MatPaginatorIntl, useClass: CustomMatPaginatorIntl}]\n})\nexport class CedarStaticPageBreakComponent implements OnInit {\n\n @Input() dataContext: DataContext;\n @Input() pageBreakPaginatorService: PageBreakPaginatorService;\n\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n paginatorChanged(event): void {\n this.pageBreakPaginatorService.page(event.pageIndex);\n }\n\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {StaticFieldComponent} from '../../../shared/models/static/static-field-component.model';\nimport {CedarUIComponent} from '../../../shared/models/ui/cedar-ui-component.model';\nimport {ActiveComponentRegistryService} from '../../../shared/service/active-component-registry.service';\nimport {HandlerContext} from '../../../shared/util/handler-context';\n\n@Component({\n selector: 'app-cedar-static-rich-text',\n templateUrl: './cedar-static-rich-text.component.html',\n styleUrls: ['./cedar-static-rich-text.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarStaticRichTextComponent extends CedarUIComponent implements OnInit {\n\n component: StaticFieldComponent;\n @Input() handlerContext: HandlerContext;\n\n\n constructor(private activeComponentRegistry: ActiveComponentRegistryService) {\n super();\n }\n\n ngOnInit(): void {\n }\n\n @Input() set componentToRender(componentToRender: StaticFieldComponent) {\n this.component = componentToRender;\n this.activeComponentRegistry.registerComponent(this.component, this);\n }\n\n setCurrentValue(currentValue: any): void {\n // not applicable to rich text component\n }\n\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {FormBuilder} from '@angular/forms';\nimport {ComponentDataService} from '../../../shared/service/component-data.service';\nimport {CedarUIComponent} from '../../../shared/models/ui/cedar-ui-component.model';\nimport {ActiveComponentRegistryService} from '../../../shared/service/active-component-registry.service';\nimport {HandlerContext} from '../../../shared/util/handler-context';\nimport {StaticFieldComponent} from '../../../shared/models/static/static-field-component.model';\n\n@Component({\n selector: 'app-cedar-static-section-break',\n templateUrl: './cedar-static-section-break.component.html',\n styleUrls: ['./cedar-static-section-break.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarStaticSectionBreakComponent extends CedarUIComponent implements OnInit {\n\n component: StaticFieldComponent;\n @Input() handlerContext: HandlerContext;\n\n constructor(\n fb: FormBuilder,\n public cds: ComponentDataService,\n private activeComponentRegistry: ActiveComponentRegistryService) {\n super();\n }\n\n ngOnInit(): void {\n }\n\n @Input() set componentToRender(componentToRender: StaticFieldComponent) {\n this.component = componentToRender;\n this.activeComponentRegistry.registerComponent(this.component, this);\n }\n\n setCurrentValue(currentValue: any): void {\n // DO NOTHING\n }\n\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {FormBuilder} from '@angular/forms';\nimport {ComponentDataService} from '../../../shared/service/component-data.service';\nimport {CedarUIComponent} from '../../../shared/models/ui/cedar-ui-component.model';\nimport {ActiveComponentRegistryService} from '../../../shared/service/active-component-registry.service';\nimport {HandlerContext} from '../../../shared/util/handler-context';\nimport {StaticFieldComponent} from '../../../shared/models/static/static-field-component.model';\n\n@Component({\n selector: 'app-cedar-static-youtube',\n templateUrl: './cedar-static-youtube.component.html',\n styleUrls: ['./cedar-static-youtube.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarStaticYoutubeComponent extends CedarUIComponent implements OnInit {\n\n component: StaticFieldComponent;\n @Input() handlerContext: HandlerContext;\n videoHeight: number = null;\n videoWidth: number = null;\n\n constructor(\n fb: FormBuilder,\n public cds: ComponentDataService,\n private activeComponentRegistry: ActiveComponentRegistryService\n ) {\n super();\n }\n\n ngOnInit(): void {\n }\n\n @Input() set componentToRender(componentToRender: StaticFieldComponent) {\n this.component = componentToRender;\n this.activeComponentRegistry.registerComponent(this.component, this);\n }\n\n setCurrentValue(currentValue: any): void {\n // DO NOTHING\n }\n\n}\n","import {NgModule} from '@angular/core';\nimport {MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldModule} from '@angular/material/form-field';\nimport {BrowserModule} from '@angular/platform-browser';\nimport {HttpClientModule} from '@angular/common/http';\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\nimport {MatCardModule} from '@angular/material/card';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatCheckboxModule} from '@angular/material/checkbox';\nimport {MatRadioModule} from '@angular/material/radio';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatExpansionModule} from '@angular/material/expansion';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport {ClipboardModule} from '@angular/cdk/clipboard';\nimport {MatToolbarModule} from '@angular/material/toolbar';\nimport {MatRippleModule} from '@angular/material/core';\nimport {MatPaginatorModule} from '@angular/material/paginator';\nimport {MatChipsModule} from '@angular/material/chips';\nimport {MatGridListModule} from '@angular/material/grid-list';\nimport {MatDatepickerModule} from '@angular/material/datepicker';\nimport {MatNativeDateModule} from '@angular/material/core';\nimport {MatSelectModule} from '@angular/material/select';\nimport {NgxMatDatetimePickerModule, NgxMatNativeDateModule, NgxMatTimepickerModule} from '@angular-material-components/datetime-picker';\nimport {NgSelectModule} from '@ng-select/ng-select';\nimport {CedarInputEmailComponent} from './components/cedar-input-email/cedar-input-email.component';\nimport {CedarInputCheckboxComponent} from './components/cedar-input-checkbox/cedar-input-checkbox.component';\nimport {CedarInputSelectComponent} from './components/cedar-input-select/cedar-input-select.component';\nimport {CedarInputAttributeValueComponent} from './components/cedar-input-attribute-value/cedar-input-attribute-value.component';\nimport {CedarInputMultipleChoiceComponent} from './components/cedar-input-multiple-choice/cedar-input-multiple-choice.component';\nimport {CedarInputDatetimeComponent} from './components/cedar-input-datetime/cedar-input-datetime.component';\nimport {CedarInputLinkComponent} from './components/cedar-input-link/cedar-input-link.component';\nimport {CedarInputNumericComponent} from './components/cedar-input-numeric/cedar-input-numeric.component';\nimport {CedarInputTextComponent} from './components/cedar-input-text/cedar-input-text.component';\nimport {CedarInputPhoneComponent} from './components/cedar-input-phone/cedar-input-phone.component';\nimport {CedarStaticRichTextComponent} from './components/cedar-static-rich-text/cedar-static-rich-text.component';\nimport {CedarStaticSectionBreakComponent} from './components/cedar-static-section-break/cedar-static-section-break.component';\nimport {CedarStaticPageBreakComponent} from './components/cedar-static-page-break/cedar-static-page-break.component';\nimport {CedarStaticImageComponent} from './components/cedar-static-image/cedar-static-image.component';\nimport {CedarStaticYoutubeComponent} from './components/cedar-static-youtube/cedar-static-youtube.component';\nimport {YouTubePlayerModule} from '@angular/youtube-player';\nimport {CedarFooBarComponent} from './components/cedar-foo-bar/cedar-foo-bar.component';\nimport {CedarInputControlledComponent} from './components/cedar-input-controlled/cedar-input-controlled.component';\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\nimport {EscapeHtmlPipe} from '../shared/pipe/keep-html.pipe';\nimport {DatePickerComponent} from '../shared/components/date-picker/date-picker.component';\nimport {TimezonePickerComponent} from '../shared/components/timezone-picker/timezone-picker.component';\nimport {MatFileUploadModule} from '../shared/components/file-uploader/mat-file-upload.module';\nimport {FileUploaderComponent} from '../shared/components/file-uploader/file-uploader.component';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n imports: [\n BrowserModule,\n HttpClientModule,\n BrowserAnimationsModule,\n MatAutocompleteModule,\n MatCardModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatCheckboxModule,\n MatRadioModule,\n MatIconModule,\n MatExpansionModule,\n MatButtonModule,\n MatTooltipModule,\n ClipboardModule,\n MatToolbarModule,\n MatRippleModule,\n MatPaginatorModule,\n MatChipsModule,\n MatGridListModule,\n MatDatepickerModule,\n MatNativeDateModule,\n NgxMatDatetimePickerModule,\n NgxMatTimepickerModule,\n NgxMatNativeDateModule,\n NgSelectModule,\n MatFileUploadModule,\n YouTubePlayerModule,\n FormsModule,\n MatSelectModule,\n TranslateModule\n ],\n declarations: [\n CedarFooBarComponent,\n CedarInputTextComponent,\n CedarInputPhoneComponent,\n CedarInputControlledComponent,\n CedarInputNumericComponent,\n CedarInputEmailComponent,\n CedarInputCheckboxComponent,\n CedarInputSelectComponent,\n CedarInputAttributeValueComponent,\n CedarInputMultipleChoiceComponent,\n CedarInputDatetimeComponent,\n CedarInputLinkComponent,\n CedarStaticRichTextComponent,\n CedarStaticSectionBreakComponent,\n CedarStaticPageBreakComponent,\n CedarStaticImageComponent,\n CedarStaticYoutubeComponent,\n DatePickerComponent,\n TimezonePickerComponent,\n FileUploaderComponent,\n EscapeHtmlPipe\n ],\n providers: [\n MatDatepickerModule,\n MatNativeDateModule,\n {provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: {appearance: 'outline'}}\n ],\n exports: [\n // FooBar is needed because the first component gets exported without style otherwise\n CedarFooBarComponent,\n CedarInputTextComponent,\n CedarInputPhoneComponent,\n CedarInputControlledComponent,\n CedarInputNumericComponent,\n CedarInputEmailComponent,\n CedarInputCheckboxComponent,\n CedarInputSelectComponent,\n CedarInputAttributeValueComponent,\n CedarInputMultipleChoiceComponent,\n CedarInputDatetimeComponent,\n CedarInputLinkComponent,\n CedarStaticRichTextComponent,\n CedarStaticSectionBreakComponent,\n CedarStaticPageBreakComponent,\n CedarStaticImageComponent,\n CedarStaticYoutubeComponent,\n EscapeHtmlPipe,\n FileUploaderComponent\n ]\n})\nexport class InputTypesModule {\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {CedarComponent} from '../../models/component/cedar-component.model';\nimport {ComponentDataService} from '../../service/component-data.service';\nimport {MultiComponent} from '../../models/component/multi-component.model';\nimport {ComponentTypeHandler} from '../../handler/component-type.handler';\nimport {SingleFieldComponent} from '../../models/field/single-field-component.model';\nimport {FieldComponent} from '../../models/component/field-component.model';\n\n@Component({\n selector: 'app-cedar-component-header',\n templateUrl: './cedar-component-header.component.html',\n styleUrls: ['./cedar-component-header.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarComponentHeaderComponent implements OnInit {\n\n component: CedarComponent;\n multiComponent: MultiComponent;\n shouldRenderRequiredMark = false;\n\n constructor(public cds: ComponentDataService) {\n }\n\n ngOnInit(): void {\n }\n\n @Input() set componentToRender(componentToRender: CedarComponent) {\n this.component = componentToRender;\n if (ComponentTypeHandler.isMulti(componentToRender)) {\n this.multiComponent = componentToRender as MultiComponent;\n } else {\n this.multiComponent = null;\n }\n if (this.component instanceof SingleFieldComponent){\n const fieldComp = this.component as unknown as FieldComponent;\n if (fieldComp.valueInfo.requiredValue){\n this.shouldRenderRequiredMark = true;\n }\n }\n }\n\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {CedarComponent} from '../../models/component/cedar-component.model';\nimport {ElementComponent} from '../../models/component/element-component.model';\nimport {SingleElementComponent} from '../../models/element/single-element-component.model';\nimport {MultiElementComponent} from '../../models/element/multi-element-component.model';\nimport {CedarTemplate} from '../../models/template/cedar-template.model';\nimport {FieldComponent} from '../../models/component/field-component.model';\nimport {MultiFieldComponent} from '../../models/field/multi-field-component.model';\nimport {SingleFieldComponent} from '../../models/field/single-field-component.model';\nimport {MultiInfo} from '../../models/info/multi-info.model';\nimport {HandlerContext} from '../../util/handler-context';\nimport {StaticFieldComponent} from '../../models/static/static-field-component.model';\nimport {InputType} from '../../models/input-type.model';\nimport {MultiComponent} from '../../models/component/multi-component.model';\n\n@Component({\n selector: 'app-cedar-component-renderer',\n templateUrl: './cedar-component-renderer.component.html',\n styleUrls: ['./cedar-component-renderer.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarComponentRendererComponent implements OnInit {\n\n protected readonly InputType = InputType;\n\n private component: CedarComponent;\n iterableComponent: ElementComponent;\n nonIterableComponent: FieldComponent;\n iterableAsMultiComponent: MultiComponent;\n staticComponent: StaticFieldComponent;\n multiInfo: MultiInfo;\n panelOpenState: boolean;\n @Input() handlerContext: HandlerContext;\n @Input() showStaticText: boolean;\n // tslint:disable-next-line:variable-name\n private _allExpanded = false;\n @Input()\n get allExpanded(): boolean {\n return this._allExpanded;\n }\n\n set allExpanded(allExpanded: boolean) {\n this.panelOpenState = allExpanded;\n this._allExpanded = allExpanded;\n }\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n @Input() set componentToRender(componentToRender: CedarComponent) {\n this.component = componentToRender;\n this.iterableComponent = null;\n this.nonIterableComponent = null;\n this.iterableAsMultiComponent = null;\n if (componentToRender instanceof SingleElementComponent ||\n componentToRender instanceof MultiElementComponent ||\n componentToRender instanceof CedarTemplate) {\n this.iterableComponent = componentToRender as ElementComponent;\n if (componentToRender instanceof MultiElementComponent) {\n this.multiInfo = (componentToRender as MultiElementComponent).multiInfo;\n }\n }\n if (componentToRender instanceof SingleFieldComponent ||\n componentToRender instanceof MultiFieldComponent) {\n this.nonIterableComponent = componentToRender as FieldComponent;\n if (componentToRender instanceof MultiFieldComponent) {\n this.multiInfo = (componentToRender as MultiFieldComponent).multiInfo;\n }\n }\n if (componentToRender instanceof StaticFieldComponent) {\n this.staticComponent = componentToRender as StaticFieldComponent;\n }\n if (this.iterableComponent != null && this.iterableComponent.isMulti()) {\n this.iterableAsMultiComponent = this.iterableComponent as unknown as MultiComponent;\n }\n }\n\n shouldRenderContentOfIterable(iterableComponent: ElementComponent): boolean {\n if (iterableComponent.isMulti()) {\n const multiElement: MultiElementComponent = iterableComponent as MultiElementComponent;\n if (!this.handlerContext.multiInstanceObjectService.hasMultiInstances(multiElement)) {\n return false;\n }\n }\n return true;\n }\n\n shouldRenderContentOfNonIterable(nonIterableComponent: FieldComponent): boolean {\n if (nonIterableComponent.isMulti()) {\n const multiField: MultiFieldComponent = nonIterableComponent as MultiFieldComponent;\n if (!this.handlerContext.multiInstanceObjectService.hasMultiInstances(multiField)) {\n return false;\n }\n }\n return true;\n }\n\n}\n","import {Component, Input, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\nimport {DataContext} from '../../util/data-context';\nimport {HttpClient, HttpHeaders, HttpParams, HttpResponse} from '@angular/common/http';\nimport {Observable, Subscription} from 'rxjs';\nimport {MessageHandlerService} from '../../service/message-handler.service';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Component({\n selector: 'app-cedar-data-saver',\n templateUrl: 'cedar-data-saver.component.html',\n styleUrls: ['./cedar-data-saver.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarDataSaverComponent implements OnInit, OnDestroy {\n\n // Number of milliseconds to display the submission success message\n private static readonly SUCCESS_MESSAGE_TIMEOUT = 5000;\n private static readonly PARAM_ID = 'id';\n private static readonly PARAM_TITLE = 'title';\n\n @Input() dataContext: DataContext = null;\n @Input() endpointUrl: string = null;\n httpRequestParams: | HttpParams | { [param: string]: string | string[]; };\n httpPostSubscription = new Subscription();\n\n showProgress = false;\n showSuccess = false;\n showError = false;\n progressMessage = 'Processing...';\n successMessage = '';\n errorMessage = '';\n\n constructor(\n private httpClient: HttpClient,\n private messageHandlerService: MessageHandlerService,\n private translateService: TranslateService\n ) {\n }\n\n ngOnInit(): void {\n }\n\n saveTemplate(event): void {\n this.httpPostSubscription.add(\n this.httpRequest().subscribe(\n (data: any) => {\n if (data instanceof HttpResponse) {\n this.clearProgress();\n this.clearError();\n this.showSuccess = true;\n this.successMessage = 'Metadata saved successfully';\n\n if (data.body[CedarDataSaverComponent.PARAM_ID]) {\n this.dataContext.savedTemplateID = data.body[CedarDataSaverComponent.PARAM_ID];\n }\n this.messageHandlerService.traceObject('Data received from the server:', data);\n } else {\n this.clearSuccess();\n this.clearError();\n this.showProgress = true;\n }\n },\n (error: any) => {\n this.clearProgress();\n this.clearSuccess();\n this.showError = true;\n this.errorMessage = this.translateService.instant('Saver.Error');\n\n if (typeof error === 'object' && error.hasOwnProperty('message')) {\n this.messageHandlerService.errorObject(error.message, error);\n }\n },\n () => {\n // remove success message in SUCCESS_MESSAGE_TIMEOUT seconds (\n if (this.showSuccess) {\n setTimeout(() => {\n this.clearSuccess();\n }, CedarDataSaverComponent.SUCCESS_MESSAGE_TIMEOUT);\n }\n }\n )\n );\n this.stopPropagation(event);\n }\n\n private httpRequest(): Observable<any> {\n const body = {\n metadata: this.dataContext.instanceFullData,\n info: {}\n };\n\n if (this.dataContext.templateInfo) {\n Object.assign(body.info, this.dataContext.templateInfo);\n }\n const httpHeaders = new HttpHeaders({\n 'Content-Type': 'application/json',\n 'Cache-Control': 'no-cache'\n });\n let method = 'POST';\n this.httpRequestParams = {};\n this.httpRequestParams[CedarDataSaverComponent.PARAM_TITLE] = this.dataContext.templateRepresentation.labelInfo.label;\n\n if (this.dataContext.savedTemplateID) {\n method = 'PUT';\n this.httpRequestParams[CedarDataSaverComponent.PARAM_ID] = this.dataContext.savedTemplateID;\n }\n return this.httpClient.request(method, this.endpointUrl, {\n body,\n headers: httpHeaders,\n observe: 'events',\n params: this.httpRequestParams,\n reportProgress: true,\n responseType: 'json',\n });\n }\n\n clearProgress(): void {\n this.showProgress = false;\n }\n\n clearSuccess(): void {\n this.showSuccess = false;\n this.successMessage = '';\n }\n\n clearError(): void {\n this.showError = false;\n this.errorMessage = '';\n }\n\n stopPropagation(event): void {\n event.stopPropagation();\n }\n\n ngOnDestroy(): void {\n this.httpPostSubscription.unsubscribe();\n }\n\n}\n","import {Component, Input, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\nimport {HttpResponse, HttpStatusCode} from '@angular/common/http';\nimport {ControlledFieldDataService} from '../../service/controlled-field-data.service';\nimport {MessageHandlerService} from '../../service/message-handler.service';\nimport {MatFileUploadService} from '../file-uploader/mat-file-upload/mat-file-upload.service';\nimport {Subject} from 'rxjs';\nimport {SampleTemplatesService} from '../sample-templates/sample-templates.service';\nimport {takeUntil} from 'rxjs/operators';\nimport {JsonSchema} from '../../models/json-schema.model';\nimport {HandlerContext} from '../../util/handler-context';\nimport {ActiveComponentRegistryService} from '../../service/active-component-registry.service';\nimport {MultiInstanceObjectHandler} from '../../handler/multi-instance-object.handler';\nimport {environment} from \"../../../../../environments/environment\";\nimport {LocalSettingsService} from \"../../service/local-settings.service\";\nimport {TranslateService} from \"@ngx-translate/core\";\n\n@Component({\n selector: 'app-cedar-embeddable-metadata-editor-wrapper',\n templateUrl: './cedar-embeddable-metadata-editor-wrapper.component.html',\n styleUrls: ['./cedar-embeddable-metadata-editor-wrapper.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarEmbeddableMetadataEditorWrapperComponent implements OnInit, OnDestroy {\n\n static TEMPLATE_LOCATION_PREFIX = 'sampleTemplateLocationPrefix';\n static LOAD_SAMPLE_TEMPLATE_NAME = 'loadSampleTemplateName';\n static TERMINOLOGY_PROXY_URL = 'terminologyProxyUrl';\n static SHOW_SPINNER_BEFORE_INIT = 'showSpinnerBeforeInit';\n static TEMPLATE_UPLOAD_BASE_URL = 'templateUploadBaseUrl';\n static TEMPLATE_DOWNLOAD_ENDPOINT = 'templateDownloadEndpoint';\n static TEMPLATE_DOWNLOAD_PARAM_NAME = 'templateDownloadParamName';\n static TEMPLATE_JSON = 'templateJSON';\n static INSTANCE_JSON = 'instanceJSON';\n\n innerConfig: object = null;\n private initialized = false;\n private configSet = false;\n\n public templateJson: object = null;\n sampleTemplateLoaderObject = null;\n showSpinnerBeforeInit = true;\n protected _onDestroy = new Subject<void>();\n externalTemplateInfo: object;\n handlerContext: HandlerContext = null;\n private instanceJson = null;\n\n\n constructor(\n private controlledFieldDataService: ControlledFieldDataService,\n private messageHandlerService: MessageHandlerService,\n private matFileUploadService: MatFileUploadService,\n private sampleTemplateService: SampleTemplatesService,\n private activeComponentRegistry: ActiveComponentRegistryService,\n private localSettings: LocalSettingsService,\n private translateService: TranslateService\n ) {\n this.sampleTemplateLoaderObject = this;\n\n // this language will be used as a fallback when a translation isn't found in the current language\n this.translateService.setDefaultLang(environment.fallbackLanguage);\n\n // the lang to use, if the lang isn't available, it will use the current loader to get them\n let currentLanguage = this.localSettings.getLanguage();\n if (currentLanguage == null) {\n currentLanguage = environment.defaultLanguage;\n }\n this.translateService.use(currentLanguage);\n }\n\n ngOnInit(): void {\n\n this.sampleTemplateService.templateJson$\n .pipe(takeUntil(this._onDestroy))\n .subscribe(templateJson => {\n if (templateJson) {\n this.templateJson = Object.values(templateJson)[0];\n }\n });\n this.matFileUploadService.uploadedFile$\n .pipe(takeUntil(this._onDestroy))\n .subscribe(fileInfo => {\n if (fileInfo && fileInfo['event'] instanceof HttpResponse) {\n const statusCode = fileInfo['event']['status'];\n\n if (statusCode === HttpStatusCode.Created &&\n this.innerConfig.hasOwnProperty(CedarEmbeddableMetadataEditorWrapperComponent.TEMPLATE_UPLOAD_BASE_URL) &&\n this.innerConfig.hasOwnProperty(CedarEmbeddableMetadataEditorWrapperComponent.TEMPLATE_DOWNLOAD_ENDPOINT) &&\n this.innerConfig.hasOwnProperty(CedarEmbeddableMetadataEditorWrapperComponent.TEMPLATE_DOWNLOAD_PARAM_NAME)) {\n const filename = fileInfo['event']['body']['filename'];\n const templateUrl = this.innerConfig[CedarEmbeddableMetadataEditorWrapperComponent.TEMPLATE_UPLOAD_BASE_URL] +\n this.innerConfig[CedarEmbeddableMetadataEditorWrapperComponent.TEMPLATE_DOWNLOAD_ENDPOINT] + '?' +\n this.innerConfig[CedarEmbeddableMetadataEditorWrapperComponent.TEMPLATE_DOWNLOAD_PARAM_NAME] + '=' + filename;\n this.sampleTemplateService.loadTemplateFromURL(templateUrl);\n }\n }\n });\n this.initialized = true;\n this.doInitialize();\n }\n\n handlerContextChanged(event): void {\n this.handlerContext = event;\n }\n\n @Input() get currentMetadata(): object {\n if (this.handlerContext) {\n return JSON.parse(JSON.stringify(this.handlerContext.dataContext.instanceFullData));\n }\n return {};\n }\n\n @Input() set metadata(meta: object) {\n const instanceFullData = JSON.parse(JSON.stringify(meta));\n const instanceExtractData = JSON.parse(JSON.stringify(meta));\n this.deleteContext(instanceExtractData);\n if (this.handlerContext) {\n const dataContext = this.handlerContext.dataContext;\n dataContext.instanceFullData = instanceFullData;\n dataContext.instanceExtractData = instanceExtractData;\n const multiInstanceObjectService: MultiInstanceObjectHandler = this.handlerContext.multiInstanceObjectService;\n\n dataContext.multiInstanceData = multiInstanceObjectService.buildNewOrFromMetadata(\n dataContext.templateRepresentation, instanceExtractData);\n\n if (dataContext.templateRepresentation != null && dataContext.templateRepresentation.children != null) {\n for (const childComponent of dataContext.templateRepresentation.children) {\n this.activeComponentRegistry.updateViewToModel(childComponent, this.handlerContext);\n }\n }\n }\n }\n\n @Input() set templateInfo(templateInfo: object) {\n this.externalTemplateInfo = templateInfo;\n }\n\n @Input() set templateObject(template: object) {\n this.templateJson = template;\n }\n\n @Input() set instanceObject(instance: object) {\n this.metadata = instance;\n }\n\n @Input() loadConfigFromURL(jsonURL, successHandler = null, errorHandler = null): void {\n const that = this;\n const xhr = new XMLHttpRequest();\n xhr.onreadystatechange = () => {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n if (xhr.status === HttpStatusCode.Ok) {\n const jsonConfig = JSON.parse(xhr.responseText);\n that.config = jsonConfig;\n\n if (successHandler) {\n successHandler(jsonConfig);\n }\n } else {\n if (errorHandler) {\n errorHandler(xhr);\n }\n }\n }\n };\n xhr.open('GET', jsonURL, true);\n xhr.send();\n }\n\n ngOnDestroy(): void {\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n @Input() set config(value: object) {\n this.messageHandlerService.traceObject('CEDAR Embeddable Editor config set to:', value);\n\n if (value != null) {\n this.innerConfig = value;\n this.configSet = true;\n this.doInitialize();\n }\n }\n\n @Input() set eventHandler(value: object) {\n this.messageHandlerService.injectEventHandler(value);\n }\n\n private deleteContext(obj): void {\n Object.keys(obj).forEach(key => {\n delete obj[JsonSchema.atContext];\n\n if (typeof obj[key] === 'object' && obj[key] !== null) {\n this.deleteContext(obj[key]);\n }\n });\n }\n\n private doInitialize(): void {\n if (this.initialized && this.configSet) {\n if (this.innerConfig.hasOwnProperty(CedarEmbeddableMetadataEditorWrapperComponent.LOAD_SAMPLE_TEMPLATE_NAME)) {\n this.sampleTemplateService.loadTemplate(\n this.innerConfig[CedarEmbeddableMetadataEditorWrapperComponent.TEMPLATE_LOCATION_PREFIX],\n this.innerConfig[CedarEmbeddableMetadataEditorWrapperComponent.LOAD_SAMPLE_TEMPLATE_NAME]);\n }\n if (this.innerConfig.hasOwnProperty(CedarEmbeddableMetadataEditorWrapperComponent.TERMINOLOGY_PROXY_URL)) {\n const proxyUrl = this.innerConfig[CedarEmbeddableMetadataEditorWrapperComponent.TERMINOLOGY_PROXY_URL];\n this.controlledFieldDataService.setTerminologyProxyUrl(proxyUrl);\n }\n if (this.innerConfig.hasOwnProperty(CedarEmbeddableMetadataEditorWrapperComponent.SHOW_SPINNER_BEFORE_INIT)) {\n this.showSpinnerBeforeInit = this.innerConfig[CedarEmbeddableMetadataEditorWrapperComponent.SHOW_SPINNER_BEFORE_INIT];\n }\n }\n }\n\n // used only for debugging of restoring metadata\n private restoreMetadataFromURL(metaUrl, successHandler = null, errorHandler = null): void {\n const xhr = new XMLHttpRequest();\n xhr.onreadystatechange = () => {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n if (xhr.status === 200) {\n const jsonMeta = JSON.parse(xhr.responseText);\n this.metadata = jsonMeta;\n\n if (successHandler) {\n successHandler(jsonMeta);\n }\n } else {\n if (errorHandler) {\n errorHandler(xhr);\n }\n }\n }\n };\n xhr.open('GET', metaUrl, true);\n xhr.send();\n }\n\n editorDataReady(): boolean {\n return this.innerConfig != null && this.templateJson != null;\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from '@angular/core';\nimport {NullTemplate} from '../../models/template/null-template.model';\nimport {DataContext} from '../../util/data-context';\nimport {HandlerContext} from '../../util/handler-context';\nimport {PageBreakPaginatorService} from '../../service/page-break-paginator.service';\n\n\n@Component({\n selector: 'app-cedar-embeddable-metadata-editor',\n templateUrl: './cedar-embeddable-metadata-editor.component.html',\n styleUrls: ['./cedar-embeddable-metadata-editor.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarEmbeddableMetadataEditorComponent implements OnInit {\n private static SHOW_TEMPLATE_RENDERING = 'showTemplateRenderingRepresentation';\n private static SHOW_MULTI_INSTANCE = 'showMultiInstanceInfo';\n private static SHOW_TEMPLATE_SOURCE = 'showTemplateSourceData';\n private static SHOW_INSTANCE_CORE = 'showInstanceDataCore';\n private static SHOW_INSTANCE_FULL = 'showInstanceDataFull';\n private static SHOW_SAMPLE_TEMPLATE_LINKS = 'showSampleTemplateLinks';\n\n private static SHOW_HEADER = 'showHeader';\n private static SHOW_FOOTER = 'showFooter';\n\n private static EXPANDED_TEMPLATE_RENDERING = 'expandedTemplateRenderingRepresentation';\n private static EXPANDED_MULTI_INSTANCE = 'expandedMultiInstanceInfo';\n private static EXPANDED_TEMPLATE_SOURCE = 'expandedTemplateSourceData';\n private static EXPANDED_INSTANCE_CORE = 'expandedInstanceDataCore';\n private static EXPANDED_INSTANCE_FULL = 'expandedInstanceDataFull';\n private static EXPANDED_SAMPLE_TEMPLATE_LINKS = 'expandedSampleTemplateLinks';\n\n private static COLLAPSE_STATIC_COMPONENTS = 'collapseStaticComponents';\n\n private static SHOW_TEMPLATE_UPLOAD = 'showTemplateUpload';\n private static TEMPLATE_UPLOAD_BASE_URL = 'templateUploadBaseUrl';\n private static TEMPLATE_UPLOAD_ENDPOINT = 'templateUploadEndpoint';\n private static TEMPLATE_UPLOAD_PARAM_NAME = 'templateUploadParamName';\n\n private static SHOW_DATA_SAVER = 'showDataSaver';\n private static DATA_SAVER_ENDPOINT_URL = 'dataSaverEndpointUrl';\n private static SHOW_STATIC_TEXT = 'showStaticText';\n\n private readonly dataContext: DataContext = null;\n\n private readonly handlerContext: HandlerContext = null;\n @Output() handlerContextEvent = new EventEmitter<HandlerContext>();\n\n private readonly pageBreakPaginatorService: PageBreakPaginatorService = null;\n\n @Input() sampleTemplateLoaderObject: any = null;\n\n showTemplateRenderingRepresentation = false;\n showMultiInstanceInfo = false;\n showTemplateSourceData = true;\n showInstanceDataCore = false;\n showInstanceDataFull = true;\n showSampleTemplateLinks = false;\n showStaticText = false;\n\n showHeader = false;\n showFooter = false;\n\n expandedTemplateRenderingRepresentation = false;\n expandedMultiInstanceInfo = false;\n expandedTemplateSourceData = false;\n expandedInstanceDataCore = false;\n expandedInstanceDataFull = false;\n expandedSampleTemplateLinks = false;\n\n collapseStaticComponents = true;\n\n showTemplateUpload = false;\n templateUploadBaseUrl: string;\n templateUploadEndpoint: string;\n templateUploadParamName: string;\n\n showDataSaver = false;\n dataSaverEndpointUrl: string;\n @Input() externalTemplateInfo: object;\n allExpanded: boolean;\n\n constructor() {\n this.pageBreakPaginatorService = new PageBreakPaginatorService();\n this.dataContext = new DataContext();\n this.handlerContext = new HandlerContext(this.dataContext);\n }\n\n ngOnInit(): void {\n this.dataContext.externalTemplateInfo = this.externalTemplateInfo;\n }\n\n @Input() set config(value: object) {\n if (value != null) {\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.SHOW_TEMPLATE_RENDERING)) {\n this.showTemplateRenderingRepresentation = value[CedarEmbeddableMetadataEditorComponent.SHOW_TEMPLATE_RENDERING];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.SHOW_MULTI_INSTANCE)) {\n this.showMultiInstanceInfo = value[CedarEmbeddableMetadataEditorComponent.SHOW_MULTI_INSTANCE];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.SHOW_TEMPLATE_SOURCE)) {\n this.showTemplateSourceData = value[CedarEmbeddableMetadataEditorComponent.SHOW_TEMPLATE_SOURCE];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.SHOW_INSTANCE_CORE)) {\n this.showInstanceDataCore = value[CedarEmbeddableMetadataEditorComponent.SHOW_INSTANCE_CORE];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.SHOW_INSTANCE_FULL)) {\n this.showInstanceDataFull = value[CedarEmbeddableMetadataEditorComponent.SHOW_INSTANCE_FULL];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.SHOW_SAMPLE_TEMPLATE_LINKS)) {\n this.showSampleTemplateLinks = value[CedarEmbeddableMetadataEditorComponent.SHOW_SAMPLE_TEMPLATE_LINKS];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.SHOW_FOOTER)) {\n this.showFooter = value[CedarEmbeddableMetadataEditorComponent.SHOW_FOOTER];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.SHOW_HEADER)) {\n this.showHeader = value[CedarEmbeddableMetadataEditorComponent.SHOW_HEADER];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.EXPANDED_TEMPLATE_RENDERING)) {\n this.expandedTemplateRenderingRepresentation = value[CedarEmbeddableMetadataEditorComponent.EXPANDED_TEMPLATE_RENDERING];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.EXPANDED_MULTI_INSTANCE)) {\n this.expandedMultiInstanceInfo = value[CedarEmbeddableMetadataEditorComponent.EXPANDED_MULTI_INSTANCE];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.EXPANDED_TEMPLATE_SOURCE)) {\n this.expandedTemplateSourceData = value[CedarEmbeddableMetadataEditorComponent.EXPANDED_TEMPLATE_SOURCE];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.EXPANDED_INSTANCE_CORE)) {\n this.expandedInstanceDataCore = value[CedarEmbeddableMetadataEditorComponent.EXPANDED_INSTANCE_CORE];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.EXPANDED_INSTANCE_FULL)) {\n this.expandedInstanceDataFull = value[CedarEmbeddableMetadataEditorComponent.EXPANDED_INSTANCE_FULL];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.EXPANDED_SAMPLE_TEMPLATE_LINKS)) {\n this.expandedSampleTemplateLinks = value[CedarEmbeddableMetadataEditorComponent.EXPANDED_SAMPLE_TEMPLATE_LINKS];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.COLLAPSE_STATIC_COMPONENTS)) {\n this.collapseStaticComponents = value[CedarEmbeddableMetadataEditorComponent.COLLAPSE_STATIC_COMPONENTS];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.SHOW_TEMPLATE_UPLOAD)) {\n this.showTemplateUpload = value[CedarEmbeddableMetadataEditorComponent.SHOW_TEMPLATE_UPLOAD];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.TEMPLATE_UPLOAD_BASE_URL)) {\n this.templateUploadBaseUrl = value[CedarEmbeddableMetadataEditorComponent.TEMPLATE_UPLOAD_BASE_URL];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.TEMPLATE_UPLOAD_ENDPOINT)) {\n this.templateUploadEndpoint = value[CedarEmbeddableMetadataEditorComponent.TEMPLATE_UPLOAD_ENDPOINT];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.TEMPLATE_UPLOAD_PARAM_NAME)) {\n this.templateUploadParamName = value[CedarEmbeddableMetadataEditorComponent.TEMPLATE_UPLOAD_PARAM_NAME];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.SHOW_DATA_SAVER)) {\n this.showDataSaver = value[CedarEmbeddableMetadataEditorComponent.SHOW_DATA_SAVER];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.DATA_SAVER_ENDPOINT_URL)) {\n this.dataSaverEndpointUrl = value[CedarEmbeddableMetadataEditorComponent.DATA_SAVER_ENDPOINT_URL];\n }\n if (value.hasOwnProperty(CedarEmbeddableMetadataEditorComponent.SHOW_STATIC_TEXT)) {\n this.showStaticText = value[CedarEmbeddableMetadataEditorComponent.SHOW_STATIC_TEXT];\n }\n }\n }\n\n @Input() set templateJsonObject(value: object) {\n if (value != null) {\n this.dataContext.setInputTemplate(value, this.handlerContext, this.pageBreakPaginatorService, this.collapseStaticComponents);\n this.handlerContextEvent.emit(this.handlerContext);\n }\n }\n\n dataAvailableForRender(): boolean {\n return this.dataContext != null\n && this.dataContext.templateRepresentation != null\n && !(this.dataContext.templateRepresentation instanceof NullTemplate)\n && this.dataContext.multiInstanceData != null;\n }\n\n openAll(): void {\n this.allExpanded = true;\n }\n\n closeAll(): void {\n this.allExpanded = false;\n }\n}\n","import {Component, DoCheck, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {MultiComponent} from '../../models/component/multi-component.model';\nimport {PageEvent} from '@angular/material/paginator';\nimport {ActiveComponentRegistryService} from '../../service/active-component-registry.service';\nimport {MultiInstanceObjectInfo} from '../../models/info/multi-instance-object-info.model';\nimport {HandlerContext} from '../../util/handler-context';\nimport {ComponentTypeHandler} from '../../handler/component-type.handler';\nimport {JsonSchema} from '../../models/json-schema.model';\nimport {MultiFieldComponent} from '../../models/field/multi-field-component.model';\nimport {InputType} from '../../models/input-type.model';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Component({\n selector: 'app-cedar-multi-pager',\n templateUrl: './cedar-multi-pager.component.html',\n styleUrls: ['./cedar-multi-pager.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CedarMultiPagerComponent implements OnInit, DoCheck {\n\n static readonly MAX_CHARACTERS_MULTI_VALUE = 30;\n\n component: MultiComponent;\n currentMultiInfo: MultiInstanceObjectInfo;\n activeComponentRegistry: ActiveComponentRegistryService;\n translateService: TranslateService;\n @Input() handlerContext: HandlerContext;\n @Input() isAlignedUp: boolean;\n\n length = 0;\n pageSize = 5;\n pageIndex = 0;\n pageSizeOptions: number[] = [1, 2, 5, 10, 25];\n\n firstIndex = 0;\n lastIndex = -1;\n pageNumbers: number[] = [];\n showPageSizeOptions = false;\n hidePageSize = true;\n\n multiInstanceValue: string;\n\n constructor(\n activeComponentRegistry: ActiveComponentRegistryService,\n translateService: TranslateService\n ) {\n this.activeComponentRegistry = activeComponentRegistry;\n this.translateService = translateService;\n }\n\n ngOnInit(): void {\n this.recomputeNumbers();\n }\n\n ngDoCheck(): void {\n this.multiInstanceValue = this.getMultiInstanceDataValueInfo();\n }\n\n getMultiInstanceDataValueInfo(): string {\n if (!ComponentTypeHandler.isField(this.component)) {\n return '';\n }\n const parentNodeInfo = this.handlerContext.getParentDataObjectNodeByPath(this.component.path);\n const nodeInfo = this.handlerContext.getDataObjectNodeByPath(this.component.path);\n let info = '';\n const infoArray = [];\n const inputType = (this.component as MultiFieldComponent).basicInfo.inputType;\n\n (nodeInfo as Array<any>).forEach((fieldName, index) => {\n const numStr = '<span class=\"multiinfo-index' + ((index > 0) ? ' not-first-multiinfo-index' : '') +\n ((index === this.currentMultiInfo.currentIndex) ? ' current-multiinfo-index' : '') + '\">' + (index + 1) + '</span> ';\n\n if (typeof fieldName === 'string') {\n infoArray.push(numStr + fieldName + '=' + this.shortValue(inputType, parentNodeInfo[fieldName][JsonSchema.atValue]));\n } else if (typeof fieldName === 'object') {\n if (fieldName.hasOwnProperty(JsonSchema.atValue)) {\n infoArray.push(numStr + (this.shortValue(inputType, fieldName[JsonSchema.atValue]) || 'null'));\n } else if (fieldName.hasOwnProperty(JsonSchema.atId)) {\n // controlled field\n infoArray.push(numStr + (this.shortValue(inputType, fieldName[JsonSchema.rdfsLabel]) || 'null'));\n }\n }\n });\n\n info = infoArray.join('');\n\n if (info) {\n info = '<b>' + this.translateService.instant('Generic.AllValues') + ':</b> ' + info;\n }\n return info || '';\n }\n\n @Input() set componentToRender(componentToRender: MultiComponent) {\n this.component = componentToRender;\n this.activeComponentRegistry.registerMultiPagerComponent(this.component, this);\n }\n\n private shortValue(inputType: string, value: string): string {\n let val = value;\n\n if (value && [InputType.text, InputType.textarea].includes(inputType) &&\n value.length > CedarMultiPagerComponent.MAX_CHARACTERS_MULTI_VALUE) {\n val = value.substr(0, CedarMultiPagerComponent.MAX_CHARACTERS_MULTI_VALUE);\n let ind = CedarMultiPagerComponent.MAX_CHARACTERS_MULTI_VALUE;\n // make sure we cut off on a whole word rather than a fragment\n while (!this.isEmptySpace(value[ind]) && ind < value.length) {\n val += value[ind];\n ind++;\n }\n\n if (val.trim().length < value.trim().length) {\n val += '...';\n }\n }\n return val;\n }\n\n private isEmptySpace(text: string): boolean {\n return text == null || text.match(/^\\s*$/) !== null;\n }\n\n private recomputeNumbers(): void {\n this.setCurrentMultiInfo();\n this.computeFirstIndex();\n this.computeLastIndex();\n this.updatePageNumbers();\n }\n\n private setCurrentMultiInfo(): void {\n if (this.component != null && this.handlerContext.multiInstanceObjectService != null) {\n this.currentMultiInfo = this.handlerContext.multiInstanceObjectService.getMultiInstanceInfoForComponent(this.component);\n }\n }\n\n paginatorChanged($event: PageEvent): void {\n if ($event.pageSize !== this.pageSize) {\n this.pageSizeChanged($event);\n } else {\n this.pageChanged($event);\n }\n }\n\n private pageSizeChanged($event: PageEvent): void {\n this.pageSize = $event.pageSize;\n this.computeFirstIndex();\n this.computeLastIndex();\n this.updatePageNumbers();\n }\n\n private pageChanged($event: PageEvent): void {\n this.pageSize = $event.pageSize;\n this.firstIndex = $event.pageIndex * $event.pageSize;\n this.handlerContext.setCurrentIndex(this.component, this.firstIndex);\n this.computeLastIndex();\n this.updatePageNumbers();\n this.activeComponentRegistry.updateViewToModel(this.component, this.handlerContext);\n }\n\n private updatePageNumbers(): void {\n this.pageNumbers = [];\n if (this.length > 0) {\n for (let idx = this.firstIndex; idx <= this.lastIndex; idx++) {\n this.pageNumbers.push(idx);\n }\n }\n }\n\n private computeFirstIndex(): void {\n this.pageIndex = Math.floor(this.currentMultiInfo.currentIndex / this.pageSize);\n this.firstIndex = this.pageIndex * this.pageSize;\n }\n\n private computeLastIndex(): void {\n this.length = this.currentMultiInfo.currentCount;\n if (this.length > 0) {\n this.lastIndex = this.firstIndex + this.pageSize - 1;\n if (this.lastIndex > this.length - 1) {\n this.lastIndex = this.length - 1;\n }\n } else {\n this.lastIndex = -1;\n }\n }\n\n chipClicked(chipIdx: number): void {\n // this call was causing the entire dateTimeParsed object to reset\n // after the timezone input was set\n // see cedar-input-datetime.component.ts:\n // this.timezone = {\n // id: this.datetimeParsed.timezoneOffset,\n // label: this.datetimeParsed.timezoneName\n // };\n // this.activeComponentRegistry.updateViewToModel(this.component, this.handlerContext);\n\n // nothing has changed, the same page number is clicked\n if (chipIdx === this.currentMultiInfo.currentIndex) {\n return;\n }\n this.handlerContext.setCurrentIndex(this.component, chipIdx);\n this.recomputeNumbers();\n const that = this;\n setTimeout(() => {\n that.activeComponentRegistry.updateViewToModel(that.component, that.handlerContext);\n }, 0);\n }\n\n clickedAdd(): void {\n this.handlerContext.addMultiInstance(this.component);\n this.recomputeNumbers();\n const that = this;\n // The component will be null if the count was 0 before\n // We need to wait for it to be available\n setTimeout(() => {\n that.activeComponentRegistry.updateViewToModel(that.component, that.handlerContext);\n }, 0);\n }\n\n clickedCopy(): void {\n this.handlerContext.copyMultiInstance(this.component);\n this.recomputeNumbers();\n const that = this;\n setTimeout(() => {\n that.activeComponentRegistry.updateViewToModel(that.component, that.handlerContext);\n }, 0);\n }\n\n clickedDelete(): void {\n this.handlerContext.deleteMultiInstance(this.component);\n this.recomputeNumbers();\n const that = this;\n\n setTimeout(() => {\n that.activeComponentRegistry.deleteCurrentValue(that.component);\n }, 0);\n\n if (this.currentMultiInfo.currentCount > 0) {\n setTimeout(() => {\n that.activeComponentRegistry.updateViewToModel(that.component, that.handlerContext);\n }, 0);\n }\n }\n\n isEnabledDelete(): boolean {\n if (this.currentMultiInfo.currentCount === 0) {\n return false;\n }\n if (this.component.multiInfo.minItems != null) {\n if (this.currentMultiInfo.currentCount <= this.component.multiInfo.minItems) {\n return false;\n }\n }\n return true;\n }\n\n isEnabledCopy(): boolean {\n if (this.currentMultiInfo.currentCount === 0) {\n return false;\n }\n return this.isEnabledAdd();\n }\n\n isEnabledAdd(): boolean {\n if (this.component.multiInfo.minItems != null) {\n if (this.currentMultiInfo.currentCount >= this.component.multiInfo.maxItems) {\n return false;\n }\n }\n return true;\n }\n\n updatePagingUI(): void {\n this.recomputeNumbers();\n }\n\n hasMultiInstances(): boolean {\n return this.currentMultiInfo.currentCount > 0;\n }\n\n getInstanceCount(): number {\n return this.currentMultiInfo.currentCount;\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {FormControl, Validators} from '@angular/forms';\nimport {DateAdapter} from '@angular/material/core';\nimport {MatDatepicker} from '@angular/material/datepicker';\n\n// Depending on whether rollup is used, moment needs to be imported differently.\n// Since Moment.js doesn't have a default export, we normally need to import using the `* as`\n// syntax. However, rollup creates a synthetic default module and we thus need to import it using\n// the `default as` syntax.\nimport * as _moment from 'moment';\n// tslint:disable-next-line:no-duplicate-imports\nimport {default as _rollupMoment, Moment} from 'moment';\nimport {CustomDateAdapter} from '../../service/date-time/custom-date-adapter';\nimport {DateTimeService} from '../../service/date-time/date-time.service';\n\nconst moment = _rollupMoment || _moment;\n\n@Component({\n selector: 'app-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n providers: [\n // DateTimeService is added as a provider to allow it\n // to be injected as a new instance per component, rather\n // than a Singleton instance\n DateTimeService,\n CustomDateAdapter, // so we could inject services to 'CustomDateAdapter'\n {provide: DateAdapter, useClass: CustomDateAdapter} // Parse MatDatePicker format\n ]\n})\n\nexport class DatePickerComponent implements OnInit {\n static readonly YEAR_FORMAT = 'YYYY';\n static readonly YEAR_MONTH_FORMAT = 'MM/YYYY';\n static readonly YEAR_MONTH_DAY_FORMAT = 'MM/DD/YYYY';\n yearFormat = DatePickerComponent.YEAR_FORMAT;\n yearMonthFormat = DatePickerComponent.YEAR_MONTH_FORMAT;\n yearMonthDayFormat = DatePickerComponent.YEAR_MONTH_DAY_FORMAT;\n\n @Input() dateMonthYear: FormControl;\n @Input() dateFormat = DatePickerComponent.YEAR_FORMAT;\n @Input() required: boolean;\n @Output() dateChangedEvent = new EventEmitter<Moment>();\n\n\n public constructor(private _dateTimeService: DateTimeService) {\n }\n\n public ngOnInit(): void {\n const validators: any[] = [];\n this._dateTimeService.format = this.dateFormat;\n const m = moment();\n\n switch (this.dateFormat) {\n case this.yearMonthFormat:\n m.set('date', 1);\n break;\n case this.yearFormat:\n m.set('date', 1);\n m.set('month', 0);\n break;\n }\n if (this.required) {\n validators.push(Validators.required);\n }\n this.dateMonthYear = new FormControl(null, validators);\n this.dateChangedEvent.emit(this.dateMonthYear.value);\n }\n\n chosenYearHandler(normalizedYear: Moment, datepicker: MatDatepicker<Moment>): void {\n if (this.dateMonthYear.value == null){\n this.dateMonthYear.setValue(moment());\n }\n const ctrlValue = this.dateMonthYear.value;\n ctrlValue.year(normalizedYear.year());\n this.dateMonthYear.setValue(ctrlValue);\n if (this.dateFormat === this.yearFormat) {\n datepicker.close();\n this.dateChangedEvent.emit(this.dateMonthYear.value);\n }\n }\n\n chosenMonthHandler(normalizedMonth: Moment, datepicker: MatDatepicker<Moment>): void {\n const ctrlValue = this.dateMonthYear.value;\n ctrlValue.month(normalizedMonth.month());\n this.dateMonthYear.setValue(ctrlValue);\n\n if (this.dateFormat === this.yearMonthFormat) {\n datepicker.close();\n }\n this.dateChangedEvent.emit(this.dateMonthYear.value);\n }\n\n chosenDateHandler(event): void {\n if (event) {\n this.dateChangedEvent.emit(event.value);\n }\n }\n\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({name: 'bytes'})\nexport class BytesPipe implements PipeTransform {\n public transform(bytes: number): string {\n if (isNaN(parseFloat('' + bytes)) || !isFinite(bytes)) {\n return '-';\n }\n if (bytes <= 0) {\n return '0';\n }\n const units = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\n const num = Math.floor(Math.log(bytes) / Math.log(1024));\n return (bytes / Math.pow(1024, Math.floor(num))).toFixed(1) + ' ' + units[num];\n }\n}\n","import {Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output} from '@angular/core';\n\n/**\n * A material design file upload queue component.\n */\n@Directive({\n selector: 'input[fileUploadInputFor], div[fileUploadInputFor], mat-card[fileUploadInputFor]',\n})\nexport class FileUploadInputForDirective {\n\n private _queue: any = null;\n private _element: HTMLElement;\n @Output() public onFileSelected: EventEmitter<File[]> = new EventEmitter<File[]>();\n @HostBinding('class.fileover') fileOver: boolean;\n\n\n constructor(private element: ElementRef) {\n this._element = this.element.nativeElement;\n }\n\n @Input('fileUploadInputFor')\n set fileUploadQueue(value: any) {\n if (value) {\n this._queue = value;\n }\n }\n\n @HostListener('change')\n public onChange(): any {\n const files = this.element.nativeElement.files;\n this.onFileSelected.emit(files);\n\n for (let i = 0; i < files.length; i++) {\n this._queue.add(files[i]);\n }\n this.element.nativeElement.value = '';\n }\n\n @HostListener('drop', ['$event'])\n public onDrop(event: any): any {\n const files = event.dataTransfer.files;\n this.onFileSelected.emit(files);\n\n for (let i = 0; i < files.length; i++) {\n this._queue.add(files[i]);\n }\n event.preventDefault();\n event.stopPropagation();\n this.element.nativeElement.value = '';\n this.fileOver = false;\n }\n\n @HostListener('dragover', ['$event'])\n public onDropOver(event: any): any {\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = true;\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(event): void {\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = false;\n }\n\n}\n","import {Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from '@angular/core';\nimport {HttpErrorResponse, HttpResponse} from '@angular/common/http';\nimport {TranslateService} from '@ngx-translate/core';\n\n\n@Component({\n selector: 'app-file-uploader',\n templateUrl: './file-uploader.component.html',\n styleUrls: ['./file-uploader.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FileUploaderComponent implements OnInit {\n\n // Number of milliseconds to display the file upload success message\n private static readonly SUCCESS_MESSAGE_TIMEOUT = 5000;\n\n @Input() fileAlias: string;\n @Input() httpUrl: string;\n @Output() fileUploaded = new EventEmitter<object>();\n showSuccess = false;\n showError = false;\n successMessage = '';\n errorMessage = '';\n\n protected translateService: TranslateService;\n\n constructor(translateService: TranslateService) {\n this.translateService = translateService;\n }\n\n ngOnInit(): void {\n }\n\n onFileUploaded(event): void {\n if (event && event.event instanceof HttpResponse) {\n this.clearError();\n const fileName = event.file.name;\n this.successMessage = this.translateService.instant('Uploader.Success', {fileName});\n this.showSuccess = true;\n setTimeout(() => {\n this.clearSuccess();\n }, FileUploaderComponent.SUCCESS_MESSAGE_TIMEOUT);\n } else if (typeof event === 'object' && event.event instanceof HttpErrorResponse) {\n this.clearSuccess();\n const fileName = event.file.name;\n let responseMessage = '';\n const response = event.event;\n if (response.message && response.message.length > 0) {\n responseMessage = response.message;\n }\n this.errorMessage = this.translateService.instant('Uploader.Error', {fileName, responseMessage});\n this.showError = true;\n }\n this.fileUploaded.emit(event);\n }\n\n clearSuccess(): void {\n this.showSuccess = false;\n this.successMessage = '';\n }\n\n clearError(): void {\n this.showError = false;\n this.errorMessage = '';\n }\n\n}\n","import {\n Component, ChangeDetectionStrategy, ContentChildren, forwardRef, OnDestroy, OnChanges,\n QueryList, SimpleChanges, Input, ChangeDetectorRef, AfterViewInit\n} from '@angular/core';\nimport {Subscription, Observable, merge} from 'rxjs';\nimport {HttpHeaders, HttpParams} from '@angular/common/http';\nimport {startWith} from 'rxjs/operators';\nimport {MatFileUploadQueueService} from './mat-file-upload-queue.service';\nimport {MatFileUploadComponent} from '../mat-file-upload/mat-file-upload.component';\n\n@Component({\n selector: 'mat-file-upload-queue',\n templateUrl: './mat-file-upload-queue.component.html',\n styleUrls: ['./mat-file-upload-queue.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [MatFileUploadQueueService],\n})\nexport class MatFileUploadQueueComponent implements OnChanges, OnDestroy, AfterViewInit {\n @ContentChildren(forwardRef(() => MatFileUploadComponent))\n fileUploads: QueryList<MatFileUploadComponent>;\n\n /** Subscription to remove changes in files. */\n private _fileRemoveSubscription: Subscription | null;\n\n /** Subscription to changes in the files. */\n private _changeSubscription: Subscription;\n\n /** Combined stream of all of the file upload remove change events. */\n get fileUploadRemoveEvents(): Observable<MatFileUploadComponent> {\n return merge(\n ...this.fileUploads.map((fileUpload) => fileUpload.removeEvent)\n );\n }\n\n public files: Array<any> = [];\n\n ngOnChanges(changes: SimpleChanges): void {\n this.matFileUploadQueueService.initialize({\n httpUrl: changes.httpUrl ? changes.httpUrl.currentValue : undefined,\n httpRequestHeaders: changes.httpRequestHeaders\n ? changes.httpRequestHeaders.currentValue\n : undefined,\n httpRequestParams: changes.httpRequestParams\n ? changes.httpRequestParams.currentValue\n : undefined,\n fileAlias: changes.fileAlias\n ? changes.fileAlias.currentValue\n : undefined,\n });\n }\n\n constructor(private matFileUploadQueueService: MatFileUploadQueueService, private changeDetectorRef: ChangeDetectorRef) {\n }\n\n /* Http request input bindings */\n @Input()\n httpUrl: string;\n\n @Input()\n httpRequestHeaders:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n } = new HttpHeaders();\n\n @Input()\n httpRequestParams:\n | HttpParams\n | {\n [param: string]: string | string[];\n } = new HttpParams();\n\n @Input()\n fileAlias = 'file';\n\n @Input()\n uploadAllColor = 'primary';\n\n @Input()\n uploadAllLabel = 'Upload All';\n\n @Input()\n removeAllColor = 'primary';\n\n @Input()\n removeAllLabel = 'Remove All';\n\n ngAfterViewInit(): void {\n // When the list changes, re-subscribe\n this._changeSubscription = this.fileUploads.changes\n .pipe(startWith(null))\n .subscribe(() => {\n if (this._fileRemoveSubscription) {\n this._fileRemoveSubscription.unsubscribe();\n }\n this._listenTofileRemoved();\n });\n }\n\n private _listenTofileRemoved(): void {\n this._fileRemoveSubscription = this.fileUploadRemoveEvents.subscribe(\n (event: MatFileUploadComponent) => {\n this.files.splice(event.id, 1);\n this.changeDetectorRef.markForCheck();\n }\n );\n }\n\n add(file: any): void {\n this.files.push(file);\n this.changeDetectorRef.markForCheck();\n }\n\n public uploadAll(): void {\n this.fileUploads.forEach((fileUpload) => {\n fileUpload.upload();\n });\n }\n\n public removeAll(): void {\n this.files.splice(0, this.files.length);\n this.changeDetectorRef.markForCheck();\n }\n\n ngOnDestroy(): void {\n if (this._changeSubscription) {\n this._changeSubscription.unsubscribe();\n }\n\n if (this._fileRemoveSubscription) {\n this._fileRemoveSubscription.unsubscribe();\n }\n\n if (this.files) {\n this.removeAll();\n }\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\nimport {IInput} from '../mat-file-upload.type';\n\n@Injectable()\nexport class MatFileUploadQueueService {\n private inputValueSubject = new BehaviorSubject<IInput>(null);\n inputValue$ = this.inputValueSubject.asObservable();\n\n initialize(input: IInput): void {\n this.inputValueSubject.next(input);\n }\n\n getInputValue(): IInput {\n return this.inputValueSubject.getValue();\n }\n}\n","import {NgModule} from '@angular/core';\nimport {BytesPipe} from './bytes/bytes.pipe';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatProgressBarModule} from '@angular/material/progress-bar';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatButtonModule} from '@angular/material/button';\nimport {CommonModule} from '@angular/common';\nimport {HttpClientModule} from '@angular/common/http';\nimport {MatFileUploadQueueComponent} from './mat-file-upload-queue/mat-file-upload-queue.component';\nimport {MatFileUploadComponent} from './mat-file-upload/mat-file-upload.component';\nimport {FileUploadInputForDirective} from './file-upload-input-for/file-upload-input-for.directive';\n\n@NgModule({\n declarations: [\n BytesPipe,\n MatFileUploadQueueComponent,\n MatFileUploadComponent,\n FileUploadInputForDirective\n ],\n imports: [\n MatProgressBarModule,\n MatCardModule,\n MatButtonModule,\n MatIconModule,\n HttpClientModule,\n CommonModule,\n ],\n exports: [\n BytesPipe,\n MatFileUploadQueueComponent,\n MatFileUploadComponent,\n FileUploadInputForDirective\n ],\n})\nexport class MatFileUploadModule {}\n","import {Component, OnInit, ChangeDetectionStrategy, OnDestroy, Input, Output, EventEmitter} from '@angular/core';\nimport {ReplaySubject, BehaviorSubject, Subscription} from 'rxjs';\nimport {HttpHeaders, HttpParams, HttpClient, HttpEventType} from '@angular/common/http';\nimport {MatFileUploadQueueService} from '../mat-file-upload-queue/mat-file-upload-queue.service';\nimport {IUploadProgress} from '../mat-file-upload.type';\nimport {MatFileUploadService} from './mat-file-upload.service';\nimport {MessageHandlerService} from '../../../service/message-handler.service';\n\n@Component({\n selector: 'mat-file-upload',\n templateUrl: './mat-file-upload.component.html',\n styleUrls: ['./mat-file-upload.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatFileUploadComponent implements OnInit, OnDestroy {\n\n private uploadProgressSubject = new ReplaySubject<IUploadProgress>();\n uploadProgress$ = this.uploadProgressSubject.asObservable();\n\n private uploadInProgressSubject = new BehaviorSubject<boolean>(false);\n uploadInProgress$ = this.uploadInProgressSubject.asObservable();\n\n public subs = new Subscription();\n\n /* Http request input bindings */\n @Input()\n httpUrl: string;\n\n @Input()\n httpRequestHeaders:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n\n @Input()\n httpRequestParams:\n | HttpParams\n | {\n [param: string]: string | string[];\n };\n\n @Input()\n fileAlias: string;\n\n private _file: any;\n private _id: number;\n\n @Input()\n get file(): any {\n return this._file;\n }\n set file(file: any) {\n this._file = file;\n }\n\n @Input()\n set id(id: number) {\n this._id = id;\n }\n get id(): number {\n return this._id;\n }\n\n @Input()\n fileUploadAriaLabel = 'File Upload';\n\n @Input()\n cancelAriaLabel = 'Cancel File Upload';\n\n /** Output */\n @Output() removeEvent = new EventEmitter<MatFileUploadComponent>();\n @Output() onUpload = new EventEmitter();\n\n\n constructor(private httpClient: HttpClient, private matFileUploadQueueService: MatFileUploadQueueService,\n private matFileUploadService: MatFileUploadService, private messageHandlerService: MessageHandlerService) {\n const queueInput = this.matFileUploadQueueService.getInputValue();\n if (queueInput) {\n this.httpUrl = this.httpUrl || queueInput.httpUrl;\n this.httpRequestHeaders =\n this.httpRequestHeaders || queueInput.httpRequestHeaders;\n this.httpRequestParams =\n this.httpRequestParams || queueInput.httpRequestParams;\n this.fileAlias = this.fileAlias || queueInput.fileAlias;\n }\n }\n\n ngOnInit(): void {\n this.uploadProgressSubject.next({\n progressPercentage: 0,\n loaded: 0,\n total: this._file.size,\n });\n }\n\n public upload(): void {\n this.uploadInProgressSubject.next(true);\n // How to set the alias?\n const formData = new FormData();\n formData.set(this.fileAlias, this._file, this._file.name);\n this.subs.add(\n this.httpClient.post(this.httpUrl, formData, {\n headers: this.httpRequestHeaders,\n observe: 'events',\n params: this.httpRequestParams,\n reportProgress: true,\n responseType: 'json',\n }).subscribe(\n (event: any) => {\n if (event.type === HttpEventType.UploadProgress) {\n this.uploadProgressSubject.next({\n progressPercentage: Math.floor(\n (event.loaded * 100) / event.total\n ),\n loaded: event.loaded,\n total: event.total,\n });\n }\n const value = {file: this._file, event: event};\n this.matFileUploadService.setUploadedFile(value);\n this.onUpload.emit(value);\n },\n (error: any) => {\n this.uploadInProgressSubject.next(false);\n const value = {file: this._file, event: error};\n this.matFileUploadService.setUploadedFile(value);\n this.messageHandlerService.error('Error uploading template file: ' + JSON.stringify(error));\n this.onUpload.emit(value);\n },\n () => this.uploadInProgressSubject.next(false)\n )\n );\n }\n\n public remove(): void {\n this.subs.unsubscribe();\n this.removeEvent.emit(this);\n }\n\n ngOnDestroy(): void {\n this.subs.unsubscribe();\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MatFileUploadService {\n\n private uploadedFileSubject = new BehaviorSubject<object>(null);\n uploadedFile$ = this.uploadedFileSubject.asObservable();\n\n\n setUploadedFile(file): void {\n this.uploadedFileSubject.next(file);\n }\n\n getUploadedFile(): object {\n return this.uploadedFileSubject.getValue();\n }\n\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'preferences-menu',\n templateUrl: './preferences-menu.component.html',\n styleUrls: ['./preferences-menu.component.scss']\n})\nexport class PreferencesMenu {\n\n}\n","import {Component, Input, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\nimport {SampleTemplatesService} from '../sample-templates.service';\nimport {\n CedarEmbeddableMetadataEditorWrapperComponent\n} from '../../cedar-embeddable-metadata-editor-wrapper/cedar-embeddable-metadata-editor-wrapper.component';\nimport {FormControl} from '@angular/forms';\nimport {ReplaySubject, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\n@Component({\n selector: 'app-sample-template-select',\n templateUrl: './sample-template-select.component.html',\n styleUrls: ['./sample-template-select.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SampleTemplateSelectComponent implements OnInit, OnDestroy {\n @Input() callbackOwnerObject: any = null;\n sampleTemplates: object[];\n templateLocationPrefix: string;\n templateCtrl: FormControl = new FormControl();\n templateFilterCtrl: FormControl = new FormControl();\n filteredTemplates: ReplaySubject<object[]> = new ReplaySubject<object[]>(1);\n protected _onDestroy = new Subject<void>();\n\n\n constructor(public sampleTemplateService: SampleTemplatesService) {\n }\n\n ngOnInit(): void {\n this.templateLocationPrefix = this.callbackOwnerObject.\n innerConfig[CedarEmbeddableMetadataEditorWrapperComponent.TEMPLATE_LOCATION_PREFIX];\n this.sampleTemplateService.getSampleTemplatesFromRegistry(this.templateLocationPrefix)\n .pipe(takeUntil(this._onDestroy))\n .subscribe(\n (templates: object[]) => {\n this.sampleTemplates = templates;\n this.filteredTemplates.next(this.sampleTemplates);\n }\n );\n\n this.sampleTemplateService.templateJson$\n .pipe(takeUntil(this._onDestroy))\n .subscribe( templateJson => {\n this.templateCtrl.setValue(Object.keys(templateJson)[0]);\n });\n\n // listen for search field value changes\n this.templateFilterCtrl.valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.filterTemplates();\n });\n }\n\n ngOnDestroy(): void {\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n filterTemplates(): void {\n if (!this.sampleTemplates) {\n return;\n }\n // get the search keyword\n let search = this.templateFilterCtrl.value;\n if (!search) {\n this.filteredTemplates.next(this.sampleTemplates.slice());\n return;\n } else {\n search = search.toLowerCase();\n }\n this.filteredTemplates.next(\n this.sampleTemplates.filter(\n template => template[this.sampleTemplateService.TEMPLATE_LABEL].toLowerCase().indexOf(search) > -1)\n );\n }\n\n loadBuiltinTemplate(templateNum: string): void {\n this.sampleTemplateService.loadTemplate(this.templateLocationPrefix, templateNum);\n window.scroll(0, 0);\n }\n\n inputChanged(event): void {\n if (event) {\n this.loadBuiltinTemplate(event.value);\n }\n }\n\n}\n","import {Component, Input, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\nimport {MatListOption} from '@angular/material/list';\nimport {\n CedarEmbeddableMetadataEditorWrapperComponent\n} from '../cedar-embeddable-metadata-editor-wrapper/cedar-embeddable-metadata-editor-wrapper.component';\nimport {HttpClient} from '@angular/common/http';\nimport {SampleTemplatesService} from './sample-templates.service';\nimport {Subject} from 'rxjs';\nimport {FormControl} from '@angular/forms';\nimport {takeUntil} from 'rxjs/operators';\n\n@Component({\n selector: 'app-sample-templates',\n templateUrl: './sample-templates.component.html',\n styleUrls: ['./sample-templates.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SampleTemplatesComponent implements OnInit, OnDestroy {\n\n @Input() callbackOwnerObject: any = null;\n @Input() expandedSampleTemplateLinks: boolean;\n templateLocationPrefix: string;\n templateCtrl: FormControl = new FormControl();\n sampleTemplates: object[] = [];\n protected _onDestroy = new Subject<void>();\n\n\n constructor(\n private http: HttpClient,\n public sampleTemplateService: SampleTemplatesService\n ) {\n }\n\n ngOnInit(): void {\n this.templateLocationPrefix = this.callbackOwnerObject.\n innerConfig[CedarEmbeddableMetadataEditorWrapperComponent.TEMPLATE_LOCATION_PREFIX];\n this.sampleTemplateService.getSampleTemplatesFromRegistry(this.templateLocationPrefix)\n .pipe(takeUntil(this._onDestroy))\n .subscribe(\n (templates: object[]) => {\n this.sampleTemplates.push(...templates);\n }\n );\n\n this.sampleTemplateService.templateJson$\n .pipe(takeUntil(this._onDestroy))\n .subscribe( templateJson => {\n this.templateCtrl.setValue([Object.keys(templateJson)[0]]);\n });\n }\n\n loadBuiltinTemplate(templateNum: string): void {\n this.sampleTemplateService.loadTemplate(this.templateLocationPrefix, templateNum);\n window.scroll(0, 0);\n }\n\n selectionClicked({option}: { option: MatListOption }): void {\n this.loadBuiltinTemplate(option.value);\n }\n\n ngOnDestroy(): void {\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {JsonSchema} from '../../models/json-schema.model';\nimport {HttpClient} from '@angular/common/http';\nimport {of, Observable, from, Subject, EMPTY, BehaviorSubject} from 'rxjs';\nimport {catchError, concatMap, map, takeUntil} from 'rxjs/operators';\nimport {MessageHandlerService} from '../../service/message-handler.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SampleTemplatesService {\n\n private readonly MAX_CHECK = 500;\n readonly TEMPLATE_FILENAME = 'template.json';\n readonly TEMPLATE_REGISTRY_FILENAME = 'registry.json';\n readonly TEMPLATE_NUMBER = 'num';\n readonly TEMPLATE_LABEL = 'label';\n private allTemplates: Observable<object[]>;\n private templateJsonSubject = new BehaviorSubject<object>(null);\n templateJson$ = this.templateJsonSubject.asObservable();\n\n\n constructor(\n private http: HttpClient,\n private messageHandlerService: MessageHandlerService\n ) {\n }\n\n loadTemplate(templateLocationPrefix: string, templateNum: string): void {\n templateLocationPrefix = this.fixedLocationPrefix(templateLocationPrefix);\n const templateUrl = templateLocationPrefix + templateNum + '/' + this.TEMPLATE_FILENAME;\n this.loadTemplateFromURL(templateUrl, templateNum);\n }\n\n loadTemplateFromURL(templateUrl: string, templateNum: string = null): void {\n if (!templateNum) {\n templateNum = this.templateNumberFromUrl(templateUrl);\n }\n this.http.get(templateUrl).subscribe(\n value => {\n const valObj = {};\n valObj[templateNum] = value;\n this.templateJsonSubject.next(valObj);\n this.messageHandlerService.trace('Loaded template: ' + templateUrl + ' (' + JSON.stringify(value).length + ' characters)');\n },\n error => {\n this.messageHandlerService.error('Error while loading sample template from: ' + templateUrl);\n }\n );\n }\n\n getSampleTemplatesFromRegistry(templateLocationPrefix: string): Observable<object[]> {\n if (this.allTemplates) {\n return this.allTemplates;\n }\n templateLocationPrefix = this.fixedLocationPrefix(templateLocationPrefix);\n const registryUrl = templateLocationPrefix + this.TEMPLATE_REGISTRY_FILENAME;\n this.allTemplates = this.http.get(registryUrl)\n .pipe(\n map(\n (resp: object) => {\n return Object.keys(resp).sort().map( (key, index) => {\n const entry = {};\n entry[this.TEMPLATE_NUMBER] = key;\n entry[this.TEMPLATE_LABEL] = resp[key];\n return entry;\n });\n }\n ),\n catchError(\n error => {\n this.messageHandlerService.errorObject(error['message'], error);\n return EMPTY;\n })\n );\n return this.allTemplates;\n }\n\n getSampleTemplatesDynamically(templateLocationPrefix: string): Observable<object> {\n if (!this.allTemplates) {\n templateLocationPrefix = this.fixedLocationPrefix(templateLocationPrefix);\n this.buildAllTemplatesDynamically(templateLocationPrefix);\n }\n return this.allTemplates;\n }\n\n private buildAllTemplatesDynamically(templateLocationPrefix: string): void {\n const allTemplates = [];\n this.getAllTemplatesSubscription(templateLocationPrefix).subscribe(\n resp => {\n const entry = {};\n entry[this.TEMPLATE_NUMBER] = Object.keys(resp)[0];\n entry[this.TEMPLATE_LABEL] = Object.values(resp)[0];\n allTemplates.push(entry);\n });\n this.allTemplates = of(allTemplates);\n }\n\n private getAllTemplatesSubscription(templateLocationPrefix: string): Observable<object> {\n const singleUrls: string[] = [];\n const closeRequest$ = new Subject<void>();\n let errorIndex = 0;\n\n for (let i = 1; i <= this.MAX_CHECK; i++) {\n const templateName = (i < 10) ? '0' + i.toString() : i.toString();\n const templateUrl = templateLocationPrefix + templateName + '/' + this.TEMPLATE_FILENAME;\n singleUrls.push(templateUrl);\n }\n return from(singleUrls)\n .pipe(\n concatMap(singleUrl => {\n const templateNum = this.templateNumberFromUrl(singleUrl);\n return this.getSingleTemplateLabel(singleUrl)\n .pipe(\n map ( templateLabel => {\n errorIndex = 0;\n const templateEntry = {};\n templateEntry[templateNum] = 'Template ' + templateNum + ' - ' + templateLabel;\n return templateEntry;\n }),\n // if encounter two consecutive error requests, finish polling\n catchError(error => {\n if (error.status === 0) {\n errorIndex++;\n } else {\n this.messageHandlerService.errorObject(error['message'], error);\n }\n\n if (errorIndex > 1) {\n closeRequest$.next();\n closeRequest$.complete();\n }\n return EMPTY;\n })\n );\n }),\n takeUntil(closeRequest$)\n );\n }\n\n private getSingleTemplateLabel(templateUrl: string): Observable<string> {\n return this.http.get(templateUrl)\n .pipe(\n map(response => {\n if (response == null || !response[JsonSchema.schemaName]) {\n return null;\n }\n return response[JsonSchema.schemaName];\n })\n );\n }\n\n private templateNumberFromUrl(url): string {\n const templateNumPatternStr = '\\\\/(\\\\d+)\\\\/' + this.TEMPLATE_FILENAME;\n const templateNumPattern = new RegExp(templateNumPatternStr);\n const templateNumMatch = url.match(templateNumPattern);\n\n if (templateNumMatch && templateNumMatch.length > 1) {\n return templateNumMatch[1];\n }\n return '-1';\n }\n\n private fixedLocationPrefix(locationPrefix: string): string {\n const locationPrefixPatternStr = '\\\\/$';\n const locationPrefixPattern = new RegExp(locationPrefixPatternStr);\n const locationPrefixMatch = locationPrefix.match(locationPrefixPattern);\n\n if (!locationPrefixMatch) {\n locationPrefix += '/';\n }\n return locationPrefix;\n }\n\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {DataContext} from '../../util/data-context';\n\n@Component({\n selector: 'app-source-panels',\n templateUrl: './source-panels.component.html',\n styleUrls: ['./source-panels.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SourcePanelsComponent implements OnInit {\n\n @Input() dataContext: DataContext = null;\n\n @Input() showTemplateRenderingRepresentation: boolean;\n @Input() showMultiInstanceInfo: boolean;\n @Input() showTemplateSourceData: boolean;\n @Input() showInstanceDataCore: boolean;\n @Input() showInstanceDataFull: boolean;\n\n @Input() expandedInstanceDataCore = false;\n @Input() expandedInstanceDataFull = false;\n @Input() expandedTemplateSourceData = false;\n @Input() expandedTemplateRenderingRepresentation = false;\n @Input() expandedMultiInstanceInfo = false;\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n stopPropagation(event): void {\n event.stopPropagation();\n }\n\n}\n","import {Component, OnInit, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'app-static-footer',\n templateUrl: './static-footer.component.html',\n styleUrls: ['./static-footer.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class StaticFooterComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'app-static-header',\n templateUrl: './static-header.component.html',\n styleUrls: ['./static-header.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class StaticHeaderComponent implements OnInit {\n\n @Input() callbackOwnerObject: any = null;\n @Input() showSampleTemplateLinks: boolean = null;\n\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n}\n","import {\n AfterViewInit,\n Component,\n forwardRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport * as momentZone from 'moment-timezone';\nimport {ControlValueAccessor, FormBuilder, FormGroup, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\n\nexport class TZone {\n id: string;\n label: string;\n}\n\n\nexport interface SelectConfig {\n appearance: 'underline' | 'outline';\n appendTo: string;\n clearOnBackspace: boolean;\n closeOnSelect: boolean;\n dropdownPosition: 'auto' | 'bottom' | 'top';\n hideSelected: boolean;\n}\n\n\n@Component({\n selector: 'app-timezone-picker',\n templateUrl: './timezone-picker.component.html',\n styleUrls: ['./timezone-picker.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimezonePickerComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class TimezonePickerComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor {\n\n static readonly AVAILABLE_TIMEZONES = [\n {id: '-12:00', label: '(GMT -12:00) Eniwetok, Kwajalein'},\n {id: '-11:00', label: '(GMT -11:00) Midway Island, Samoa'},\n {id: '-10:00', label: '(GMT -10:00) Hawaii'},\n {id: '-09:30', label: '(GMT -9:30) Taiohae'},\n {id: '-09:00', label: '(GMT -9:00) Alaska'},\n {id: '-08:00', label: '(GMT -8:00) Pacific Time (US & Canada)'},\n {id: '-07:00', label: '(GMT -7:00) Mountain Time (US & Canada)'},\n {id: '-06:00', label: '(GMT -6:00) Central Time (US & Canada), Mexico City'},\n {id: '-05:00', label: '(GMT -5:00) Eastern Time (US & Canada), Bogota, Lima'},\n {id: '-04:30', label: '(GMT -4:30) Caracas'},\n {id: '-04:00', label: '(GMT -4:00) Atlantic Time (Canada), Caracas, La Paz'},\n {id: '-03:30', label: '(GMT -3:30) Newfoundland'},\n {id: '-03:00', label: '(GMT -3:00) Brazil, Buenos Aires, Georgetown'},\n {id: '-02:00', label: '(GMT -2:00) Mid-Atlantic'},\n {id: '-01:00', label: '(GMT -1:00) Azores, Cape Verde Islands'},\n {id: 'Z', label: '(GMT) Western Europe Time, London, Lisbon, Casablanca'},\n {id: '+01:00', label: '(GMT +1:00) Brussels, Copenhagen, Madrid, Paris'},\n {id: '+02:00', label: '(GMT +2:00) Kaliningrad, South Africa'},\n {id: '+03:00', label: '(GMT +3:00) Baghdad, Riyadh, Moscow, St. Petersburg'},\n {id: '+03:30', label: '(GMT +3:30) Tehran'},\n {id: '+04:00', label: '(GMT +4:00) Abu Dhabi, Muscat, Baku, Tbilisi'},\n {id: '+04:30', label: '(GMT +4:30) Kabul'},\n {id: '+05:00', label: '(GMT +5:00) Ekaterinburg, Islamabad, Karachi, Tashkent'},\n {id: '+05:30', label: '(GMT +5:30) Bombay, Calcutta, Madras, New Delhi'},\n {id: '+05:45', label: '(GMT +5:45) Kathmandu, Pokhara'},\n {id: '+06:00', label: '(GMT +6:00) Almaty, Dhaka, Colombo'},\n {id: '+06:30', label: '(GMT +6:30) Yangon, Mandalay'},\n {id: '+07:00', label: '(GMT +7:00) Bangkok, Hanoi, Jakarta'},\n {id: '+08:00', label: '(GMT +8:00) Beijing, Perth, Singapore, Hong Kong'},\n {id: '+08:45', label: '(GMT +8:45) Eucla'},\n {id: '+09:00', label: '(GMT +9:00) Tokyo, Seoul, Osaka, Sapporo, Yakutsk'},\n {id: '+09:30', label: '(GMT +9:30) Adelaide, Darwin'},\n {id: '+10:00', label: '(GMT +10:00) Eastern Australia, Guam, Vladivostok'},\n {id: '+10:30', label: '(GMT +10:30) Lord Howe Island'},\n {id: '+11:00', label: '(GMT +11:00) Magadan, Solomon Islands, New Caledonia'},\n {id: '+11:30', label: '(GMT +11:30) Norfolk Island'},\n {id: '+12:00', label: '(GMT +12:00) Auckland, Wellington, Fiji, Kamchatka'},\n {id: '+12:45', label: '(GMT +12:45) Chatham Islands'},\n {id: '+13:00', label: '(GMT +13:00) Apia, Nukualofa'},\n {id: '+14:00', label: '(GMT +14:00) Line Islands, Tokelau'}\n ];\n\n\n /**\n * Setup section.\n */\n @Input() getUserZone = false;\n @Input() customPlaceholderText = 'Choose...';\n @Input() customNotFoundText = 'No zone found';\n @Input() clearable = false;\n @Input() virtualScroll = true;\n @Input() disabled = false;\n\n @Input() set config(conf: SelectConfig) {\n this._config = conf;\n }\n\n private _config: SelectConfig = {\n hideSelected: false,\n dropdownPosition: 'auto',\n appearance: 'underline',\n clearOnBackspace: true,\n closeOnSelect: true,\n appendTo: null\n };\n\n get config(): SelectConfig {\n return this._config;\n }\n\n /**\n * Internals section.\n */\n timeZones: Array<any>;\n form: FormGroup;\n private propagateChange: (_: any) => {};\n private destroy$ = new Subject<void>();\n\n constructor(private fb: FormBuilder) {\n }\n\n static guessedUserZone(): TZone {\n const guessedZone = momentZone.tz.guess(true);\n return TimezonePickerComponent.findZone(guessedZone);\n }\n\n static findZone(zone: string): TZone {\n const allZones = JSON.parse(JSON.stringify(TimezonePickerComponent.AVAILABLE_TIMEZONES));\n const utc: string = momentZone.tz(zone).format('Z');\n return allZones.find(z => z.id === utc);\n }\n\n ngOnInit(): void {\n // make a copy of the list to avoid modifying the original timezones array\n this.timeZones = JSON.parse(JSON.stringify(TimezonePickerComponent.AVAILABLE_TIMEZONES));\n this.form = this.fb.group({\n timezone: []\n });\n\n /**\n * Value change subscription.\n */\n this.form.get('timezone').valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.fireChanges());\n }\n\n ngAfterViewInit(): void {\n this.guessUserTimezone();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private guessUserTimezone(): void {\n setTimeout(() => {\n if (this.getUserZone) {\n const guessedZone = TimezonePickerComponent.guessedUserZone();\n this.form.get('timezone').setValue(guessedZone);\n }\n });\n }\n\n\n\n\n\n // /**\n // * Make TZone object from simple string.\n // * @link ngOnInit\n // */\n // formatZone(zone: string): TZone {\n // const utc: string = momentZone.tz(zone).format('Z');\n // return this.timeZones.find(z => z.id === utc);\n // }\n\n\n\n\n\n\n /**\n * Propagate result to parent component.\n */\n private fireChanges(): void {\n if (this.propagateChange) {\n this.propagateChange(this.form.get('timezone').value);\n }\n }\n\n /**\n * Clear selection.\n */\n private clearZone(): void {\n this.form.get('timezone').setValue(null);\n }\n\n /**\n * Handle parent imports changes.\n */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.getUserZone && changes.getUserZone.currentValue) {\n this.guessUserTimezone();\n }\n if (changes.disabled) {\n setTimeout(() => {\n changes.disabled.currentValue ? this.form.get('timezone').disable() : this.form.get('timezone').enable();\n });\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n }\n\n /**\n * Handle parent model value changes.\n */\n writeValue(zone: string | TZone): void {\n if (zone) {\n let _zone: TZone = null;\n\n if (typeof zone === 'string' && zone.length > 0) {\n _zone = this.timeZones.find(z => z.id === zone);\n } else if (typeof zone === 'object') {\n _zone = this.timeZones.find(z => z.id === zone.id);\n }\n\n if (_zone) {\n this.form.get('timezone').setValue(_zone);\n }\n } else {\n this.clearZone();\n }\n }\n\n}\n","import {JsonSchema} from '../models/json-schema.model';\nimport {CedarModel} from '../models/cedar-model.model';\nimport {JavascriptTypes} from '../models/javascript-types.model';\nimport {CedarComponent} from '../models/component/cedar-component.model';\nimport {MultiElementComponent} from '../models/element/multi-element-component.model';\nimport {CedarTemplate} from '../models/template/cedar-template.model';\nimport {NullTemplate} from '../models/template/null-template.model';\nimport {EmptyTemplate} from '../models/template/empty-template.model';\nimport {TemplateComponent} from '../models/template/template-component.model';\nimport {MultiFieldComponent} from '../models/field/multi-field-component.model';\nimport {SingleFieldComponent} from '../models/field/single-field-component.model';\nimport {SingleElementComponent} from '../models/element/single-element-component.model';\nimport {MultiComponent} from '../models/component/multi-component.model';\nimport {ElementComponent} from '../models/component/element-component.model';\nimport {FieldComponent} from '../models/component/field-component.model';\nimport {ChoiceOption} from '../models/info/choice-option.model';\nimport {CedarInputTemplate} from '../models/cedar-input-template.model';\nimport {StaticFieldComponent} from '../models/static/static-field-component.model';\nimport {ComponentTypeHandler} from '../handler/component-type.handler';\nimport {InputType} from '../models/input-type.model';\nimport {TemplateObjectUtil} from '../util/template-object-util';\n\nexport class TemplateRepresentationFactory {\n\n static create(inputTemplate: CedarInputTemplate, collapseStaticComponents: boolean): TemplateComponent {\n if (inputTemplate === null) {\n return new NullTemplate();\n } else {\n const template = new CedarTemplate();\n TemplateRepresentationFactory.wrap(inputTemplate, inputTemplate, template, [], collapseStaticComponents);\n TemplateRepresentationFactory.extractTemplateLabels(inputTemplate, template);\n TemplateRepresentationFactory.extractPageBreakPages(template);\n return template;\n }\n }\n\n static extractPageBreakPages(template: CedarTemplate): void {\n const pages = [];\n let page = [];\n let numPBInRow = 0;\n\n template.children.forEach((child, index) => {\n // encountered page-break component\n if (child instanceof StaticFieldComponent && (child as StaticFieldComponent).basicInfo.inputType === InputType.pageBreak) {\n if (page.length) {\n pages.push(page);\n }\n // if page-break is the last component, always add an empty page\n if (index === template.children.length - 1) {\n pages.push([new EmptyTemplate()]);\n } else {\n numPBInRow++;\n }\n page = [];\n } else {\n page.push(child);\n\n if (index === template.children.length - 1) {\n pages.push(page);\n }\n\n // add empty pages corresponding to: (number of page breaks in a row - 1)\n for (let i = 0; i < numPBInRow - 1; i++) {\n pages.push([new EmptyTemplate()]);\n }\n numPBInRow = 0;\n }\n });\n template.pageBreakChildren = pages;\n }\n\n private static isFragmentMulti(templateFragment: object): boolean {\n const fragmentType = templateFragment[CedarModel.type];\n\n if (fragmentType === JavascriptTypes.object) {\n return false;\n } else if (fragmentType === JavascriptTypes.array) {\n return true;\n } else {\n throw new Error(\n 'Invalid node value of ' + CedarModel.type + '. Value found:\"' + fragmentType + '\". ' +\n 'Expected \"' + JavascriptTypes.object + '\" or \"' + JavascriptTypes.array + '\"!'\n );\n }\n }\n\n private static wrap(templateJsonObj: object, parentJsonObj: object, component: CedarComponent, parentPath: string[], collapseStaticComponents: boolean): void {\n // const propertyNames: string[] = TemplateRepresentationFactory.getFilteredSchemaPropertyNames(templateJsonObj);\n // console.log(propertyNames);\n const propertyNames: string[] = TemplateRepresentationFactory.getOrderedPropertyNames(templateJsonObj);\n for (const name of propertyNames) {\n const templateFragment = templateJsonObj[JsonSchema.properties][name];\n\n const isMulti: boolean = TemplateRepresentationFactory.isFragmentMulti(templateFragment);\n\n const parentDataNode: object = TemplateRepresentationFactory.getDataNode(parentJsonObj);\n const dataNode: object = TemplateRepresentationFactory.getDataNode(templateFragment);\n const fragmentAtType = dataNode[JsonSchema.atType];\n let r: CedarComponent = null;\n\n const myPath: string[] = parentPath.slice();\n myPath.push(name);\n\n if (fragmentAtType === CedarModel.templateFieldType) {\n if (isMulti) {\n r = new MultiFieldComponent();\n } else {\n r = new SingleFieldComponent();\n }\n\n TemplateRepresentationFactory.extractValueConstraints(dataNode, r as FieldComponent);\n TemplateRepresentationFactory.extractLabels(dataNode, parentDataNode, name, r as FieldComponent);\n } else if (fragmentAtType === CedarModel.templateElementType) {\n if (isMulti) {\n r = new MultiElementComponent();\n } else {\n r = new SingleElementComponent();\n }\n TemplateRepresentationFactory.extractLabels(dataNode, parentDataNode, name, r as FieldComponent);\n TemplateRepresentationFactory.wrap(dataNode, templateJsonObj, r, myPath, collapseStaticComponents);\n } else if (fragmentAtType === CedarModel.templateStaticFieldType) {\n r = new StaticFieldComponent();\n TemplateRepresentationFactory.extractStaticData(dataNode, parentDataNode, name, r as StaticFieldComponent);\n }\n\n if (r !== null) {\n const wrapperElement: ElementComponent = component as ElementComponent;\n wrapperElement.children.push(r);\n r.name = name;\n r.path = myPath;\n }\n\n if (isMulti) {\n const mr = r as MultiComponent;\n TemplateRepresentationFactory.extractMultiInfo(templateFragment, mr);\n }\n }\n\n if (collapseStaticComponents) {\n this.collapseStaticFieldsIntoNextFieldOrElement(component);\n }\n }\n\n // private static getFilteredSchemaPropertyNames(jsonObj: object): string[] {\n // const names: string[] = [];\n // if (jsonObj.hasOwnProperty(JsonSchema.properties)) {\n // const prMap = jsonObj[JsonSchema.properties];\n // if (prMap instanceof Object) {\n // for (const name of Object.keys(prMap)) {\n // if (!JsonSchema.builtInProperties.has(name)) {\n // names.push(name);\n // }\n // }\n // }\n // }\n // return names;\n // }\n\n private static getOrderedPropertyNames(jsonObj: object): string[] {\n const order: string[] = [];\n if (jsonObj.hasOwnProperty(CedarModel.ui)) {\n const uiMap = jsonObj[CedarModel.ui];\n if (uiMap.hasOwnProperty(CedarModel.order)) {\n return uiMap[CedarModel.order];\n }\n }\n return order;\n }\n\n private static getDataNode(templateFragment: object): object {\n if (templateFragment == null) {\n return null;\n }\n const isMulti: boolean = TemplateRepresentationFactory.isFragmentMulti(templateFragment);\n if (isMulti) {\n return templateFragment[CedarModel.items];\n } else {\n return templateFragment;\n }\n }\n\n private static extractValueConstraints(dataNode: object, fc: FieldComponent): void {\n fc.basicInfo.inputType = dataNode[CedarModel.ui][CedarModel.inputType];\n\n if (dataNode[CedarModel.ui][CedarModel.inputType] === InputType.temporal) {\n if (dataNode[CedarModel.ui].hasOwnProperty(CedarModel.timezoneEnabled)) {\n fc.basicInfo.timezoneEnabled = dataNode[CedarModel.ui][CedarModel.timezoneEnabled];\n }\n if (dataNode[CedarModel.ui].hasOwnProperty(CedarModel.inputTimeFormat)) {\n fc.basicInfo.inputTimeFormat = dataNode[CedarModel.ui][CedarModel.inputTimeFormat];\n }\n if (dataNode[CedarModel.ui].hasOwnProperty(CedarModel.temporalGranularity)) {\n fc.basicInfo.temporalGranularity = dataNode[CedarModel.ui][CedarModel.temporalGranularity];\n }\n }\n\n if (dataNode[CedarModel.ui].hasOwnProperty(CedarModel.temporalGranularity)) {\n fc.basicInfo.temporalGranularity = dataNode[CedarModel.ui][CedarModel.temporalGranularity];\n }\n\n if (TemplateObjectUtil.hasValueConstraints(dataNode)) {\n const vc: object = dataNode[CedarModel.valueConstraints];\n fc.valueInfo.requiredValue = vc[CedarModel.requiredValue];\n fc.valueInfo.defaultValue = vc[CedarModel.defaultValue];\n fc.valueInfo.minLength = vc[CedarModel.minLength];\n fc.valueInfo.maxLength = vc[CedarModel.maxLength];\n\n if (vc.hasOwnProperty(CedarModel.temporalType)) {\n fc.valueInfo.temporalType = vc[CedarModel.temporalType];\n }\n\n fc.numberInfo.numberType = vc[CedarModel.numberType];\n fc.numberInfo.unitOfMeasure = vc[CedarModel.unitOfMeasure];\n fc.numberInfo.minValue = vc[CedarModel.minValue];\n fc.numberInfo.maxValue = vc[CedarModel.maxValue];\n fc.numberInfo.decimalPlace = vc[CedarModel.decimalPlace];\n fc.choiceInfo.multipleChoice = vc[CedarModel.multipleChoice];\n\n if (vc[CedarModel.literals] !== undefined) {\n for (const pair of vc[CedarModel.literals]) {\n const option = new ChoiceOption();\n option.label = pair[CedarModel.label];\n option.selectedByDefault = pair[CedarModel.selectedByDefault];\n fc.choiceInfo.choices.push(option);\n }\n }\n\n if (TemplateObjectUtil.hasControlledInfo(dataNode)) {\n fc.basicInfo.inputType = InputType.controlled;\n fc.controlledInfo.ontologies = vc[CedarModel.ontologies];\n fc.controlledInfo.valueSets = vc[CedarModel.valueSets];\n fc.controlledInfo.classes = vc[CedarModel.classes];\n fc.controlledInfo.branches = vc[CedarModel.branches];\n }\n }\n }\n\n private static extractLabels(dataNode: object, parentDataNode: object, name: string, fc: FieldComponent): void {\n fc.labelInfo.preferredLabel = dataNode[CedarModel.skosPrefLabel];\n fc.labelInfo.description = dataNode[JsonSchema.schemaDescription];\n fc.labelInfo.label = dataNode[JsonSchema.schemaName];\n if (parentDataNode != null) {\n if (fc.labelInfo.description == null || fc.labelInfo.description === 'Help Text') {\n if (parentDataNode[CedarModel.ui][CedarModel.propertyDescriptions] !== undefined) {\n fc.labelInfo.description = parentDataNode[CedarModel.ui][CedarModel.propertyDescriptions][name];\n }\n }\n if (fc.labelInfo.label == null || fc.labelInfo.label === name) {\n if (parentDataNode[CedarModel.ui][CedarModel.propertyLabels] !== undefined) {\n fc.labelInfo.label = parentDataNode[CedarModel.ui][CedarModel.propertyLabels][name];\n }\n }\n }\n }\n\n private static extractMultiInfo(templateFragment: object, mr: MultiComponent): void {\n mr.multiInfo.minItems = templateFragment[CedarModel.minItems];\n mr.multiInfo.maxItems = templateFragment[CedarModel.maxItems];\n }\n\n private static extractTemplateLabels(templateJsonObj: object, template: CedarTemplate): void {\n template.labelInfo.label = templateJsonObj[JsonSchema.schemaName];\n template.labelInfo.description = templateJsonObj[JsonSchema.schemaDescription];\n }\n\n private static extractStaticData(dataNode: object, parentDataNode: object, name: string, sfc: StaticFieldComponent): void {\n sfc.basicInfo.inputType = dataNode[CedarModel.ui][CedarModel.inputType];\n sfc.labelInfo.preferredLabel = dataNode[CedarModel.skosPrefLabel];\n sfc.contentInfo.content = dataNode[CedarModel.ui][CedarModel.content];\n sfc.labelInfo.description = dataNode[JsonSchema.schemaDescription];\n sfc.labelInfo.label = dataNode[JsonSchema.schemaName];\n if (parentDataNode != null) {\n if (sfc.labelInfo.description == null || sfc.labelInfo.description === 'Help Text') {\n if (parentDataNode[CedarModel.ui][CedarModel.propertyDescriptions] !== undefined) {\n sfc.labelInfo.description = parentDataNode[CedarModel.ui][CedarModel.propertyDescriptions][name];\n }\n }\n if (sfc.labelInfo.label == null || sfc.labelInfo.label === name) {\n if (parentDataNode[CedarModel.ui][CedarModel.propertyLabels] !== undefined) {\n sfc.labelInfo.label = parentDataNode[CedarModel.ui][CedarModel.propertyLabels][name];\n }\n }\n }\n }\n\n // Group RTF/image/video fields into consecutive pairs. Any pair gets combined\n // and displayed inline wherever it's located.\n // If the RTF/image/video field is odd (not paired with another RTF/image/video),\n // wrap this field into the next dynamic field/element\n private static collapseStaticFieldsIntoNextFieldOrElement(component: CedarComponent): void {\n // re-iterate, inject static components (images) into the next dynamic components\n // but only if they aren't paired with other like fields\n if (ComponentTypeHandler.isContainerComponent(component)) {\n const elementComponent = component as ElementComponent;\n let prevChild: CedarComponent = null;\n const newChildren: CedarComponent[] = [];\n let isStaticPair = false;\n\n for (let i = 0; i < elementComponent.children.length; i++) {\n const currentChild: CedarComponent = elementComponent.children[i];\n\n if (ComponentTypeHandler.isFieldOrElement(currentChild) &&\n ComponentTypeHandler.isStaticContentComponent(prevChild) && !isStaticPair) {\n currentChild.linkedStaticFieldComponent = prevChild as StaticFieldComponent;\n newChildren.pop();\n newChildren.push(currentChild);\n } else {\n newChildren.push(currentChild);\n }\n\n if (!isStaticPair && ComponentTypeHandler.isStaticContentComponent(currentChild) &&\n ComponentTypeHandler.isStaticContentComponent(prevChild)) {\n isStaticPair = true;\n } else if (isStaticPair) {\n isStaticPair = false;\n }\n prevChild = currentChild;\n }\n elementComponent.children = newChildren;\n }\n }\n\n}\n","import {CedarComponent} from '../models/component/cedar-component.model';\nimport {SingleFieldComponent} from '../models/field/single-field-component.model';\nimport {MultiFieldComponent} from '../models/field/multi-field-component.model';\nimport {StaticFieldComponent} from '../models/static/static-field-component.model';\nimport {InputType} from '../models/input-type.model';\nimport {CedarTemplate} from '../models/template/cedar-template.model';\nimport {SingleElementComponent} from '../models/element/single-element-component.model';\nimport {MultiElementComponent} from '../models/element/multi-element-component.model';\n\nexport class ComponentTypeHandler {\n\n public static isImage(component: CedarComponent): boolean {\n return component instanceof StaticFieldComponent && component.basicInfo.inputType === InputType.image;\n }\n\n static isYoutube(component: CedarComponent): boolean {\n return component instanceof StaticFieldComponent && component.basicInfo.inputType === InputType.youtube;\n }\n\n public static isRichText(component: CedarComponent): boolean {\n return component instanceof StaticFieldComponent && component.basicInfo.inputType === InputType.richText;\n }\n\n public static isStaticContentComponent(component: CedarComponent): boolean {\n return this.isImage(component) || this.isYoutube(component) || this.isRichText(component);\n }\n\n public static isField(component: CedarComponent): boolean {\n return component instanceof SingleFieldComponent || component instanceof MultiFieldComponent;\n }\n\n public static isElement(component: CedarComponent): boolean {\n return component instanceof SingleElementComponent || component instanceof MultiElementComponent;\n }\n\n static isContainerComponent(component: CedarComponent): boolean {\n return component instanceof CedarTemplate || component instanceof SingleElementComponent || component instanceof MultiElementComponent;\n }\n\n static isTemplate(component: CedarComponent): boolean {\n return component instanceof CedarTemplate;\n }\n\n static isFieldOrElement(component: CedarComponent): boolean {\n return this.isField(component) || this.isElement(component);\n }\n\n static isMulti(component: CedarComponent): boolean {\n return component instanceof MultiFieldComponent || component instanceof MultiElementComponent;\n }\n}\n","import {TemplateComponent} from '../models/template/template-component.model';\nimport {CedarComponent} from '../models/component/cedar-component.model';\nimport {SingleElementComponent} from '../models/element/single-element-component.model';\nimport {MultiElementComponent} from '../models/element/multi-element-component.model';\nimport {CedarTemplate} from '../models/template/cedar-template.model';\nimport {ElementComponent} from '../models/component/element-component.model';\nimport {SingleFieldComponent} from '../models/field/single-field-component.model';\nimport {MultiFieldComponent} from '../models/field/multi-field-component.model';\nimport {FieldComponent} from '../models/component/field-component.model';\nimport {JsonSchema} from '../models/json-schema.model';\nimport * as _ from 'lodash-es';\nimport {InstanceExtractData} from '../models/instance-extract-data.model';\nimport {InstanceFullData} from '../models/instance-full-data.model';\nimport {DataObjectUtil} from '../util/data-object-util';\nimport {MultiInstanceObjectHandler} from './multi-instance-object.handler';\nimport {CedarInputTemplate} from '../models/cedar-input-template.model';\nimport {DataObjectBuildingMode} from '../models/enum/data-object-building-mode.model';\n\nexport class DataObjectBuilderHandler {\n\n private dataObject: object;\n private dataObjectFull: object;\n private templateJsonObj: object;\n private templateRepresentation: TemplateComponent;\n private multiInstanceObjectService: MultiInstanceObjectHandler;\n\n static getSubTemplate(template: CedarInputTemplate, path: string[]): CedarInputTemplate {\n if (path.length === 0) {\n return template;\n }\n const firstPath = path[0];\n const remainingPath = path.slice(1);\n const subTemplate = DataObjectUtil.getSafeSubTemplate(template, firstPath);\n return this.getSubTemplate(subTemplate, remainingPath);\n }\n\n public static buildRecursively(component: CedarComponent, dataObject: InstanceExtractData, templateJsonObj: CedarInputTemplate, buildingMode: DataObjectBuildingMode): void {\n let ret = null;\n if (templateJsonObj != null) {\n DataObjectBuilderHandler.addContext(component, dataObject, templateJsonObj, buildingMode);\n }\n if (component instanceof SingleElementComponent || component instanceof MultiElementComponent || component instanceof CedarTemplate) {\n const iterableComponent: ElementComponent = component as ElementComponent;\n const targetName = iterableComponent.name;\n if (component instanceof MultiElementComponent) {\n const multiElement: MultiElementComponent = component as MultiElementComponent;\n dataObject[targetName] = DataObjectUtil.getEmptyList();\n if (multiElement.multiInfo.minItems > 0) {\n const dummyTargetObject: object = DataObjectUtil.getEmptyObject();\n const subTemplate = DataObjectUtil.getSafeSubTemplate(templateJsonObj, targetName);\n for (const childComponent of iterableComponent.children) {\n DataObjectBuilderHandler.buildRecursively(childComponent, dummyTargetObject, subTemplate, buildingMode);\n }\n for (let idx = 0; idx < multiElement.multiInfo.minItems; idx++) {\n const clone = _.cloneDeep(dummyTargetObject as any);\n dataObject[targetName].push(clone);\n }\n }\n } else {\n dataObject[targetName] = DataObjectUtil.getEmptyObject();\n const subTemplate = DataObjectUtil.getSafeSubTemplate(templateJsonObj, targetName);\n for (const childComponent of iterableComponent.children) {\n DataObjectBuilderHandler.buildRecursively(childComponent, dataObject[targetName], subTemplate, buildingMode);\n }\n }\n ret = dataObject[targetName];\n }\n if (component instanceof SingleFieldComponent || component instanceof MultiFieldComponent) {\n const nonIterableComponent = component as FieldComponent;\n const targetName = nonIterableComponent.name;\n if (component instanceof MultiFieldComponent) {\n const multiField: MultiFieldComponent = component as MultiFieldComponent;\n dataObject[targetName] = DataObjectUtil.getEmptyList();\n if (multiField.multiInfo.minItems > 0) {\n const subTemplate = DataObjectUtil.getSafeSubTemplate(templateJsonObj, targetName);\n for (let idx = 0; idx < multiField.multiInfo.minItems; idx++) {\n dataObject[targetName].push(DataObjectUtil.getEmptyValueWrapper(subTemplate, buildingMode));\n }\n }\n } else {\n const subTemplate = DataObjectUtil.getSafeSubTemplate(templateJsonObj, targetName);\n dataObject[targetName] = DataObjectUtil.getEmptyValueWrapper(subTemplate, buildingMode);\n }\n ret = dataObject[targetName];\n }\n return ret;\n }\n\n public static setCurrentCountToMinRecursively(component: CedarComponent, path: string[]): void {\n if (path.length === 0) {\n return;\n }\n const firstPath = path[0];\n const remainingPath = path.slice(1);\n if (component instanceof SingleElementComponent) {\n const singleElement: SingleElementComponent = component as SingleElementComponent;\n for (const childComponent of singleElement.children) {\n DataObjectBuilderHandler.setCurrentCountToMinRecursively(childComponent, remainingPath);\n }\n } else if (component instanceof MultiElementComponent) {\n const multiElement: MultiElementComponent = component as MultiElementComponent;\n const min = multiElement.multiInfo.getSafeMinItems();\n if (min === 0) {\n multiElement.multiInfo.minItems = 1;\n }\n for (const childComponent of multiElement.children) {\n DataObjectBuilderHandler.setCurrentCountToMinRecursively(childComponent, remainingPath);\n }\n } else if (component instanceof MultiFieldComponent) {\n const multiField: MultiFieldComponent = component as MultiFieldComponent;\n const min = multiField.multiInfo.getSafeMinItems();\n if (min === 0) {\n multiField.multiInfo.minItems = 1;\n }\n }\n }\n\n private static addContext(component: CedarComponent, dataObject: InstanceExtractData, templateJsonObj: CedarInputTemplate, buildingMode: DataObjectBuildingMode): void {\n if (buildingMode === DataObjectBuildingMode.INCLUDE_CONTEXT) {\n const props = templateJsonObj[JsonSchema.properties];\n const propsContext = props[JsonSchema.atContext];\n const propsContextProps = propsContext[JsonSchema.properties];\n const p: object = {};\n for (const key of Object.keys(propsContextProps)) {\n p[key] = DataObjectUtil.convertTemplateContextNode(propsContextProps[key]);\n }\n dataObject[JsonSchema.atContext] = p;\n }\n }\n\n injectMultiInstanceService(multiInstanceObjectService: MultiInstanceObjectHandler): void {\n this.multiInstanceObjectService = multiInstanceObjectService;\n }\n\n buildNewExtractDataObject(templateRepresentation: TemplateComponent, templateJsonObj: CedarInputTemplate): InstanceExtractData {\n this.templateJsonObj = templateJsonObj;\n this.templateRepresentation = templateRepresentation;\n this.dataObject = new InstanceExtractData();\n this.buildNewByIterating(this.dataObject, templateJsonObj, DataObjectBuildingMode.EXCLUDE_CONTEXT);\n return this.dataObject;\n }\n\n buildNewFullDataObject(templateRepresentation: TemplateComponent, templateJsonObj: CedarInputTemplate): InstanceFullData {\n this.templateJsonObj = templateJsonObj;\n this.templateRepresentation = templateRepresentation;\n this.dataObjectFull = new InstanceFullData();\n this.buildNewByIterating(this.dataObjectFull, templateJsonObj, DataObjectBuildingMode.INCLUDE_CONTEXT);\n return this.dataObjectFull;\n }\n\n private buildNewByIterating(dataObject: InstanceExtractData, templateJsonObj: CedarInputTemplate, buildingMode: DataObjectBuildingMode): void {\n if (this.templateRepresentation != null && this.templateRepresentation.children != null) {\n for (const childComponent of this.templateRepresentation.children) {\n DataObjectBuilderHandler.buildRecursively(childComponent, dataObject, templateJsonObj, buildingMode);\n }\n }\n }\n\n}\n","import {MultiInstanceObjectInfo} from '../models/info/multi-instance-object-info.model';\nimport {CedarComponent} from '../models/component/cedar-component.model';\nimport {SingleElementComponent} from '../models/element/single-element-component.model';\nimport {CedarTemplate} from '../models/template/cedar-template.model';\nimport {MultiElementComponent} from '../models/element/multi-element-component.model';\nimport {DataContext} from '../util/data-context';\nimport {MultiInstanceObjectHandler} from './multi-instance-object.handler';\nimport {SingleFieldComponent} from '../models/field/single-field-component.model';\nimport {JsonSchema} from '../models/json-schema.model';\nimport {MultiFieldComponent} from '../models/field/multi-field-component.model';\nimport {FieldComponent} from '../models/component/field-component.model';\nimport {InstanceExtractData} from '../models/instance-extract-data.model';\nimport {CedarModel} from '../models/cedar-model.model';\nimport {DataObjectUtil} from '../util/data-object-util';\nimport {InputType} from '../models/input-type.model';\n\nexport class DataObjectDataValueHandler {\n\n readonly DATA_SUBOBJECT_KEY = 'dataSubObject';\n readonly CHILD_COMPONENT_KEY = 'childComponent';\n readonly PARENT_DATA_SUBOBJECT_KEY = 'parentDataSubObject';\n readonly REMAINING_PATH_KEY = 'remainingPath';\n\n\n private injectValue(target: InstanceExtractData, valueObject: object): void {\n if (valueObject.hasOwnProperty(JsonSchema.atValue)) {\n target[JsonSchema.atValue] = valueObject[JsonSchema.atValue];\n } else {\n delete target[JsonSchema.atValue];\n target[JsonSchema.atId] = valueObject[JsonSchema.atId];\n target[JsonSchema.rdfsLabel] = valueObject[JsonSchema.rdfsLabel];\n }\n }\n\n private injectArrayValue(target: InstanceExtractData, valueArray: object[]): void {\n (target as Array<object>).length = 0;\n (target as Array<object>).push(...valueArray);\n }\n\n private injectAttributeValue(dataObject: InstanceExtractData, currentIndex: number, parentDataObject: InstanceExtractData,\n component: CedarComponent, valueObject: object): void {\n const oldName = dataObject[currentIndex];\n let newName = valueObject[JsonSchema.reservedAttributeName];\n\n if (!newName || this.isDuplicateAttributeName(newName, dataObject, parentDataObject, currentIndex)) {\n newName = this.getDefaultAttributeName(dataObject, parentDataObject, currentIndex);\n }\n\n const oldNameIndex = (dataObject as Array<string>).indexOf(oldName);\n dataObject[currentIndex] = newName;\n const needsDeleting = (oldName && newName !== oldName && oldNameIndex === currentIndex);\n\n if (needsDeleting) {\n // deleting parent old name entry\n delete parentDataObject[oldName];\n }\n\n parentDataObject[newName] = valueObject[JsonSchema.reservedAttributeValue];\n\n if (parentDataObject.hasOwnProperty(JsonSchema.atContext)) {\n if (parentDataObject[JsonSchema.atContext].hasOwnProperty(component.name)) {\n delete parentDataObject[JsonSchema.atContext][component.name];\n }\n\n let elemId = '';\n\n if (needsDeleting) {\n elemId = parentDataObject[JsonSchema.atContext][oldName];\n delete parentDataObject[JsonSchema.atContext][oldName];\n }\n\n if (!parentDataObject[JsonSchema.atContext].hasOwnProperty(newName)) {\n if (!elemId || elemId.length === 0) {\n elemId = CedarModel.baseTemplateURL + '/' +\n JsonSchema.properties + '/' + DataObjectUtil.generateGUID();\n }\n parentDataObject[JsonSchema.atContext][newName] = elemId;\n }\n }\n }\n\n private setDataPathValueRecursively(dataObject: InstanceExtractData, parentDataObject: InstanceExtractData, component: CedarComponent, multiInstanceObjectService: MultiInstanceObjectHandler, path: string[], valueObject: object): void {\n if (path.length === 0) {\n if (component instanceof SingleFieldComponent) {\n this.injectValue(dataObject, valueObject);\n } else {\n const multiField = component as MultiFieldComponent;\n const multiInstanceInfo: MultiInstanceObjectInfo = multiInstanceObjectService.getMultiInstanceInfoForComponent(multiField);\n const currentIndex = multiInstanceInfo.currentIndex;\n\n if (valueObject.hasOwnProperty(JsonSchema.reservedAttributeName)) {\n this.injectAttributeValue(dataObject, currentIndex, parentDataObject, component, valueObject);\n } else if (valueObject instanceof Array) {\n this.injectArrayValue(dataObject, valueObject);\n } else {\n this.injectValue(dataObject[currentIndex], valueObject);\n }\n }\n } else {\n const downstreamObjects = this.getDownstreamObjects(dataObject, component, multiInstanceObjectService, path);\n const dataSubObjectKey = this.DATA_SUBOBJECT_KEY;\n const childComponentKey = this.CHILD_COMPONENT_KEY;\n const parentDataSubObjectKey = this.PARENT_DATA_SUBOBJECT_KEY;\n const remainingPathKey = this.REMAINING_PATH_KEY;\n this.setDataPathValueRecursively(downstreamObjects[dataSubObjectKey], downstreamObjects[parentDataSubObjectKey],\n downstreamObjects[childComponentKey], multiInstanceObjectService, downstreamObjects[remainingPathKey], valueObject);\n }\n }\n\n private deleteAttributeValueRecursively(dataObject: InstanceExtractData, parentDataObject: InstanceExtractData,\n component: CedarComponent, multiInstanceObjectService: MultiInstanceObjectHandler,\n path: string[], valueObject: object): void {\n if (path.length === 0) {\n const name = valueObject[JsonSchema.reservedAttributeName];\n delete parentDataObject[name];\n\n if (parentDataObject.hasOwnProperty(JsonSchema.atContext)) {\n delete parentDataObject[JsonSchema.atContext][name];\n }\n } else {\n const downstreamObjects = this.getDownstreamObjects(dataObject, component, multiInstanceObjectService, path);\n const dataSubObjectKey = this.DATA_SUBOBJECT_KEY;\n const childComponentKey = this.CHILD_COMPONENT_KEY;\n const parentDataSubObjectKey = this.PARENT_DATA_SUBOBJECT_KEY;\n const remainingPathKey = this.REMAINING_PATH_KEY;\n this.deleteAttributeValueRecursively(downstreamObjects[dataSubObjectKey], downstreamObjects[parentDataSubObjectKey],\n downstreamObjects[childComponentKey], multiInstanceObjectService, downstreamObjects[remainingPathKey], valueObject);\n }\n }\n\n private getDownstreamObjects(dataObject: InstanceExtractData, component: CedarComponent,\n multiInstanceObjectService: MultiInstanceObjectHandler, path: string[]): object {\n const obj = {};\n const firstPath = path[0];\n const remainingPath = path.slice(1);\n let childComponent: CedarComponent = null;\n let dataSubObject = null;\n let parentDataSubObject = null;\n\n if (component instanceof SingleElementComponent) {\n childComponent = (component as SingleElementComponent).getChildByName(firstPath);\n dataSubObject = dataObject[firstPath];\n parentDataSubObject = dataObject;\n } else if (component instanceof CedarTemplate) {\n childComponent = (component as CedarTemplate).getChildByName(firstPath);\n dataSubObject = dataObject[firstPath];\n parentDataSubObject = dataObject;\n } else if (component instanceof MultiElementComponent) {\n const multiElement = component as MultiElementComponent;\n const multiInstanceInfo: MultiInstanceObjectInfo = multiInstanceObjectService.getMultiInstanceInfoForComponent(multiElement);\n const currentIndex = multiInstanceInfo.currentIndex;\n childComponent = multiElement.getChildByName(firstPath);\n dataSubObject = dataObject[currentIndex][firstPath];\n parentDataSubObject = dataObject[currentIndex];\n }\n const dataSubObjectKey = this.DATA_SUBOBJECT_KEY;\n const childComponentKey = this.CHILD_COMPONENT_KEY;\n const parentDataSubObjectKey = this.PARENT_DATA_SUBOBJECT_KEY;\n const remainingPathKey = this.REMAINING_PATH_KEY;\n obj[dataSubObjectKey] = dataSubObject;\n obj[childComponentKey] = childComponent;\n obj[parentDataSubObjectKey] = parentDataSubObject;\n obj[remainingPathKey] = remainingPath;\n\n return obj;\n }\n\n private isDuplicateAttributeName(name: string, dataObject: InstanceExtractData, parentDataObject: InstanceExtractData, currentIndex: number): boolean {\n const ind = (dataObject as Array<string>).indexOf(name);\n\n // completely new name, check if parent object's names conflict\n if (ind < 0) {\n return parentDataObject.hasOwnProperty(name);\n }\n // name has not changed\n else if (ind === currentIndex) {\n return false;\n }\n // name changed but already exists in a different slot\n return true;\n }\n\n private getDefaultAttributeName(dataObject: InstanceExtractData, parentDataObject: InstanceExtractData, currentIndex: number): string {\n let nameIndex = currentIndex + 1;\n let defName = JsonSchema.reservedDefaultAttributeName + nameIndex;\n\n while (this.isDuplicateAttributeName(defName, dataObject, parentDataObject, currentIndex) && nameIndex < 1000) {\n nameIndex++;\n defName = JsonSchema.reservedDefaultAttributeName + nameIndex;\n }\n\n return defName;\n }\n\n changeValue(dataContext: DataContext, component: FieldComponent, multiInstanceObjectService: MultiInstanceObjectHandler, value: string): void {\n const path = component.path;\n const valueObject = {};\n if (component.basicInfo.inputType === InputType.link){\n valueObject[JsonSchema.atId] = value;\n } else {\n valueObject[JsonSchema.atValue] = value;\n }\n this.setDataPathValueRecursively(dataContext.instanceExtractData, null, dataContext.templateRepresentation, multiInstanceObjectService, path, valueObject);\n this.setDataPathValueRecursively(dataContext.instanceFullData, null, dataContext.templateRepresentation, multiInstanceObjectService, path, valueObject);\n }\n\n changeListValue(dataContext: DataContext, component: FieldComponent, multiInstanceObjectService: MultiInstanceObjectHandler, value: string[]): void {\n const path = component.path;\n const valueArray = [];\n\n if (value.length === 0) {\n value = [null];\n }\n\n for (const val of value) {\n const obj = {};\n obj[JsonSchema.atValue] = val;\n valueArray.push(obj);\n }\n\n this.setDataPathValueRecursively(dataContext.instanceExtractData, null, dataContext.templateRepresentation, multiInstanceObjectService, path, valueArray);\n this.setDataPathValueRecursively(dataContext.instanceFullData, null, dataContext.templateRepresentation, multiInstanceObjectService, path, valueArray);\n }\n\n changeAttributeValue(dataContext: DataContext, component: FieldComponent,\n multiInstanceObjectService: MultiInstanceObjectHandler, key: string, value: string): void {\n const path = component.path;\n const valueObject = {};\n const obj = {};\n\n if (value && value.length === 0) {\n value = null;\n }\n\n obj[JsonSchema.atValue] = value;\n valueObject[JsonSchema.reservedAttributeName] = key;\n valueObject[JsonSchema.reservedAttributeValue] = obj;\n\n this.setDataPathValueRecursively(dataContext.instanceExtractData, null, dataContext.templateRepresentation, multiInstanceObjectService, path, valueObject);\n this.setDataPathValueRecursively(dataContext.instanceFullData, null, dataContext.templateRepresentation, multiInstanceObjectService, path, valueObject);\n }\n\n deleteAttributeValue(dataContext: DataContext, component: FieldComponent,\n multiInstanceObjectService: MultiInstanceObjectHandler, key: string): void {\n if (!key) {\n return;\n }\n\n const path = component.path;\n const valueObject = {};\n valueObject[JsonSchema.reservedAttributeName] = key;\n\n this.deleteAttributeValueRecursively(dataContext.instanceExtractData, null, dataContext.templateRepresentation, multiInstanceObjectService, path, valueObject);\n this.deleteAttributeValueRecursively(dataContext.instanceFullData, null, dataContext.templateRepresentation, multiInstanceObjectService, path, valueObject);\n }\n\n changeControlledValue(dataContext: DataContext, component: FieldComponent, multiInstanceObjectService: MultiInstanceObjectHandler, atId: string, prefLabel: string): void {\n const path = component.path;\n const valueObject = {};\n\n if (atId) {\n valueObject[JsonSchema.atId] = atId;\n valueObject[JsonSchema.rdfsLabel] = prefLabel;\n }\n\n this.setDataPathValueRecursively(dataContext.instanceExtractData, null, dataContext.templateRepresentation, multiInstanceObjectService, path, valueObject);\n this.setDataPathValueRecursively(dataContext.instanceFullData, null, dataContext.templateRepresentation, multiInstanceObjectService, path, valueObject);\n }\n\n}\n","import * as _ from 'lodash-es';\nimport {MultiComponent} from '../models/component/multi-component.model';\nimport {MultiInstanceObjectInfo} from '../models/info/multi-instance-object-info.model';\nimport {CedarComponent} from '../models/component/cedar-component.model';\nimport {SingleElementComponent} from '../models/element/single-element-component.model';\nimport {CedarTemplate} from '../models/template/cedar-template.model';\nimport {MultiElementComponent} from '../models/element/multi-element-component.model';\nimport {DataContext} from '../util/data-context';\nimport {MultiInstanceObjectHandler} from './multi-instance-object.handler';\nimport {DataObjectBuilderHandler} from './data-object-builder.handler';\nimport {InstanceExtractData} from '../models/instance-extract-data.model';\nimport {CedarInputTemplate} from '../models/cedar-input-template.model';\nimport {DataObjectBuildingMode} from '../models/enum/data-object-building-mode.model';\nimport {TemplateComponent} from '../models/template/template-component.model';\n\n\nexport class DataObjectStructureHandler {\n\n public getDataPathNodeRecursively(dataObject: InstanceExtractData, component: CedarComponent, path: string[],\n multiInstanceObjectService: MultiInstanceObjectHandler): object {\n if (path.length === 0) {\n return dataObject;\n } else {\n const firstPath = path[0];\n const remainingPath = path.slice(1);\n let childComponent: CedarComponent = null;\n let dataSubObject = null;\n if (component instanceof SingleElementComponent) {\n childComponent = (component as SingleElementComponent).getChildByName(firstPath);\n dataSubObject = dataObject[firstPath];\n } else if (component instanceof CedarTemplate) {\n childComponent = (component as CedarTemplate).getChildByName(firstPath);\n dataSubObject = dataObject[firstPath];\n } else if (component instanceof MultiElementComponent) {\n const multiElement = component as MultiElementComponent;\n const multiInstanceInfo: MultiInstanceObjectInfo = multiInstanceObjectService.getMultiInstanceInfoForComponent(multiElement);\n\n if (!multiInstanceInfo) {\n return null;\n }\n const currentIndex = multiInstanceInfo.currentIndex;\n childComponent = multiElement.getChildByName(firstPath);\n if (dataObject.hasOwnProperty(currentIndex)) {\n dataSubObject = dataObject[currentIndex][firstPath];\n }\n }\n return this.getDataPathNodeRecursively(dataSubObject, childComponent, remainingPath, multiInstanceObjectService);\n }\n }\n\n public getParentDataPathNodeRecursively(dataObject: InstanceExtractData,\n parentDataObject: InstanceExtractData, component: CedarComponent,\n path: string[], multiInstanceObjectService: MultiInstanceObjectHandler): object {\n if (path.length === 0) {\n return parentDataObject;\n } else {\n const firstPath = path[0];\n const remainingPath = path.slice(1);\n let childComponent: CedarComponent = null;\n let dataSubObject = null;\n let parentDataSubObject = null;\n\n if (component instanceof SingleElementComponent) {\n childComponent = (component as SingleElementComponent).getChildByName(firstPath);\n dataSubObject = dataObject[firstPath];\n parentDataSubObject = dataObject;\n } else if (component instanceof CedarTemplate) {\n childComponent = (component as CedarTemplate).getChildByName(firstPath);\n dataSubObject = dataObject[firstPath];\n parentDataSubObject = dataObject;\n } else if (component instanceof MultiElementComponent) {\n const multiElement = component as MultiElementComponent;\n const multiInstanceInfo: MultiInstanceObjectInfo = multiInstanceObjectService.getMultiInstanceInfoForComponent(multiElement);\n const currentIndex = multiInstanceInfo.currentIndex;\n\n if (currentIndex < 0) {\n return null;\n }\n childComponent = multiElement.getChildByName(firstPath);\n dataSubObject = dataObject[currentIndex][firstPath];\n parentDataSubObject = dataObject[currentIndex];\n }\n return this.getParentDataPathNodeRecursively(dataSubObject, parentDataSubObject, childComponent, remainingPath, multiInstanceObjectService);\n }\n }\n\n multiInstanceItemAdd(dataContext: DataContext, component: MultiComponent, multiInstanceObjectService: MultiInstanceObjectHandler): void {\n const multiInstanceInfo: MultiInstanceObjectInfo = multiInstanceObjectService.getMultiInstanceInfoForComponent(component);\n const instanceExtractData: object = dataContext.instanceExtractData;\n const instanceFullData: object = dataContext.instanceFullData;\n const templateRepresentation: TemplateComponent = dataContext.templateRepresentation;\n const templateInput: CedarInputTemplate = dataContext.templateInput;\n this.performItemAdd(instanceExtractData, templateRepresentation, component, multiInstanceObjectService, multiInstanceInfo, null);\n this.performItemAdd(instanceFullData, templateRepresentation, component, multiInstanceObjectService, multiInstanceInfo, templateInput);\n }\n\n private performItemAdd(instanceObject: InstanceExtractData, templateRepresentation: TemplateComponent, component: MultiComponent, multiInstanceObjectService: MultiInstanceObjectHandler, multiInstanceInfo: MultiInstanceObjectInfo, templateInput: CedarInputTemplate): void {\n const dataObject = {};\n const cloneComponent = _.cloneDeep(component);\n DataObjectBuilderHandler.setCurrentCountToMinRecursively(cloneComponent, component.path);\n let subTemplate = null;\n if (templateInput != null) {\n const shorterPath = component.path.slice(0, component.path.length - 1);\n subTemplate = DataObjectBuilderHandler.getSubTemplate(templateInput, shorterPath);\n }\n DataObjectBuilderHandler.buildRecursively(cloneComponent, dataObject, subTemplate, DataObjectBuildingMode.INCLUDE_CONTEXT);\n const newDataObject = dataObject[component.name][0];\n const currentNodeAny = this.getDataPathNodeRecursively(instanceObject, templateRepresentation, component.path, multiInstanceObjectService);\n const currentNodeArray = currentNodeAny as [];\n currentNodeArray.splice(multiInstanceInfo.currentIndex + 1, 0, newDataObject as never);\n }\n\n multiInstanceItemCopy(dataContext: DataContext, component: MultiComponent, multiInstanceObjectService: MultiInstanceObjectHandler): void {\n const multiInstanceInfo: MultiInstanceObjectInfo = multiInstanceObjectService.getMultiInstanceInfoForComponent(component);\n const instanceExtractData: object = dataContext.instanceExtractData;\n const instanceFullData: object = dataContext.instanceFullData;\n const templateRepresentation: TemplateComponent = dataContext.templateRepresentation;\n this.performItemCopy(instanceExtractData, templateRepresentation, component.path, multiInstanceObjectService, multiInstanceInfo);\n this.performItemCopy(instanceFullData, templateRepresentation, component.path, multiInstanceObjectService, multiInstanceInfo);\n }\n\n private performItemCopy(instanceObject: InstanceExtractData, templateRepresentation: TemplateComponent, path: string[], multiInstanceObjectService: MultiInstanceObjectHandler, multiInstanceInfo: MultiInstanceObjectInfo): void {\n const currentNodeAny = this.getDataPathNodeRecursively(instanceObject, templateRepresentation, path, multiInstanceObjectService);\n const currentNodeArray = currentNodeAny as [];\n const sourceItem = currentNodeArray[multiInstanceInfo.currentIndex];\n const cloneItem = _.cloneDeep(sourceItem as any);\n currentNodeArray.splice(multiInstanceInfo.currentIndex + 1, 0, cloneItem as never);\n }\n\n multiInstanceItemDelete(dataContext: DataContext, component: MultiComponent, multiInstanceObjectService: MultiInstanceObjectHandler): void {\n const multiInstanceInfo: MultiInstanceObjectInfo = multiInstanceObjectService.getMultiInstanceInfoForComponent(component);\n const instanceExtractData: object = dataContext.instanceExtractData;\n const instanceFullData: object = dataContext.instanceFullData;\n const templateRepresentation: TemplateComponent = dataContext.templateRepresentation;\n this.performItemDelete(instanceExtractData, templateRepresentation, component.path, multiInstanceObjectService, multiInstanceInfo);\n this.performItemDelete(instanceFullData, templateRepresentation, component.path, multiInstanceObjectService, multiInstanceInfo);\n }\n\n private performItemDelete(instanceObject: InstanceExtractData, templateRepresentation: TemplateComponent, path: string[], multiInstanceObjectService: MultiInstanceObjectHandler, multiInstanceInfo: MultiInstanceObjectInfo): void {\n const currentNodeAny = this.getDataPathNodeRecursively(instanceObject, templateRepresentation, path, multiInstanceObjectService);\n const currentNodeArray = currentNodeAny as [];\n currentNodeArray.splice(multiInstanceInfo.currentIndex, 1);\n }\n\n}\n","import {TemplateComponent} from '../models/template/template-component.model';\nimport {ElementComponent} from '../models/component/element-component.model';\nimport {MultiComponent} from '../models/component/multi-component.model';\nimport {Injectable} from '@angular/core';\nimport {MultiFieldComponent} from '../models/field/multi-field-component.model';\nimport {SingleFieldComponent} from '../models/field/single-field-component.model';\nimport {MultiElementComponent} from '../models/element/multi-element-component.model';\nimport {SingleElementComponent} from '../models/element/single-element-component.model';\nimport {CedarComponent} from '../models/component/cedar-component.model';\nimport {CedarTemplate} from '../models/template/cedar-template.model';\nimport * as _ from 'lodash-es';\nimport {MultiInstanceInfo} from '../models/info/multi-instance-info.model';\nimport {MultiInstanceObjectInfo} from '../models/info/multi-instance-object-info.model';\nimport {InstanceExtractData} from '../models/instance-extract-data.model';\nimport {JavascriptTypes} from '../models/javascript-types.model';\nimport {JsonSchema} from '../models/json-schema.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MultiInstanceObjectHandler {\n\n public multiInstanceObject: MultiInstanceInfo;\n private templateRepresentation: TemplateComponent;\n private indexRegEx = new RegExp(/@#index\\[(\\d+)\\]#@/);\n\n\n private static getNodeByPath(obj, arrPath: string[]): object {\n let val: object;\n\n for (let i = 0; i < arrPath.length; i++) {\n if (val) {\n val = val[arrPath[i]];\n } else {\n val = obj[arrPath[i]];\n }\n }\n return val;\n }\n\n private static getMultiInstanceInfoNodeByPath(obj, arrPath: string[]): MultiInstanceInfo {\n return MultiInstanceObjectHandler.getNodeByPath(obj, arrPath) as MultiInstanceInfo;\n }\n\n private static getMultiInstanceObjectInfoNodeByPath(obj, arrPath: string[]): MultiInstanceObjectInfo {\n return MultiInstanceObjectHandler.getNodeByPath(obj, arrPath) as MultiInstanceObjectInfo;\n }\n\n buildNewOrFromMetadata(templateRepresentation: TemplateComponent,\n instanceExtractData: InstanceExtractData = null): MultiInstanceInfo {\n this.templateRepresentation = templateRepresentation;\n this.multiInstanceObject = new MultiInstanceInfo();\n this.buildRecursively(templateRepresentation, this.multiInstanceObject);\n\n if (instanceExtractData) {\n this.updateFromInstanceExtractData(instanceExtractData, [], this.multiInstanceObject);\n }\n return this.multiInstanceObject;\n }\n\n private updateFromInstanceExtractData(instanceExtractDataIn: InstanceExtractData,\n parentPath: string[], multiInstanceObject: MultiInstanceInfo): void {\n const instanceExtractData = JSON.parse(JSON.stringify(instanceExtractDataIn));\n // this.deleteAttributeValueFields(instanceExtractData);\n\n for(const key in instanceExtractData) {\n const myPath: string[] = parentPath.slice();\n myPath.push(key);\n\n // multi-page element or mutli-page field\n if (Array.isArray(instanceExtractData[key]) && instanceExtractData[key].length > 0) {\n this.setSingleMultiInstance(myPath.slice(), instanceExtractData[key].length, multiInstanceObject);\n\n // field component with values or attribute-value field\n const isField =\n // field component with values (text or controlled)\n (typeof instanceExtractData[key][0] === JavascriptTypes.object &&\n (instanceExtractData[key][0].hasOwnProperty(JsonSchema.atValue) ||\n instanceExtractData[key][0].hasOwnProperty(JsonSchema.atId))) ||\n // attribute-value field\n (typeof instanceExtractData[key][0] === JavascriptTypes.string && instanceExtractData[key].length > 0);\n\n // not a field, so it is a multi-page element component\n if (!isField) {\n for (let i = 0; i < instanceExtractData[key].length; i++) {\n if (i > 0) {\n myPath.pop();\n }\n myPath.push(this.indexRegEx.source.replace('(\\\\d+)', i.toString()).replace(/\\\\/g, ''));\n this.updateFromInstanceExtractData(instanceExtractData[key][i], myPath, multiInstanceObject);\n }\n }\n // it's an object, can be a single-page element or a single-page field\n } else if (typeof instanceExtractData[key] === JavascriptTypes.object && Object.keys(instanceExtractData[key]).length > 0) {\n // single-page field (it's never paginated, so not required for pagination,\n // but still need to have an entry for it in multiInstanceObject)\n if (instanceExtractData[key].hasOwnProperty(JsonSchema.atValue) || instanceExtractData[key].hasOwnProperty(JsonSchema.atId)) {\n this.setSingleMultiInstance(myPath, 1, multiInstanceObject);\n } else {\n // single-page element component\n // push a dummy 0 array element for a consistent multi-paging logic\n // multi-page structure does not differentiate between single- and multi-page components\n myPath.push(this.indexRegEx.source.replace('(\\\\d+)', '0').replace(/\\\\/g, ''));\n this.updateFromInstanceExtractData(instanceExtractData[key], myPath, multiInstanceObject);\n }\n } else {\n // empty fields\n // need to record the component in multiInstanceObject even if it's empty\n this.setSingleMultiInstance(myPath, 0, multiInstanceObject);\n }\n }\n }\n\n private setSingleMultiInstance(path: string[], count: number,\n multiInstanceObject: MultiInstanceInfo): void {\n const pathCopy = [];\n\n for (let i = 0; i < path.length; i++) {\n pathCopy.push(path[i]);\n const match = path[i].match(this.indexRegEx);\n\n if (match && match.length > 1) {\n pathCopy.pop();\n const pathParent = pathCopy.slice();\n pathCopy.push('children');\n pathCopy.push(match[1]);\n\n const childObj = MultiInstanceObjectHandler.getMultiInstanceInfoNodeByPath(multiInstanceObject, pathCopy);\n const componentName = path[i + 1];\n\n // childObj is an object of type MultiInstanceInfo of structure\n // {strKey1 => MultiInstanceObjectInfo, strKey2 => MultiInstanceObjectInfo}\n if (childObj) {\n const arrayElemPath = pathCopy.slice();\n arrayElemPath.push(componentName);\n const arrayElem = MultiInstanceObjectHandler.getMultiInstanceObjectInfoNodeByPath(multiInstanceObject, arrayElemPath);\n\n // the child object (element of the array) does exist\n // but the element inside it does not, creating base\n if (!arrayElem) {\n const childElem = new MultiInstanceObjectInfo();\n childElem.componentName = componentName;\n childObj.addChild(childElem);\n }\n } else {\n // the entire child object (element of the array) does not exist\n // need to create the object and its first base element\n const parentObj = MultiInstanceObjectHandler.getMultiInstanceObjectInfoNodeByPath(multiInstanceObject, pathParent);\n const child = new MultiInstanceInfo();\n parentObj.addChild(child);\n const childElem = new MultiInstanceObjectInfo();\n childElem.componentName = componentName;\n child.addChild(childElem);\n }\n }\n }\n const targetObj = MultiInstanceObjectHandler.getMultiInstanceObjectInfoNodeByPath(multiInstanceObject, pathCopy);\n if (targetObj) {\n targetObj.componentName = path[path.length - 1];\n targetObj.currentCount = count;\n targetObj.currentIndex = (count > 0) ? 0 : -1;\n }\n }\n\n private deleteAttributeValueFields(instanceExtractData: InstanceExtractData): void {\n for (const key in instanceExtractData) {\n if (Array.isArray(instanceExtractData[key]) && instanceExtractData[key].length > 0) {\n if (typeof instanceExtractData[key][0] === JavascriptTypes.string) {\n for (let i = 0; i < instanceExtractData[key].length; i++) {\n delete instanceExtractData[instanceExtractData[key][i]];\n }\n } else {\n if (!instanceExtractData[key][0].hasOwnProperty(JsonSchema.atValue) &&\n !instanceExtractData[key][0].hasOwnProperty(JsonSchema.atId)) {\n for (let i = 0; i < instanceExtractData[key].length; i++) {\n this.deleteAttributeValueFields(instanceExtractData[key][i]);\n }\n }\n }\n } else {\n if (!instanceExtractData[key].hasOwnProperty(JsonSchema.atValue) &&\n !instanceExtractData[key].hasOwnProperty(JsonSchema.atId)) {\n this.deleteAttributeValueFields(instanceExtractData[key]);\n }\n }\n }\n }\n\n private buildRecursively(cedarComponent: CedarComponent, multiInstanceObject: MultiInstanceInfo): void {\n if (!(cedarComponent instanceof MultiElementComponent || cedarComponent instanceof SingleElementComponent\n || cedarComponent instanceof CedarTemplate)) {\n return;\n }\n const elementComponent = cedarComponent as ElementComponent;\n for (const child of elementComponent.children) {\n const name = child.name;\n const multiInfo = new MultiInstanceObjectInfo();\n multiInfo.componentName = name;\n multiInstanceObject.addChild(multiInfo);\n let count = 0;\n let currentIndex = -1;\n if (child instanceof MultiFieldComponent) {\n count = (child as MultiComponent).multiInfo.minItems;\n currentIndex = count > 0 ? 0 : -1;\n delete multiInfo.children;\n } else if (child instanceof SingleFieldComponent) {\n count = 1;\n currentIndex = -1;\n delete multiInfo.children;\n } else if (child instanceof MultiElementComponent) {\n count = (child as MultiComponent).multiInfo.minItems;\n currentIndex = count > 0 ? 0 : -1;\n for (let i = 0; i < count; i++) {\n const mc = new MultiInstanceInfo();\n this.buildRecursively(child, mc);\n multiInfo.addChild(mc);\n }\n } else if (child instanceof SingleElementComponent) {\n count = 1;\n currentIndex = -1;\n const mc = new MultiInstanceInfo();\n this.buildRecursively(child, mc);\n multiInfo.addChild(mc);\n }\n multiInfo.currentCount = count;\n multiInfo.currentIndex = currentIndex;\n }\n }\n\n setCurrentIndex(component: MultiComponent, currentIdx: number): void {\n const multiInstanceInfo: MultiInstanceObjectInfo = this.getDataPathNode(component.path);\n multiInstanceInfo.currentIndex = currentIdx;\n }\n\n multiInstanceItemAdd(component: MultiComponent): void {\n const multiInstanceInfo: MultiInstanceObjectInfo = this.getDataPathNode(component.path);\n\n if (component instanceof MultiElementComponent) {\n const newMultiInstanceObject: MultiInstanceInfo = new MultiInstanceInfo();\n this.buildRecursively(component, newMultiInstanceObject);\n multiInstanceInfo.children.splice(multiInstanceInfo.currentIndex + 1, 0, newMultiInstanceObject as never);\n }\n multiInstanceInfo.currentIndex++;\n multiInstanceInfo.currentCount++;\n }\n\n multiInstanceItemCopy(component: MultiComponent): void {\n const multiInstanceInfo = this.getDataPathNode(component.path);\n\n if (component instanceof MultiElementComponent) {\n const currentIdx = multiInstanceInfo.currentIndex;\n const sourceItem = multiInstanceInfo.children[currentIdx];\n const cloneItem = _.cloneDeep(sourceItem as any);\n multiInstanceInfo.children.splice(currentIdx + 1, 0, cloneItem as never);\n }\n multiInstanceInfo.currentIndex++;\n multiInstanceInfo.currentCount++;\n }\n\n multiInstanceItemDelete(component: MultiComponent): void {\n const multiInstanceInfo = this.getDataPathNode(component.path);\n\n if (component instanceof MultiElementComponent) {\n const currentIdx = multiInstanceInfo.currentIndex;\n multiInstanceInfo.children.splice(currentIdx, 1);\n }\n multiInstanceInfo.currentCount--;\n if (multiInstanceInfo.currentIndex > multiInstanceInfo.currentCount - 1) {\n multiInstanceInfo.currentIndex = multiInstanceInfo.currentCount - 1;\n }\n }\n\n getMultiInstanceInfoForComponent(component: MultiComponent): MultiInstanceObjectInfo {\n return this.getDataPathNode(component.path);\n }\n\n public getDataPathNode(path: string[]): MultiInstanceObjectInfo {\n return this.getDataPathNodeRecursively(this.multiInstanceObject, this.templateRepresentation, path);\n }\n\n private getDataPathNodeRecursively(multiInstanceObject: MultiInstanceInfo, component: CedarComponent,\n path: string[]): MultiInstanceObjectInfo {\n if (!multiInstanceObject) {\n return null;\n }\n const firstPath = path[0];\n const remainingPath = path.slice(1);\n let childComponent: CedarComponent = null;\n let childMultiInfo: MultiInstanceObjectInfo = null;\n if (component instanceof SingleElementComponent) {\n childComponent = (component as SingleElementComponent).getChildByName(firstPath);\n childMultiInfo = multiInstanceObject.getChildByName(firstPath);\n } else if (component instanceof CedarTemplate) {\n childComponent = (component as CedarTemplate).getChildByName(firstPath);\n childMultiInfo = multiInstanceObject.getChildByName(firstPath);\n } else if (component instanceof MultiElementComponent) {\n childComponent = (component as MultiElementComponent).getChildByName(firstPath);\n childMultiInfo = multiInstanceObject.getChildByName(firstPath);\n }\n\n if (remainingPath.length === 0) {\n return childMultiInfo;\n } else {\n let goIdx = 0;\n if (childMultiInfo.currentIndex > 0) {\n goIdx = childMultiInfo.currentIndex;\n }\n return this.getDataPathNodeRecursively(childMultiInfo.children[goIdx], childComponent, remainingPath);\n }\n }\n\n hasMultiInstances(multiComponent: MultiComponent): boolean {\n const multiInstanceObjectInfo: MultiInstanceObjectInfo = this.getMultiInstanceInfoForComponent(multiComponent);\n return multiInstanceObjectInfo.currentCount > 0;\n }\n\n}\n","export class CedarModel {\n\n static ui = '_ui';\n static order = 'order';\n static inputType = 'inputType';\n static type = 'type';\n static items = 'items';\n static valueConstraints = '_valueConstraints';\n static requiredValue = 'requiredValue';\n static defaultValue = 'defaultValue';\n static minItems = 'minItems';\n static maxItems = 'maxItems';\n static minLength = 'minLength';\n static maxLength = 'maxLength';\n static numberType = 'numberType';\n static temporalType = 'temporalType';\n static temporalGranularity = 'temporalGranularity';\n static timezoneEnabled = 'timezoneEnabled';\n static inputTimeFormat = 'inputTimeFormat';\n static unitOfMeasure = 'unitOfMeasure';\n static minValue = 'minValue';\n static maxValue = 'maxValue';\n static decimalPlace = 'decimalPlace';\n static content = '_content';\n\n static ontologies = 'ontologies';\n static valueSets = 'valueSets';\n static classes = 'classes';\n static branches = 'branches';\n\n static multipleChoice = 'multipleChoice';\n static literals = 'literals';\n static label = 'label';\n static selectedByDefault = 'selectedByDefault';\n\n static skosPrefLabel = 'skos:prefLabel';\n static propertyDescriptions = 'propertyDescriptions';\n static propertyLabels = 'propertyLabels';\n\n static format = 'format';\n static enum = 'enum';\n\n static baseTemplateURL = 'https://schema.metadatacenter.org';\n static templateFieldType = CedarModel.baseTemplateURL + '/core/TemplateField';\n static templateElementType = CedarModel.baseTemplateURL + '/core/TemplateElement';\n static templateStaticFieldType = CedarModel.baseTemplateURL + '/core/StaticTemplateField';\n\n}\n","import {CedarComponent} from '../component/cedar-component.model';\nimport {ElementComponent} from '../component/element-component.model';\nimport {LabelInfo} from '../info/label-info.model';\nimport {StaticFieldComponent} from '../static/static-field-component.model';\n\nexport abstract class AbstractElementComponent implements ElementComponent {\n\n className = 'AbstractElementComponent';\n name: string;\n path: string[];\n children: CedarComponent[] = [];\n labelInfo: LabelInfo = new LabelInfo();\n linkedStaticFieldComponent: StaticFieldComponent = null;\n\n getChildByName(childName: string): CedarComponent {\n for (const child of this.children) {\n if (child.name === childName) {\n return child;\n }\n }\n return null;\n }\n\n abstract isMulti(): boolean;\n abstract isMultiPage(): boolean;\n}\n","import {MultiInfo} from '../info/multi-info.model';\nimport {ElementComponent} from '../component/element-component.model';\nimport {MultiComponent} from '../component/multi-component.model';\nimport {AbstractElementComponent} from './abstract-element-component.model';\n\nexport class MultiElementComponent extends AbstractElementComponent implements ElementComponent, MultiComponent {\n\n className = 'MultiElementComponent';\n multiInfo: MultiInfo = new MultiInfo();\n\n isMulti(): boolean {\n return true;\n }\n\n isMultiPage(): boolean {\n return true;\n }\n\n}\n","import {ElementComponent} from '../component/element-component.model';\nimport {SingleComponent} from '../component/single-component.model';\nimport {AbstractElementComponent} from './abstract-element-component.model';\n\nexport class SingleElementComponent extends AbstractElementComponent implements SingleComponent, ElementComponent {\n\n className = 'SingleElementComponent';\n\n isMulti(): boolean {\n return false;\n }\n\n isMultiPage(): boolean {\n return false;\n }\n}\n","export class DataObjectBuildingMode {\n\n static INCLUDE_CONTEXT = 'ic';\n static EXCLUDE_CONTEXT = 'ec';\n\n}\n","import {FieldComponent} from '../component/field-component.model';\nimport {BasicInfo} from '../info/basic-info.model';\nimport {ValueInfo} from '../info/value-info.model';\nimport {NumberInfo} from '../info/number-info.model';\nimport {ChoiceInfo} from '../info/choice-info.model';\nimport {LabelInfo} from '../info/label-info.model';\nimport {StaticFieldComponent} from '../static/static-field-component.model';\nimport {ControlledInfo} from '../info/controlled-info.model';\nimport {MultiInfo} from '../info/multi-info.model';\n\nexport abstract class AbstractFieldComponent implements FieldComponent {\n\n className = 'AbstractFieldComponent';\n name: string;\n path: string[];\n basicInfo: BasicInfo = new BasicInfo();\n valueInfo: ValueInfo = new ValueInfo();\n numberInfo: NumberInfo = new NumberInfo();\n choiceInfo: ChoiceInfo = new ChoiceInfo();\n labelInfo: LabelInfo = new LabelInfo();\n linkedStaticFieldComponent: StaticFieldComponent = null;\n controlledInfo: ControlledInfo = new ControlledInfo();\n multiInfo: MultiInfo = new MultiInfo();\n\n abstract isMulti(): boolean;\n abstract isMultiPage(): boolean;\n\n}\n","import {FieldComponent} from '../component/field-component.model';\nimport {MultiComponent} from '../component/multi-component.model';\nimport {MultiInfo} from '../info/multi-info.model';\nimport {AbstractFieldComponent} from './abstract-field-component.model';\nimport {InputType} from '../input-type.model';\n\nexport class MultiFieldComponent extends AbstractFieldComponent implements MultiComponent, FieldComponent {\n\n className = 'MultiFieldComponent';\n multiInfo: MultiInfo = new MultiInfo();\n\n isMulti(): boolean {\n return true;\n }\n\n isMultiPage(): boolean {\n const inputType = this.basicInfo.inputType;\n return !(inputType === InputType.checkbox || inputType === InputType.list);\n }\n\n}\n","import {FieldComponent} from '../component/field-component.model';\nimport {SingleComponent} from '../component/single-component.model';\nimport {AbstractFieldComponent} from './abstract-field-component.model';\nimport {InputType} from '../input-type.model';\n\nexport class SingleFieldComponent extends AbstractFieldComponent implements SingleComponent, FieldComponent {\n\n className = 'SingleFieldComponent';\n\n isMulti(): boolean {\n return false;\n }\n\n isMultiPage(): boolean {\n return false;\n }\n\n}\n","export class BasicInfo {\n\n inputType: string;\n temporalGranularity: string;\n timezoneEnabled: boolean;\n inputTimeFormat: string;\n\n}\n","import {ChoiceOption} from './choice-option.model';\n\nexport class ChoiceInfo {\n\n multipleChoice: boolean;\n // multipleChoice: number;\n choices: ChoiceOption[] = [];\n\n}\n","export class ChoiceOption {\n\n label: string;\n selectedByDefault: boolean;\n\n}\n","export class ContentInfo {\n\n content: string;\n\n}\n","export class ControlledInfo {\n\n ontologies: Array<object>;\n valueSets: Array<object>;\n classes: Array<object>;\n branches: Array<object>;\n\n}\n","export class LabelInfo {\n\n preferredLabel: string;\n description: string;\n label: string;\n\n}\n","export class MultiInfo {\n\n minItems: number;\n maxItems: number;\n\n getSafeMinItems(): number {\n return this.minItems === null ? 0 : this.minItems;\n }\n\n}\n","import {MultiInstanceObjectInfo} from './multi-instance-object-info.model';\n\nexport class MultiInstanceInfo extends Object {\n\n constructor() {\n super();\n }\n\n addChild(multiInfo: MultiInstanceObjectInfo): void {\n this[multiInfo.componentName] = multiInfo;\n }\n\n getChildByName(componentName: string): MultiInstanceObjectInfo {\n if (this.hasOwnProperty(componentName)) {\n return this[componentName];\n } else {\n return null;\n }\n }\n}\n","import {MultiInstanceInfo} from './multi-instance-info.model';\n\nexport class MultiInstanceObjectInfo {\n\n componentName: string;\n currentCount: number;\n currentIndex: number;\n children: Array<MultiInstanceInfo>;\n\n constructor() {\n this.componentName = null;\n this.currentCount = 0;\n this.currentIndex = -1;\n this.children = new Array<MultiInstanceInfo>();\n }\n\n public addChild(child: MultiInstanceInfo): void {\n this.children.push(child);\n }\n\n //\n // getChildByName(childName: string): MultiInstanceInfo {\n // for (const child of this.children) {\n // if (child.componentName === childName) {\n // return child;\n // }\n // }\n // return null;\n // }\n}\n","export class NumberInfo {\n\n numberType: string;\n unitOfMeasure: string;\n minValue: number;\n maxValue: number;\n decimalPlace: number;\n\n}\n","export class ValueInfo {\n\n requiredValue: boolean;\n defaultValue: string;\n minLength: number;\n maxLength: number;\n temporalType: string;\n\n}\n","export class InputType {\n\n static numeric = 'numeric';\n static text = 'textfield';\n static textarea = 'textarea';\n static richText = 'richtext';\n static controlled = 'controlled';\n static email = 'email';\n static link = 'link';\n static phoneNumber = 'phone-number';\n static list = 'list';\n static checkbox = 'checkbox';\n static radio = 'radio';\n static temporal = 'temporal';\n static image = 'image';\n static youtube = 'youtube';\n static sectionBreak = 'section-break';\n static pageBreak = 'page-break';\n static attributeValue = 'attribute-value';\n\n}\n","export class InstanceExtractData extends Object {\n\n}\n","import {InstanceExtractData} from './instance-extract-data.model';\n\nexport class InstanceFullData extends InstanceExtractData {\n\n}\n","export class JavascriptTypes {\n\n static array = 'array';\n static object = 'object';\n static string = 'string';\n\n}\n","export class JsonSchema {\n\n // special properties used to add attribute-value fields to the model\n static reservedAttributeName = '__reserved__attribute_name';\n static reservedAttributeValue = '__reserved__attribute_value';\n static reservedDefaultAttributeName = 'Attribute Value Field';\n\n static properties = 'properties';\n\n static atContext = '@context';\n static atId = '@id';\n static atType = '@type';\n static atValue = '@value';\n static schemaIsBasedOn = 'schema:isBasedOn';\n static schemaName = 'schema:name';\n static schemaDescription = 'schema:description';\n static pavDerivedFrom = 'pav:derivedFrom';\n static pavCreatedOn = 'pav:createdOn';\n static pavCreatedBy = 'pav:createdBy';\n static pavLastUpdatedOn = 'pav:lastUpdatedOn';\n static oslcModifiedBy = 'oslc:modifiedBy';\n static rdfsLabel = 'rdfs:label';\n static termUri = 'termUri';\n\n static builtInProperties: Map<string, boolean> = new Map([\n [JsonSchema.atId, true],\n [JsonSchema.atContext, true],\n [JsonSchema.atType, true],\n [JsonSchema.schemaIsBasedOn, true],\n [JsonSchema.schemaName, true],\n [JsonSchema.schemaDescription, true],\n [JsonSchema.pavDerivedFrom, true],\n [JsonSchema.pavCreatedOn, true],\n [JsonSchema.pavCreatedBy, true],\n [JsonSchema.pavLastUpdatedOn, true],\n [JsonSchema.oslcModifiedBy, true]\n ]);\n\n}\n","export class Numbers {\n\n static PATTERN_XSD_INT_AND_LONG = '[+-]?(0|[1-9][0-9]*)';\n static PATTERN_XSD_FLOAT_AND_DOUBLE = '([+-]?((0|[1-9][0-9]*)(\\\\.[0-9]{0,maxDig})?|\\\\.[0-9]{0,maxDig}))';\n static NUMBER_INT_MAX = 2147483647;\n static NUMBER_INT_MIN = -2147483648;\n static NUMBER_LONG_MAX = 9223372036854775807;\n static NUMBER_LONG_MIN = -9223372036854775808;\n\n}\n","import {IntegratedSearchRequestValueConstraints} from './integrated-search-request-value-constraints';\n\nexport class IntegratedSearchRequestParameterObject {\n\n valueConstraints: IntegratedSearchRequestValueConstraints = new IntegratedSearchRequestValueConstraints();\n inputText = '';\n\n}\n","export class IntegratedSearchRequestValueConstraints {\n\n ontologies: Array<object> = [];\n valueSets: Array<object> = [];\n classes: Array<object> = [];\n branches: Array<object> = [];\n\n}\n","import {IntegratedSearchRequestParameterObject} from './integrated-search-request-parameter-object';\n\nexport class IntegratedSearchRequest {\n\n parameterObject: IntegratedSearchRequestParameterObject = new IntegratedSearchRequestParameterObject();\n page = 1;\n pageSize = 50;\n\n}\n","import {SingleComponent} from '../component/single-component.model';\nimport {LabelInfo} from '../info/label-info.model';\nimport {BasicInfo} from '../info/basic-info.model';\nimport {ContentInfo} from '../info/content-info.model';\n\nexport class StaticFieldComponent implements SingleComponent {\n\n className = 'StaticFieldComponent';\n\n name: string;\n path: string[];\n labelInfo: LabelInfo = new LabelInfo();\n basicInfo: BasicInfo = new BasicInfo();\n contentInfo: ContentInfo = new ContentInfo();\n linkedStaticFieldComponent: StaticFieldComponent = null;\n\n isMulti(): boolean {\n return false;\n }\n\n isMultiPage(): boolean {\n return false;\n }\n}\n","import {TemplateComponent} from './template-component.model';\nimport {AbstractElementComponent} from '../element/abstract-element-component.model';\nimport {CedarComponent} from '../component/cedar-component.model';\nimport {DataObjectUtil} from '../../util/data-object-util';\n\nexport class CedarTemplate extends AbstractElementComponent implements TemplateComponent {\n\n className = 'CedarTemplate';\n pageBreakChildren: Array<CedarComponent[]>;\n\n\n hasPageBreaks(): boolean {\n return (this.pageBreakChildren.length > 1 && !DataObjectUtil.arraysEqual(this.children, this.pageBreakChildren[0]));\n }\n\n isMulti(): boolean {\n return false;\n }\n\n isMultiPage(): boolean {\n return false;\n }\n\n}\n","import {TemplateComponent} from './template-component.model';\nimport {NullTemplate} from './null-template.model';\n\nexport class EmptyTemplate extends NullTemplate implements TemplateComponent {\n}\n","import {TemplateComponent} from './template-component.model';\nimport {AbstractElementComponent} from '../element/abstract-element-component.model';\nimport {CedarComponent} from '../component/cedar-component.model';\n\nexport class NullTemplate extends AbstractElementComponent implements TemplateComponent {\n\n className = 'NullTemplate';\n pageBreakChildren: Array<CedarComponent[]>;\n\n\n hasPageBreaks(): boolean {\n return false;\n }\n\n isMulti(): boolean {\n return false;\n }\n\n isMultiPage(): boolean {\n return false;\n }\n\n}\n","export class Temporal {\n\n static year = 'year';\n static month = 'month';\n static day = 'day';\n static hour = 'hour';\n static minute = 'minute';\n static second = 'second';\n static decimalSecond = 'decimalSecond';\n\n static inputType12h = '12h';\n static inputType24h = '24h';\n}\n","import {Component, OnInit} from '@angular/core';\n\n@Component({\n template: ''\n})\nexport abstract class CedarUIComponent implements OnInit {\n\n abstract ngOnInit(): void;\n abstract setCurrentValue(currentValue: any): void;\n\n deleteCurrentValue(): void {\n // do nothing unless overridden\n // used for executing component-specific operations\n // for deleting an instance\n }\n\n}\n","export class Xsd {\n\n static int = 'xsd:int';\n static long = 'xsd:long';\n static float = 'xsd:float';\n static double = 'xsd:double';\n static date = 'xsd:date';\n static dateTime = 'xsd:dateTime';\n static time = 'xsd:time';\n\n}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\n\n@Pipe({name: 'keepHtml', pure: false})\n\nexport class EscapeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(content: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(content);\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({name: 'rdf'})\nexport class RdfPipe implements PipeTransform {\n\n transform(value: object): string {\n return value.toString();\n }\n\n}\n","import {CedarUIComponent} from '../models/ui/cedar-ui-component.model';\nimport {CedarComponent} from '../models/component/cedar-component.model';\nimport {SingleFieldComponent} from '../models/field/single-field-component.model';\nimport {JsonSchema} from '../models/json-schema.model';\nimport {MultiFieldComponent} from '../models/field/multi-field-component.model';\nimport {SingleElementComponent} from '../models/element/single-element-component.model';\nimport {MultiElementComponent} from '../models/element/multi-element-component.model';\nimport {Injectable} from '@angular/core';\nimport {CedarMultiPagerComponent} from '../components/cedar-multi-pager/cedar-multi-pager.component';\nimport {MultiInstanceObjectInfo} from '../models/info/multi-instance-object-info.model';\nimport {HandlerContext} from '../util/handler-context';\nimport {InputType} from '../models/input-type.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ActiveComponentRegistryService {\n\n public modelToUI: Map<CedarComponent, CedarUIComponent> = new Map<CedarComponent, CedarUIComponent>();\n private modelToMultiPagerUI: Map<CedarComponent, CedarMultiPagerComponent> = new Map<CedarComponent, CedarMultiPagerComponent>();\n\n private getUIComponent(component: CedarComponent): CedarUIComponent {\n return this.modelToUI.get(component);\n }\n\n private getMultiPagerUI(component: CedarComponent): CedarMultiPagerComponent {\n return this.modelToMultiPagerUI.get(component);\n }\n\n updateViewToModel(component: CedarComponent, handlerContext: HandlerContext): void {\n if (component instanceof SingleFieldComponent) {\n const dataObject: object = handlerContext.getDataObjectNodeByPath(component.path);\n const uiComponent: CedarUIComponent = this.getUIComponent(component);\n if (uiComponent != null && dataObject != null) {\n if (dataObject.hasOwnProperty(JsonSchema.atValue)) {\n uiComponent.setCurrentValue(dataObject[JsonSchema.atValue]);\n } else if (dataObject.hasOwnProperty(JsonSchema.atId) && (component.basicInfo.inputType === InputType.link)) {\n // url field single\n uiComponent.setCurrentValue(dataObject[JsonSchema.atId]);\n } else if (dataObject.hasOwnProperty(JsonSchema.atId)) {\n // controlled field single\n uiComponent.setCurrentValue(dataObject[JsonSchema.rdfsLabel]);\n }\n }\n } else if (component instanceof MultiFieldComponent) {\n const dataObject: object = handlerContext.getDataObjectNodeByPath(component.path);\n const parentDataObject = handlerContext.getParentDataObjectNodeByPath(component.path);\n const uiComponent: CedarUIComponent = this.getUIComponent(component);\n const multiInstanceInfo: MultiInstanceObjectInfo =\n handlerContext.multiInstanceObjectService.getMultiInstanceInfoForComponent(component);\n\n // this is a multi-value but not multi-page component, such as checkbox or multiselect\n if (!component.isMultiPage()) {\n const dataArr = dataObject as Array<object>;\n\n if (uiComponent) {\n uiComponent.setCurrentValue(dataArr.map(a => a[JsonSchema.atValue]));\n }\n } else if (dataObject[multiInstanceInfo.currentIndex] != null) {\n if (component.basicInfo.inputType === InputType.attributeValue) {\n let key = dataObject[multiInstanceInfo.currentIndex];\n\n if (key instanceof Object && key.hasOwnProperty(JsonSchema.atValue) && key[JsonSchema.atValue] === null) {\n handlerContext.changeAttributeValue(component, null, null);\n } else if (multiInstanceInfo.currentIndex > 0) {\n const cloneSourceKey = dataObject[multiInstanceInfo.currentIndex - 1];\n\n if (key === cloneSourceKey) {\n const val = parentDataObject[cloneSourceKey][JsonSchema.atValue];\n handlerContext.changeAttributeValue(component, null, val);\n }\n }\n key = dataObject[multiInstanceInfo.currentIndex];\n const value = parentDataObject[key][JsonSchema.atValue];\n const obj = {};\n obj[key] = value;\n\n if (uiComponent) {\n uiComponent.setCurrentValue(obj);\n }\n } else {\n if (dataObject[multiInstanceInfo.currentIndex].hasOwnProperty(JsonSchema.atValue)) {\n if (uiComponent) {\n uiComponent.setCurrentValue(dataObject[multiInstanceInfo.currentIndex][JsonSchema.atValue]);\n }\n } else if (dataObject[multiInstanceInfo.currentIndex].hasOwnProperty(JsonSchema.atId)) {\n // controlled field multipage\n if (uiComponent) {\n uiComponent.setCurrentValue(dataObject[multiInstanceInfo.currentIndex][JsonSchema.rdfsLabel]);\n }\n }\n }\n\n if (component.isMultiPage()) {\n const uiPager = this.getMultiPagerUI(component);\n\n if (uiPager) {\n uiPager.updatePagingUI();\n }\n }\n }\n } else if (component instanceof SingleElementComponent) {\n for (const childComponent of component.children) {\n this.updateViewToModel(childComponent, handlerContext);\n }\n } else if (component instanceof MultiElementComponent) {\n const uiPager = this.getMultiPagerUI(component);\n\n if (uiPager) {\n uiPager.updatePagingUI();\n }\n\n for (const childComponent of component.children) {\n this.updateViewToModel(childComponent, handlerContext);\n }\n }\n }\n\n deleteCurrentValue(component: CedarComponent): void {\n const uiComponent: CedarUIComponent = this.getUIComponent(component);\n\n if (uiComponent) {\n uiComponent.deleteCurrentValue();\n }\n }\n\n registerComponent(modelComponent: CedarComponent, uiComponent: CedarUIComponent): void {\n this.modelToUI.set(modelComponent, uiComponent);\n }\n\n registerMultiPagerComponent(modelComponent: CedarComponent, uiComponent: CedarMultiPagerComponent): void {\n this.modelToMultiPagerUI.set(modelComponent, uiComponent);\n }\n}\n","import {CedarComponent} from '../models/component/cedar-component.model';\nimport {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ComponentDataService {\n\n public getRenderingLabelForComponent(component: CedarComponent): string {\n if (component.labelInfo !== undefined &&\n component.labelInfo.preferredLabel !== undefined &&\n component.labelInfo.preferredLabel !== null) {\n return component.labelInfo.preferredLabel;\n }\n if (component.labelInfo !== undefined &&\n component.labelInfo.label !== undefined &&\n component.labelInfo.label !== null) {\n return component.labelInfo.label;\n }\n if (component.name !== null) {\n return component.name;\n }\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {IntegratedSearchResponse} from '../models/rest/integrated-search/integrated-search-response';\nimport {IntegratedSearchRequest} from '../models/rest/integrated-search/integrated-search-request';\nimport {FieldComponent} from '../models/component/field-component.model';\nimport {HttpClient} from '@angular/common/http';\nimport {MessageHandlerService} from './message-handler.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ControlledFieldDataService {\n\n private terminologyProxyUrl = null;\n\n constructor(\n private http: HttpClient,\n private messageHandlerService: MessageHandlerService\n ) {\n }\n\n setTerminologyProxyUrl(terminologyProxyUrl: string): void {\n this.terminologyProxyUrl = terminologyProxyUrl;\n }\n\n getData(val: string, component: FieldComponent): Observable<IntegratedSearchResponse> {\n const postData = new IntegratedSearchRequest();\n postData.parameterObject.inputText = val;\n postData.parameterObject.valueConstraints.branches = component.controlledInfo.branches;\n postData.parameterObject.valueConstraints.classes = component.controlledInfo.classes;\n postData.parameterObject.valueConstraints.ontologies = component.controlledInfo.ontologies;\n postData.parameterObject.valueConstraints.valueSets = component.controlledInfo.valueSets;\n // this.messageHandlerService.traceObject('Read terminology integrated search:', postData);\n return this.http.post<IntegratedSearchResponse>(this.terminologyProxyUrl, postData);\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {MomentDateAdapter} from '@angular/material-moment-adapter';\nimport * as moment from 'moment';\nimport {DateTimeService} from './date-time.service';\n\n@Injectable()\nexport class CustomDateAdapter extends MomentDateAdapter {\n constructor(private dateTimeService: DateTimeService) {\n super(dateTimeService.locale);\n }\n\n public format(date: moment.Moment, displayFormat: string): string {\n const locale = this.dateTimeService.locale;\n const format = this.dateTimeService.format;\n date.locale(locale);\n const result = date.format(format);\n return result;\n }\n}\n","import {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DateTimeService {\n private formatString: string;\n private localeString: string;\n\n public constructor() {\n this.formatString = 'LL';\n this.localeString = 'en-US';\n }\n\n public get format(): string {\n return this.formatString;\n }\n\n public set format(value: string) {\n this.formatString = value;\n }\n\n public get locale(): string {\n return this.localeString;\n }\n\n public set locale(value: string) {\n this.localeString = value;\n }\n}\n","import {Injectable} from '@angular/core';\nimport {environment} from '../../../../environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalSettingsService {\n\n // keys\n private static LANGUAGE = 'language';\n\n constructor() {\n }\n\n public setLanguage(language: string): void {\n localStorage.setItem(LocalSettingsService.LANGUAGE, language);\n }\n\n public getLanguage(): string {\n return localStorage.getItem(LocalSettingsService.LANGUAGE) ?? environment.defaultLanguage;\n }\n}\n","import {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MessageHandlerService {\n\n private eventHandler = null;\n\n constructor() {\n }\n\n injectEventHandler(value: object): void {\n this.eventHandler = value;\n }\n\n trace(label: string): void {\n console.log('TRACE: ' + label);\n }\n\n traceObject(label: string, value: object): void {\n console.log('TRACE: ' + label);\n console.log(value);\n }\n\n error(label: string): void {\n console.error('ERROR: ' + label);\n }\n\n errorObject(label: string, value: object): void {\n console.error('ERROR: ' + label);\n console.error(value);\n }\n\n}\n","import {CedarComponent} from '../models/component/cedar-component.model';\n\nexport class PageBreakPaginatorService {\n\n currentPageBreakIndex: number;\n pageBreakChildren: Array<CedarComponent[]>;\n\n\n reset(pbChildren: Array<CedarComponent[]>): void {\n this.pageBreakChildren = pbChildren;\n this.currentPageBreakIndex = 0;\n }\n\n numPages(): number {\n return this.pageBreakChildren.length;\n }\n\n allPageIndices(): number[] {\n return this.pageBreakChildren.map((_, i) => i);\n }\n\n currentPage(): CedarComponent[] {\n return this.page(this.currentPageBreakIndex);\n }\n\n currentPageSize(): number {\n return this.currentPage().length;\n }\n\n page(pageNum: number): CedarComponent[] {\n if (pageNum >= 0 && pageNum < this.pageBreakChildren.length) {\n this.currentPageBreakIndex = pageNum;\n return this.curPage();\n }\n return null;\n }\n\n hasPreviousPage(): boolean {\n return (this.currentPageBreakIndex > 0);\n }\n\n previousPage(): CedarComponent[] {\n if (this.hasPreviousPage()) {\n this.currentPageBreakIndex--;\n return this.curPage();\n }\n return null;\n }\n\n decrementPage(): void {\n if (this.currentPageBreakIndex > 0) {\n this.currentPageBreakIndex--;\n }\n }\n\n hasNextPage(): boolean {\n return (this.currentPageBreakIndex < this.pageBreakChildren.length - 1);\n }\n\n nextPage(): CedarComponent[] {\n if (this.hasNextPage()) {\n this.currentPageBreakIndex++;\n return this.curPage();\n }\n return null;\n }\n\n incrementPage(): void {\n if (this.currentPageBreakIndex < this.pageBreakChildren.length - 1) {\n this.currentPageBreakIndex++;\n }\n }\n\n private curPage(): CedarComponent[] {\n return this.pageBreakChildren[this.currentPageBreakIndex];\n }\n\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {RdfPipe} from './pipe/rdf.pipe';\nimport {CedarComponentHeaderComponent} from './components/cedar-component-header/cedar-component-header.component';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatIconModule} from '@angular/material/icon';\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatExpansionModule} from '@angular/material/expansion';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport {ClipboardModule} from '@angular/cdk/clipboard';\nimport {MatToolbarModule} from '@angular/material/toolbar';\nimport {MatRippleModule} from '@angular/material/core';\nimport {MatPaginatorModule} from '@angular/material/paginator';\nimport {MatChipsModule} from '@angular/material/chips';\nimport {MatGridListModule} from '@angular/material/grid-list';\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\nimport {MatListModule} from '@angular/material/list';\nimport {MatSelectModule} from '@angular/material/select';\nimport {NgxMatSelectSearchModule} from 'ngx-mat-select-search';\nimport {NgSelectModule} from '@ng-select/ng-select';\nimport {\n CedarEmbeddableMetadataEditorComponent\n} from './components/cedar-embeddable-metadata-editor/cedar-embeddable-metadata-editor.component';\nimport {CedarComponentRendererComponent} from './components/cedar-component-renderer/cedar-component-renderer.component';\nimport {CedarDataSaverComponent} from './components/cedar-data-saver/cedar-data-saver.component';\nimport {StaticFooterComponent} from './components/static-footer/static-footer.component';\nimport {StaticHeaderComponent} from './components/static-header/static-header.component';\nimport {SourcePanelsComponent} from './components/source-panels/source-panels.component';\nimport {CedarMultiPagerComponent} from './components/cedar-multi-pager/cedar-multi-pager.component';\nimport {InputTypesModule} from '../input-types/input-types.module';\nimport {\n CedarEmbeddableMetadataEditorWrapperComponent\n} from './components/cedar-embeddable-metadata-editor-wrapper/cedar-embeddable-metadata-editor-wrapper.component';\nimport {SampleTemplatesComponent} from './components/sample-templates/sample-templates.component';\nimport {SampleTemplateSelectComponent} from './components/sample-templates/sample-template-select/sample-template-select.component';\nimport {PreferencesMenu} from './components/preferences-menu/preferences-menu.component';\nimport {MatMenuModule} from '@angular/material/menu';\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n imports: [\n CommonModule,\n MatCardModule,\n MatIconModule,\n BrowserAnimationsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatExpansionModule,\n MatButtonModule,\n MatTooltipModule,\n ClipboardModule,\n MatToolbarModule,\n MatRippleModule,\n MatPaginatorModule,\n MatChipsModule,\n MatGridListModule,\n MatProgressSpinnerModule,\n MatListModule,\n MatSelectModule,\n NgxMatSelectSearchModule,\n NgSelectModule,\n InputTypesModule,\n FormsModule,\n MatMenuModule,\n MatSlideToggleModule,\n TranslateModule,\n ],\n declarations: [\n RdfPipe,\n CedarComponentHeaderComponent,\n CedarEmbeddableMetadataEditorComponent,\n CedarEmbeddableMetadataEditorWrapperComponent,\n SampleTemplatesComponent,\n SampleTemplateSelectComponent,\n CedarComponentRendererComponent,\n CedarDataSaverComponent,\n StaticFooterComponent,\n StaticHeaderComponent,\n SourcePanelsComponent,\n CedarMultiPagerComponent,\n PreferencesMenu\n ],\n providers: [],\n exports: [\n RdfPipe,\n CedarEmbeddableMetadataEditorWrapperComponent,\n ]\n})\nexport class SharedModule {\n}\n","import {CedarInputTemplate} from '../models/cedar-input-template.model';\nimport {TemplateComponent} from '../models/template/template-component.model';\nimport {MultiInstanceInfo} from '../models/info/multi-instance-info.model';\nimport {TemplateRepresentationFactory} from '../factory/template-representation.factory';\nimport {InstanceExtractData} from '../models/instance-extract-data.model';\nimport {InstanceFullData} from '../models/instance-full-data.model';\nimport {HandlerContext} from './handler-context';\nimport {MultiInstanceObjectHandler} from '../handler/multi-instance-object.handler';\nimport {DataObjectBuilderHandler} from '../handler/data-object-builder.handler';\nimport {PageBreakPaginatorService} from '../service/page-break-paginator.service';\n\nexport class DataContext {\n\n templateInput: CedarInputTemplate = null;\n templateRepresentation: TemplateComponent = null;\n instanceExtractData: InstanceExtractData = null;\n instanceFullData: InstanceFullData = null;\n multiInstanceData: MultiInstanceInfo = null;\n savedTemplateID: string;\n templateInfo: object;\n\n public constructor() {\n }\n\n set externalTemplateInfo(templateInfo: object) {\n this.templateInfo = templateInfo;\n }\n\n setInputTemplate(value: object, handlerContext: HandlerContext,\n pageBreakPaginatorService: PageBreakPaginatorService, collapseStaticComponents: boolean): void {\n this.templateInput = value as CedarInputTemplate;\n this.templateRepresentation = TemplateRepresentationFactory.create(this.templateInput, collapseStaticComponents);\n pageBreakPaginatorService.reset(this.templateRepresentation.pageBreakChildren);\n const multiInstanceObjectService: MultiInstanceObjectHandler = handlerContext.multiInstanceObjectService;\n const dataObjectService: DataObjectBuilderHandler = handlerContext.dataObjectBuilderService;\n this.instanceExtractData = dataObjectService.buildNewExtractDataObject(this.templateRepresentation, this.templateInput);\n this.instanceFullData = dataObjectService.buildNewFullDataObject(this.templateRepresentation, this.templateInput);\n this.multiInstanceData = multiInstanceObjectService.buildNewOrFromMetadata(this.templateRepresentation);\n this.savedTemplateID = null;\n }\n\n}\n","import {JsonSchema} from '../models/json-schema.model';\nimport {CedarModel} from '../models/cedar-model.model';\nimport {JavascriptTypes} from '../models/javascript-types.model';\nimport {TemplateObjectUtil} from './template-object-util';\nimport {DataObjectBuildingMode} from '../models/enum/data-object-building-mode.model';\n\nexport class DataObjectUtil {\n\n static getEmptyValueWrapper(templateJsonObj: object, buildingMode: DataObjectBuildingMode): object {\n const obj = {};\n if (!TemplateObjectUtil.hasControlledInfo(templateJsonObj) ) {\n obj[JsonSchema.atValue] = null;\n }\n if (buildingMode === DataObjectBuildingMode.INCLUDE_CONTEXT) {\n this.injectAtTypeIfAvailable(obj, templateJsonObj);\n }\n return obj;\n }\n\n static getEmptyObject(): object {\n return {};\n }\n\n static getEmptyList(): [] {\n return [];\n }\n\n private static injectAtTypeIfAvailable(obj: object, templateJsonObj: object): void {\n if (templateJsonObj != null) {\n if (templateJsonObj.hasOwnProperty(CedarModel.valueConstraints)) {\n const vc = templateJsonObj[CedarModel.valueConstraints];\n if (vc.hasOwnProperty(CedarModel.numberType)) {\n obj[JsonSchema.atType] = vc[CedarModel.numberType];\n } else if (vc.hasOwnProperty(CedarModel.temporalType)) {\n obj[JsonSchema.atType] = vc[CedarModel.temporalType];\n }\n }\n }\n }\n\n static convertTemplateContextNode(propsContextProp: object): object {\n let ret = null;\n if (propsContextProp[CedarModel.type] === 'string' && propsContextProp[CedarModel.format] === 'uri') {\n ret = propsContextProp[CedarModel.enum][0];\n } else if (propsContextProp[CedarModel.type] === 'object' && propsContextProp.hasOwnProperty(JsonSchema.properties)) {\n ret = {};\n ret[JsonSchema.atType] = propsContextProp[JsonSchema.properties][JsonSchema.atType][CedarModel.enum][0];\n } else if (propsContextProp.hasOwnProperty(CedarModel.enum)) {\n ret = propsContextProp[CedarModel.enum][0];\n }\n return ret;\n }\n\n static getSafeSubTemplate(templateJsonObj: object, targetName: string): object {\n let subTemplate: object = null;\n if (templateJsonObj != null) {\n subTemplate = templateJsonObj[JsonSchema.properties][targetName];\n if (subTemplate[CedarModel.type] === JavascriptTypes.array) {\n subTemplate = subTemplate[CedarModel.items];\n }\n }\n return subTemplate;\n }\n\n // Generating a RFC4122 version 4 compliant GUID\n static generateGUID(): string {\n let d = Date.now();\n const guid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (d + Math.random() * 16) % 16 | 0;\n d = Math.floor(d / 16);\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);\n });\n return guid;\n }\n\n static arraysEqual(arr1, arr2): boolean {\n // if the other array is a falsy value, return\n if (!arr2) {\n return false;\n }\n\n // compare lengths - can save a lot of time\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n for (let i = 0, l = arr1.length; i < l; i++) {\n // Check if we have nested arrays\n if (arr1[i] instanceof Array && arr2[i] instanceof Array) {\n // recurse into the nested arrays\n if (!arr1[i].equals(arr2[i])) {\n return false;\n }\n } else if (arr1[i] !== arr2[i]) {\n // Warning - two different object instances will never be equal: {x:20} != {x:20}\n return false;\n }\n }\n return true;\n }\n\n}\n","import {MultiComponent} from '../models/component/multi-component.model';\nimport {DataContext} from './data-context';\nimport {MultiInstanceObjectHandler} from '../handler/multi-instance-object.handler';\nimport {DataObjectBuilderHandler} from '../handler/data-object-builder.handler';\nimport {FieldComponent} from '../models/component/field-component.model';\nimport {DataObjectDataValueHandler} from '../handler/data-object-data-value.handler';\nimport {DataObjectStructureHandler} from '../handler/data-object-structure.handler';\n\n\nexport class HandlerContext {\n\n readonly dataObjectBuilderService: DataObjectBuilderHandler = null;\n readonly multiInstanceObjectService: MultiInstanceObjectHandler = null;\n readonly dataObjectManipulationService: DataObjectStructureHandler = null;\n readonly dataObjectDataValueHandler: DataObjectDataValueHandler = null;\n readonly dataContext: DataContext = null;\n\n public constructor(dataContext: DataContext) {\n this.dataObjectBuilderService = new DataObjectBuilderHandler();\n this.multiInstanceObjectService = new MultiInstanceObjectHandler();\n this.dataObjectBuilderService.injectMultiInstanceService(this.multiInstanceObjectService);\n this.dataObjectManipulationService = new DataObjectStructureHandler();\n this.dataObjectDataValueHandler = new DataObjectDataValueHandler();\n this.dataContext = dataContext;\n }\n\n addMultiInstance(component: MultiComponent): void {\n this.dataObjectManipulationService.multiInstanceItemAdd(this.dataContext, component, this.multiInstanceObjectService);\n this.multiInstanceObjectService.multiInstanceItemAdd(component);\n }\n\n copyMultiInstance(component: MultiComponent): void {\n const multiInfo = this.multiInstanceObjectService.getMultiInstanceInfoForComponent(component);\n\n // nothing to copy from, create new\n if (multiInfo.currentIndex < 0) {\n this.addMultiInstance(component);\n } else {\n this.dataObjectManipulationService.multiInstanceItemCopy(this.dataContext, component, this.multiInstanceObjectService);\n this.multiInstanceObjectService.multiInstanceItemCopy(component);\n }\n }\n\n deleteMultiInstance(component: MultiComponent): void {\n this.dataObjectManipulationService.multiInstanceItemDelete(this.dataContext, component, this.multiInstanceObjectService);\n this.multiInstanceObjectService.multiInstanceItemDelete(component);\n }\n\n getDataObjectNodeByPath(path: string[]): object {\n return this.dataObjectManipulationService.getDataPathNodeRecursively(this.dataContext.instanceExtractData, this.dataContext.templateRepresentation, path, this.multiInstanceObjectService);\n }\n\n getParentDataObjectNodeByPath(path: string[]): object {\n return this.dataObjectManipulationService.getParentDataPathNodeRecursively(this.dataContext.instanceExtractData, null, this.dataContext.templateRepresentation, path, this.multiInstanceObjectService);\n }\n\n setCurrentIndex(component: MultiComponent, idx: number): void {\n this.multiInstanceObjectService.setCurrentIndex(component, idx);\n }\n\n changeValue(component: FieldComponent, value: string): void {\n this.dataObjectDataValueHandler.changeValue(this.dataContext, component, this.multiInstanceObjectService, value);\n }\n\n changeListValue(component: FieldComponent, value: string[]): void {\n this.dataObjectDataValueHandler.changeListValue(this.dataContext, component, this.multiInstanceObjectService, value);\n }\n\n changeAttributeValue(component: FieldComponent, key: string, value: string): void {\n this.dataObjectDataValueHandler.changeAttributeValue(this.dataContext, component, this.multiInstanceObjectService, key, value);\n }\n\n deleteAttributeValue(component: FieldComponent, key: string): void {\n this.dataObjectDataValueHandler.deleteAttributeValue(this.dataContext, component, this.multiInstanceObjectService, key);\n }\n\n changeControlledValue(component: FieldComponent, atId: string, prefLabel: string): void {\n this.dataObjectDataValueHandler.changeControlledValue(this.dataContext, component, this.multiInstanceObjectService, atId, prefLabel);\n }\n\n}\n","import {CedarModel} from '../models/cedar-model.model';\n\nexport class TemplateObjectUtil {\n\n static hasControlledInfo(dataNode: object): boolean {\n if (TemplateObjectUtil.hasValueConstraints(dataNode)) {\n const vc: object = dataNode[CedarModel.valueConstraints];\n const hasOntologies = vc.hasOwnProperty(CedarModel.ontologies) && vc[CedarModel.ontologies].length > 0;\n const hasValueSets = vc.hasOwnProperty(CedarModel.valueSets) && vc[CedarModel.valueSets].length > 0;\n const hasClasses = vc.hasOwnProperty(CedarModel.classes) && vc[CedarModel.classes].length > 0;\n const hasBranches = vc.hasOwnProperty(CedarModel.branches) && vc[CedarModel.branches].length > 0;\n return hasOntologies || hasValueSets || hasClasses || hasBranches;\n }\n return false;\n }\n\n static hasValueConstraints(dataNode: object): boolean {\n return dataNode != null && dataNode.hasOwnProperty(CedarModel.valueConstraints);\n }\n\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n defaultLanguage: 'en',\n fallbackLanguage: 'en'\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import {enableProdMode} from '@angular/core';\nimport {platformBrowserDynamic} from '@angular/platform-browser-dynamic';\nimport {environment} from './environments/environment';\nimport {AppModuleProd} from './app/app.module.prod';\nimport {AppModuleDev} from './app/app.module.dev';\n\ndeclare global {\n interface Window {\n WebComponents: {\n ready: boolean;\n };\n }\n}\n\n// needed for jsonld js library\n// (window as any).global = window;\n\nif (environment.production) {\n enableProdMode();\n}\n\nif (environment.production) {\n platformBrowserDynamic().bootstrapModule(AppModuleProd)\n .catch(err => console.error(err));\n} else {\n platformBrowserDynamic().bootstrapModule(AppModuleDev)\n .catch(err => console.error(err));\n}\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 10860,\n\t\"./en-ca.js\": 10860,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":[],"sourceRoot":"webpack:///","x_google_ignoreList":[103]}