UNPKG

@asoftwareworld/form-builder-pro

Version:

ASW Form Builder Pro helps you with rapid development and designed web forms which includes several controls. The key feature of Form Builder is to make your content attractive and effective. We can customize our control at run time and preview the same b

86 lines 67.6 kB
/** * @license * Copyright ASW (A Software World) All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file */ import { Component, EventEmitter, Input, Output } from '@angular/core'; import { CSSFrameworkEnum } from '@asoftwareworld/form-builder-pro/api'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; import * as i2 from "@asoftwareworld/form-builder-pro/form-control/autocomplete"; import * as i3 from "@asoftwareworld/form-builder-pro/form-control/button"; import * as i4 from "@asoftwareworld/form-builder-pro/form-control/checkbox"; import * as i5 from "@asoftwareworld/form-builder-pro/form-control/datepicker"; import * as i6 from "@asoftwareworld/form-builder-pro/form-control/divider"; import * as i7 from "@asoftwareworld/form-builder-pro/form-control/drawing"; import * as i8 from "@asoftwareworld/form-builder-pro/form-control/gps"; import * as i9 from "@asoftwareworld/form-builder-pro/form-control/header"; import * as i10 from "@asoftwareworld/form-builder-pro/form-control/image"; import * as i11 from "@asoftwareworld/form-builder-pro/form-control/multi-select"; import * as i12 from "@asoftwareworld/form-builder-pro/form-control/paragraph"; import * as i13 from "@asoftwareworld/form-builder-pro/form-control/select"; import * as i14 from "@asoftwareworld/form-builder-pro/form-control/signature"; import * as i15 from "@asoftwareworld/form-builder-pro/form-control/slide-toggle"; import * as i16 from "@asoftwareworld/form-builder-pro/form-control/textfield"; import * as i17 from "@asoftwareworld/form-builder-pro/form-control/radio-button"; import * as i18 from "@asoftwareworld/form-builder-pro/form-control/qrcode"; import * as i19 from "@asoftwareworld/form-builder-pro/form-control/number"; import * as i20 from "@asoftwareworld/form-builder-pro/form-control/calculation"; import * as i21 from "@asoftwareworld/form-builder-pro/form-control/fileupload"; import * as i22 from "@asoftwareworld/form-builder-pro/form-control/tags"; export class AswDragDrop { control; formContainer = []; CSSFramework = CSSFrameworkEnum.Material; propertyPersonalization = []; patterns = []; controlUpdated = new EventEmitter(); controlDeleted = new EventEmitter(); controlDuplicate = new EventEmitter(); controlChange = new EventEmitter(); buttonClick = new EventEmitter(); updatedControl(control) { this.controlUpdated.emit(control); } deleteControl(control) { this.controlDeleted.emit(control); } duplicateControl(control) { this.controlDuplicate.emit(control); } onSelectionChange(control) { this.controlChange.emit(control); } buttonClicked(type) { this.buttonClick.emit(type); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AswDragDrop, deps: [], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: AswDragDrop, selector: "asw-drag-drop", inputs: { control: "control", formContainer: "formContainer", CSSFramework: "CSSFramework", propertyPersonalization: "propertyPersonalization", patterns: "patterns" }, outputs: { controlUpdated: "controlUpdated", controlDeleted: "controlDeleted", controlDuplicate: "controlDuplicate", controlChange: "controlChange", buttonClick: "buttonClick" }, ngImport: i0, template: "<ng-container *ngIf=\"control as control\">\r\n <ng-container [ngSwitch]=\"control.controlType\">\r\n <ng-container *ngSwitchCase=\"'autocomplete'\">\r\n <asw-autocomplete [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [formControls]=\"formContainer\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (autocompleteUpdateEvent)=\"updatedControl($event)\"\r\n (autocompleteDeleteEvent)=\"deleteControl($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-autocomplete>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'tags'\">\r\n <asw-tags [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [patterns]=\"patterns\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (tagsUpdateEvent)=\"updatedControl($event)\"\r\n (tagsDeleteEvent)=\"deleteControl($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-tags>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'header'\">\r\n <asw-header [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (headerUpdateEvent)=\"updatedControl($event)\"\r\n (headerDeleteEvent)=\"deleteControl($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-header>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'qr-code'\">\r\n <asw-qrcode [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n (qrCodeUpdateEvent)=\"updatedControl($event)\"\r\n (qrCodeDeleteEvent)=\"deleteControl($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-qrcode>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'image'\">\r\n <asw-image [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n (imageUpdateEvent)=\"updatedControl($event)\"\r\n (imageDeleteEvent)=\"deleteControl($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-image>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textfield'\">\r\n <asw-textfield [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [patterns]=\"patterns\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (textFieldUpdateEvent)=\"updatedControl($event)\"\r\n (textFieldDeleteEvent)=\"deleteControl($event)\"\r\n (aswModelChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-textfield>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'email'\">\r\n <asw-textfield [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [patterns]=\"patterns\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (textFieldUpdateEvent)=\"updatedControl($event)\"\r\n (textFieldDeleteEvent)=\"deleteControl($event)\"\r\n (aswModelChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-textfield>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'url'\">\r\n <asw-textfield [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [patterns]=\"patterns\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (textFieldUpdateEvent)=\"updatedControl($event)\"\r\n (textFieldDeleteEvent)=\"deleteControl($event)\"\r\n (aswModelChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-textfield>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <asw-number [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [patterns]=\"patterns\"\r\n [formControls]=\"formContainer\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (numberUpdateEvent)=\"updatedControl($event)\"\r\n (numberDeleteEvent)=\"deleteControl($event)\"\r\n (aswModelChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-number>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'phone-number'\">\r\n <asw-textfield [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [patterns]=\"patterns\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (textFieldUpdateEvent)=\"updatedControl($event)\"\r\n (textFieldDeleteEvent)=\"deleteControl($event)\"\r\n (aswModelChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-textfield>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textarea'\">\r\n <asw-textfield [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [patterns]=\"patterns\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (textFieldUpdateEvent)=\"updatedControl($event)\"\r\n (textFieldDeleteEvent)=\"deleteControl($event)\"\r\n (aswModelChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-textfield>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <asw-number [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [patterns]=\"patterns\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [formControls]=\"formContainer\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (numberUpdateEvent)=\"updatedControl($event)\"\r\n (numberDeleteEvent)=\"deleteControl($event)\"\r\n (aswModelChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-number>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'calculation'\">\r\n <asw-calculation [control]=\"control\"\r\n [formControls]=\"formContainer\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [isPreviewTemplate]=\"true\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (calculationUpdateEvent)=\"updatedControl($event)\"\r\n (calculationDeleteEvent)=\"deleteControl($event)\"\r\n (aswModelChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-calculation>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'select'\">\r\n <asw-select [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [formControls]=\"formContainer\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (selectUpdateEvent)=\"updatedControl($event)\"\r\n (selectDeleteEvent)=\"deleteControl($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-select>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'multi-select'\">\r\n <asw-multi-select [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [formControls]=\"formContainer\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (multiSelectUpdateEvent)=\"updatedControl($event)\"\r\n (multiSelectDeleteEvent)=\"deleteControl($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-multi-select>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'radio'\">\r\n <asw-radio-button [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [formControls]=\"formContainer\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (radioButtonUpdateEvent)=\"updatedControl($event)\"\r\n (radioButtonDeleteEvent)=\"deleteControl($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-radio-button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <asw-checkbox [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [formControls]=\"formContainer\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (checkboxUpdateEvent)=\"updatedControl($event)\"\r\n (checkboxDeleteEvent)=\"deleteControl($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'datepicker'\">\r\n <asw-datepicker [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (datepickerUpdateEvent)=\"updatedControl($event)\"\r\n (datepickerDeleteEvent)=\"deleteControl($event)\"\r\n (dateChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-datepicker>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'daterange'\">\r\n <asw-datepicker [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (datepickerUpdateEvent)=\"updatedControl($event)\"\r\n (datepickerDeleteEvent)=\"deleteControl($event)\"\r\n (dateChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-datepicker>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'button'\">\r\n <asw-button [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (buttonUpdateEvent)=\"updatedControl($event)\"\r\n (buttonDeleteEvent)=\"deleteControl($event)\"\r\n (buttonClickEvent)=\"buttonClicked($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-button> \r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'paragraph'\">\r\n <asw-paragraph [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n (paragraphUpdateEvent)=\"updatedControl($event)\"\r\n (paragraphDeleteEvent)=\"deleteControl($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-paragraph>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'divider'\">\r\n <asw-divider [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n (dividerDeleteEvent)=\"deleteControl($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-divider>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'slide-toggle'\">\r\n <asw-slide-toggle [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (slidetoggleUpdateEvent)=\"updatedControl($event)\"\r\n (slidetoggleDeleteEvent)=\"deleteControl($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-slide-toggle>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'gps'\">\r\n <asw-gps [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (gpsUpdateEvent)=\"updatedControl($event)\"\r\n (gpsDeleteEvent)=\"deleteControl($event)\"\r\n (gpsAddressChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-gps>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'signature'\">\r\n <asw-signature [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n (signatureUpdateEvent)=\"updatedControl($event)\"\r\n (signatureDeleteEvent)=\"deleteControl($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-signature>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'drawing'\">\r\n <asw-drawing [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n (drawingUpdateEvent)=\"updatedControl($event)\"\r\n (drawingDeleteEvent)=\"deleteControl($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-drawing>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'fileupload'\">\r\n <asw-fileupload [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (fileUploadUpdateEvent)=\"updatedControl($event)\"\r\n (fileUploadDeleteEvent)=\"deleteControl($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-fileupload>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>\r\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2.AswAutocomplete, selector: "asw-autocomplete", inputs: ["control", "CSSFramework", "isPreviewTemplate", "propertyPersonalization", "formControls"], outputs: ["autocompleteUpdateEvent", "autocompleteDeleteEvent", "selectionChange", "duplicateControl"] }, { kind: "component", type: i3.AswButton, selector: "asw-button", inputs: ["control", "CSSFramework", "isPreviewTemplate", "propertyPersonalization"], outputs: ["buttonClickEvent", "buttonUpdateEvent", "buttonDeleteEvent", "duplicateControl"] }, { kind: "component", type: i4.AswCheckbox, selector: "asw-checkbox", inputs: ["control", "propertyPersonalization", "isPreviewTemplate", "CSSFramework", "formControls"], outputs: ["checkboxUpdateEvent", "checkboxDeleteEvent", "selectionChange", "duplicateControl"] }, { kind: "component", type: i5.AswDatepicker, selector: "asw-datepicker", inputs: ["control", "CSSFramework", "isPreviewTemplate", "propertyPersonalization"], outputs: ["datepickerUpdateEvent", "datepickerDeleteEvent", "dateChange", "duplicateControl"] }, { kind: "component", type: i6.AswDivider, selector: "asw-divider", inputs: ["control", "isPreviewTemplate"], outputs: ["dividerDeleteEvent", "duplicateControl"] }, { kind: "component", type: i7.AswDrawing, selector: "asw-drawing", inputs: ["control", "CSSFramework", "isPreviewTemplate"], outputs: ["drawingUpdateEvent", "drawingDeleteEvent", "duplicateControl"] }, { kind: "component", type: i8.AswGps, selector: "asw-gps", inputs: ["control", "CSSFramework", "isPreviewTemplate", "propertyPersonalization"], outputs: ["gpsUpdateEvent", "gpsDeleteEvent", "gpsAddressChange", "duplicateControl"] }, { kind: "component", type: i9.AswHeader, selector: "asw-header", inputs: ["control", "CSSFramework", "isPreviewTemplate", "propertyPersonalization"], outputs: ["headerUpdateEvent", "headerDeleteEvent", "duplicateControl"] }, { kind: "component", type: i10.AswImage, selector: "asw-image", inputs: ["control", "isPreviewTemplate", "CSSFramework"], outputs: ["imageUpdateEvent", "imageDeleteEvent", "duplicateControl"] }, { kind: "component", type: i11.AswMultiSelect, selector: "asw-multi-select", inputs: ["control", "propertyPersonalization", "isPreviewTemplate", "CSSFramework", "formControls"], outputs: ["multiSelectUpdateEvent", "multiSelectDeleteEvent", "selectionChange", "duplicateControl"] }, { kind: "component", type: i12.AswParagraph, selector: "asw-paragraph", inputs: ["control", "isPreviewTemplate"], outputs: ["paragraphUpdateEvent", "paragraphDeleteEvent", "duplicateControl"] }, { kind: "component", type: i13.AswSelect, selector: "asw-select", inputs: ["control", "CSSFramework", "isPreviewTemplate", "propertyPersonalization", "formControls"], outputs: ["selectUpdateEvent", "selectDeleteEvent", "selectionChange", "duplicateControl"] }, { kind: "component", type: i14.AswSignature, selector: "asw-signature", inputs: ["control", "CSSFramework", "isPreviewTemplate"], outputs: ["signatureUpdateEvent", "signatureDeleteEvent", "duplicateControl"] }, { kind: "component", type: i15.AswSlideToggle, selector: "asw-slide-toggle", inputs: ["control", "CSSFramework", "isPreviewTemplate", "propertyPersonalization"], outputs: ["slidetoggleUpdateEvent", "slidetoggleDeleteEvent", "selectionChange", "duplicateControl"] }, { kind: "component", type: i16.AswTextField, selector: "asw-textfield", inputs: ["control", "propertyPersonalization", "isPreviewTemplate", "CSSFramework", "patterns"], outputs: ["textFieldUpdateEvent", "textFieldDeleteEvent", "aswModelChange", "duplicateControl"] }, { kind: "component", type: i17.AswRadioButton, selector: "asw-radio-button", inputs: ["control", "propertyPersonalization", "isPreviewTemplate", "CSSFramework", "formControls"], outputs: ["radioButtonUpdateEvent", "radioButtonDeleteEvent", "selectionChange", "duplicateControl"] }, { kind: "component", type: i18.AswQrCode, selector: "asw-qrcode", inputs: ["control", "CSSFramework", "isPreviewTemplate"], outputs: ["qrCodeUpdateEvent", "qrCodeDeleteEvent", "duplicateControl"] }, { kind: "component", type: i19.AswNumber, selector: "asw-number", inputs: ["control", "formControls", "CSSFramework", "isPreviewTemplate", "propertyPersonalization", "patterns"], outputs: ["numberUpdateEvent", "numberDeleteEvent", "aswModelChange", "duplicateControl"] }, { kind: "component", type: i20.AswCalculation, selector: "asw-calculation", inputs: ["control", "formControls", "CSSFramework", "isPreviewTemplate", "propertyPersonalization"], outputs: ["calculationUpdateEvent", "calculationDeleteEvent", "aswModelChange", "duplicateControl"] }, { kind: "component", type: i21.AswFileUpload, selector: "asw-fileupload", inputs: ["control", "CSSFramework", "isPreviewTemplate", "propertyPersonalization"], outputs: ["fileUploadUpdateEvent", "fileUploadDeleteEvent", "onfileUploadChange", "duplicateControl"] }, { kind: "component", type: i22.AswTags, selector: "asw-tags", inputs: ["control", "propertyPersonalization", "isPreviewTemplate", "CSSFramework", "patterns"], outputs: ["tagsUpdateEvent", "tagsDeleteEvent", "selectionChange", "duplicateControl"] }] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AswDragDrop, decorators: [{ type: Component, args: [{ selector: 'asw-drag-drop', template: "<ng-container *ngIf=\"control as control\">\r\n <ng-container [ngSwitch]=\"control.controlType\">\r\n <ng-container *ngSwitchCase=\"'autocomplete'\">\r\n <asw-autocomplete [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [formControls]=\"formContainer\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (autocompleteUpdateEvent)=\"updatedControl($event)\"\r\n (autocompleteDeleteEvent)=\"deleteControl($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-autocomplete>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'tags'\">\r\n <asw-tags [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [patterns]=\"patterns\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (tagsUpdateEvent)=\"updatedControl($event)\"\r\n (tagsDeleteEvent)=\"deleteControl($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-tags>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'header'\">\r\n <asw-header [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (headerUpdateEvent)=\"updatedControl($event)\"\r\n (headerDeleteEvent)=\"deleteControl($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-header>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'qr-code'\">\r\n <asw-qrcode [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n (qrCodeUpdateEvent)=\"updatedControl($event)\"\r\n (qrCodeDeleteEvent)=\"deleteControl($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-qrcode>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'image'\">\r\n <asw-image [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n (imageUpdateEvent)=\"updatedControl($event)\"\r\n (imageDeleteEvent)=\"deleteControl($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-image>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textfield'\">\r\n <asw-textfield [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [patterns]=\"patterns\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (textFieldUpdateEvent)=\"updatedControl($event)\"\r\n (textFieldDeleteEvent)=\"deleteControl($event)\"\r\n (aswModelChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-textfield>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'email'\">\r\n <asw-textfield [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [patterns]=\"patterns\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (textFieldUpdateEvent)=\"updatedControl($event)\"\r\n (textFieldDeleteEvent)=\"deleteControl($event)\"\r\n (aswModelChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-textfield>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'url'\">\r\n <asw-textfield [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [patterns]=\"patterns\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (textFieldUpdateEvent)=\"updatedControl($event)\"\r\n (textFieldDeleteEvent)=\"deleteControl($event)\"\r\n (aswModelChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-textfield>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <asw-number [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [patterns]=\"patterns\"\r\n [formControls]=\"formContainer\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (numberUpdateEvent)=\"updatedControl($event)\"\r\n (numberDeleteEvent)=\"deleteControl($event)\"\r\n (aswModelChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-number>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'phone-number'\">\r\n <asw-textfield [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [patterns]=\"patterns\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (textFieldUpdateEvent)=\"updatedControl($event)\"\r\n (textFieldDeleteEvent)=\"deleteControl($event)\"\r\n (aswModelChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-textfield>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textarea'\">\r\n <asw-textfield [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [patterns]=\"patterns\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (textFieldUpdateEvent)=\"updatedControl($event)\"\r\n (textFieldDeleteEvent)=\"deleteControl($event)\"\r\n (aswModelChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-textfield>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <asw-number [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [patterns]=\"patterns\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [formControls]=\"formContainer\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (numberUpdateEvent)=\"updatedControl($event)\"\r\n (numberDeleteEvent)=\"deleteControl($event)\"\r\n (aswModelChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-number>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'calculation'\">\r\n <asw-calculation [control]=\"control\"\r\n [formControls]=\"formContainer\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [isPreviewTemplate]=\"true\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (calculationUpdateEvent)=\"updatedControl($event)\"\r\n (calculationDeleteEvent)=\"deleteControl($event)\"\r\n (aswModelChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-calculation>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'select'\">\r\n <asw-select [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [formControls]=\"formContainer\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (selectUpdateEvent)=\"updatedControl($event)\"\r\n (selectDeleteEvent)=\"deleteControl($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-select>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'multi-select'\">\r\n <asw-multi-select [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [formControls]=\"formContainer\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (multiSelectUpdateEvent)=\"updatedControl($event)\"\r\n (multiSelectDeleteEvent)=\"deleteControl($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-multi-select>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'radio'\">\r\n <asw-radio-button [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [formControls]=\"formContainer\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (radioButtonUpdateEvent)=\"updatedControl($event)\"\r\n (radioButtonDeleteEvent)=\"deleteControl($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-radio-button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <asw-checkbox [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [formControls]=\"formContainer\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (checkboxUpdateEvent)=\"updatedControl($event)\"\r\n (checkboxDeleteEvent)=\"deleteControl($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'datepicker'\">\r\n <asw-datepicker [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (datepickerUpdateEvent)=\"updatedControl($event)\"\r\n (datepickerDeleteEvent)=\"deleteControl($event)\"\r\n (dateChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-datepicker>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'daterange'\">\r\n <asw-datepicker [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (datepickerUpdateEvent)=\"updatedControl($event)\"\r\n (datepickerDeleteEvent)=\"deleteControl($event)\"\r\n (dateChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-datepicker>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'button'\">\r\n <asw-button [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (buttonUpdateEvent)=\"updatedControl($event)\"\r\n (buttonDeleteEvent)=\"deleteControl($event)\"\r\n (buttonClickEvent)=\"buttonClicked($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-button> \r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'paragraph'\">\r\n <asw-paragraph [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n (paragraphUpdateEvent)=\"updatedControl($event)\"\r\n (paragraphDeleteEvent)=\"deleteControl($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-paragraph>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'divider'\">\r\n <asw-divider [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n (dividerDeleteEvent)=\"deleteControl($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-divider>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'slide-toggle'\">\r\n <asw-slide-toggle [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (slidetoggleUpdateEvent)=\"updatedControl($event)\"\r\n (slidetoggleDeleteEvent)=\"deleteControl($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-slide-toggle>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'gps'\">\r\n <asw-gps [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (gpsUpdateEvent)=\"updatedControl($event)\"\r\n (gpsDeleteEvent)=\"deleteControl($event)\"\r\n (gpsAddressChange)=\"onSelectionChange($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-gps>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'signature'\">\r\n <asw-signature [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n (signatureUpdateEvent)=\"updatedControl($event)\"\r\n (signatureDeleteEvent)=\"deleteControl($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-signature>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'drawing'\">\r\n <asw-drawing [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n (drawingUpdateEvent)=\"updatedControl($event)\"\r\n (drawingDeleteEvent)=\"deleteControl($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-drawing>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'fileupload'\">\r\n <asw-fileupload [control]=\"control\"\r\n [isPreviewTemplate]=\"true\"\r\n [CSSFramework]=\"CSSFramework\"\r\n [propertyPersonalization]=\"propertyPersonalization\"\r\n (fileUploadUpdateEvent)=\"updatedControl($event)\"\r\n (fileUploadDeleteEvent)=\"deleteControl($event)\"\r\n (duplicateControl)=\"duplicateControl($event)\">\r\n </asw-fileupload>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>\r\n" }] }], propDecorators: { control: [{ type: Input }], formContainer: [{ type: Input }], CSSFramework: [{ type: Input }], propertyPersonalization: [{ type: Input }], patterns: [{ type: Input }], controlUpdated: [{ type: Output }], controlDeleted: [{ type: Output }], controlDuplicate: [{ type: Output }], controlChange: [{ type: Output }], buttonClick: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZm9ybS1idWlsZGVyL2RyYWctZHJvcC9kcmFnLWRyb3AudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9mb3JtLWJ1aWxkZXIvZHJhZy1kcm9wL2RyYWctZHJvcC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFpQixnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNdkYsTUFBTSxPQUFPLFdBQVc7SUFDWCxPQUFPLENBQU07SUFDYixhQUFhLEdBQVUsRUFBRSxDQUFDO0lBQzFCLFlBQVksR0FBcUIsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO0lBQzNELHVCQUF1QixHQUFhLEVBQUUsQ0FBQztJQUN2QyxRQUFRLEdBQW9CLEVBQUUsQ0FBQztJQUM5QixjQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUN6QyxjQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUM1QyxnQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQzNDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ3hDLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRW5ELGNBQWMsQ0FBQyxPQUFZO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxhQUFhLENBQUMsT0FBWTtRQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBWTtRQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxPQUFZO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBWTtRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO3VHQTlCUSxXQUFXOzJGQUFYLFdBQVcsZ1pDZnhCLDZ4ZkE0U0E7OzJGRDdSYSxXQUFXO2tCQUp2QixTQUFTOytCQUNJLGVBQWU7OEJBSWhCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQVNXIChBIFNvZnR3YXJlIFdvcmxkKSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xPcHRpb24sIENTU0ZyYW1ld29ya0VudW0gfSBmcm9tICdAYXNvZnR3YXJld29ybGQvZm9ybS1idWlsZGVyLXByby9hcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2Fzdy1kcmFnLWRyb3AnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kcmFnLWRyb3AuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQXN3RHJhZ0Ryb3Age1xuICAgIEBJbnB1dCgpIGNvbnRyb2w6IGFueTtcbiAgICBASW5wdXQoKSBmb3JtQ29udGFpbmVyOiBhbnlbXSA9IFtdO1xuICAgIEBJbnB1dCgpIENTU0ZyYW1ld29yazogQ1NTRnJhbWV3b3JrRW51bSA9IENTU0ZyYW1ld29ya0VudW0uTWF0ZXJpYWw7XG4gICAgQElucHV0KCkgcHJvcGVydHlQZXJzb25hbGl6YXRpb246IHN0cmluZ1tdID0gW107XG4gICAgQElucHV0KCkgcGF0dGVybnM6IENvbnRyb2xPcHRpb25bXSA9IFtdO1xuICAgIEBPdXRwdXQoKSBjb250cm9sVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBjb250cm9sRGVsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAgIEBPdXRwdXQoKSBjb250cm9sRHVwbGljYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIGNvbnRyb2xDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIHVwZGF0ZWRDb250cm9sKGNvbnRyb2w6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRyb2xVcGRhdGVkLmVtaXQoY29udHJvbCk7XG4gICAgfVxuXG4gICAgZGVsZXRlQ29udHJvbChjb250cm9sOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250cm9sRGVsZXRlZC5lbWl0KGNvbnRyb2wpO1xuICAgIH1cblxuICAgIGR1cGxpY2F0ZUNvbnRyb2woY29udHJvbDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udHJvbER1cGxpY2F0ZS5lbWl0KGNvbnRyb2wpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0aW9uQ2hhbmdlKGNvbnRyb2w6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRyb2xDaGFuZ2UuZW1pdChjb250cm9sKTtcbiAgICB9XG5cbiAgICBidXR0b25DbGlja2VkKHR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQodHlwZSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRyb2wgYXMgY29udHJvbFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiY29udHJvbC5jb250cm9sVHlwZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidhdXRvY29tcGxldGUnXCI+XHJcbiAgICAgICAgICAgIDxhc3ctYXV0b2NvbXBsZXRlIFtjb250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgW2lzUHJldmlld1RlbXBsYXRlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW0NTU0ZyYW1ld29ya109XCJDU1NGcmFtZXdvcmtcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sc109XCJmb3JtQ29udGFpbmVyXCJcclxuICAgICAgICAgICAgICAgIFtwcm9wZXJ0eVBlcnNvbmFsaXphdGlvbl09XCJwcm9wZXJ0eVBlcnNvbmFsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAoYXV0b2NvbXBsZXRlVXBkYXRlRXZlbnQpPVwidXBkYXRlZENvbnRyb2woJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoYXV0b2NvbXBsZXRlRGVsZXRlRXZlbnQpPVwiZGVsZXRlQ29udHJvbCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoZHVwbGljYXRlQ29udHJvbCk9XCJkdXBsaWNhdGVDb250cm9sKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9hc3ctYXV0b2NvbXBsZXRlPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0YWdzJ1wiPlxyXG4gICAgICAgICAgICA8YXN3LXRhZ3MgW2NvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbaXNQcmV2aWV3VGVtcGxhdGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbQ1NTRnJhbWV3b3JrXT1cIkNTU0ZyYW1ld29ya1wiXHJcbiAgICAgICAgICAgICAgICBbcGF0dGVybnNdPVwicGF0dGVybnNcIlxyXG4gICAgICAgICAgICAgICAgW3Byb3BlcnR5UGVyc29uYWxpemF0aW9uXT1cInByb3BlcnR5UGVyc29uYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICh0YWdzVXBkYXRlRXZlbnQpPVwidXBkYXRlZENvbnRyb2woJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAodGFnc0RlbGV0ZUV2ZW50KT1cImRlbGV0ZUNvbnRyb2woJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKGR1cGxpY2F0ZUNvbnRyb2wpPVwiZHVwbGljYXRlQ29udHJvbCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDwvYXN3LXRhZ3M+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2hlYWRlcidcIj5cclxuICAgICAgICAgICAgPGFzdy1oZWFkZXIgW2NvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbaXNQcmV2aWV3VGVtcGxhdGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbQ1NTRnJhbWV3b3JrXT1cIkNTU0ZyYW1ld29ya1wiXHJcbiAgICAgICAgICAgICAgICBbcHJvcGVydHlQZXJzb25hbGl6YXRpb25dPVwicHJvcGVydHlQZXJzb25hbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgKGhlYWRlclVwZGF0ZUV2ZW50KT1cInVwZGF0ZWRDb250cm9sKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKGhlYWRlckRlbGV0ZUV2ZW50KT1cImRlbGV0ZUNvbnRyb2woJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoZHVwbGljYXRlQ29udHJvbCk9XCJkdXBsaWNhdGVDb250cm9sKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9hc3ctaGVhZGVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidxci1jb2RlJ1wiPlxyXG4gICAgICAgICAgICA8YXN3LXFyY29kZSBbY29udHJvbF09XCJjb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFtpc1ByZXZpZXdUZW1wbGF0ZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtDU1NGcmFtZXdvcmtdPVwiQ1NTRnJhbWV3b3JrXCJcclxuICAgICAgICAgICAgICAgIChxckNvZGVVcGRhdGVFdmVudCk9XCJ1cGRhdGVkQ29udHJvbCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChxckNvZGVEZWxldGVFdmVudCk9XCJkZWxldGVDb250cm9sKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKGR1cGxpY2F0ZUNvbnRyb2wpPVwiZHVwbGljYXRlQ29udHJvbCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDwvYXN3LXFyY29kZT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW1hZ2UnXCI+XHJcbiAgICAgICAgICAgIDxhc3ctaW1hZ2UgW2NvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbaXNQcmV2aWV3VGVtcGxhdGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbQ1NTRnJhbWV3b3JrXT1cIkNTU0ZyYW1ld29ya1wiXHJcbiAgICAgICAgICAgICAgICAoaW1hZ2VVcGRhdGVFdmVudCk9XCJ1cGRhdGVkQ29udHJvbCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChpbWFnZURlbGV0ZUV2ZW50KT1cImRlbGV0ZUNvbnRyb2woJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoZHVwbGljYXRlQ29udHJvbCk9XCJkdXBsaWNhdGVDb250cm9sKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9hc3ctaW1hZ2U+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RleHRmaWVsZCdcIj5cclxuICAgICAgICAgICAgPGFzdy10ZXh0ZmllbGQgW2NvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgICAgICA