@sd-angular/core 0.0.1001 → 0.0.1005

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.
Files changed (118) hide show
  1. package/autocomplete/sd-angular-core-autocomplete.metadata.json +1 -1
  2. package/autocomplete/src/lib/autocomplete.component.d.ts +2 -1
  3. package/bundles/sd-angular-core-autocomplete.umd.js +16 -7
  4. package/bundles/sd-angular-core-autocomplete.umd.js.map +1 -1
  5. package/bundles/sd-angular-core-autocomplete.umd.min.js +2 -2
  6. package/bundles/sd-angular-core-autocomplete.umd.min.js.map +1 -1
  7. package/bundles/sd-angular-core-common.umd.js +334 -0
  8. package/bundles/sd-angular-core-common.umd.js.map +1 -0
  9. package/bundles/sd-angular-core-common.umd.min.js +16 -0
  10. package/bundles/sd-angular-core-common.umd.min.js.map +1 -0
  11. package/bundles/sd-angular-core-date-time.umd.js +14 -8
  12. package/bundles/sd-angular-core-date-time.umd.js.map +1 -1
  13. package/bundles/sd-angular-core-date-time.umd.min.js +2 -2
  14. package/bundles/sd-angular-core-date-time.umd.min.js.map +1 -1
  15. package/bundles/sd-angular-core-grid-material.umd.js +80 -39
  16. package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
  17. package/bundles/sd-angular-core-grid-material.umd.min.js +2 -2
  18. package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
  19. package/bundles/sd-angular-core-input-currency.umd.js +10 -6
  20. package/bundles/sd-angular-core-input-currency.umd.js.map +1 -1
  21. package/bundles/sd-angular-core-input-currency.umd.min.js +2 -2
  22. package/bundles/sd-angular-core-input-currency.umd.min.js.map +1 -1
  23. package/bundles/sd-angular-core-input.umd.js +34 -9
  24. package/bundles/sd-angular-core-input.umd.js.map +1 -1
  25. package/bundles/sd-angular-core-input.umd.min.js +2 -2
  26. package/bundles/sd-angular-core-input.umd.min.js.map +1 -1
  27. package/bundles/sd-angular-core-quick-action.umd.js +1 -1
  28. package/bundles/sd-angular-core-quick-action.umd.min.js +1 -1
  29. package/bundles/sd-angular-core-quick-action.umd.min.js.map +1 -1
  30. package/bundles/sd-angular-core-select-editor.umd.js +14 -8
  31. package/bundles/sd-angular-core-select-editor.umd.js.map +1 -1
  32. package/bundles/sd-angular-core-select-editor.umd.min.js +2 -2
  33. package/bundles/sd-angular-core-select-editor.umd.min.js.map +1 -1
  34. package/bundles/sd-angular-core-select.umd.js +16 -9
  35. package/bundles/sd-angular-core-select.umd.js.map +1 -1
  36. package/bundles/sd-angular-core-select.umd.min.js +2 -2
  37. package/bundles/sd-angular-core-select.umd.min.js.map +1 -1
  38. package/bundles/sd-angular-core-textarea.umd.js +10 -6
  39. package/bundles/sd-angular-core-textarea.umd.js.map +1 -1
  40. package/bundles/sd-angular-core-textarea.umd.min.js +2 -2
  41. package/bundles/sd-angular-core-textarea.umd.min.js.map +1 -1
  42. package/bundles/sd-angular-core.umd.js +4 -4
  43. package/bundles/sd-angular-core.umd.js.map +1 -1
  44. package/bundles/sd-angular-core.umd.min.js +1 -1
  45. package/bundles/sd-angular-core.umd.min.js.map +1 -1
  46. package/common/index.d.ts +1 -0
  47. package/common/package.json +12 -0
  48. package/common/sd-angular-core-common.d.ts +4 -0
  49. package/common/sd-angular-core-common.metadata.json +1 -0
  50. package/common/src/lib/models/sd-form-control.d.ts +9 -0
  51. package/common/src/public-api.d.ts +1 -0
  52. package/date-time/sd-angular-core-date-time.metadata.json +1 -1
  53. package/date-time/src/lib/date-time.component.d.ts +3 -2
  54. package/esm2015/autocomplete/src/lib/autocomplete.component.js +12 -3
  55. package/esm2015/common/index.js +2 -0
  56. package/esm2015/common/sd-angular-core-common.js +5 -0
  57. package/esm2015/common/src/lib/models/sd-form-control.js +13 -0
  58. package/esm2015/common/src/public-api.js +2 -0
  59. package/esm2015/date-time/src/lib/date-time.component.js +12 -5
  60. package/esm2015/grid-material/sd-angular-core-grid-material.js +36 -35
  61. package/esm2015/grid-material/src/lib/components/quick-action/quick-action.component.js +24 -0
  62. package/esm2015/grid-material/src/lib/grid-material.component.js +13 -3
  63. package/esm2015/grid-material/src/lib/grid-material.module.js +3 -1
  64. package/esm2015/grid-material/src/lib/models/grid.model.js +1 -1
  65. package/esm2015/grid-material/src/lib/pipes/selection-disable.pipe.js +4 -2
  66. package/esm2015/grid-material/src/lib/pipes/selection-visible.pipe.js +5 -3
  67. package/esm2015/input/sd-angular-core-input.js +2 -1
  68. package/esm2015/input/src/lib/directives/touch.directive.js +19 -0
  69. package/esm2015/input/src/lib/input.component.js +7 -4
  70. package/esm2015/input/src/lib/input.module.js +4 -2
  71. package/esm2015/input-currency/src/lib/input-currency.component.js +7 -3
  72. package/esm2015/public-api.js +2 -1
  73. package/esm2015/quick-action/src/lib/quick-action.component.js +1 -1
  74. package/esm2015/select/src/lib/select.component.js +16 -8
  75. package/esm2015/select-editor/src/lib/select-editor.component.js +12 -6
  76. package/esm2015/textarea/src/lib/textarea.component.js +7 -3
  77. package/fesm2015/sd-angular-core-autocomplete.js +11 -2
  78. package/fesm2015/sd-angular-core-autocomplete.js.map +1 -1
  79. package/fesm2015/sd-angular-core-common.js +20 -0
  80. package/fesm2015/sd-angular-core-common.js.map +1 -0
  81. package/fesm2015/sd-angular-core-date-time.js +11 -4
  82. package/fesm2015/sd-angular-core-date-time.js.map +1 -1
  83. package/fesm2015/sd-angular-core-grid-material.js +44 -6
  84. package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
  85. package/fesm2015/sd-angular-core-input-currency.js +6 -2
  86. package/fesm2015/sd-angular-core-input-currency.js.map +1 -1
  87. package/fesm2015/sd-angular-core-input.js +27 -5
  88. package/fesm2015/sd-angular-core-input.js.map +1 -1
  89. package/fesm2015/sd-angular-core-quick-action.js +1 -1
  90. package/fesm2015/sd-angular-core-select-editor.js +11 -5
  91. package/fesm2015/sd-angular-core-select-editor.js.map +1 -1
  92. package/fesm2015/sd-angular-core-select.js +15 -7
  93. package/fesm2015/sd-angular-core-select.js.map +1 -1
  94. package/fesm2015/sd-angular-core-textarea.js +6 -2
  95. package/fesm2015/sd-angular-core-textarea.js.map +1 -1
  96. package/fesm2015/sd-angular-core.js +1 -0
  97. package/fesm2015/sd-angular-core.js.map +1 -1
  98. package/grid-material/sd-angular-core-grid-material.d.ts +35 -34
  99. package/grid-material/sd-angular-core-grid-material.metadata.json +1 -1
  100. package/grid-material/src/lib/components/quick-action/quick-action.component.d.ts +9 -0
  101. package/grid-material/src/lib/grid-material.component.d.ts +1 -0
  102. package/grid-material/src/lib/models/grid.model.d.ts +1 -0
  103. package/input/sd-angular-core-input.d.ts +1 -0
  104. package/input/sd-angular-core-input.metadata.json +1 -1
  105. package/input/src/lib/directives/touch.directive.d.ts +6 -0
  106. package/input/src/lib/input.component.d.ts +4 -3
  107. package/input-currency/sd-angular-core-input-currency.metadata.json +1 -1
  108. package/input-currency/src/lib/input-currency.component.d.ts +3 -2
  109. package/package.json +1 -1
  110. package/public-api.d.ts +1 -0
  111. package/quick-action/sd-angular-core-quick-action.metadata.json +1 -1
  112. package/{sd-angular-core-0.0.1001.tgz → sd-angular-core-0.0.1005.tgz} +0 -0
  113. package/select/sd-angular-core-select.metadata.json +1 -1
  114. package/select/src/lib/select.component.d.ts +6 -4
  115. package/select-editor/sd-angular-core-select-editor.metadata.json +1 -1
  116. package/select-editor/src/lib/select-editor.component.d.ts +3 -2
  117. package/textarea/sd-angular-core-textarea.metadata.json +1 -1
  118. package/textarea/src/lib/textarea.component.d.ts +3 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../projects/sd-core/src/lib/material.module.ts","../../../../projects/sd-core/src/lib/pipes/sd-date.pipe.ts","../../../../projects/sd-core/src/lib/controls/date-picker-control/date-picker-control.component.ts","../../../../projects/sd-core/src/lib/controls/ckeditor-control/ckeditor-control.component.ts","../../../../projects/sd-core/src/lib/validators/min-date.validator.ts","../../../../projects/sd-core/src/lib/validators/max-date.validator.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/src/lib/validators/custom.validator.ts","../../../../projects/sd-core/src/lib/validators/chip-min-item.validator.ts","../../../../projects/sd-core/src/lib/core.module.ts"],"names":["NgModule","args","imports","MatTooltipModule","MatFormFieldModule","MatInputModule","MatSelectModule","MatAutocompleteModule","MatCheckboxModule","MatSlideToggleModule","MatRadioModule","MatIconModule","MatMenuModule","MatChipsModule","MatButtonModule","MatDialogModule","MatBottomSheetModule","MatProgressSpinnerModule","DragDropModule","MatExpansionModule","MatTabsModule","MatPaginatorModule","exports","SdDatePipe","prototype","transform","value","format","Date","isDate","toFormat","Pipe","name","DatePickerControlComponent","ref","deviceService","_this","this","isMobileOrTablet","initialized","pMinDate","pMaxDate","uuid.v4","type","disabled","required","sdChange","EventEmitter","modelChange","onFocus","$","control","nativeElement","trigger","onChanges","date","pDate","isDesktop","Object","defineProperty","setOption","val","detectChanges","ngOnDestroy","_a","form","removeControl","formModel","ngAfterViewInit","addControl","datetimepicker","datepicker","timepicker","step","minDate","undefined","maxDate","scrollMonth","scrollTime","scrollInput","onChangeDateTime","equal","model","parse","emit","parseFrom","date1","date2","Component","selector","template","encapsulation","ViewEncapsulation","None","ChangeDetectorRef","DeviceDetectorService","Input","Output","ViewChild","CkeditorControlComponent","sanitizer","change","editorUrl","cModel","cConfig","ngOnInit","onChange","DomSanitizer","SdMinDateValidator","validate","c","getTime","Directive","providers","provide","NG_VALIDATORS","useExisting","multi","SdMaxDateValidator","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","TypeError","call","pop","length","push","create","SdCustomValidator","func","message","customValidator","NG_ASYNC_VALIDATORS","SdChipMinItemValidator","minItem","CommonModule","FormsModule","ReactiveFormsModule","HttpClientModule","MaterialModule","CKEditorModule","DeviceDetectorModule","forRoot","SdChartModule","SdKonvaModule","SdGridMaterialModule","SdUploadExcelModule","SdGridModule","SdFormModule","SdServiceModule","declarations","SdEditorModule","DatePipe","DecimalPipe"],"mappings":"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","sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\n\r\n@NgModule({\r\n imports: [\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatRadioModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatChipsModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatBottomSheetModule,\r\n MatProgressSpinnerModule,\r\n DragDropModule,\r\n MatExpansionModule,\r\n MatTabsModule,\r\n MatPaginatorModule\r\n ],\r\n exports: [\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatRadioModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatChipsModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatBottomSheetModule,\r\n MatProgressSpinnerModule,\r\n DragDropModule,\r\n MatExpansionModule,\r\n MatTabsModule,\r\n MatPaginatorModule\r\n ]\r\n})\r\nexport class MaterialModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport '@sd-angular/core/typing';\r\n@Pipe({\r\n name: 'sdDate'\r\n})\r\nexport class SdDatePipe implements PipeTransform {\r\n transform(value: any, format: string): string {\r\n if (!Date.isDate(value)) {\r\n return value;\r\n }\r\n return Date.toFormat(value, format);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewChild,\r\n ElementRef,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n OnDestroy,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport * as uuid from 'uuid';\r\n\r\nimport $ from 'jquery';\r\nimport 'jquery-datetimepicker';\r\nimport { NgForm, NgModel } from '@angular/forms';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport '@sd-angular/core/typing';\r\n// Document: https://xdsoft.net/jqplugins/datetimepicker/\r\n\r\n@Component({\r\n selector: 'sd-date-picker-control',\r\n templateUrl: './date-picker-control.component.html',\r\n styleUrls: ['./date-picker-control.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DatePickerControlComponent implements OnDestroy, AfterViewInit {\r\n private isMobileOrTablet = false;\r\n private initialized = false;\r\n private pDate: any;\r\n pMinDate: any = null;\r\n pMaxDate: any = null;\r\n name = uuid.v4();\r\n @Input() form: NgForm;\r\n @Input() type: 'datetime' | 'date' | 'time' = 'datetime';\r\n @Input() disabled = false;\r\n @Input() required = false;\r\n @Input() label: string;\r\n @Input() placeholder: string;\r\n\r\n @Input() set minDate(date: string | Date | number) {\r\n if (!Date.isDate(date)) {\r\n this.pMinDate = null;\r\n } else {\r\n this.pMinDate = Date.toFormat(date, 'yyyy/MM/dd HH:mm');\r\n }\r\n this.setOption();\r\n }\r\n @Input() set maxDate(date: string | Date | number) {\r\n if (!Date.isDate(date)) {\r\n this.pMaxDate = null;\r\n } else {\r\n this.pMaxDate = Date.toFormat(date, 'yyyy/MM/dd HH:mm'); // this.datePipe.transform(date, 'yyyy/MM/dd HH:mm');\r\n }\r\n this.setOption();\r\n }\r\n @Input() validator: (value: any) => string | Promise<string>;\r\n @Output() sdChange = new EventEmitter();\r\n date: string;\r\n\r\n @Input() set model(val: any) {\r\n if (!Date.isDate(val)) {\r\n this.pDate = null;\r\n } else {\r\n if (this.type === 'datetime') {\r\n this.pDate = Date.toFormat(val, 'dd/MM/yyyy HH:mm');\r\n } else if (this.type === 'date') {\r\n this.pDate = Date.toFormat(val, 'dd/MM/yyyy');\r\n } else {\r\n this.pDate = Date.toFormat(val, 'HH:mm');\r\n }\r\n }\r\n if (this.initialized) {\r\n this.onChanges();\r\n }\r\n this.ref.detectChanges();\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n\r\n @ViewChild('control') control: ElementRef;\r\n @ViewChild('formModel') formModel: NgModel;\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n deviceService: DeviceDetectorService) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.form?.removeControl(this.formModel);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.form?.addControl(this.formModel);\r\n this.onChanges();\r\n this.initialized = true;\r\n this.setOption();\r\n this.ref.detectChanges();\r\n }\r\n\r\n onFocus = () => {\r\n if (this.isMobileOrTablet) {\r\n $(this.control.nativeElement).trigger('blur');\r\n }\r\n }\r\n\r\n private onChanges = () => {\r\n this.date = this.pDate;\r\n }\r\n\r\n private setOption() {\r\n if (this.initialized) {\r\n ($(this.control.nativeElement) as any).datetimepicker({\r\n datepicker: this.type === 'datetime' || this.type === 'date',\r\n timepicker: this.type === 'datetime' || this.type === 'time',\r\n format: this.type === 'datetime' ? 'd/m/Y H:i' : (this.type === 'date' ? 'd/m/Y' : 'H:i'),\r\n step: 15,\r\n minDate: this.pMinDate || undefined,\r\n maxDate: this.pMaxDate || undefined,\r\n scrollMonth: false,\r\n scrollTime: false,\r\n scrollInput: false,\r\n onChangeDateTime: (date: any) => {\r\n if (!date && !this.date) {\r\n return;\r\n }\r\n if (this.type === 'datetime') {\r\n date = Date.toFormat(date, 'dd/MM/yyyy HH:mm');\r\n } else if (this.type === 'time') {\r\n date = Date.toFormat(date, 'HH:mm');\r\n } else {\r\n date = Date.toFormat(date, 'dd/MM/yyyy');\r\n }\r\n if (!this.equal(date, this.date)) {\r\n this.model = this.parse(date);\r\n this.modelChange.emit(this.parse(date));\r\n this.sdChange.emit(this.parse(date));\r\n }\r\n this.ref.detectChanges();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private parse(date: any) {\r\n if (this.type === 'date') {\r\n return Date.parseFrom(date, 'dd/MM/yyyy');\r\n } else if (this.type === 'time') {\r\n return Date.parseFrom(date, 'HH:mm');\r\n }\r\n return Date.parseFrom(date, 'dd/MM/yyyy HH:mm');\r\n }\r\n private equal(date1: any, date2: any) {\r\n return Date.equal(this.parse(date1), this.parse(date2));\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ChangeDetectorRef,\r\n EventEmitter,\r\n Output,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'sd-ckeditor-control',\r\n templateUrl: './ckeditor-control.component.html',\r\n styleUrls: [\r\n './ckeditor-control.component.css',\r\n ],\r\n})\r\nexport class CkeditorControlComponent implements OnInit {\r\n @Input() label: string;\r\n @Input() disabled = false;\r\n @Input() required = false;\r\n @Input() set model(value: string) {\r\n this.cModel = value;\r\n this.ref.detectChanges();\r\n }\r\n @Input() set config(value: any) {\r\n this.cConfig = value;\r\n this.ref.detectChanges();\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n // tslint:disable-next-line: no-output-native\r\n @Output() change = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n cModel: string;\r\n cConfig: any;\r\n editorUrl = '../../assets/ckeditor/ckeditor.js';\r\n\r\n constructor(private ref: ChangeDetectorRef, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onChange(value: any) {\r\n this.model = value;\r\n this.modelChange.emit(value);\r\n this.change.emit(value);\r\n this.sdChange.emit(value);\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, ValidationErrors, AbstractControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdMinDate]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdMinDateValidator, multi: true }]\r\n})\r\nexport class SdMinDateValidator implements Validator {\r\n @Input('sdMinDate') minDate: string | Date;\r\n validate(c: AbstractControl): ValidationErrors {\r\n const date = c.value || null;\r\n const minDate = this.minDate || null;\r\n if (!date) {\r\n return null;\r\n }\r\n if (!minDate) {\r\n return null;\r\n }\r\n if (new Date(Date.parseFrom(date, 'dd/MM/yyyy HH:mm')).getTime() < new Date(minDate).getTime()) {\r\n return {\r\n minDate: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, ValidationErrors, AbstractControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdMaxDate]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdMaxDateValidator, multi: true }]\r\n})\r\nexport class SdMaxDateValidator implements Validator {\r\n @Input('sdMaxDate') maxDate: string | Date;\r\n validate(c: AbstractControl): ValidationErrors {\r\n const date = c.value || null;\r\n const maxDate = this.maxDate || null;\r\n if (!date) {\r\n return null;\r\n }\r\n if (!maxDate) {\r\n return null;\r\n }\r\n if (new Date(Date.parseFrom(date, 'dd/MM/yyyy HH:mm')).getTime() > new Date(maxDate).getTime()) {\r\n return {\r\n maxDate: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { ValidationErrors, AbstractControl, AsyncValidator, NG_ASYNC_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdCustomValidator]',\r\n providers: [{ provide: NG_ASYNC_VALIDATORS, useExisting: SdCustomValidator, multi: true }]\r\n})\r\nexport class SdCustomValidator implements AsyncValidator {\r\n @Input('sdCustomValidator') func: (value: any) => string | Promise<string>;\r\n async validate(c: AbstractControl): Promise<ValidationErrors> {\r\n const value = c.value || null;\r\n if (this.func && typeof (this.func) === 'function') {\r\n const result = this.func(value);\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n return {\r\n customValidator: message\r\n };\r\n }\r\n return null;\r\n }\r\n if (result) {\r\n return {\r\n customValidator: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { ValidationErrors, AbstractControl, Validator, NG_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdChipMinItem]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdChipMinItemValidator, multi: true }]\r\n})\r\nexport class SdChipMinItemValidator implements Validator {\r\n @Input('sdChipMinItem') func: () => string;\r\n validate(c: AbstractControl): ValidationErrors {\r\n if (this.func && typeof (this.func) === 'function') {\r\n const result = this.func();\r\n if (result) {\r\n return {\r\n minItem: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe, DecimalPipe } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CKEditorModule } from 'ckeditor4-angular';\r\nimport { MaterialModule } from './material.module';\r\nimport { DeviceDetectorModule } from 'ngx-device-detector';\r\n\r\nimport { SdDatePipe } from './pipes/sd-date.pipe';\r\nimport { SdServiceModule } from '@sd-angular/core/service';\r\nimport { SdChartModule } from '@sd-angular/core/chart';\r\nimport { SdGridMaterialModule } from '@sd-angular/core/grid-material';\r\nimport { SdEditorModule } from '@sd-angular/core/editor';\r\nimport { SdKonvaModule } from '@sd-angular/core/konva';\r\nimport { DatePickerControlComponent } from './controls/date-picker-control/date-picker-control.component';\r\nimport { CkeditorControlComponent } from './controls/ckeditor-control/ckeditor-control.component';\r\nimport { SdMinDateValidator } from './validators/min-date.validator';\r\nimport { SdMaxDateValidator } from './validators/max-date.validator';\r\nimport { SdCustomValidator } from './validators/custom.validator';\r\nimport { SdChipMinItemValidator } from './validators/chip-min-item.validator';\r\nimport { SdUploadExcelModule } from '@sd-angular/core/upload-excel';\r\nimport { SdGridModule } from '@sd-angular/core/grid';\r\nimport { SdFormModule } from '@sd-angular/core/form';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n MaterialModule,\r\n CKEditorModule,\r\n DeviceDetectorModule.forRoot(),\r\n SdChartModule,\r\n SdKonvaModule,\r\n SdGridMaterialModule,\r\n SdUploadExcelModule,\r\n SdGridModule,\r\n SdFormModule,\r\n SdServiceModule\r\n ],\r\n declarations: [\r\n DatePickerControlComponent,\r\n CkeditorControlComponent,\r\n // // Pipes\r\n SdDatePipe,\r\n // Validators\r\n SdMinDateValidator,\r\n SdMaxDateValidator,\r\n SdCustomValidator,\r\n SdChipMinItemValidator\r\n ],\r\n exports: [\r\n SdChartModule,\r\n SdKonvaModule,\r\n SdGridMaterialModule,\r\n SdEditorModule,\r\n SdUploadExcelModule,\r\n SdGridModule,\r\n SdFormModule,\r\n SdServiceModule,\r\n MaterialModule,\r\n // Controls\r\n DatePickerControlComponent,\r\n CkeditorControlComponent\r\n ],\r\n providers: [\r\n DatePipe,\r\n DecimalPipe\r\n ]\r\n})\r\nexport class SdCoreModule { }\r\n"]}
1
+ {"version":3,"sources":["../../../../projects/sd-core/src/lib/material.module.ts","../../../../projects/sd-core/src/lib/pipes/sd-date.pipe.ts","../../../../projects/sd-core/src/lib/controls/date-picker-control/date-picker-control.component.ts","../../../../projects/sd-core/src/lib/controls/ckeditor-control/ckeditor-control.component.ts","../../../../projects/sd-core/src/lib/validators/min-date.validator.ts","../../../../projects/sd-core/src/lib/validators/max-date.validator.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/src/lib/validators/custom.validator.ts","../../../../projects/sd-core/src/lib/validators/chip-min-item.validator.ts","../../../../projects/sd-core/src/lib/core.module.ts"],"names":["NgModule","args","imports","MatTooltipModule","MatFormFieldModule","MatInputModule","MatSelectModule","MatAutocompleteModule","MatCheckboxModule","MatSlideToggleModule","MatRadioModule","MatIconModule","MatMenuModule","MatChipsModule","MatButtonModule","MatDialogModule","MatBottomSheetModule","MatProgressSpinnerModule","DragDropModule","MatExpansionModule","MatTabsModule","MatPaginatorModule","exports","SdDatePipe","prototype","transform","value","format","Date","isDate","toFormat","Pipe","name","DatePickerControlComponent","ref","deviceService","_this","this","isMobileOrTablet","initialized","pMinDate","pMaxDate","uuid.v4","type","disabled","required","sdChange","EventEmitter","modelChange","onFocus","$","control","nativeElement","trigger","onChanges","date","pDate","isDesktop","Object","defineProperty","setOption","val","detectChanges","ngOnDestroy","_a","form","removeControl","formModel","ngAfterViewInit","addControl","datetimepicker","datepicker","timepicker","step","minDate","undefined","maxDate","scrollMonth","scrollTime","scrollInput","onChangeDateTime","equal","model","parse","emit","parseFrom","date1","date2","Component","selector","template","encapsulation","ViewEncapsulation","None","ChangeDetectorRef","DeviceDetectorService","Input","Output","ViewChild","CkeditorControlComponent","sanitizer","change","editorUrl","cModel","cConfig","ngOnInit","onChange","DomSanitizer","SdMinDateValidator","validate","c","getTime","Directive","providers","provide","NG_VALIDATORS","useExisting","multi","SdMaxDateValidator","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","TypeError","call","pop","length","push","create","SdCustomValidator","func","message","customValidator","NG_ASYNC_VALIDATORS","SdChipMinItemValidator","minItem","CommonModule","FormsModule","ReactiveFormsModule","HttpClientModule","MaterialModule","CKEditorModule","DeviceDetectorModule","forRoot","SdChartModule","SdKonvaModule","SdGridMaterialModule","SdUploadExcelModule","SdGridModule","SdFormModule","SdServiceModule","declarations","SdEditorModule","DatePipe","DecimalPipe"],"mappings":"q5MAkEA,kCA5CCA,EAAAA,SAAQC,KAAA,CAAC,CACRC,QAAS,CACPC,EAAAA,iBACAC,EAAAA,mBACAC,EAAAA,eACAC,EAAAA,gBACAC,EAAAA,sBACAC,EAAAA,kBACAC,EAAAA,qBACAC,EAAAA,eACAC,EAAAA,cACAC,EAAAA,cACAC,EAAAA,eACAC,EAAAA,gBACAC,EAAAA,gBACAC,EAAAA,qBACAC,EAAAA,yBACAC,EAAAA,eACAC,EAAAA,mBACAC,EAAAA,cACAC,EAAAA,oBAEFC,QAAS,CACPnB,EAAAA,iBACAC,EAAAA,mBACAC,EAAAA,eACAC,EAAAA,gBACAC,EAAAA,sBACAC,EAAAA,kBACAC,EAAAA,qBACAC,EAAAA,eACAC,EAAAA,cACAC,EAAAA,cACAC,EAAAA,eACAC,EAAAA,gBACAC,EAAAA,gBACAC,EAAAA,qBACAC,EAAAA,yBACAC,EAAAA,eACAC,EAAAA,mBACAC,EAAAA,cACAC,EAAAA,0CC1DJ,SAAAE,YACEA,EAAAC,UAAAC,UAAA,SAAUC,EAAYC,GACpB,OAAKC,KAAKC,OAAOH,GAGVE,KAAKE,SAASJ,EAAOC,GAFnBD,6BANZK,EAAAA,KAAI9B,KAAA,CAAC,CACJ+B,KAAM,+BC+EN,SAAAC,EACUC,EACRC,GAFF,IAAAC,EAAAC,KACUA,KAAAH,IAAAA,EAvDFG,KAAAC,kBAAmB,EACnBD,KAAAE,aAAc,EAEtBF,KAAAG,SAAgB,KAChBH,KAAAI,SAAgB,KAChBJ,KAAAL,KAAOU,EAAAA,KAEEL,KAAAM,KAAqC,WACrCN,KAAAO,UAAW,EACXP,KAAAQ,UAAW,EAqBVR,KAAAS,SAAW,IAAIC,EAAAA,aAoBfV,KAAAW,YAAc,IAAID,EAAAA,aAsB5BV,KAAAY,QAAU,WACJb,EAAKE,kBACPY,GAAAA,QAAEd,EAAKe,QAAQC,eAAeC,QAAQ,SAIlChB,KAAAiB,UAAY,WAClBlB,EAAKmB,KAAOnB,EAAKoB,OAtBjBnB,KAAKC,kBAAoBH,EAAcsB,mBA5CzCC,OAAAC,eAAa1B,EAAAT,UAAA,UAAO,KAApB,SAAqB+B,GACd3B,KAAKC,OAAO0B,GAGflB,KAAKG,SAAWZ,KAAKE,SAASyB,EAAM,oBAFpClB,KAAKG,SAAW,KAIlBH,KAAKuB,6CAEPF,OAAAC,eAAa1B,EAAAT,UAAA,UAAO,KAApB,SAAqB+B,GACd3B,KAAKC,OAAO0B,GAGflB,KAAKI,SAAWb,KAAKE,SAASyB,EAAM,oBAFpClB,KAAKI,SAAW,KAIlBJ,KAAKuB,6CAMPF,OAAAC,eAAa1B,EAAAT,UAAA,QAAK,KAAlB,SAAmBqC,GACZjC,KAAKC,OAAOgC,GAGG,aAAdxB,KAAKM,KACPN,KAAKmB,MAAQ5B,KAAKE,SAAS+B,EAAK,oBACT,SAAdxB,KAAKM,KACdN,KAAKmB,MAAQ5B,KAAKE,SAAS+B,EAAK,cAEhCxB,KAAKmB,MAAQ5B,KAAKE,SAAS+B,EAAK,SAPlCxB,KAAKmB,MAAQ,KAUXnB,KAAKE,aACPF,KAAKiB,YAEPjB,KAAKH,IAAI4B,iDAYX7B,EAAAT,UAAAuC,YAAA,iBACW,QAATC,EAAA3B,KAAK4B,YAAI,IAAAD,GAAAA,EAAEE,cAAc7B,KAAK8B,YAGhClC,EAAAT,UAAA4C,gBAAA,iBACW,QAATJ,EAAA3B,KAAK4B,YAAI,IAAAD,GAAAA,EAAEK,WAAWhC,KAAK8B,WAC3B9B,KAAKiB,YACLjB,KAAKE,aAAc,EACnBF,KAAKuB,YACLvB,KAAKH,IAAI4B,iBAaH7B,EAAAT,UAAAoC,UAAA,WAAA,IAAAxB,EAAAC,KACFA,KAAKE,aACNW,GAAAA,QAAEb,KAAKc,QAAQC,eAAuBkB,eAAe,CACpDC,WAA0B,aAAdlC,KAAKM,MAAqC,SAAdN,KAAKM,KAC7C6B,WAA0B,aAAdnC,KAAKM,MAAqC,SAAdN,KAAKM,KAC7ChB,OAAsB,aAAdU,KAAKM,KAAsB,YAA6B,SAAdN,KAAKM,KAAkB,QAAU,MACnF8B,KAAM,GACNC,QAASrC,KAAKG,eAAYmC,EAC1BC,QAASvC,KAAKI,eAAYkC,EAC1BE,aAAa,EACbC,YAAY,EACZC,aAAa,EACbC,iBAAkB,SAACzB,IACZA,GAASnB,EAAKmB,QAIjBA,EADgB,aAAdnB,EAAKO,KACAf,KAAKE,SAASyB,EAAM,oBACJ,SAAdnB,EAAKO,KACPf,KAAKE,SAASyB,EAAM,SAEpB3B,KAAKE,SAASyB,EAAM,cAExBnB,EAAK6C,MAAM1B,EAAMnB,EAAKmB,QACzBnB,EAAK8C,MAAQ9C,EAAK+C,MAAM5B,GACxBnB,EAAKY,YAAYoC,KAAKhD,EAAK+C,MAAM5B,IACjCnB,EAAKU,SAASsC,KAAKhD,EAAK+C,MAAM5B,KAEhCnB,EAAKF,IAAI4B,qBAMT7B,EAAAT,UAAA2D,MAAA,SAAM5B,GACZ,MAAkB,SAAdlB,KAAKM,KACAf,KAAKyD,UAAU9B,EAAM,cACL,SAAdlB,KAAKM,KACPf,KAAKyD,UAAU9B,EAAM,SAEvB3B,KAAKyD,UAAU9B,EAAM,qBAEtBtB,EAAAT,UAAAyD,MAAA,SAAMK,EAAYC,GACxB,OAAO3D,KAAKqD,MAAM5C,KAAK8C,MAAMG,GAAQjD,KAAK8C,MAAMI,+BApInDC,EAAAA,UAASvF,KAAA,CAAC,CACTwF,SAAU,yBACVC,SAAA,sxCAEAC,cAAeC,EAAAA,kBAAkBC,oGAhBjCC,EAAAA,yBAQOC,EAAAA,wDAiBNC,EAAAA,oBACAA,EAAAA,wBACAA,EAAAA,wBACAA,EAAAA,qBACAA,EAAAA,2BACAA,EAAAA,uBAEAA,EAAAA,uBAQAA,EAAAA,yBAQAA,EAAAA,wBACAC,EAAAA,sBAGAD,EAAAA,2BAiBAC,EAAAA,wBAEAC,EAAAA,UAASjG,KAAA,CAAC,8BACViG,EAAAA,UAASjG,KAAA,CAAC,kCC5CX,SAAAkG,EAAoBjE,EAAgCkE,GAAhC/D,KAAAH,IAAAA,EAAgCG,KAAA+D,UAAAA,EAlB3C/D,KAAAO,UAAW,EACXP,KAAAQ,UAAW,EASVR,KAAAW,YAAc,IAAID,EAAAA,aAElBV,KAAAgE,OAAS,IAAItD,EAAAA,aACbV,KAAAS,SAAW,IAAIC,EAAAA,aAGzBV,KAAAiE,UAAY,2CAdZ5C,OAAAC,eAAawC,EAAA3E,UAAA,QAAK,KAAlB,SAAmBE,GACjBW,KAAKkE,OAAS7E,EACdW,KAAKH,IAAI4B,iDAEXJ,OAAAC,eAAawC,EAAA3E,UAAA,SAAM,KAAnB,SAAoBE,GAClBW,KAAKmE,QAAU9E,EACfW,KAAKH,IAAI4B,iDAcXqC,EAAA3E,UAAAiF,SAAA,aAGAN,EAAA3E,UAAAkF,SAAA,SAAShF,GACPW,KAAK6C,MAAQxD,EACbW,KAAKW,YAAYoC,KAAK1D,GACtBW,KAAKgE,OAAOjB,KAAK1D,GACjBW,KAAKS,SAASsC,KAAK1D,8BAtCtB8D,EAAAA,UAASvF,KAAA,CAAC,CACTwF,SAAU,sBACVC,SAAA,sXATAI,EAAAA,yBAKOa,EAAAA,gDAUNX,EAAAA,wBACAA,EAAAA,wBACAA,EAAAA,qBACAA,EAAAA,sBAIAA,EAAAA,2BAIAC,EAAAA,uBAEAA,EAAAA,yBACAA,EAAAA,4BCzBH,SAAAW,YAEEA,EAAApF,UAAAqF,SAAA,SAASC,GACP,IAAMvD,EAAOuD,EAAEpF,OAAS,KAClBgD,EAAUrC,KAAKqC,SAAW,KAChC,OAAKnB,GAGAmB,GAGD,IAAI9C,KAAKA,KAAKyD,UAAU9B,EAAM,qBAAqBwD,UAAY,IAAInF,KAAK8C,GAASqC,UAC5E,CACLrC,SAAS,GAPJ,gCAVZsC,EAAAA,UAAS/G,KAAA,CAAC,CACTwF,SAAU,cACVwB,UAAW,CAAC,CAAEC,QAASC,EAAAA,cAAeC,YAAaR,GAAoBS,OAAO,0CAG7ErB,EAAAA,MAAK/F,KAAA,CAAC,kCCDT,SAAAqH,YAEEA,EAAA9F,UAAAqF,SAAA,SAASC,GACP,IAAMvD,EAAOuD,EAAEpF,OAAS,KAClBkD,EAAUvC,KAAKuC,SAAW,KAChC,OAAKrB,GAGAqB,GAGD,IAAIhD,KAAKA,KAAKyD,UAAU9B,EAAM,qBAAqBwD,UAAY,IAAInF,KAAKgD,GAASmC,UAC5E,CACLnC,SAAS,GAPJ,gCAVZoC,EAAAA,UAAS/G,KAAA,CAAC,CACTwF,SAAU,cACVwB,UAAW,CAAC,CAAEC,QAASC,EAAAA,cAAeC,YAAaE,GAAoBD,OAAO,0CAG7ErB,EAAAA,MAAK/F,KAAA,CAAC,yBC2DOsH,GAAUC,EAASC,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUrG,GAAS,IAAM+C,EAAKkD,EAAUK,KAAKtG,IAAW,MAAOuG,GAAKH,EAAOG,IACpF,SAASC,EAASxG,GAAS,IAAM+C,EAAKkD,EAAiB,MAAEjG,IAAW,MAAOuG,GAAKH,EAAOG,IACvF,SAASxD,EAAK0D,GAJlB,IAAezG,EAIayG,EAAOC,KAAOP,EAAQM,EAAOzG,QAJ1CA,EAIyDyG,EAAOzG,MAJhDA,aAAiBgG,EAAIhG,EAAQ,IAAIgG,GAAE,SAAUG,GAAWA,EAAQnG,OAIT2G,KAAKN,EAAWG,GAClGzD,GAAMkD,EAAYA,EAAUW,MAAMd,EAASC,GAAc,KAAKO,oBAItDO,GAAYf,EAASgB,GACjC,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEZ,KAAMkB,EAAK,GAAIC,MAASD,EAAK,GAAIE,OAAUF,EAAK,IAAwB,mBAAXG,SAA0BT,EAAES,OAAOC,UAAY,WAAa,OAAOjH,OAAUuG,EACvJ,SAASM,EAAKK,GAAK,OAAO,SAAUC,GAAK,OACzC,SAAcC,GACV,GAAIhB,EAAG,MAAM,IAAIiB,UAAU,mCAC3B,KAAOb,OACH,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARc,EAAG,GAASf,EAAU,OAAIe,EAAG,GAAKf,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAEgB,KAAKjB,GAAI,GAAKA,EAAEV,SAAWW,EAAIA,EAAEgB,KAAKjB,EAAGe,EAAG,KAAKrB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGc,EAAK,CAAS,EAARA,EAAG,GAAQd,EAAEjH,QACzB+H,EAAG,IACP,KAAK,EAAG,KAAK,EAAGd,EAAIc,EAAI,MACxB,KAAK,EAAc,OAAXZ,EAAEC,QAAgB,CAAEpH,MAAO+H,EAAG,GAAIrB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIe,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKZ,EAAEI,IAAIW,MAAOf,EAAEG,KAAKY,MAAO,SACxC,QACI,KAAMjB,EAAIE,EAAEG,MAAML,EAAIA,EAAEkB,OAAS,GAAKlB,EAAEA,EAAEkB,OAAS,KAAkB,IAAVJ,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEZ,EAAI,EAAG,SACjG,GAAc,IAAVY,EAAG,MAAcd,GAAMc,EAAG,GAAKd,EAAE,IAAMc,EAAG,GAAKd,EAAE,IAAM,CAAEE,EAAEC,MAAQW,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYZ,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIc,EAAI,MAC7D,GAAId,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIa,KAAKL,GAAK,MACvDd,EAAE,IAAIE,EAAEI,IAAIW,MAChBf,EAAEG,KAAKY,MAAO,SAEtBH,EAAKjB,EAAKmB,KAAKnC,EAASqB,GAC1B,MAAOZ,GAAKwB,EAAK,CAAC,EAAGxB,GAAIS,EAAI,UAAeD,EAAIE,EAAI,EACtD,GAAY,EAARc,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE/H,MAAO+H,EAAG,GAAKA,EAAG,QAAK,EAAQrB,MAAM,GArB9B3D,CAAK,CAAC8E,EAAGC,MAyBhC9F,OAAOqG,OA0FXrG,OAAOqG,yBC5LhC,SAAAC,YAEQA,EAAAxI,UAAAqF,SAAA,SAASC,gHACPpF,EAAQoF,EAAEpF,OAAS,KACrBW,KAAK4H,MAA+B,mBAAf5H,KAAS,MAC1B8F,EAAS9F,KAAK4H,KAAKvI,cACHkG,QACJ,CAAA,EAAMO,GADpB,CAAA,EAAA,GAFF,CAAA,EAAA,UAIA,OADM+B,EAAUlG,EAAA+E,QAEd,CAAA,EAAO,CACLoB,gBAAiBD,IAGrB,CAAA,EAAO,aAET,OAAI/B,EACF,CAAA,EAAO,CACLgC,gBAAiBhC,IAGrB,CAAA,EAAO,aAET,MAAA,CAAA,EAAO,wCA1BVnB,EAAAA,UAAS/G,KAAA,CAAC,CACTwF,SAAU,sBACVwB,UAAW,CAAC,CAAEC,QAASkD,EAAAA,oBAAqBhD,YAAa4C,GAAmB3C,OAAO,uCAGlFrB,EAAAA,MAAK/F,KAAA,CAAC,0CCDT,SAAAoK,YAEEA,EAAA7I,UAAAqF,SAAA,SAASC,GACP,GAAIzE,KAAK4H,MAA+B,mBAAf5H,KAAS,KAAkB,CAClD,IAAM8F,EAAS9F,KAAK4H,OACpB,OAAI9B,EACK,CACLmC,QAASnC,GAGN,KAET,OAAO,gCAhBVnB,EAAAA,UAAS/G,KAAA,CAAC,CACTwF,SAAU,kBACVwB,UAAW,CAAC,CAAEC,QAASC,EAAAA,cAAeC,YAAaiD,GAAwBhD,OAAO,uCAGjFrB,EAAAA,MAAK/F,KAAA,CAAC,2BC+DT,kCA/CCD,EAAAA,SAAQC,KAAA,CAAC,CACRC,QAAS,CACPqK,EAAAA,aACAC,EAAAA,YACAC,EAAAA,oBACAC,EAAAA,iBACAC,GACAC,EAAAA,eACAC,EAAAA,qBAAqBC,UACrBC,EAAAA,cACAC,EAAAA,cACAC,EAAAA,qBACAC,EAAAA,oBACAC,EAAAA,aACAC,EAAAA,aACAC,EAAAA,iBAEFC,aAAc,CACZrJ,GACAkE,GAEA5E,GAEAqF,GACAU,GACA0C,GACAK,IAEF/I,QAAS,CACPyJ,EAAAA,cACAC,EAAAA,cACAC,EAAAA,qBACAM,EAAAA,eACAL,EAAAA,oBACAC,EAAAA,aACAC,EAAAA,aACAC,EAAAA,gBACAV,GAEA1I,GACAkE,IAEFc,UAAW,CACTuE,EAAAA,SACAC,EAAAA","sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\n\r\n@NgModule({\r\n imports: [\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatRadioModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatChipsModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatBottomSheetModule,\r\n MatProgressSpinnerModule,\r\n DragDropModule,\r\n MatExpansionModule,\r\n MatTabsModule,\r\n MatPaginatorModule\r\n ],\r\n exports: [\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatRadioModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatChipsModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatBottomSheetModule,\r\n MatProgressSpinnerModule,\r\n DragDropModule,\r\n MatExpansionModule,\r\n MatTabsModule,\r\n MatPaginatorModule\r\n ]\r\n})\r\nexport class MaterialModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport '@sd-angular/core/typing';\r\n@Pipe({\r\n name: 'sdDate'\r\n})\r\nexport class SdDatePipe implements PipeTransform {\r\n transform(value: any, format: string): string {\r\n if (!Date.isDate(value)) {\r\n return value;\r\n }\r\n return Date.toFormat(value, format);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewChild,\r\n ElementRef,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n OnDestroy,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport * as uuid from 'uuid';\r\n\r\nimport $ from 'jquery';\r\nimport 'jquery-datetimepicker';\r\nimport { NgForm, NgModel } from '@angular/forms';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport '@sd-angular/core/typing';\r\n// Document: https://xdsoft.net/jqplugins/datetimepicker/\r\n\r\n@Component({\r\n selector: 'sd-date-picker-control',\r\n templateUrl: './date-picker-control.component.html',\r\n styleUrls: ['./date-picker-control.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DatePickerControlComponent implements OnDestroy, AfterViewInit {\r\n private isMobileOrTablet = false;\r\n private initialized = false;\r\n private pDate: any;\r\n pMinDate: any = null;\r\n pMaxDate: any = null;\r\n name = uuid.v4();\r\n @Input() form: NgForm;\r\n @Input() type: 'datetime' | 'date' | 'time' = 'datetime';\r\n @Input() disabled = false;\r\n @Input() required = false;\r\n @Input() label: string;\r\n @Input() placeholder: string;\r\n\r\n @Input() set minDate(date: string | Date | number) {\r\n if (!Date.isDate(date)) {\r\n this.pMinDate = null;\r\n } else {\r\n this.pMinDate = Date.toFormat(date, 'yyyy/MM/dd HH:mm');\r\n }\r\n this.setOption();\r\n }\r\n @Input() set maxDate(date: string | Date | number) {\r\n if (!Date.isDate(date)) {\r\n this.pMaxDate = null;\r\n } else {\r\n this.pMaxDate = Date.toFormat(date, 'yyyy/MM/dd HH:mm'); // this.datePipe.transform(date, 'yyyy/MM/dd HH:mm');\r\n }\r\n this.setOption();\r\n }\r\n @Input() validator: (value: any) => string | Promise<string>;\r\n @Output() sdChange = new EventEmitter();\r\n date: string;\r\n\r\n @Input() set model(val: any) {\r\n if (!Date.isDate(val)) {\r\n this.pDate = null;\r\n } else {\r\n if (this.type === 'datetime') {\r\n this.pDate = Date.toFormat(val, 'dd/MM/yyyy HH:mm');\r\n } else if (this.type === 'date') {\r\n this.pDate = Date.toFormat(val, 'dd/MM/yyyy');\r\n } else {\r\n this.pDate = Date.toFormat(val, 'HH:mm');\r\n }\r\n }\r\n if (this.initialized) {\r\n this.onChanges();\r\n }\r\n this.ref.detectChanges();\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n\r\n @ViewChild('control') control: ElementRef;\r\n @ViewChild('formModel') formModel: NgModel;\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n deviceService: DeviceDetectorService) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.form?.removeControl(this.formModel);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.form?.addControl(this.formModel);\r\n this.onChanges();\r\n this.initialized = true;\r\n this.setOption();\r\n this.ref.detectChanges();\r\n }\r\n\r\n onFocus = () => {\r\n if (this.isMobileOrTablet) {\r\n $(this.control.nativeElement).trigger('blur');\r\n }\r\n }\r\n\r\n private onChanges = () => {\r\n this.date = this.pDate;\r\n }\r\n\r\n private setOption() {\r\n if (this.initialized) {\r\n ($(this.control.nativeElement) as any).datetimepicker({\r\n datepicker: this.type === 'datetime' || this.type === 'date',\r\n timepicker: this.type === 'datetime' || this.type === 'time',\r\n format: this.type === 'datetime' ? 'd/m/Y H:i' : (this.type === 'date' ? 'd/m/Y' : 'H:i'),\r\n step: 15,\r\n minDate: this.pMinDate || undefined,\r\n maxDate: this.pMaxDate || undefined,\r\n scrollMonth: false,\r\n scrollTime: false,\r\n scrollInput: false,\r\n onChangeDateTime: (date: any) => {\r\n if (!date && !this.date) {\r\n return;\r\n }\r\n if (this.type === 'datetime') {\r\n date = Date.toFormat(date, 'dd/MM/yyyy HH:mm');\r\n } else if (this.type === 'time') {\r\n date = Date.toFormat(date, 'HH:mm');\r\n } else {\r\n date = Date.toFormat(date, 'dd/MM/yyyy');\r\n }\r\n if (!this.equal(date, this.date)) {\r\n this.model = this.parse(date);\r\n this.modelChange.emit(this.parse(date));\r\n this.sdChange.emit(this.parse(date));\r\n }\r\n this.ref.detectChanges();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private parse(date: any) {\r\n if (this.type === 'date') {\r\n return Date.parseFrom(date, 'dd/MM/yyyy');\r\n } else if (this.type === 'time') {\r\n return Date.parseFrom(date, 'HH:mm');\r\n }\r\n return Date.parseFrom(date, 'dd/MM/yyyy HH:mm');\r\n }\r\n private equal(date1: any, date2: any) {\r\n return Date.equal(this.parse(date1), this.parse(date2));\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ChangeDetectorRef,\r\n EventEmitter,\r\n Output,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'sd-ckeditor-control',\r\n templateUrl: './ckeditor-control.component.html',\r\n styleUrls: [\r\n './ckeditor-control.component.css',\r\n ],\r\n})\r\nexport class CkeditorControlComponent implements OnInit {\r\n @Input() label: string;\r\n @Input() disabled = false;\r\n @Input() required = false;\r\n @Input() set model(value: string) {\r\n this.cModel = value;\r\n this.ref.detectChanges();\r\n }\r\n @Input() set config(value: any) {\r\n this.cConfig = value;\r\n this.ref.detectChanges();\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n // tslint:disable-next-line: no-output-native\r\n @Output() change = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n cModel: string;\r\n cConfig: any;\r\n editorUrl = '../../assets/ckeditor/ckeditor.js';\r\n\r\n constructor(private ref: ChangeDetectorRef, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onChange(value: any) {\r\n this.model = value;\r\n this.modelChange.emit(value);\r\n this.change.emit(value);\r\n this.sdChange.emit(value);\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, ValidationErrors, AbstractControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdMinDate]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdMinDateValidator, multi: true }]\r\n})\r\nexport class SdMinDateValidator implements Validator {\r\n @Input('sdMinDate') minDate: string | Date;\r\n validate(c: AbstractControl): ValidationErrors {\r\n const date = c.value || null;\r\n const minDate = this.minDate || null;\r\n if (!date) {\r\n return null;\r\n }\r\n if (!minDate) {\r\n return null;\r\n }\r\n if (new Date(Date.parseFrom(date, 'dd/MM/yyyy HH:mm')).getTime() < new Date(minDate).getTime()) {\r\n return {\r\n minDate: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, ValidationErrors, AbstractControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdMaxDate]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdMaxDateValidator, multi: true }]\r\n})\r\nexport class SdMaxDateValidator implements Validator {\r\n @Input('sdMaxDate') maxDate: string | Date;\r\n validate(c: AbstractControl): ValidationErrors {\r\n const date = c.value || null;\r\n const maxDate = this.maxDate || null;\r\n if (!date) {\r\n return null;\r\n }\r\n if (!maxDate) {\r\n return null;\r\n }\r\n if (new Date(Date.parseFrom(date, 'dd/MM/yyyy HH:mm')).getTime() > new Date(maxDate).getTime()) {\r\n return {\r\n maxDate: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { ValidationErrors, AbstractControl, AsyncValidator, NG_ASYNC_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdCustomValidator]',\r\n providers: [{ provide: NG_ASYNC_VALIDATORS, useExisting: SdCustomValidator, multi: true }]\r\n})\r\nexport class SdCustomValidator implements AsyncValidator {\r\n @Input('sdCustomValidator') func: (value: any) => string | Promise<string>;\r\n async validate(c: AbstractControl): Promise<ValidationErrors> {\r\n const value = c.value || null;\r\n if (this.func && typeof (this.func) === 'function') {\r\n const result = this.func(value);\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n return {\r\n customValidator: message\r\n };\r\n }\r\n return null;\r\n }\r\n if (result) {\r\n return {\r\n customValidator: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { ValidationErrors, AbstractControl, Validator, NG_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdChipMinItem]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdChipMinItemValidator, multi: true }]\r\n})\r\nexport class SdChipMinItemValidator implements Validator {\r\n @Input('sdChipMinItem') func: () => string;\r\n validate(c: AbstractControl): ValidationErrors {\r\n if (this.func && typeof (this.func) === 'function') {\r\n const result = this.func();\r\n if (result) {\r\n return {\r\n minItem: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe, DecimalPipe } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CKEditorModule } from 'ckeditor4-angular';\r\nimport { MaterialModule } from './material.module';\r\nimport { DeviceDetectorModule } from 'ngx-device-detector';\r\n\r\nimport { SdDatePipe } from './pipes/sd-date.pipe';\r\nimport { SdServiceModule } from '@sd-angular/core/service';\r\nimport { SdChartModule } from '@sd-angular/core/chart';\r\nimport { SdGridMaterialModule } from '@sd-angular/core/grid-material';\r\nimport { SdEditorModule } from '@sd-angular/core/editor';\r\nimport { SdKonvaModule } from '@sd-angular/core/konva';\r\nimport { DatePickerControlComponent } from './controls/date-picker-control/date-picker-control.component';\r\nimport { CkeditorControlComponent } from './controls/ckeditor-control/ckeditor-control.component';\r\nimport { SdMinDateValidator } from './validators/min-date.validator';\r\nimport { SdMaxDateValidator } from './validators/max-date.validator';\r\nimport { SdCustomValidator } from './validators/custom.validator';\r\nimport { SdChipMinItemValidator } from './validators/chip-min-item.validator';\r\nimport { SdUploadExcelModule } from '@sd-angular/core/upload-excel';\r\nimport { SdGridModule } from '@sd-angular/core/grid';\r\nimport { SdFormModule } from '@sd-angular/core/form';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n MaterialModule,\r\n CKEditorModule,\r\n DeviceDetectorModule.forRoot(),\r\n SdChartModule,\r\n SdKonvaModule,\r\n SdGridMaterialModule,\r\n SdUploadExcelModule,\r\n SdGridModule,\r\n SdFormModule,\r\n SdServiceModule\r\n ],\r\n declarations: [\r\n DatePickerControlComponent,\r\n CkeditorControlComponent,\r\n // // Pipes\r\n SdDatePipe,\r\n // Validators\r\n SdMinDateValidator,\r\n SdMaxDateValidator,\r\n SdCustomValidator,\r\n SdChipMinItemValidator\r\n ],\r\n exports: [\r\n SdChartModule,\r\n SdKonvaModule,\r\n SdGridMaterialModule,\r\n SdEditorModule,\r\n SdUploadExcelModule,\r\n SdGridModule,\r\n SdFormModule,\r\n SdServiceModule,\r\n MaterialModule,\r\n // Controls\r\n DatePickerControlComponent,\r\n CkeditorControlComponent\r\n ],\r\n providers: [\r\n DatePipe,\r\n DecimalPipe\r\n ]\r\n})\r\nexport class SdCoreModule { }\r\n"]}
@@ -0,0 +1 @@
1
+ export * from './src/public-api';
@@ -0,0 +1,12 @@
1
+ {
2
+ "peerDependencies": {},
3
+ "main": "../bundles/sd-angular-core-common.umd.js",
4
+ "module": "../fesm2015/sd-angular-core-common.js",
5
+ "es2015": "../fesm2015/sd-angular-core-common.js",
6
+ "esm2015": "../esm2015/common/sd-angular-core-common.js",
7
+ "fesm2015": "../fesm2015/sd-angular-core-common.js",
8
+ "typings": "sd-angular-core-common.d.ts",
9
+ "metadata": "sd-angular-core-common.metadata.json",
10
+ "sideEffects": false,
11
+ "name": "@sd-angular/core/common"
12
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
@@ -0,0 +1 @@
1
+ {"__symbolic":"module","version":4,"metadata":{"SdFormControl":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/forms","name":"FormControl","line":2,"character":35},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Object"},{"__symbolic":"reference","module":"@angular/forms","name":"ValidatorFn","line":7,"character":15},{"__symbolic":"reference","module":"@angular/forms","name":"AsyncValidatorFn","line":8,"character":20}]}],"markAsTouched":[{"__symbolic":"method"}]}}},"origins":{"SdFormControl":"./src/lib/models/sd-form-control"},"importAs":"@sd-angular/core/common"}
@@ -0,0 +1,9 @@
1
+ import { FormControl, AsyncValidatorFn, ValidatorFn } from '@angular/forms';
2
+ import { Subject } from 'rxjs';
3
+ export declare class SdFormControl extends FormControl {
4
+ touchedChanges: Subject<boolean>;
5
+ constructor(formState?: Object, validator?: ValidatorFn | ValidatorFn[], asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[]);
6
+ markAsTouched({ onlySelf }?: {
7
+ onlySelf?: boolean;
8
+ }): void;
9
+ }
@@ -0,0 +1 @@
1
+ export * from './lib/models/sd-form-control';
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"SdDateTimeModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":16,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":21,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":22,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":23,"character":4},{"__symbolic":"reference","module":"@angular/material/datepicker","name":"MatDatepickerModule","line":24,"character":4},{"__symbolic":"reference","module":"@angular/material-moment-adapter","name":"MatMomentDateModule","line":25,"character":4},{"__symbolic":"reference","module":"@angular-material-components/datetime-picker","name":"NgxMatDatetimePickerModule","line":26,"character":4},{"__symbolic":"reference","module":"@angular-material-components/datetime-picker","name":"NgxMatTimepickerModule","line":27,"character":4},{"__symbolic":"reference","module":"@angular-material-components/moment-adapter","name":"NgxMatMomentModule","line":28,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/translate","name":"SdTranslateModule","line":29,"character":4}],"declarations":[{"__symbolic":"reference","name":"SdDateTime"}],"exports":[{"__symbolic":"reference","name":"SdDateTime"}],"providers":[]}]}],"members":{}},"SdDateTime":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":43,"character":1},"arguments":[{"selector":"sd-date-time","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":47,"character":19},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/material/core","name":"MAT_DATE_FORMATS","line":49,"character":15},"useValue":{"parse":{"dateInput":"DD/MM/YYYY"},"display":{"dateInput":"DD/MM/YYYY","monthYearLabel":"MMM YYYY","dateA11yLabel":"LL","monthYearA11yLabel":"MMMM YYYY"}}},{"provide":{"__symbolic":"reference","module":"@angular-material-components/datetime-picker","name":"NGX_MAT_DATE_FORMATS","line":50,"character":15},"useValue":{"parse":{"dateInput":"DD/MM/YYYY HH:mm"},"display":{"dateInput":"DD/MM/YYYY HH:mm","monthYearLabel":"MMM YYYY","dateA11yLabel":"LL","monthYearA11yLabel":"MMMM YYYY"}}}],"template":"<div class=\"d-flex align-items-center\">\r\n <mat-form-field *ngIf=\"type === 'datetime' || type === 'time'\" class=\"sd-md\"\r\n [ngClass]=\"{ 'sd-sm': size === 'sm', 'no-padding-wrapper': disableErrorMessage }\" appearance=\"outline\">\r\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\r\n <input [id]=\"id\" matInput (dateInput)=\"onChange($event)\" [value]=\"date\" (focus)=\"onFocus()\" (blur)=\"onBlur()\"\r\n [autocomplete]=\"id\" autocorrect=\"off\" [formControl]=\"dateControl\" [ngxMatDatetimePicker]=\"picker1\"\r\n placeholder=\"{{ placeholder || label }}\" [min]=\"min\" [required]=\"isRequired\" [max]=\"max\" />\r\n <!-- <mat-icon class=\"pointer sd-suffix-icon\" (click)=\"!dateControl?.disabled && picker1.open()\" matSuffix>today\r\n </mat-icon> -->\r\n <mat-icon *ngIf=\"dateControl?.value && !isRequired && !dateControl.disabled\" class=\"pointer sd-suffix-icon\"\r\n (click)=\"clear($event)\" matSuffix>cancel\r\n </mat-icon>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"></mat-datepicker-toggle>\r\n <ngx-mat-datetime-picker #picker1 [defaultTime]=\"defaultTime\" [touchUi]=\"isMobileOrTablet\" [showSpinners]=\"false\">\r\n </ngx-mat-datetime-picker>\r\n\r\n <mat-error *ngIf=\"dateControl?.errors?.required && !disableErrorMessage\">\r\n {{ \"This field is required\" | sdTranslate }}\r\n </mat-error>\r\n <mat-error *ngIf=\"dateControl?.errors?.matDatetimePickerMin && !disableErrorMessage\">\r\n {{ \"Min date\" | sdTranslate }}:\r\n <strong>{{ min | date: \"dd/MM/yyyy HH:mm\" }}</strong>\r\n </mat-error>\r\n <mat-error *ngIf=\"dateControl?.errors?.matDatetimePickerMax && !disableErrorMessage\">\r\n {{ \"Max date\" | sdTranslate }}:\r\n <strong>{{ max | date: \"dd/MM/yyyy HH:mm\" }}</strong>\r\n </mat-error>\r\n <mat-error *ngIf=\"dateControl?.errors?.matDatetimePickerParse && !disableErrorMessage\">\r\n {{ \"Parse error\" | sdTranslate }}:\r\n <strong>{{ dateControl?.errors?.matDatetimePickerParse?.text }}</strong>\r\n </mat-error>\r\n <mat-error *ngIf=\"dateControl?.errors?.customValidator && !disableErrorMessage\">\r\n <strong>{{ dateControl?.errors?.customValidator }}</strong>\r\n </mat-error>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"type === 'date'\" class=\"sd-md\"\r\n [ngClass]=\"{ 'sd-sm': size === 'sm' , 'no-padding-wrapper': disableErrorMessage}\" appearance=\"outline\">\r\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\r\n <input [id]=\"id\" matInput (dateInput)=\"onChange($event)\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" [autocomplete]=\"id\"\r\n autocorrect=\"off\" [formControl]=\"dateControl\" [required]=\"isRequired\" [matDatepicker]=\"picker2\"\r\n placeholder=\"{{ placeholder || label }}\" [min]=\"min\" [max]=\"max\" />\r\n <mat-icon *ngIf=\"dateControl?.value && !isRequired && !dateControl.disabled\" class=\"pointer sd-suffix-icon\"\r\n (click)=\"clear($event)\" matSuffix>cancel\r\n </mat-icon>\r\n\r\n <mat-icon class=\"pointer sd-suffix-icon\" (click)=\"!dateControl?.disabled && picker2.open()\" matSuffix>today\r\n </mat-icon>\r\n\r\n <mat-datepicker #picker2 [touchUi]=\"isMobileOrTablet\"></mat-datepicker>\r\n\r\n <mat-error *ngIf=\"dateControl?.errors?.required && !disableErrorMessage\">\r\n {{ \"This field is required\" | sdTranslate }}\r\n </mat-error>\r\n <mat-error *ngIf=\"dateControl?.errors?.customValidator && !disableErrorMessage\">\r\n <strong>{{ dateControl?.errors?.customValidator }}</strong>\r\n </mat-error>\r\n </mat-form-field>\r\n <!-- <ngx-mat-timepicker *ngIf=\"type === 'time'\" formControlName=\"name\" [disabled]=\"disabled\" showSpinners=\"false\" stepHour=\"1\"\r\n stepMinute=\"1\" stepSecond=\"1\">\r\n</ngx-mat-timepicker> -->\r\n</div>","styles":[":host{display:block;padding-top:5px}:host ::ng-deep .mat-form-field.no-padding-wrapper .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field input.mat-input-element:disabled{color:#4d4d4d!important}:host ::ng-deep .mat-form-field .mat-placeholder-required{color:#f82c13}"]}]}],"members":{"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":3}}]}],"_disableErrorMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":64,"character":3},"arguments":["disableErrorMessage"]}]}],"_min":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":70,"character":3},"arguments":["min"]}]}],"_max":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":78,"character":3},"arguments":["max"]}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":85,"character":3}}]}],"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":87,"character":3}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":96,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":97,"character":3}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":106,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":114,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":115,"character":3}}]}],"defaultTime":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":116,"character":3}}]}],"minDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":117,"character":3}}]}],"maxDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":124,"character":3}}]}],"validator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":131,"character":3}}]}],"sdChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":132,"character":3}}]}],"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":135,"character":3}}]}],"modelChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":145,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":147,"character":17},{"__symbolic":"reference","module":"ngx-device-detector","name":"DeviceDetectorService","line":148,"character":19}]}],"ngOnDestroy":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}]}}},"origins":{"SdDateTimeModule":"./src/lib/date-time.module","SdDateTime":"./src/lib/date-time.component"},"importAs":"@sd-angular/core/date-time"}
1
+ {"__symbolic":"module","version":4,"metadata":{"SdDateTimeModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":16,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":21,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":22,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":23,"character":4},{"__symbolic":"reference","module":"@angular/material/datepicker","name":"MatDatepickerModule","line":24,"character":4},{"__symbolic":"reference","module":"@angular/material-moment-adapter","name":"MatMomentDateModule","line":25,"character":4},{"__symbolic":"reference","module":"@angular-material-components/datetime-picker","name":"NgxMatDatetimePickerModule","line":26,"character":4},{"__symbolic":"reference","module":"@angular-material-components/datetime-picker","name":"NgxMatTimepickerModule","line":27,"character":4},{"__symbolic":"reference","module":"@angular-material-components/moment-adapter","name":"NgxMatMomentModule","line":28,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/translate","name":"SdTranslateModule","line":29,"character":4}],"declarations":[{"__symbolic":"reference","name":"SdDateTime"}],"exports":[{"__symbolic":"reference","name":"SdDateTime"}],"providers":[]}]}],"members":{}},"SdDateTime":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":45,"character":1},"arguments":[{"selector":"sd-date-time","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":49,"character":19},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/material/core","name":"MAT_DATE_FORMATS","line":51,"character":15},"useValue":{"parse":{"dateInput":"DD/MM/YYYY"},"display":{"dateInput":"DD/MM/YYYY","monthYearLabel":"MMM YYYY","dateA11yLabel":"LL","monthYearA11yLabel":"MMMM YYYY"}}},{"provide":{"__symbolic":"reference","module":"@angular-material-components/datetime-picker","name":"NGX_MAT_DATE_FORMATS","line":52,"character":15},"useValue":{"parse":{"dateInput":"DD/MM/YYYY HH:mm"},"display":{"dateInput":"DD/MM/YYYY HH:mm","monthYearLabel":"MMM YYYY","dateA11yLabel":"LL","monthYearA11yLabel":"MMMM YYYY"}}}],"template":"<div class=\"d-flex align-items-center\">\r\n <mat-form-field *ngIf=\"type === 'datetime' || type === 'time'\" class=\"sd-md\"\r\n [ngClass]=\"{ 'sd-sm': size === 'sm', 'no-padding-wrapper': disableErrorMessage }\" appearance=\"outline\">\r\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\r\n <input [id]=\"id\" matInput (dateInput)=\"onChange($event)\" [value]=\"date\" (focus)=\"onFocus()\" (blur)=\"onBlur()\"\r\n [autocomplete]=\"id\" autocorrect=\"off\" [formControl]=\"dateControl\" [ngxMatDatetimePicker]=\"picker1\"\r\n placeholder=\"{{ placeholder || label }}\" [min]=\"min\" [required]=\"isRequired\" [max]=\"max\" />\r\n <!-- <mat-icon class=\"pointer sd-suffix-icon\" (click)=\"!dateControl?.disabled && picker1.open()\" matSuffix>today\r\n </mat-icon> -->\r\n <mat-icon *ngIf=\"dateControl?.value && !isRequired && !dateControl.disabled\" class=\"pointer sd-suffix-icon\"\r\n (click)=\"clear($event)\" matSuffix>cancel\r\n </mat-icon>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"></mat-datepicker-toggle>\r\n <ngx-mat-datetime-picker #picker1 [defaultTime]=\"defaultTime\" [touchUi]=\"isMobileOrTablet\" [showSpinners]=\"false\">\r\n </ngx-mat-datetime-picker>\r\n\r\n <mat-error *ngIf=\"dateControl?.errors?.required && !disableErrorMessage\">\r\n {{ \"This field is required\" | sdTranslate }}\r\n </mat-error>\r\n <mat-error *ngIf=\"dateControl?.errors?.matDatetimePickerMin && !disableErrorMessage\">\r\n {{ \"Min date\" | sdTranslate }}:\r\n <strong>{{ min | date: \"dd/MM/yyyy HH:mm\" }}</strong>\r\n </mat-error>\r\n <mat-error *ngIf=\"dateControl?.errors?.matDatetimePickerMax && !disableErrorMessage\">\r\n {{ \"Max date\" | sdTranslate }}:\r\n <strong>{{ max | date: \"dd/MM/yyyy HH:mm\" }}</strong>\r\n </mat-error>\r\n <mat-error *ngIf=\"dateControl?.errors?.matDatetimePickerParse && !disableErrorMessage\">\r\n {{ \"Parse error\" | sdTranslate }}:\r\n <strong>{{ dateControl?.errors?.matDatetimePickerParse?.text }}</strong>\r\n </mat-error>\r\n <mat-error *ngIf=\"dateControl?.errors?.customValidator && !disableErrorMessage\">\r\n <strong>{{ dateControl?.errors?.customValidator }}</strong>\r\n </mat-error>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"type === 'date'\" class=\"sd-md\"\r\n [ngClass]=\"{ 'sd-sm': size === 'sm' , 'no-padding-wrapper': disableErrorMessage}\" appearance=\"outline\">\r\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\r\n <input [id]=\"id\" matInput (dateInput)=\"onChange($event)\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" [autocomplete]=\"id\"\r\n autocorrect=\"off\" [formControl]=\"dateControl\" [required]=\"isRequired\" [matDatepicker]=\"picker2\"\r\n placeholder=\"{{ placeholder || label }}\" [min]=\"min\" [max]=\"max\" />\r\n <mat-icon *ngIf=\"dateControl?.value && !isRequired && !dateControl.disabled\" class=\"pointer sd-suffix-icon\"\r\n (click)=\"clear($event)\" matSuffix>cancel\r\n </mat-icon>\r\n\r\n <mat-icon class=\"pointer sd-suffix-icon\" (click)=\"!dateControl?.disabled && picker2.open()\" matSuffix>today\r\n </mat-icon>\r\n\r\n <mat-datepicker #picker2 [touchUi]=\"isMobileOrTablet\"></mat-datepicker>\r\n\r\n <mat-error *ngIf=\"dateControl?.errors?.required && !disableErrorMessage\">\r\n {{ \"This field is required\" | sdTranslate }}\r\n </mat-error>\r\n <mat-error *ngIf=\"dateControl?.errors?.customValidator && !disableErrorMessage\">\r\n <strong>{{ dateControl?.errors?.customValidator }}</strong>\r\n </mat-error>\r\n </mat-form-field>\r\n <!-- <ngx-mat-timepicker *ngIf=\"type === 'time'\" formControlName=\"name\" [disabled]=\"disabled\" showSpinners=\"false\" stepHour=\"1\"\r\n stepMinute=\"1\" stepSecond=\"1\">\r\n</ngx-mat-timepicker> -->\r\n</div>","styles":[":host{display:block;padding-top:5px}:host ::ng-deep .mat-form-field.no-padding-wrapper .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field input.mat-input-element:disabled{color:#4d4d4d!important}:host ::ng-deep .mat-form-field .mat-placeholder-required{color:#f82c13}"]}]}],"members":{"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"_disableErrorMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3},"arguments":["disableErrorMessage"]}]}],"_min":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":72,"character":3},"arguments":["min"]}]}],"_max":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":80,"character":3},"arguments":["max"]}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":87,"character":3}}]}],"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":89,"character":3}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":98,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":99,"character":3}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":108,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":116,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":117,"character":3}}]}],"defaultTime":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":118,"character":3}}]}],"minDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":119,"character":3}}]}],"maxDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":126,"character":3}}]}],"validator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":133,"character":3}}]}],"sdChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":134,"character":3}}]}],"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":137,"character":3}}]}],"modelChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":147,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":150,"character":17},{"__symbolic":"reference","module":"ngx-device-detector","name":"DeviceDetectorService","line":151,"character":19}]}],"ngOnDestroy":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}]}}},"origins":{"SdDateTimeModule":"./src/lib/date-time.module","SdDateTime":"./src/lib/date-time.component"},"importAs":"@sd-angular/core/date-time"}
@@ -1,9 +1,10 @@
1
1
  import { EventEmitter, OnDestroy, AfterViewInit, ChangeDetectorRef, OnInit } from '@angular/core';
2
2
  import { Moment } from 'moment';
3
- import { FormControl, FormGroup, NgForm } from '@angular/forms';
3
+ import { FormGroup, NgForm } from '@angular/forms';
4
4
  import { DeviceDetectorService } from 'ngx-device-detector';
5
5
  import { MatDatepickerInputEvent } from '@angular/material/datepicker';
6
6
  import '@sd-angular/core/typing';
7
+ import { SdFormControl } from '@sd-angular/core/common';
7
8
  export declare class SdDateTime implements OnDestroy, OnInit, AfterViewInit {
8
9
  #private;
9
10
  private ref;
@@ -12,7 +13,7 @@ export declare class SdDateTime implements OnDestroy, OnInit, AfterViewInit {
12
13
  set name(val: string);
13
14
  disableErrorMessage: boolean;
14
15
  set _disableErrorMessage(val: boolean | '');
15
- dateControl: FormControl;
16
+ dateControl: SdFormControl;
16
17
  min: Date;
17
18
  set _min(val: string | Date);
18
19
  max: Date;
@@ -8,6 +8,7 @@ import { Subscription } from 'rxjs';
8
8
  import { SdUtilityService } from '@sd-angular/core/utility';
9
9
  import { SdAutocompleteDisplayDefDirective } from './autocomplete-display-def.directive';
10
10
  import { MatAutocompleteTrigger } from '@angular/material/autocomplete';
11
+ import { SdFormControl } from '@sd-angular/core/common';
11
12
  class SdAutocompleteErrotStateMatcher {
12
13
  constructor(formControl) {
13
14
  this.formControl = formControl;
@@ -30,7 +31,7 @@ export class SdAutocomplete {
30
31
  _name.set(this, uuid.v4());
31
32
  this.loading = false;
32
33
  this.inputControl = new FormControl();
33
- this.formControl = new FormControl();
34
+ this.formControl = new SdFormControl();
34
35
  this.matcher = new SdAutocompleteErrotStateMatcher(this.formControl);
35
36
  _form.set(this, void 0);
36
37
  this.limit = 100;
@@ -63,6 +64,10 @@ export class SdAutocomplete {
63
64
  this.sdChange.emit(item);
64
65
  }
65
66
  }
67
+ this.inputControl.setValue('', {
68
+ emitEvent: false
69
+ });
70
+ // this.ref.markForCheck();
66
71
  // this.inputControl.setValue('', {
67
72
  // emitEvent: false
68
73
  // });
@@ -162,7 +167,11 @@ export class SdAutocomplete {
162
167
  this.disableErrorMessage = (val === '') || val;
163
168
  val = (val === '') || val;
164
169
  }
165
- ngOnInit() { }
170
+ ngOnInit() {
171
+ __classPrivateFieldGet(this, _subscription).add(this.formControl.touchedChanges.subscribe(() => {
172
+ this.ref.markForCheck();
173
+ }));
174
+ }
166
175
  ngAfterViewInit() {
167
176
  var _a;
168
177
  __classPrivateFieldGet(this, _subscription).add(this.formControl.statusChanges.subscribe(() => this.ref.markForCheck()));
@@ -253,4 +262,4 @@ SdAutocomplete.propDecorators = {
253
262
  required: [{ type: Input }],
254
263
  _disableErrorMessage: [{ type: Input, args: ['disableErrorMessage',] }]
255
264
  };
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2F1dG9jb21wbGV0ZS8iLCJzb3VyY2VzIjpbInNyYy9saWIvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUlaLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osdUJBQXVCLEVBQ3hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBa0MsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWlDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEcsT0FBTyxFQUF3QixZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEUsTUFBTSwrQkFBK0I7SUFDbkMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFBSSxDQUFDO0lBQ2pELFlBQVksQ0FBQyxPQUEyQixFQUFFLElBQXdDOztRQUNoRixNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMzQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsT0FBTyxLQUFJLENBQUMsT0FBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxLQUFLLFlBQUksSUFBSSxDQUFDLFdBQVcsMENBQUUsT0FBTyxDQUFBLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNoSCxDQUFDO0NBQ0Y7QUFRRCxNQUFNLE9BQU8sY0FBYztJQThGekIsWUFDVSxHQUFzQixFQUN0QixjQUFnQztRQURoQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7UUE5RjFDLE9BQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3JCLHlCQUF3QjtRQUN4QixpQkFBMkQsRUFBRSxFQUFDO1FBQzlELHdCQUF1QixFQUFFLEVBQUM7UUFDMUIsaUJBQVMsR0FBRyxFQUFDLENBQUMseUZBQXlGO1FBQ3ZHLGdCQUFRLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBQztRQUNsQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGlCQUFZLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNqQyxnQkFBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEMsWUFBTyxHQUFHLElBQUksK0JBQStCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBZWhFLHdCQUFpQjtRQTZCUixVQUFLLEdBQUcsR0FBRyxDQUFDO1FBV1gsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDNUIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBV3hDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFTbkIsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBSzVCLHdCQUFnQixJQUFJLFlBQVksRUFBRSxFQUFDO1FBOERuQyxxQkFBYSxDQUFPLFVBQWtCLEVBQUUsS0FBOEMsRUFBRSxFQUFFO1lBQ3hGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLE9BQU8sTUFBTSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDbkUsNEJBQTRCO1lBQzVCLGdDQUFnQztRQUNsQyxDQUFDLENBQUEsRUFBQTtRQUVELGFBQVEsR0FBRyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ3ZCLElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxFQUFFO29CQUM1RCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRTt3QkFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDMUI7aUJBQ0Y7cUJBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQy9DLE1BQU0sR0FBRyxHQUFHLENBQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFHLElBQUksQ0FBQyxVQUFVLE1BQUssSUFBSSxDQUFDO29CQUM1QyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLLEdBQUcsRUFBRTt3QkFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDMUI7aUJBQ0Y7Z0JBQ0QsbUNBQW1DO2dCQUNuQyxxQkFBcUI7Z0JBQ3JCLE1BQU07YUFDUDtRQUNILENBQUMsQ0FBQTtRQUVELFlBQU8sR0FBRyxHQUFHLEVBQUU7WUFDYixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMvQiw4Q0FBOEM7UUFDaEQsQ0FBQyxDQUFBO1FBRUQsV0FBTSxHQUFHLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRTtnQkFDN0IsU0FBUyxFQUFFLEtBQUs7YUFDakIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFBO1FBRUQsVUFBSyxHQUFHLENBQUMsTUFBWSxFQUFFLEVBQUU7O1lBQ3ZCLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxlQUFlLEdBQUc7WUFDMUIsTUFBQSxJQUFJLENBQUMsWUFBWSwwQ0FBRSxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ2hDLDBDQUFpQjtnQkFDZixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzFCO1FBQ0gsQ0FBQyxDQUFBO1FBRUQsYUFBUSxHQUFHLENBQUMsTUFBYSxFQUFFLEVBQUU7O1lBQzNCLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxlQUFlLEdBQUc7WUFDMUIsTUFBQSxJQUFJLENBQUMsbUJBQW1CLDBDQUFFLFVBQVUsR0FBRztZQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQTtRQUVELGVBQVUsR0FBRyxHQUFHLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQTtJQXBIRCxDQUFDO0lBckZELElBQUksUUFBUTs7UUFDVixJQUFJLHdDQUFlLHlDQUFnQixDQUFDLEVBQUU7WUFDcEMsT0FBTyxPQUFPLHNDQUFhLEtBQUssUUFBUSxDQUFDO1NBQzFDO1FBQ0QsK0ZBQXdCLE1BQU0sRUFBRTtZQUM5QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25CLE9BQU8sT0FBTyxDQUFDLDRDQUFtQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUM7YUFDckU7aUJBQU07Z0JBQ0wsT0FBTyxPQUFPLENBQUMsNENBQW1CLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDO2FBQ3BEO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFHRCxJQUFhLElBQUksQ0FBQyxHQUF1QjtRQUN2QyxJQUFJLEdBQUcsRUFBRTtZQUNQLElBQUksR0FBRyxZQUFZLE1BQU0sRUFBRTtnQkFDekIsdUJBQUEsSUFBSSxTQUFTLEdBQUcsQ0FBQyxJQUFJLEVBQUM7YUFDdkI7aUJBQU07Z0JBQ0wsdUJBQUEsSUFBSSxTQUFTLEdBQUcsRUFBQzthQUNsQjtTQUNGO0lBQ0gsQ0FBQztJQVFELElBQWEsS0FBSyxDQUFDLEtBQW9FO1FBQ3JGLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVix1QkFBQSxJQUFJLFVBQVUsRUFBRSxFQUFDO1NBQ2xCO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9CLHVCQUFBLElBQUksVUFBVSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxDQUFDLEVBQUM7U0FDaEU7YUFBTTtZQUNMLHVCQUFBLElBQUksVUFBVSxLQUFLLEVBQUM7U0FDckI7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFNRCxJQUFhLEtBQUssQ0FBQyxLQUFrQztRQUNuRCx1QkFBQSxJQUFJLFVBQVUsS0FBSyxFQUFDO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFRRCxXQUFXO0lBQ1gsSUFBYSxRQUFRLENBQUMsR0FBaUI7UUFDckMsR0FBRyxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUMxQixJQUFJLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDN0I7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsSUFBYSxRQUFRLENBQUMsR0FBaUI7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDdEMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDdkQ7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRUQsSUFBa0Msb0JBQW9CLENBQUMsR0FBaUI7UUFDdEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUMvQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDO0lBQzVCLENBQUM7SUFPRCxRQUFRLEtBQUssQ0FBQztJQUVkLGVBQWU7O1FBQ2IsNENBQW1CLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEcsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3RELFlBQVksQ0FBQyxPQUFPLHNDQUFhLEtBQUssVUFBVSxDQUFDLENBQUMsc0NBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRSwrREFBK0Q7UUFDL0QsU0FBUyxDQUFDLEdBQVMsRUFBRTtZQUNuQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDMUMsSUFBSSxPQUFPLHNDQUFhLEtBQUssVUFBVSxFQUFFO2dCQUN2QyxNQUFNLEtBQUssR0FBRyxNQUFNLDhDQUFBLElBQUksRUFBWSxHQUFHLHVDQUFjLENBQUM7Z0JBQ3RELHVCQUFBLElBQUksaUJBQWlCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFDO2dCQUN2RSxtREFBMEI7YUFDM0I7WUFDRCxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ3JELHVCQUFBLElBQUksaUJBQWlCLHFDQUFZLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxVQUFVLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzdDLE9BQU8sb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtZQUMzSCxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFDO1lBQy9DLG1EQUEwQjtRQUM1QixDQUFDLENBQUEsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUMxRCxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ2IsK0RBQStEO1FBQy9ELFNBQVMsQ0FBQyxHQUFTLEVBQUU7WUFDbkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDbkMsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDcEIsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO2dCQUN0QixNQUFNLEtBQUssdUNBQWMsQ0FBQztnQkFDMUIsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssVUFBVSxFQUFFO29CQUNqQyxZQUFZLEdBQUcsTUFBTSw4Q0FBQSxJQUFJLEVBQVksR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2lCQUNsRDtxQkFBTTtvQkFDTCxZQUFZLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztpQkFDNUI7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ3hDLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO29CQUNoRSxPQUFPLENBQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFHLElBQUksQ0FBQyxZQUFZLE1BQUssR0FBRyxDQUFDO2lCQUN6QztxQkFBTTtvQkFDTCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDO2lCQUNqRDthQUNGO2lCQUFNO2dCQUNMLE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQzthQUM3QztRQUNILENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQztRQUNOLG1GQUFZLFVBQVUsc0NBQWEsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNyRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXOztRQUNULDRDQUFtQixXQUFXLEVBQUUsQ0FBQztRQUNqQyxtRkFBWSxhQUFhLHNDQUFhO0lBQ3hDLENBQUM7Ozs7WUEvSkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLDh6RUFBNEM7Z0JBRTVDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBM0JDLGlCQUFpQjtZQVNWLGdCQUFnQjs7O2tDQW9CdEIsU0FBUyxTQUFDLHNCQUFzQixFQUFFLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFO21CQXdCbEUsS0FBSzttQkFFTCxLQUFLO29CQVNMLEtBQUs7eUJBQ0wsS0FBSzsyQkFDTCxLQUFLOzBCQUNMLEtBQUs7d0JBQ0wsS0FBSzs0QkFDTCxLQUFLO29CQUVMLEtBQUs7b0JBWUwsS0FBSztvQkFJTCxLQUFLO3FDQUtMLFlBQVksU0FBQyxpQ0FBaUM7eUJBQzlDLEtBQUs7cUJBQ0wsTUFBTTswQkFDTixNQUFNO3VCQUNOLE1BQU07dUJBR04sS0FBSzt1QkFTTCxLQUFLO21DQVNMLEtBQUssU0FBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPbkluaXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCBkZWJvdW5jZVRpbWUsIGRlYm91bmNlLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBOZ0Zvcm0sIFZhbGlkYXRvcnMsIEZvcm1Hcm91cERpcmVjdGl2ZSwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBpbnRlcnZhbCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNkVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBTZEF1dG9jb21wbGV0ZURpc3BsYXlEZWZEaXJlY3RpdmUgfSBmcm9tICcuL2F1dG9jb21wbGV0ZS1kaXNwbGF5LWRlZi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuXHJcbmNsYXNzIFNkQXV0b2NvbXBsZXRlRXJyb3RTdGF0ZU1hdGNoZXIgaW1wbGVtZW50cyBFcnJvclN0YXRlTWF0Y2hlciB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpIHsgfVxyXG4gIGlzRXJyb3JTdGF0ZShjb250cm9sOiBGb3JtQ29udHJvbCB8IG51bGwsIGZvcm06IEZvcm1Hcm91cERpcmVjdGl2ZSB8IE5nRm9ybSB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGlzU3VibWl0dGVkID0gZm9ybSAmJiBmb3JtLnN1Ym1pdHRlZDtcclxuICAgIHJldHVybiAhISh0aGlzLmZvcm1Db250cm9sPy5pbnZhbGlkICYmICh0aGlzLmZvcm1Db250cm9sPy5kaXJ0eSB8fCB0aGlzLmZvcm1Db250cm9sPy50b3VjaGVkIHx8IGlzU3VibWl0dGVkKSk7XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWF1dG9jb21wbGV0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkQXV0b2NvbXBsZXRlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciwgeyByZWFkOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0pIGF1dG9jb21wbGV0ZVRyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XHJcbiAgaWQgPSBgSSR7dXVpZC52NCgpfWA7XHJcbiAgI21vZGVsOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgI2l0ZW1zOiBhbnlbXSB8ICgoc2VhcmNoVGV4dDogc3RyaW5nKSA9PiBQcm9taXNlPGFueVtdPikgPSBbXTtcclxuICAjY3VycmVudEl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gICNkZWxheSA9IDUwMDsgLy8gU2F1IGtob+G6o25nIHRo4budaSBnaWFuIGRlbGF5IG7hur91IGtow7RuZyBjw7MgdGhheSDEkeG7lWkgdGjDrCB0aMOsIG3hu5tpIGLhuq90IMSR4bqndSB0aOG7sWMgaGnhu4duIGfhu41pIGjDoG1cclxuICAjbmFtZSA9IHV1aWQudjQoKTtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgaW5wdXRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgZm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBtYXRjaGVyID0gbmV3IFNkQXV0b2NvbXBsZXRlRXJyb3RTdGF0ZU1hdGNoZXIodGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgZ2V0IGlzTnVtYmVyKCkge1xyXG4gICAgaWYgKHRoaXMuI21vZGVsIHx8IHRoaXMuI21vZGVsID09PSAwKSB7XHJcbiAgICAgIHJldHVybiB0eXBlb2YgKHRoaXMuI21vZGVsKSA9PT0gJ251bWJlcic7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy4jY3VycmVudEl0ZW1zPy5sZW5ndGgpIHtcclxuICAgICAgaWYgKHRoaXMudmFsdWVGaWVsZCkge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgKHRoaXMuI2N1cnJlbnRJdGVtc1swXVt0aGlzLnZhbHVlRmllbGRdKSA9PT0gJ251bWJlcic7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiAodGhpcy4jY3VycmVudEl0ZW1zWzBdKSA9PT0gJ251bWJlcic7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdsZyc7XHJcbiAgI2Zvcm06IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBzZXQgZm9ybSh2YWw6IE5nRm9ybSB8IEZvcm1Hcm91cCkge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICBpZiAodmFsIGluc3RhbmNlb2YgTmdGb3JtKSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbC5mb3JtO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSB2YWx1ZUZpZWxkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGlzcGxheUZpZWxkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBASW5wdXQoKSBsZWZ0TGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBsYWJlbE1pbldpZHRoOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhpdGVtczogdW5kZWZpbmVkIHwgYW55W10gfCAoKHNlYXJjaFRleHQ/OiBzdHJpbmcpID0+IFByb21pc2U8YW55W10+KSkge1xyXG4gICAgaWYgKCFpdGVtcykge1xyXG4gICAgICB0aGlzLiNpdGVtcyA9IFtdO1xyXG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xyXG4gICAgICB0aGlzLiNpdGVtcyA9IGl0ZW1zLmZpbHRlcihlID0+IGUgIT09IG51bGwgJiYgZSAhPT0gdW5kZWZpbmVkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zID0gaXRlbXM7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMuaW5wdXRDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGxpbWl0ID0gMTAwO1xyXG5cclxuICBmaWx0ZXJlZEl0ZW1zOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBjb250cm9sUGxhY2VIb2xkZXI6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVtYmVyPjtcclxuICBASW5wdXQoKSBzZXQgbW9kZWwodmFsdWU6IHVuZGVmaW5lZCB8IG51bWJlciB8IHN0cmluZykge1xyXG4gICAgdGhpcy4jbW9kZWwgPSB2YWx1ZTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgQENvbnRlbnRDaGlsZChTZEF1dG9jb21wbGV0ZURpc3BsYXlEZWZEaXJlY3RpdmUpIGF1dG9jb21wbGV0ZURpc3BsYXlEZWY6IFNkQXV0b2NvbXBsZXRlRGlzcGxheURlZkRpcmVjdGl2ZTtcclxuICBASW5wdXQoKSBhY3Rpb25JY29uOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIGFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvLyBPcHRpb25hbFxyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5pbnB1dENvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbnB1dENvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGlzUmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXQgcmVxdWlyZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuaXNSZXF1aXJlZCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICBpZiAodGhpcy5pc1JlcXVpcmVkKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZGlzYWJsZUVycm9yTWVzc2FnZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnZGlzYWJsZUVycm9yTWVzc2FnZScpIHNldCBfZGlzYWJsZUVycm9yTWVzc2FnZSh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5kaXNhYmxlRXJyb3JNZXNzYWdlID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgfVxyXG4gICNzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBTZFV0aWxpdHlTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHsgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuZm9ybUNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZWYubWFya0ZvckNoZWNrKCkpKTtcclxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMuaW5wdXRDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUodHlwZW9mICh0aGlzLiNpdGVtcykgPT09ICdmdW5jdGlvbicgPyB0aGlzLiNkZWxheSA6IDApLFxyXG4gICAgICAvLyBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBEw7luZyBz4bq9IGfDonkgcmEgYnVnIGtoaSBpdGVtcyBjaGFuZ2VzXHJcbiAgICAgIHN3aXRjaE1hcChhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsID0gdGhpcy5pbnB1dENvbnRyb2wudmFsdWUgfHwgJyc7XHJcbiAgICAgICAgaWYgKHR5cGVvZiAodGhpcy4jaXRlbXMpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICBjb25zdCBpdGVtcyA9IGF3YWl0IHRoaXMuI2xvYWRJdGVtcyh2YWwsIHRoaXMuI2l0ZW1zKTtcclxuICAgICAgICAgIHRoaXMuI2N1cnJlbnRJdGVtcyA9IGl0ZW1zLmZpbHRlcigoaXRlbSwgaW5kZXgpID0+IGluZGV4IDwgdGhpcy5saW1pdCk7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy4jY3VycmVudEl0ZW1zO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB7IGNoYW5nZUFsaWFzTG93ZXJDYXNlIH0gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlO1xyXG4gICAgICAgIHRoaXMuI2N1cnJlbnRJdGVtcyA9IHRoaXMuI2l0ZW1zLmZpbHRlcihpdGVtID0+IHtcclxuICAgICAgICAgIGNvbnN0IHZhbHVlID0gaXRlbVt0aGlzLnZhbHVlRmllbGRdO1xyXG4gICAgICAgICAgY29uc3QgZGlzcGxheSA9IGl0ZW1bdGhpcy5kaXNwbGF5RmllbGRdO1xyXG4gICAgICAgICAgY29uc3Qgc2VhcmNoVGV4dCA9IGNoYW5nZUFsaWFzTG93ZXJDYXNlKHZhbCk7XHJcbiAgICAgICAgICByZXR1cm4gY2hhbmdlQWxpYXNMb3dlckNhc2UodmFsdWUpLmluZGV4T2Yoc2VhcmNoVGV4dCkgIT09IC0xIHx8IGNoYW5nZUFsaWFzTG93ZXJDYXNlKGRpc3BsYXkpLmluZGV4T2Yoc2VhcmNoVGV4dCkgIT09IC0xXHJcbiAgICAgICAgfSkuZmlsdGVyKChpdGVtLCBpbmRleCkgPT4gaW5kZXggPCB0aGlzLmxpbWl0KTtcclxuICAgICAgICByZXR1cm4gdGhpcy4jY3VycmVudEl0ZW1zO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIHRoaXMuY29udHJvbFBsYWNlSG9sZGVyID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgc3RhcnRXaXRoKCcnKSxcclxuICAgICAgLy8gZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgRMO5bmcgc+G6vSBnw6J5IHJhIGJ1ZyBraGkgaXRlbXMgY2hhbmdlc1xyXG4gICAgICBzd2l0Y2hNYXAoYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhbCA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU7XHJcbiAgICAgICAgaWYgKHZhbCB8fCB2YWwgPT09IDApIHtcclxuICAgICAgICAgIGxldCBjdXJyZW50SXRlbXMgPSBbXTtcclxuICAgICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy4jaXRlbXM7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIChpdGVtcykgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgY3VycmVudEl0ZW1zID0gYXdhaXQgdGhpcy4jbG9hZEl0ZW1zKHZhbCwgaXRlbXMpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY3VycmVudEl0ZW1zID0gaXRlbXMgfHwgW107XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy52YWx1ZUZpZWxkICYmIHRoaXMuZGlzcGxheUZpZWxkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBjdXJyZW50SXRlbXMuZmluZChlID0+IGVbdGhpcy52YWx1ZUZpZWxkXSA9PT0gdmFsKTtcclxuICAgICAgICAgICAgcmV0dXJuIGl0ZW0/Llt0aGlzLmRpc3BsYXlGaWVsZF0gfHwgdmFsO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRJdGVtcy5maW5kKGUgPT4gZSA9PT0gdmFsKSB8fCB2YWw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyIHx8IHRoaXMubGFiZWwgfHwgJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSk7XHJcbiAgICB0aGlzLiNmb3JtPy5hZGRDb250cm9sKHRoaXMuI25hbWUsIHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuI2Zvcm0/LnJlbW92ZUNvbnRyb2wodGhpcy4jbmFtZSk7XHJcbiAgfVxyXG5cclxuICAjbG9hZEl0ZW1zID0gYXN5bmMgKHNlYXJjaFRleHQ6IHN0cmluZywgaXRlbXM6IChzZWFyY2hUZXh0Pzogc3RyaW5nKSA9PiBQcm9taXNlPGFueVtdPikgPT4ge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHJldHVybiBhd2FpdCBpdGVtcyhzZWFyY2hUZXh0KS5maW5hbGx5KCgpID0+IHRoaXMubG9hZGluZyA9IGZhbHNlKTtcclxuICAgIC8vIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIC8vIHJldHVybiB0aGlzLiNwcmV2aW91c1Jlc3VsdHM7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdCA9IChpdGVtOiBhbnkpID0+IHtcclxuICAgIGlmIChpdGVtKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgKGl0ZW0pID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgKGl0ZW0pID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlICE9PSBpdGVtKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGl0ZW0pO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlRmllbGQgJiYgdGhpcy5kaXNwbGF5RmllbGQpIHtcclxuICAgICAgICBjb25zdCB2YWwgPSBpdGVtPy5bdGhpcy52YWx1ZUZpZWxkXSB8fCBudWxsO1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlICE9PSB2YWwpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsKTtcclxuICAgICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh2YWwpO1xyXG4gICAgICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAvLyB0aGlzLmlucHV0Q29udHJvbC5zZXRWYWx1ZSgnJywge1xyXG4gICAgICAvLyAgIGVtaXRFdmVudDogZmFsc2VcclxuICAgICAgLy8gfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pbnB1dENvbnRyb2wuc2V0VmFsdWUoJycpO1xyXG4gICAgLy8gdGhpcy5pbnB1dENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pbnB1dENvbnRyb2wuc2V0VmFsdWUoJycsIHtcclxuICAgICAgZW1pdEV2ZW50OiBmYWxzZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjbGVhciA9ICgkZXZlbnQ/OiBhbnkpID0+IHtcclxuICAgICRldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbD8uc2V0VmFsdWUoJycpO1xyXG4gICAgaWYgKHRoaXMuI21vZGVsKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdChudWxsKTtcclxuICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25BY3Rpb24gPSAoJGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgJGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlcj8uY2xvc2VQYW5lbCgpO1xyXG4gICAgdGhpcy5hY3Rpb24uZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcmVWYWxpZGF0ZSA9ICgpID0+IHtcclxuICAgIHRoaXMuaW5wdXRDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
265
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2F1dG9jb21wbGV0ZS8iLCJzb3VyY2VzIjpbInNyYy9saWIvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUlaLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osdUJBQXVCLEVBQ3hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBa0MsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWlDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEcsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsTUFBTSwrQkFBK0I7SUFDbkMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFBSSxDQUFDO0lBQ2pELFlBQVksQ0FBQyxPQUEyQixFQUFFLElBQXdDOztRQUNoRixNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMzQyxPQUFPLENBQUMsQ0FBQyxDQUFD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LE1BQU07MEJBQ04sTUFBTTt1QkFDTixNQUFNO3VCQUdOLEtBQUs7dUJBU0wsS0FBSzttQ0FTTCxLQUFLLFNBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBzdGFydFdpdGgsIHN3aXRjaE1hcCwgZGVib3VuY2VUaW1lLCBkZWJvdW5jZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgTmdGb3JtLCBWYWxpZGF0b3JzLCBGb3JtR3JvdXBEaXJlY3RpdmUsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNkVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBTZEF1dG9jb21wbGV0ZURpc3BsYXlEZWZEaXJlY3RpdmUgfSBmcm9tICcuL2F1dG9jb21wbGV0ZS1kaXNwbGF5LWRlZi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgU2RGb3JtQ29udHJvbCB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY29tbW9uJztcclxuXHJcbmNsYXNzIFNkQXV0b2NvbXBsZXRlRXJyb3RTdGF0ZU1hdGNoZXIgaW1wbGVtZW50cyBFcnJvclN0YXRlTWF0Y2hlciB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpIHsgfVxyXG4gIGlzRXJyb3JTdGF0ZShjb250cm9sOiBGb3JtQ29udHJvbCB8IG51bGwsIGZvcm06IEZvcm1Hcm91cERpcmVjdGl2ZSB8IE5nRm9ybSB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGlzU3VibWl0dGVkID0gZm9ybSAmJiBmb3JtLnN1Ym1pdHRlZDtcclxuICAgIHJldHVybiAhISh0aGlzLmZvcm1Db250cm9sPy5pbnZhbGlkICYmICh0aGlzLmZvcm1Db250cm9sPy5kaXJ0eSB8fCB0aGlzLmZvcm1Db250cm9sPy50b3VjaGVkIHx8IGlzU3VibWl0dGVkKSk7XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWF1dG9jb21wbGV0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkQXV0b2NvbXBsZXRlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciwgeyByZWFkOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0pIGF1dG9jb21wbGV0ZVRyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XHJcbiAgaWQgPSBgSSR7dXVpZC52NCgpfWA7XHJcbiAgI21vZGVsOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgI2l0ZW1zOiBhbnlbXSB8ICgoc2VhcmNoVGV4dDogc3RyaW5nKSA9PiBQcm9taXNlPGFueVtdPikgPSBbXTtcclxuICAjY3VycmVudEl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gICNkZWxheSA9IDUwMDsgLy8gU2F1IGtob+G6o25nIHRo4budaSBnaWFuIGRlbGF5IG7hur91IGtow7RuZyBjw7MgdGhheSDEkeG7lWkgdGjDrCB0aMOsIG3hu5tpIGLhuq90IMSR4bqndSB0aOG7sWMgaGnhu4duIGfhu41pIGjDoG1cclxuICAjbmFtZSA9IHV1aWQudjQoKTtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgaW5wdXRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgZm9ybUNvbnRyb2wgPSBuZXcgU2RGb3JtQ29udHJvbCgpO1xyXG4gIG1hdGNoZXIgPSBuZXcgU2RBdXRvY29tcGxldGVFcnJvdFN0YXRlTWF0Y2hlcih0aGlzLmZvcm1Db250cm9sKTtcclxuICBnZXQgaXNOdW1iZXIoKSB7XHJcbiAgICBpZiAodGhpcy4jbW9kZWwgfHwgdGhpcy4jbW9kZWwgPT09IDApIHtcclxuICAgICAgcmV0dXJuIHR5cGVvZiAodGhpcy4jbW9kZWwpID09PSAnbnVtYmVyJztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLiNjdXJyZW50SXRlbXM/Lmxlbmd0aCkge1xyXG4gICAgICBpZiAodGhpcy52YWx1ZUZpZWxkKSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiAodGhpcy4jY3VycmVudEl0ZW1zWzBdW3RoaXMudmFsdWVGaWVsZF0pID09PSAnbnVtYmVyJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mICh0aGlzLiNjdXJyZW50SXRlbXNbMF0pID09PSAnbnVtYmVyJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBASW5wdXQoKSBzaXplOiAnc20nIHwgJ2xnJztcclxuICAjZm9ybTogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIHNldCBmb3JtKHZhbDogTmdGb3JtIHwgRm9ybUdyb3VwKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIGlmICh2YWwgaW5zdGFuY2VvZiBOZ0Zvcm0pIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsLmZvcm07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHZhbHVlRmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBkaXNwbGF5RmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxlZnRMYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxhYmVsTWluV2lkdGg6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgc2V0IGl0ZW1zKGl0ZW1zOiB1bmRlZmluZWQgfCBhbnlbXSB8ICgoc2VhcmNoVGV4dD86IHN0cmluZykgPT4gUHJvbWlzZTxhbnlbXT4pKSB7XHJcbiAgICBpZiAoIWl0ZW1zKSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zID0gW107XHJcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoaXRlbXMpKSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zID0gaXRlbXMuZmlsdGVyKGUgPT4gZSAhPT0gbnVsbCAmJiBlICE9PSB1bmRlZmluZWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy4jaXRlbXMgPSBpdGVtcztcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgdGhpcy5pbnB1dENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgbGltaXQgPSAxMDA7XHJcblxyXG4gIGZpbHRlcmVkSXRlbXM6IE9ic2VydmFibGU8YW55W10+O1xyXG4gIGNvbnRyb2xQbGFjZUhvbGRlcjogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudW1iZXI+O1xyXG4gIEBJbnB1dCgpIHNldCBtb2RlbCh2YWx1ZTogdW5kZWZpbmVkIHwgbnVtYmVyIHwgc3RyaW5nKSB7XHJcbiAgICB0aGlzLiNtb2RlbCA9IHZhbHVlO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBAQ29udGVudENoaWxkKFNkQXV0b2NvbXBsZXRlRGlzcGxheURlZkRpcmVjdGl2ZSkgYXV0b2NvbXBsZXRlRGlzcGxheURlZjogU2RBdXRvY29tcGxldGVEaXNwbGF5RGVmRGlyZWN0aXZlO1xyXG4gIEBJbnB1dCgpIGFjdGlvbkljb246IHN0cmluZztcclxuICBAT3V0cHV0KCkgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8vIE9wdGlvbmFsXHJcbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB2YWwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLmlucHV0Q29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlucHV0Q29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcbiAgaXNSZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCByZXF1aXJlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5pc1JlcXVpcmVkID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIGlmICh0aGlzLmlzUmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBkaXNhYmxlRXJyb3JNZXNzYWdlID0gZmFsc2U7XHJcbiAgQElucHV0KCdkaXNhYmxlRXJyb3JNZXNzYWdlJykgc2V0IF9kaXNhYmxlRXJyb3JNZXNzYWdlKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmRpc2FibGVFcnJvck1lc3NhZ2UgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgdXRpbGl0eVNlcnZpY2U6IFNkVXRpbGl0eVNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkgeyBcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5mb3JtQ29udHJvbC50b3VjaGVkQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5mb3JtQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKSkpO1xyXG4gICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5pbnB1dENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXHJcbiAgICAgIGRlYm91bmNlVGltZSh0eXBlb2YgKHRoaXMuI2l0ZW1zKSA9PT0gJ2Z1bmN0aW9uJyA/IHRoaXMuI2RlbGF5IDogMCksXHJcbiAgICAgIC8vIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIETDuW5nIHPhur0gZ8OieSByYSBidWcga2hpIGl0ZW1zIGNoYW5nZXNcclxuICAgICAgc3dpdGNoTWFwKGFzeW5jICgpID0+IHtcclxuICAgICAgICBjb25zdCB2YWwgPSB0aGlzLmlucHV0Q29udHJvbC52YWx1ZSB8fCAnJztcclxuICAgICAgICBpZiAodHlwZW9mICh0aGlzLiNpdGVtcykgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW1zID0gYXdhaXQgdGhpcy4jbG9hZEl0ZW1zKHZhbCwgdGhpcy4jaXRlbXMpO1xyXG4gICAgICAgICAgdGhpcy4jY3VycmVudEl0ZW1zID0gaXRlbXMuZmlsdGVyKChpdGVtLCBpbmRleCkgPT4gaW5kZXggPCB0aGlzLmxpbWl0KTtcclxuICAgICAgICAgIHJldHVybiB0aGlzLiNjdXJyZW50SXRlbXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHsgY2hhbmdlQWxpYXNMb3dlckNhc2UgfSA9IHRoaXMudXRpbGl0eVNlcnZpY2U7XHJcbiAgICAgICAgdGhpcy4jY3VycmVudEl0ZW1zID0gdGhpcy4jaXRlbXMuZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBpdGVtW3RoaXMudmFsdWVGaWVsZF07XHJcbiAgICAgICAgICBjb25zdCBkaXNwbGF5ID0gaXRlbVt0aGlzLmRpc3BsYXlGaWVsZF07XHJcbiAgICAgICAgICBjb25zdCBzZWFyY2hUZXh0ID0gY2hhbmdlQWxpYXNMb3dlckNhc2UodmFsKTtcclxuICAgICAgICAgIHJldHVybiBjaGFuZ2VBbGlhc0xvd2VyQ2FzZSh2YWx1ZSkuaW5kZXhPZihzZWFyY2hUZXh0KSAhPT0gLTEgfHwgY2hhbmdlQWxpYXNMb3dlckNhc2UoZGlzcGxheSkuaW5kZXhPZihzZWFyY2hUZXh0KSAhPT0gLTFcclxuICAgICAgICB9KS5maWx0ZXIoKGl0ZW0sIGluZGV4KSA9PiBpbmRleCA8IHRoaXMubGltaXQpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNjdXJyZW50SXRlbXM7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy5jb250cm9sUGxhY2VIb2xkZXIgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICBzdGFydFdpdGgoJycpLFxyXG4gICAgICAvLyBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBEw7luZyBz4bq9IGfDonkgcmEgYnVnIGtoaSBpdGVtcyBjaGFuZ2VzXHJcbiAgICAgIHN3aXRjaE1hcChhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZTtcclxuICAgICAgICBpZiAodmFsIHx8IHZhbCA9PT0gMCkge1xyXG4gICAgICAgICAgbGV0IGN1cnJlbnRJdGVtcyA9IFtdO1xyXG4gICAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLiNpdGVtcztcclxuICAgICAgICAgIGlmICh0eXBlb2YgKGl0ZW1zKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICBjdXJyZW50SXRlbXMgPSBhd2FpdCB0aGlzLiNsb2FkSXRlbXModmFsLCBpdGVtcyk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjdXJyZW50SXRlbXMgPSBpdGVtcyB8fCBbXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLnZhbHVlRmllbGQgJiYgdGhpcy5kaXNwbGF5RmllbGQpIHtcclxuICAgICAgICAgICAgY29uc3QgaXRlbSA9IGN1cnJlbnRJdGVtcy5maW5kKGUgPT4gZVt0aGlzLnZhbHVlRmllbGRdID09PSB2YWwpO1xyXG4gICAgICAgICAgICByZXR1cm4gaXRlbT8uW3RoaXMuZGlzcGxheUZpZWxkXSB8fCB2YWw7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gY3VycmVudEl0ZW1zLmZpbmQoZSA9PiBlID09PSB2YWwpIHx8IHZhbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMucGxhY2Vob2xkZXIgfHwgdGhpcy5sYWJlbCB8fCAnJztcclxuICAgICAgICB9XHJcbiAgICAgIH0pKTtcclxuICAgIHRoaXMuI2Zvcm0/LmFkZENvbnRyb2wodGhpcy4jbmFtZSwgdGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy4jZm9ybT8ucmVtb3ZlQ29udHJvbCh0aGlzLiNuYW1lKTtcclxuICB9XHJcblxyXG4gICNsb2FkSXRlbXMgPSBhc3luYyAoc2VhcmNoVGV4dDogc3RyaW5nLCBpdGVtczogKHNlYXJjaFRleHQ/OiBzdHJpbmcpID0+IFByb21pc2U8YW55W10+KSA9PiB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgcmV0dXJuIGF3YWl0IGl0ZW1zKHNlYXJjaFRleHQpLmZpbmFsbHkoKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpO1xyXG4gICAgLy8gdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgLy8gcmV0dXJuIHRoaXMuI3ByZXZpb3VzUmVzdWx0cztcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0ID0gKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgaWYgKGl0ZW0pIHtcclxuICAgICAgaWYgKHR5cGVvZiAoaXRlbSkgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiAoaXRlbSkgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgIT09IGl0ZW0pIHtcclxuICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoaXRlbSk7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoaXRlbSk7XHJcbiAgICAgICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQoaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMudmFsdWVGaWVsZCAmJiB0aGlzLmRpc3BsYXlGaWVsZCkge1xyXG4gICAgICAgIGNvbnN0IHZhbCA9IGl0ZW0/Llt0aGlzLnZhbHVlRmllbGRdIHx8IG51bGw7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgIT09IHZhbCkge1xyXG4gICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWwpO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICAgICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQoaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLnNldFZhbHVlKCcnLCB7XHJcbiAgICAgICAgZW1pdEV2ZW50OiBmYWxzZVxyXG4gICAgICB9KTtcclxuICAgICAgLy8gdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIC8vIHRoaXMuaW5wdXRDb250cm9sLnNldFZhbHVlKCcnLCB7XHJcbiAgICAgIC8vICAgZW1pdEV2ZW50OiBmYWxzZVxyXG4gICAgICAvLyB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRm9jdXMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbC5zZXRWYWx1ZSgnJyk7XHJcbiAgICAvLyB0aGlzLmlucHV0Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBvbkJsdXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbC5zZXRWYWx1ZSgnJywge1xyXG4gICAgICBlbWl0RXZlbnQ6IGZhbHNlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsZWFyID0gKCRldmVudD86IGFueSkgPT4ge1xyXG4gICAgJGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuaW5wdXRDb250cm9sPy5zZXRWYWx1ZSgnJyk7XHJcbiAgICBpZiAodGhpcy4jbW9kZWwpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkFjdGlvbiA9ICgkZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAkZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyPy5jbG9zZVBhbmVsKCk7XHJcbiAgICB0aGlzLmFjdGlvbi5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICByZVZhbGlkYXRlID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pbnB1dENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './src/public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1L0Rlc2t0b3AvV29ya2luZy8xTUcvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9jb21tb24vIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvcHVibGljLWFwaSc7Il19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2QtYW5ndWxhci1jb3JlLWNvbW1vbi5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2NvbW1vbi8iLCJzb3VyY2VzIjpbInNkLWFuZ3VsYXItY29yZS1jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { FormControl } from '@angular/forms';
2
+ import { Subject } from 'rxjs';
3
+ export class SdFormControl extends FormControl {
4
+ constructor(formState, validator = null, asyncValidator = null) {
5
+ super(formState, validator, asyncValidator);
6
+ this.touchedChanges = new Subject();
7
+ }
8
+ markAsTouched({ onlySelf } = {}) {
9
+ super.markAsTouched({ onlySelf });
10
+ this.touchedChanges.next(true);
11
+ }
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2QtZm9ybS1jb250cm9sLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNS9EZXNrdG9wL1dvcmtpbmcvMU1HL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvY29tbW9uLyIsInNvdXJjZXMiOlsic3JjL2xpYi9tb2RlbHMvc2QtZm9ybS1jb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQWlDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixNQUFNLE9BQU8sYUFBYyxTQUFRLFdBQVc7SUFHNUMsWUFDRSxTQUFrQixFQUNsQixZQUF5QyxJQUFJLEVBQzdDLGlCQUF3RCxJQUFJO1FBRTVELEtBQUssQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBUDlDLG1CQUFjLEdBQXFCLElBQUksT0FBTyxFQUFXLENBQUM7SUFRMUQsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFFLFFBQVEsS0FBNkIsRUFBRTtRQUNyRCxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCwgQXN5bmNWYWxpZGF0b3JGbiwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuZXhwb3J0IGNsYXNzIFNkRm9ybUNvbnRyb2wgZXh0ZW5kcyBGb3JtQ29udHJvbCB7XHJcbiAgdG91Y2hlZENoYW5nZXM6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGZvcm1TdGF0ZT86IE9iamVjdCxcclxuICAgIHZhbGlkYXRvcjogVmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbltdID0gbnVsbCxcclxuICAgIGFzeW5jVmFsaWRhdG9yOiBBc3luY1ZhbGlkYXRvckZuIHwgQXN5bmNWYWxpZGF0b3JGbltdID0gbnVsbFxyXG4gICkge1xyXG4gICAgc3VwZXIoZm9ybVN0YXRlLCB2YWxpZGF0b3IsIGFzeW5jVmFsaWRhdG9yKTtcclxuICB9XHJcblxyXG4gIG1hcmtBc1RvdWNoZWQoeyBvbmx5U2VsZiB9OiB7IG9ubHlTZWxmPzogYm9vbGVhbiB9ID0ge30pOiB2b2lkIHtcclxuICAgIHN1cGVyLm1hcmtBc1RvdWNoZWQoeyBvbmx5U2VsZiB9KTtcclxuICAgIHRoaXMudG91Y2hlZENoYW5nZXMubmV4dCh0cnVlKTtcclxuICB9XHJcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './lib/models/sd-form-control';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2NvbW1vbi8iLCJzb3VyY2VzIjpbInNyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvc2QtZm9ybS1jb250cm9sJzsiXX0=