@sd-angular/core 1.3.242 → 1.3.244

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 (125) hide show
  1. package/autocomplete/sd-angular-core-autocomplete.metadata.json +1 -1
  2. package/bundles/sd-angular-core-autocomplete.umd.js +20 -21
  3. package/bundles/sd-angular-core-autocomplete.umd.js.map +1 -1
  4. package/bundles/sd-angular-core-autocomplete.umd.min.js +1 -15
  5. package/bundles/sd-angular-core-autocomplete.umd.min.js.map +1 -1
  6. package/bundles/sd-angular-core-date-full.umd.js +712 -0
  7. package/bundles/sd-angular-core-date-full.umd.js.map +1 -0
  8. package/bundles/sd-angular-core-date-full.umd.min.js +2 -0
  9. package/bundles/sd-angular-core-date-full.umd.min.js.map +1 -0
  10. package/bundles/sd-angular-core-date-time.umd.js +5 -6
  11. package/bundles/sd-angular-core-date-time.umd.js.map +1 -1
  12. package/bundles/sd-angular-core-date-time.umd.min.js +1 -1
  13. package/bundles/sd-angular-core-date-time.umd.min.js.map +1 -1
  14. package/bundles/sd-angular-core-date.umd.js +719 -0
  15. package/bundles/sd-angular-core-date.umd.js.map +1 -0
  16. package/bundles/sd-angular-core-date.umd.min.js +2 -0
  17. package/bundles/sd-angular-core-date.umd.min.js.map +1 -0
  18. package/bundles/sd-angular-core-export.umd.js +3 -1
  19. package/bundles/sd-angular-core-export.umd.js.map +1 -1
  20. package/bundles/sd-angular-core-export.umd.min.js +1 -1
  21. package/bundles/sd-angular-core-export.umd.min.js.map +1 -1
  22. package/bundles/sd-angular-core-form.umd.js +10 -4
  23. package/bundles/sd-angular-core-form.umd.js.map +1 -1
  24. package/bundles/sd-angular-core-form.umd.min.js +1 -1
  25. package/bundles/sd-angular-core-form.umd.min.js.map +1 -1
  26. package/bundles/sd-angular-core-input-number.umd.js +7 -10
  27. package/bundles/sd-angular-core-input-number.umd.js.map +1 -1
  28. package/bundles/sd-angular-core-input-number.umd.min.js +2 -2
  29. package/bundles/sd-angular-core-input-number.umd.min.js.map +1 -1
  30. package/bundles/sd-angular-core-month.umd.js +742 -0
  31. package/bundles/sd-angular-core-month.umd.js.map +1 -0
  32. package/bundles/sd-angular-core-month.umd.min.js +2 -0
  33. package/bundles/sd-angular-core-month.umd.min.js.map +1 -0
  34. package/bundles/sd-angular-core-table.umd.js +11 -3
  35. package/bundles/sd-angular-core-table.umd.js.map +1 -1
  36. package/bundles/sd-angular-core-table.umd.min.js +1 -1
  37. package/bundles/sd-angular-core-table.umd.min.js.map +1 -1
  38. package/bundles/sd-angular-core-upload-excel.umd.js +4 -4
  39. package/bundles/sd-angular-core-upload-excel.umd.js.map +1 -1
  40. package/bundles/sd-angular-core-upload-excel.umd.min.js +2 -2
  41. package/bundles/sd-angular-core-upload-excel.umd.min.js.map +1 -1
  42. package/bundles/sd-angular-core.umd.js +4 -4
  43. package/bundles/sd-angular-core.umd.min.js +1 -1
  44. package/bundles/sd-angular-core.umd.min.js.map +1 -1
  45. package/date/index.d.ts +1 -0
  46. package/date/package.json +12 -0
  47. package/date/sd-angular-core-date.d.ts +4 -0
  48. package/date/sd-angular-core-date.metadata.json +1 -0
  49. package/date/src/lib/date.component.d.ts +63 -0
  50. package/date/src/lib/date.module.d.ts +2 -0
  51. package/date/src/public-api.d.ts +2 -0
  52. package/date-full/index.d.ts +1 -0
  53. package/date-full/package.json +12 -0
  54. package/date-full/sd-angular-core-date-full.d.ts +4 -0
  55. package/date-full/sd-angular-core-date-full.metadata.json +1 -0
  56. package/date-full/src/lib/date-full.component.d.ts +64 -0
  57. package/date-full/src/lib/date-full.module.d.ts +2 -0
  58. package/date-full/src/public-api.d.ts +2 -0
  59. package/date-time/sd-angular-core-date-time.metadata.json +1 -1
  60. package/esm2015/autocomplete/src/lib/autocomplete.component.js +2 -2
  61. package/esm2015/autocomplete/src/lib/autocomplete.module.js +8 -10
  62. package/esm2015/date/index.js +2 -0
  63. package/esm2015/date/sd-angular-core-date.js +5 -0
  64. package/esm2015/date/src/lib/date.component.js +310 -0
  65. package/esm2015/date/src/lib/date.module.js +38 -0
  66. package/esm2015/date/src/public-api.js +3 -0
  67. package/esm2015/date-full/index.js +2 -0
  68. package/esm2015/date-full/sd-angular-core-date-full.js +5 -0
  69. package/esm2015/date-full/src/lib/date-full.component.js +303 -0
  70. package/esm2015/date-full/src/lib/date-full.module.js +40 -0
  71. package/esm2015/date-full/src/public-api.js +3 -0
  72. package/esm2015/date-time/src/lib/date-time.component.js +2 -2
  73. package/esm2015/date-time/src/lib/date-time.module.js +10 -12
  74. package/esm2015/export/src/lib/export.model.js +1 -1
  75. package/esm2015/export/src/lib/export.service.js +4 -2
  76. package/esm2015/form/src/lib/form.module.js +21 -12
  77. package/esm2015/input-number/src/lib/input-number.component.js +2 -2
  78. package/esm2015/input-number/src/lib/input-number.module.js +3 -7
  79. package/esm2015/month/index.js +2 -0
  80. package/esm2015/month/sd-angular-core-month.js +5 -0
  81. package/esm2015/month/src/lib/month.component.js +334 -0
  82. package/esm2015/month/src/lib/month.module.js +40 -0
  83. package/esm2015/month/src/public-api.js +3 -0
  84. package/esm2015/public-api.js +4 -1
  85. package/esm2015/table/src/lib/table.component.js +12 -4
  86. package/esm2015/upload-excel/src/lib/upload-excel.component.js +4 -4
  87. package/export/sd-angular-core-export.metadata.json +1 -1
  88. package/export/src/lib/export.model.d.ts +15 -34
  89. package/export/src/lib/export.service.d.ts +3 -3
  90. package/fesm2015/sd-angular-core-autocomplete.js +8 -10
  91. package/fesm2015/sd-angular-core-autocomplete.js.map +1 -1
  92. package/fesm2015/sd-angular-core-date-full.js +344 -0
  93. package/fesm2015/sd-angular-core-date-full.js.map +1 -0
  94. package/fesm2015/sd-angular-core-date-time.js +12 -14
  95. package/fesm2015/sd-angular-core-date-time.js.map +1 -1
  96. package/fesm2015/sd-angular-core-date.js +349 -0
  97. package/fesm2015/sd-angular-core-date.js.map +1 -0
  98. package/fesm2015/sd-angular-core-export.js +3 -1
  99. package/fesm2015/sd-angular-core-export.js.map +1 -1
  100. package/fesm2015/sd-angular-core-form.js +19 -10
  101. package/fesm2015/sd-angular-core-form.js.map +1 -1
  102. package/fesm2015/sd-angular-core-input-number.js +3 -7
  103. package/fesm2015/sd-angular-core-input-number.js.map +1 -1
  104. package/fesm2015/sd-angular-core-month.js +374 -0
  105. package/fesm2015/sd-angular-core-month.js.map +1 -0
  106. package/fesm2015/sd-angular-core-table.js +11 -3
  107. package/fesm2015/sd-angular-core-table.js.map +1 -1
  108. package/fesm2015/sd-angular-core-upload-excel.js +2 -2
  109. package/fesm2015/sd-angular-core-upload-excel.js.map +1 -1
  110. package/fesm2015/sd-angular-core.js +3 -0
  111. package/fesm2015/sd-angular-core.js.map +1 -1
  112. package/form/sd-angular-core-form.metadata.json +1 -1
  113. package/input-number/sd-angular-core-input-number.metadata.json +1 -1
  114. package/month/index.d.ts +1 -0
  115. package/month/package.json +12 -0
  116. package/month/sd-angular-core-month.d.ts +4 -0
  117. package/month/sd-angular-core-month.metadata.json +1 -0
  118. package/month/src/lib/month.component.d.ts +66 -0
  119. package/month/src/lib/month.module.d.ts +2 -0
  120. package/month/src/public-api.d.ts +2 -0
  121. package/package.json +1 -1
  122. package/public-api.d.ts +3 -0
  123. package/{sd-angular-core-1.3.242.tgz → sd-angular-core-1.3.244.tgz} +0 -0
  124. package/upload-excel/sd-angular-core-upload-excel.metadata.json +1 -1
  125. package/upload-excel/src/lib/upload-excel.component.d.ts +4 -4
@@ -3,10 +3,10 @@ import { Pipe, Injectable, EventEmitter, Component, ChangeDetectorRef, Input, Vi
3
3
  import { v4 } from 'uuid';
4
4
  import { SdNotifyService, SdNotifyModule } from '@sd-angular/core/notify';
5
5
  import { SdLoadingService } from '@sd-angular/core/loading';
6
- import { SdTranslateService, SdTranslateModule } from '@sd-angular/core/translate';
7
6
  import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';
8
- import { Subscription } from 'rxjs';
9
7
  import { SdExportService } from '@sd-angular/core/export';
8
+ import { SdTranslateService, SdTranslateModule } from '@sd-angular/core/translate';
9
+ import { Subscription } from 'rxjs';
10
10
  import { DecimalPipe, CommonModule } from '@angular/common';
11
11
  import { DeviceDetectorModule } from 'ngx-device-detector';
12
12
  import { SdButtonModule } from '@sd-angular/core/button';
@@ -1 +1 @@
1
- {"version":3,"file":"sd-angular-core-upload-excel.js","sources":["../../../../projects/sd-core/upload-excel/src/lib/upload-excel.model.ts","../../../../projects/sd-core/upload-excel/src/lib/pipes/columm-hidden.pipe.ts","../../../../projects/sd-core/upload-excel/src/lib/upload-excel.component.ts","../../../../projects/sd-core/upload-excel/src/lib/pipes/column-transform.pipe.ts","../../../../projects/sd-core/upload-excel/src/lib/upload-excel.module.ts","../../../../projects/sd-core/upload-excel/sd-angular-core-upload-excel.ts"],"sourcesContent":["interface Validation {\r\n idx: number;\r\n message: string;\r\n}\r\n\r\nexport interface SdUploadExcelOption<T = any> {\r\n title?: string;\r\n note?: string;\r\n fileName?: string;\r\n columns?: SdUploadExcelColumn<T>[];\r\n limit?: number;\r\n key?: string;\r\n sheets?: {\r\n name: string,\r\n items: any[] | (() => Promise<any[]>),\r\n fields: string[]\r\n }[];\r\n onAccept?: (items?: T[], successItems?: T[], errorItems?: T[], warningItems?: T[], file?: File) => void | Promise<void>;\r\n mappingItems?: (items: SdExcelItem<T>[]) => SdExcelItem<T>[] | Promise<SdExcelItem<T>[]>;\r\n errorValidation?: (items?: T[]) => Validation[] | Promise<Validation[]>;\r\n warningValidation?: (items?: T[]) => Validation[] | Promise<Validation[]>;\r\n}\r\n\r\nexport interface SdUploadExcelSheet {\r\n name: string,\r\n items: any[] | (() => Promise<any[]>),\r\n fields: string[]\r\n}\r\n\r\nexport type SdUploadExcelColumn<T = any> =\r\n SdUploadExcelColumnString<T> |\r\n SdUploadExcelColumnNumber<T> |\r\n SdUploadExcelColumnBool<T> |\r\n SdUploadExcelColumnDate<T> |\r\n SdUploadExcelColumnTime<T> |\r\n SdUploadExcelColumnDateTime<T> |\r\n SdUploadExcelColumnValues<T> |\r\n SdUploadExcelColumnStringArray<T>;\r\n\r\nexport interface SdUploadExcelBaseColumn<T = any> {\r\n field: string;\r\n title: string;\r\n required?: boolean;\r\n width?: string;\r\n description?: string;\r\n hidden?: boolean | (() => boolean);\r\n fontColor?: string;\r\n fill?: string;\r\n transform?: (rowData: T, value: any) => string | Promise<string>;\r\n errorValidation?: (rowData?: T, value?: any, idx?: number) => string | Promise<string>;\r\n warningValidation?: (rowData?: T, value?: any, idx?: number) => string | Promise<string>;\r\n}\r\n\r\nexport interface SdUploadExcelColumnString<T = any> extends SdUploadExcelBaseColumn<T> {\r\n type: 'string';\r\n defaultValue?: string;\r\n pattern?: string;\r\n minLength?: number;\r\n maxLength?: number;\r\n}\r\n\r\nexport interface SdUploadExcelColumnNumber<T = any> extends SdUploadExcelBaseColumn<T> {\r\n type: 'number';\r\n defaultValue?: number;\r\n minValue?: number;\r\n maxValue?: number;\r\n}\r\n\r\nexport interface SdUploadExcelColumnBool<T = any> extends SdUploadExcelBaseColumn<T> {\r\n type: 'bool';\r\n defaultValue?: boolean;\r\n parseToBool?: boolean;\r\n}\r\n\r\nexport interface SdUploadExcelColumnDate<T = any> extends SdUploadExcelBaseColumn<T> {\r\n type: 'date';\r\n format?: 'dd/MM/yyyy';\r\n defaultValue?: Date;\r\n minDate?: Date;\r\n maxDate?: Date;\r\n}\r\n\r\nexport interface SdUploadExcelColumnTime<T = any> extends SdUploadExcelBaseColumn<T> {\r\n type: 'time';\r\n format?: 'HH:mm' | 'HH:mm:ss';\r\n defaultValue?: Date;\r\n minDate?: Date;\r\n maxDate?: Date;\r\n}\r\n\r\nexport interface SdUploadExcelColumnDateTime<T = any> extends SdUploadExcelBaseColumn<T> {\r\n type: 'datetime';\r\n format?: 'dd/MM/yyyy HH:mm' | 'dd/MM/yyyy';\r\n defaultValue?: Date;\r\n minDate?: Date;\r\n maxDate?: Date;\r\n}\r\n\r\nexport interface SdUploadExcelColumnValues<T = any> extends SdUploadExcelBaseColumn<T> {\r\n type: 'values' | 'radio';\r\n defaultValue?: string | number;\r\n values: (string | number)[];\r\n checkValueInArray?: boolean;\r\n}\r\n\r\nexport interface SdUploadExcelColumnStringArray<T = any> extends SdUploadExcelBaseColumn<T> {\r\n type: 'array';\r\n divideString: string | ';';\r\n unitString: string | 'items';\r\n defaultValue?: string;\r\n minLength?: number;\r\n maxLength?: number;\r\n}\r\n\r\nexport interface SdUploadExcelValidation {\r\n error?: string;\r\n warning?: string;\r\n success?: string;\r\n data?: {\r\n [column: string]: {\r\n error?: string;\r\n warning?: string;\r\n }\r\n };\r\n}\r\n\r\nexport type SdExcelItem<T = any> = {\r\n data: T;\r\n sd?: {\r\n excelIndex?: number;\r\n origin?: T,\r\n validation?: SdUploadExcelValidation;\r\n }\r\n};\r\n\r\n// export type ExcelItem<T> = {\r\n// origin?: T;\r\n// excelIndex?: number;\r\n// validation: SdUploadExcelValidation;\r\n// } & T;\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\nimport { SdUploadExcelColumn } from '../upload-excel.model';\r\n@Pipe({\r\n name: 'columnHidden'\r\n})\r\n@Injectable()\r\nexport class SdColumnHiddenPipe implements PipeTransform {\r\n constructor() { }\r\n transform(column: SdUploadExcelColumn): boolean {\r\n if (column.hidden === undefined) {\r\n return true;\r\n }\r\n if (typeof (column.hidden) === 'boolean') {\r\n return !column.hidden;\r\n }\r\n if (typeof (column.hidden) === 'function') {\r\n return !column.hidden();\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Component, OnInit, Input, ViewChild, ChangeDetectorRef, OnDestroy, Output, EventEmitter } from '@angular/core';\r\nimport * as uuid from 'uuid';\r\n\r\nimport {\r\n SdNotifyService\r\n} from '@sd-angular/core/notify';\r\n\r\nimport {\r\n SdLoadingService\r\n} from '@sd-angular/core/loading';\r\n\r\nimport {\r\n SdTranslateService\r\n} from '@sd-angular/core/translate';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { Subscription } from 'rxjs';\r\nimport { SdModal } from '@sd-angular/core/modal';\r\nimport { SdExcelItem, SdUploadExcelOption, SdUploadExcelValidation } from './upload-excel.model';\r\nimport { SdExportTempateColumn, SdExportTemplate, SdExportService } from '@sd-angular/core/export';\r\nimport { SdColumnHiddenPipe } from './pipes/columm-hidden.pipe';\r\ntype AOA = Array<Array<any>>;\r\n\r\n@Component({\r\n selector: 'sd-upload-excel',\r\n templateUrl: './upload-excel.component.html',\r\n styleUrls: ['./upload-excel.component.scss']\r\n})\r\nexport class SdUploadExcel implements OnInit, OnDestroy {\r\n private importId = 'I' + uuid.v4();\r\n @Input() option: SdUploadExcelOption;\r\n @ViewChild('modal') modal: SdModal;\r\n items: SdExcelItem[] = [];\r\n // originItems: SdExcelItem[] = [];\r\n hasDescription = false;\r\n\r\n showing: 'ALL' | 'SUCCESS' | 'WARNING' | 'ERROR' = 'ALL';\r\n filteredItems: SdExcelItem[] = [];\r\n viewItems: SdExcelItem[] = [];\r\n numberOfSuccess = 0;\r\n numberOfError = 0;\r\n numberOfWarning = 0;\r\n file: File;\r\n #paginator: MatPaginator;\r\n @ViewChild(MatPaginator) set paginator(paginator: MatPaginator) {\r\n if (paginator && this.#paginator !== paginator) {\r\n this.#paginator = paginator;\r\n this.#subscription.add(paginator.page.subscribe(this.#reload));\r\n }\r\n }\r\n #subscription = new Subscription();\r\n uploading: boolean;\r\n isUploaded: boolean;\r\n isDownloadTemplate = false;\r\n @Output() sdClosed = new EventEmitter();\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private exportService: SdExportService,\r\n private translateService: SdTranslateService,\r\n private notifyService: SdNotifyService,\r\n private sdColumnHidden: SdColumnHiddenPipe,\r\n private loadingService: SdLoadingService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.isUploaded = false;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n open = () => {\r\n this.#reset();\r\n this.modal.open();\r\n }\r\n\r\n close = () => {\r\n this.modal.close();\r\n }\r\n\r\n #reset = () => {\r\n this.items = [];\r\n this.filteredItems = [];\r\n this.viewItems = [];\r\n this.numberOfSuccess = 0;\r\n this.numberOfError = 0;\r\n this.numberOfWarning = 0;\r\n this.showing = 'ALL';\r\n }\r\n\r\n #reload = () => {\r\n const pageIndex = this.#paginator.pageIndex;\r\n const pageSize = this.#paginator.pageSize;\r\n this.filteredItems = this.items.filter((item) => {\r\n const { validation } = item.sd;\r\n if (this.showing === 'SUCCESS') {\r\n return !validation?.error && !validation?.warning;\r\n } else if (this.showing === 'WARNING') {\r\n return !!validation?.warning && !validation?.error;\r\n } else if (this.showing === 'ERROR') {\r\n return !!validation?.error;\r\n }\r\n return true;\r\n });\r\n this.viewItems = this.filteredItems\r\n .filter((item, index) => index >= pageIndex * pageSize && index < (pageIndex + 1) * pageSize);\r\n\r\n this.numberOfSuccess = this.items.filter(this.#isSuccess).length;\r\n this.numberOfError = this.items.filter(this.#isError).length;\r\n this.numberOfWarning = this.items.filter(this.#isWarning).length;\r\n }\r\n\r\n #isError = (item: SdExcelItem) => !!item.sd.validation.error;\r\n #isWarning = (item: SdExcelItem) => item.sd.validation?.warning && !item.sd.validation?.error;\r\n #isSuccess = (item: SdExcelItem) => !item.sd.validation?.error && !item.sd.validation?.warning;\r\n\r\n upload = async () => {\r\n try {\r\n const { mappingItems, errorValidation, warningValidation } = this.option;\r\n const { translate } = this.translateService;\r\n const { items, file } = await this.exportService.uploadXlsx();\r\n this.hasDescription = this.option.columns.some(e => !!e.description);\r\n const offset = this.hasDescription ? 2 : 1;\r\n items.splice(0, offset);\r\n if (items.length === 0) {\r\n this.notifyService.notify.warning(`${translate(`No data to import`)}`);\r\n return;\r\n }\r\n if (items.length > this.option.limit) {\r\n this.notifyService.notify.warning(`${translate(`Limit rows`)}: ${this.option.limit}`);\r\n return;\r\n }\r\n this.#reset();\r\n // this.originItems = items.map(data => ({\r\n // data,\r\n // sd: {}\r\n // }));\r\n this.items = items.map((data, idx) => ({\r\n data,\r\n sd: {\r\n excelIndex: idx + (this.hasDescription ? 4 : 3),\r\n validation: {\r\n data: {}\r\n },\r\n origin: { ...data }\r\n }\r\n }));\r\n\r\n if (mappingItems) {\r\n const mappedItems = mappingItems(this.items);\r\n if (mappedItems instanceof Promise) {\r\n this.uploading = true;\r\n this.items = (await mappedItems.finally(() => this.uploading = false));\r\n } else {\r\n this.items = (mappedItems || this.items);\r\n }\r\n }\r\n this.file = file;\r\n this.loadingService.start();\r\n for (const [idx, item] of this.items.entries()) {\r\n await this.validate(item, idx);\r\n }\r\n\r\n // Nếu không có error thì tiếp tục validate từ option validate truyền vào\r\n if (!this.items.some(this.#isError) && errorValidation) {\r\n const results = await errorValidation(this.items.map(e => e.data));\r\n results.forEach(result => this.items[result.idx].sd.validation.error = result.message);\r\n }\r\n\r\n // Nếu không có warning thì tiếp tục validate từ option validate truyền vào\r\n if (!this.items.some(this.#isWarning) && warningValidation) {\r\n const results = await warningValidation(this.items.map(e => e.data));\r\n results.forEach(result => this.items[result.idx].sd.validation.warning = result.message);\r\n }\r\n\r\n this.#paginator.pageIndex = 0;\r\n this.#reload();\r\n this.ref.detectChanges();\r\n\r\n this.isUploaded = false;\r\n } catch (err) {\r\n this.notifyService.handle.error(err);\r\n } finally {\r\n this.loadingService.stop();\r\n }\r\n }\r\n\r\n validate = async (excelItem: SdExcelItem, idx: number) => {\r\n const { data: item, sd: { validation } } = excelItem;\r\n const { translate } = this.translateService;\r\n const errors: string[] = [];\r\n for (const column of this.option.columns) {\r\n validation.data[column.field] = {};\r\n if (!this.sdColumnHidden.transform(column)) {\r\n continue;\r\n }\r\n try {\r\n if (column.defaultValue !== undefined) {\r\n item[column.field] = item[column.field] ?? column.defaultValue;\r\n } else if (column.required && !item[column.field] && item[column.field] !== 0) {\r\n validation.data[column.field].error = `${translate('required')}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n if (column.type === 'string') {\r\n const value = (item[column.field] || '').toString();\r\n if (column.minLength !== undefined && value.length < column.minLength) {\r\n validation.data[column.field].error = `${translate('Min length')}: ${column.minLength}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n if (column.maxLength !== undefined && value.length > column.maxLength) {\r\n validation.data[column.field].error = `${translate('Max length')}: ${column.maxLength}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n item[column.field] = value;\r\n } else if (column.type === 'number') {\r\n if (item[column.field]) {\r\n const value = +item[column.field];\r\n if (Number.isNaN(value)) {\r\n validation.data[column.field].error = `${item[column.field]} ${translate('is not a number')}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n item[column.field] = value;\r\n }\r\n if (!item[column.field] && item[column.field] !== 0) {\r\n item[column.field] = undefined;\r\n }\r\n if (column.minValue !== undefined && item[column.field] < column.minValue) {\r\n validation.data[column.field].error = `${item[column.field]} ${translate('Min value')}: ${column.minValue}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n if (column.maxValue !== undefined && item[column.field] > column.maxValue) {\r\n validation.data[column.field].error = `${item[column.field]} ${translate('Max value')}: ${column.maxValue}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n } else if (column.type === 'bool') {\r\n if (item[column.field] === 0 || item[column.field] === false) {\r\n item[column.field] = '0';\r\n }\r\n if (item[column.field] === 1 || item[column.field] === true) {\r\n item[column.field] = '1';\r\n }\r\n\r\n if (item[column.field]) {\r\n const value = +item[column.field];\r\n if (Number.isNaN(value) || (value !== 0 && value !== 1)) {\r\n validation.data[column.field].error = `${translate('Value shoud be 0 or 1')}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n } else {\r\n if (column.parseToBool) {\r\n item[column.field] = item[column.field] === '1';\r\n }\r\n }\r\n }\r\n } else if (column.type === 'values') {\r\n if (item[column.field] && typeof (item[column.field]) !== 'number' && typeof (item[column.field]) !== 'string') {\r\n validation.data[column.field].error = `${item[column.field]} ${translate('Invalid data type')}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n if (column.checkValueInArray && item[column.field] && !column.values.some(e => e.toString() === item[column.field].toString())) {\r\n validation.data[column.field].error = `${item[column.field]} ${translate('Value not in')} [${column.values.join()}]`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n } else if (column.type === 'date' || column.type === 'datetime' || column.type === 'time') {\r\n const { type, format } = column;\r\n const val = item[column.field];\r\n if (format && item[column.field]) {\r\n if (typeof (val) !== 'string') {\r\n validation.data[column.field].error = `${translate('Invalid format')} ${column.format}: ${val}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n if (type === 'date' && !this.#isValidDate(format, val)) {\r\n validation.data[column.field].error = `${translate('Invalid format')} ${column.format}: ${val}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n if (type === 'time' && !this.#isValidTime(format, val)) {\r\n validation.data[column.field].error = `${translate('Invalid format')} ${column.format}: ${val}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n if (type === 'datetime' && !this.#isValidDateTime(format, val)) {\r\n validation.data[column.field].error = `${translate('Invalid format')} ${column.format}: ${val}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n item[column.field] = Date.parseFrom(val, column.format).toFormat('MM/dd/yyyy HH:mm:ss');\r\n }\r\n if (item[column.field] && !Date.isDate(item[column.field])) {\r\n validation.data[column.field].error = `${translate('Invalid date')}: ${item[column.field]}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n }\r\n\r\n if (!validation.data[column.field].error && column.errorValidation) {\r\n const error = await column.errorValidation(item, item[column.field], idx);\r\n if (error) {\r\n validation.data[column.field].error = `${error}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n }\r\n }\r\n\r\n if (!validation.data[column.field].warning && column.warningValidation) {\r\n const warning = await column.warningValidation(item, item[column.field], idx);\r\n if (warning) {\r\n validation.data[column.field].warning = `${warning}`;\r\n validation.warning += `<strong>[${column.title || column.field}]</strong> ${warning}<br>`;\r\n }\r\n }\r\n } catch (ex) {\r\n validation.data[column.field].error = `${ex?.message || ex?.error || ex || 'Có lỗi xảy ra'}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n }\r\n }\r\n validation.error = errors.join('<br>');\r\n }\r\n\r\n #parse = (item: SdExcelItem) => {\r\n const { data } = item;\r\n return data;\r\n }\r\n\r\n #mapItem = (item: SdExcelItem) => {\r\n const { data } = item;\r\n return data;\r\n }\r\n\r\n accept = () => {\r\n const successItems = this.items.filter(this.#isSuccess).map(this.#mapItem);\r\n const errorItems = this.items.filter(this.#isError).map(this.#mapItem);\r\n const warningItems = this.items.filter(this.#isWarning).map(this.#mapItem);\r\n this.option?.onAccept(this.items.map(this.#mapItem), successItems, errorItems, warningItems, this.file);\r\n this.isUploaded = true;\r\n }\r\n\r\n setValidation = (validates: { idx: number, messageError?: string, messageWarning?: string, messageSuccess?: string }[]) => {\r\n if (Array.isArray(validates)) {\r\n validates.forEach(validate => {\r\n this.items[validate.idx].sd.validation.error = validate.messageError;\r\n this.items[validate.idx].sd.validation.warning = validate.messageWarning;\r\n this.items[validate.idx].sd.validation.success = validate.messageSuccess;\r\n });\r\n }\r\n this.#reload();\r\n this.ref.detectChanges();\r\n }\r\n\r\n view = (showing: 'ALL' | 'SUCCESS' | 'WARNING' | 'ERROR' = 'ALL') => {\r\n this.showing = showing;\r\n this.#paginator.pageIndex = 0;\r\n this.#reload();\r\n }\r\n\r\n downloadTemplate = async () => {\r\n const sheets: {\r\n name: string,\r\n items: any[],\r\n fields: string[]\r\n }[] = [];\r\n if (Array.isArray(this.option?.sheets)) {\r\n for (const sheet of this.option.sheets) {\r\n if (sheet.name && sheet.items && sheet.fields) {\r\n if (Array.isArray(sheet.items)) {\r\n sheets.push({\r\n name: sheet.name,\r\n items: sheet.items,\r\n fields: sheet.fields\r\n });\r\n } else {\r\n sheets.push({\r\n name: sheet.name,\r\n items: await sheet.items(),\r\n fields: sheet.fields\r\n });\r\n }\r\n }\r\n }\r\n }\r\n const columnNotHiddens = this.option.columns.filter(column => this.sdColumnHidden.transform(column));\r\n const excelTemplate: SdExportTemplate = {\r\n fileName: this.option.fileName || 'Template',\r\n columns: columnNotHiddens.map(column => {\r\n return {\r\n field: column.field,\r\n title: column.title,\r\n width: column.width,\r\n required: column.required,\r\n description: column.description,\r\n fontColor: column.fontColor,\r\n fill: column.fill\r\n };\r\n }),\r\n sheets\r\n };\r\n this.isDownloadTemplate = true;\r\n await this.exportService.generateTemplate(excelTemplate).finally(() => {\r\n this.isDownloadTemplate = false;\r\n });\r\n }\r\n\r\n export = async () => {\r\n this.loadingService.start();\r\n const columns: SdExportTempateColumn[] = [{\r\n field: 'sdMessage',\r\n title: this.translateService.translate('Upload message'),\r\n width: '250px',\r\n required: false\r\n }, ... this.option.columns.filter(column => this.sdColumnHidden.transform(column))];\r\n await this.exportService.export({\r\n columns,\r\n items: this.filteredItems.map(e => {\r\n let result = {};\r\n for (const column of columns) {\r\n result = {\r\n ...result,\r\n [column.field]: e.sd.origin?.[column.field]\r\n }\r\n }\r\n return {\r\n ...result,\r\n sdMessage: (e.sd.validation?.error || e.sd.validation?.warning || e.sd.validation?.success)?.replace(/<strong>/g, '')\r\n .replace(/<\\/strong>/g, '')\r\n .replace(/<br>/g, '\\n')\r\n };\r\n })\r\n }).finally(this.loadingService.stop);\r\n }\r\n\r\n #isValidDate = (format: string, value: string) => {\r\n if (value?.length !== format?.length) {\r\n return false;\r\n }\r\n const regex = /^(?:(?:31(\\/|-|\\.)(?:0?[13578]|1[02]))\\1|(?:(?:29|30)(\\/|-|\\.)(?:0?[13-9]|1[0-2])\\2))(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$|^(?:29(\\/|-|\\.)0?2\\3(?:(?:(?:1[6-9]|[2-9]\\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\\d|2[0-8])(\\/|-|\\.)(?:(?:0?[1-9])|(?:1[0-2]))\\4(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$/;\r\n return regex.test(value);\r\n }\r\n\r\n #isValidTime = (format: string, value: string) => {\r\n if (value?.length !== format?.length) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n #isValidDateTime = (format: string, value: string) => {\r\n if (value?.length !== format?.length) {\r\n return false;\r\n }\r\n const dates = value?.split(' ');\r\n if (dates.length !== 2) {\r\n return false;\r\n }\r\n const date = dates[0];\r\n if (!this.#isValidDate('dd/MM/yyyy', date)) {\r\n return false;\r\n }\r\n const time = dates[1];\r\n const regex = /^(0[0-9]|1[0-9]|2[0-3])(\\:)(0[0-9]|[0-5][0-9])$/;\r\n return regex.test(time);\r\n }\r\n onClosed = () => {\r\n this.sdClosed.emit();\r\n }\r\n}\r\n\r\n","import { DecimalPipe } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdExcelItem, SdUploadExcelColumn } from '../upload-excel.model';\r\n@Pipe({\r\n name: 'columnTransform'\r\n})\r\nexport class SdColumnTransformPipe implements PipeTransform {\r\n constructor(private decimalPipe: DecimalPipe) {\r\n\r\n }\r\n transform = async (rowData: SdExcelItem, column: SdUploadExcelColumn): Promise<string> => {\r\n const { type, transform } = column;\r\n const value = rowData.data[column.field];\r\n if (rowData.sd.validation.data[column.field]?.error) {\r\n return rowData.sd.origin[column.field] ?? value ?? '';\r\n }\r\n if (transform) {\r\n return transform(rowData.data, value);\r\n }\r\n if (column.type === 'number') {\r\n return Number.toVNCurrency(value) ?? '';\r\n }\r\n if (column.type === 'bool') {\r\n if (value === '1' || value === true) {\r\n return `<div class=\"text-center\"><input type=\"checkbox\" checked disabled></div>`;\r\n } else if (value === '0' || value === false) {\r\n return `<div class=\"text-center\"><input type=\"checkbox\" disabled></div>`;\r\n }\r\n }\r\n if (column.type === 'date') {\r\n return Date.toFormat(value, column.format || 'dd/MM/yyyy') ?? '';\r\n }\r\n if (column.type === 'datetime') {\r\n return Date.toFormat(value, column.format || 'dd/MM/yyyy HH:mm') ?? '';\r\n }\r\n return value ?? '';\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DecimalPipe } from '@angular/common';\r\nimport { DeviceDetectorModule } from 'ngx-device-detector';\r\nimport { SdNotifyModule } from '@sd-angular/core/notify';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { SdUploadExcel } from './upload-excel.component';\r\nimport { SdButtonModule } from '@sd-angular/core/button';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { SdModalModule } from '@sd-angular/core/modal';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SdInputModule } from '@sd-angular/core/input';\r\nimport { SdUtilityModule } from '@sd-angular/core/utility';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport {MatMenuModule} from '@angular/material/menu';\r\nimport { SdColumnHiddenPipe } from './pipes/columm-hidden.pipe';\r\nimport { SdColumnTransformPipe } from './pipes/column-transform.pipe';\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n DeviceDetectorModule.forRoot(),\r\n MatSlideToggleModule,\r\n MatTooltipModule,\r\n MatPaginatorModule,\r\n MatSlideToggleModule,\r\n SdNotifyModule,\r\n SdTranslateModule,\r\n SdUtilityModule,\r\n SdButtonModule,\r\n SdModalModule,\r\n SdInputModule,\r\n MatIconModule,\r\n MatMenuModule\r\n ],\r\n declarations: [\r\n SdUploadExcel,\r\n // pipe\r\n SdColumnHiddenPipe,\r\n SdColumnTransformPipe\r\n ],\r\n exports: [\r\n SdUploadExcel\r\n ],\r\n providers: [\r\n DecimalPipe,\r\n SdColumnHiddenPipe\r\n ]\r\n})\r\nexport class SdUploadExcelModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {SdColumnHiddenPipe as ɵa} from './src/lib/pipes/columm-hidden.pipe';\nexport {SdColumnTransformPipe as ɵb} from './src/lib/pipes/column-transform.pipe';"],"names":["uuid.v4"],"mappings":"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"}
1
+ {"version":3,"file":"sd-angular-core-upload-excel.js","sources":["../../../../projects/sd-core/upload-excel/src/lib/upload-excel.model.ts","../../../../projects/sd-core/upload-excel/src/lib/pipes/columm-hidden.pipe.ts","../../../../projects/sd-core/upload-excel/src/lib/upload-excel.component.ts","../../../../projects/sd-core/upload-excel/src/lib/pipes/column-transform.pipe.ts","../../../../projects/sd-core/upload-excel/src/lib/upload-excel.module.ts","../../../../projects/sd-core/upload-excel/sd-angular-core-upload-excel.ts"],"sourcesContent":["interface Validation {\r\n idx: number;\r\n message: string;\r\n}\r\n\r\nexport interface SdUploadExcelOption<T = any> {\r\n title?: string;\r\n note?: string;\r\n fileName?: string;\r\n columns?: SdUploadExcelColumn<T>[];\r\n limit?: number;\r\n key?: string;\r\n sheets?: {\r\n name: string,\r\n items: any[] | (() => Promise<any[]>),\r\n fields: string[]\r\n }[];\r\n onAccept?: (items?: T[], successItems?: T[], errorItems?: T[], warningItems?: T[], file?: File) => void | Promise<void>;\r\n mappingItems?: (items: SdExcelItem<T>[]) => SdExcelItem<T>[] | Promise<SdExcelItem<T>[]>;\r\n errorValidation?: (items?: T[]) => Validation[] | Promise<Validation[]>;\r\n warningValidation?: (items?: T[]) => Validation[] | Promise<Validation[]>;\r\n}\r\n\r\nexport interface SdUploadExcelSheet {\r\n name: string,\r\n items: any[] | (() => Promise<any[]>),\r\n fields: string[]\r\n}\r\n\r\nexport type SdUploadExcelColumn<T = any> =\r\n SdUploadExcelColumnString<T> |\r\n SdUploadExcelColumnNumber<T> |\r\n SdUploadExcelColumnBool<T> |\r\n SdUploadExcelColumnDate<T> |\r\n SdUploadExcelColumnTime<T> |\r\n SdUploadExcelColumnDateTime<T> |\r\n SdUploadExcelColumnValues<T> |\r\n SdUploadExcelColumnStringArray<T>;\r\n\r\nexport interface SdUploadExcelBaseColumn<T = any> {\r\n field: string;\r\n title: string;\r\n required?: boolean;\r\n width?: string;\r\n description?: string;\r\n hidden?: boolean | (() => boolean);\r\n fontColor?: string;\r\n fill?: string;\r\n transform?: (rowData: T, value: any) => string | Promise<string>;\r\n errorValidation?: (rowData?: T, value?: any, idx?: number) => string | Promise<string>;\r\n warningValidation?: (rowData?: T, value?: any, idx?: number) => string | Promise<string>;\r\n}\r\n\r\nexport interface SdUploadExcelColumnString<T = any> extends SdUploadExcelBaseColumn<T> {\r\n type: 'string';\r\n defaultValue?: string;\r\n pattern?: string;\r\n minLength?: number;\r\n maxLength?: number;\r\n}\r\n\r\nexport interface SdUploadExcelColumnNumber<T = any> extends SdUploadExcelBaseColumn<T> {\r\n type: 'number';\r\n defaultValue?: number;\r\n minValue?: number;\r\n maxValue?: number;\r\n}\r\n\r\nexport interface SdUploadExcelColumnBool<T = any> extends SdUploadExcelBaseColumn<T> {\r\n type: 'bool';\r\n defaultValue?: boolean;\r\n parseToBool?: boolean;\r\n}\r\n\r\nexport interface SdUploadExcelColumnDate<T = any> extends SdUploadExcelBaseColumn<T> {\r\n type: 'date';\r\n format?: 'dd/MM/yyyy';\r\n defaultValue?: Date;\r\n minDate?: Date;\r\n maxDate?: Date;\r\n}\r\n\r\nexport interface SdUploadExcelColumnTime<T = any> extends SdUploadExcelBaseColumn<T> {\r\n type: 'time';\r\n format?: 'HH:mm' | 'HH:mm:ss';\r\n defaultValue?: Date;\r\n minDate?: Date;\r\n maxDate?: Date;\r\n}\r\n\r\nexport interface SdUploadExcelColumnDateTime<T = any> extends SdUploadExcelBaseColumn<T> {\r\n type: 'datetime';\r\n format?: 'dd/MM/yyyy HH:mm' | 'dd/MM/yyyy';\r\n defaultValue?: Date;\r\n minDate?: Date;\r\n maxDate?: Date;\r\n}\r\n\r\nexport interface SdUploadExcelColumnValues<T = any> extends SdUploadExcelBaseColumn<T> {\r\n type: 'values' | 'radio';\r\n defaultValue?: string | number;\r\n values: (string | number)[];\r\n checkValueInArray?: boolean;\r\n}\r\n\r\nexport interface SdUploadExcelColumnStringArray<T = any> extends SdUploadExcelBaseColumn<T> {\r\n type: 'array';\r\n divideString: string | ';';\r\n unitString: string | 'items';\r\n defaultValue?: string;\r\n minLength?: number;\r\n maxLength?: number;\r\n}\r\n\r\nexport interface SdUploadExcelValidation {\r\n error?: string;\r\n warning?: string;\r\n success?: string;\r\n data?: {\r\n [column: string]: {\r\n error?: string;\r\n warning?: string;\r\n }\r\n };\r\n}\r\n\r\nexport type SdExcelItem<T = any> = {\r\n data: T;\r\n sd?: {\r\n excelIndex?: number;\r\n origin?: T,\r\n validation?: SdUploadExcelValidation;\r\n }\r\n};\r\n\r\n// export type ExcelItem<T> = {\r\n// origin?: T;\r\n// excelIndex?: number;\r\n// validation: SdUploadExcelValidation;\r\n// } & T;\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\nimport { SdUploadExcelColumn } from '../upload-excel.model';\r\n@Pipe({\r\n name: 'columnHidden'\r\n})\r\n@Injectable()\r\nexport class SdColumnHiddenPipe implements PipeTransform {\r\n constructor() { }\r\n transform(column: SdUploadExcelColumn): boolean {\r\n if (column.hidden === undefined) {\r\n return true;\r\n }\r\n if (typeof (column.hidden) === 'boolean') {\r\n return !column.hidden;\r\n }\r\n if (typeof (column.hidden) === 'function') {\r\n return !column.hidden();\r\n }\r\n return false;\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\nimport * as uuid from 'uuid';\r\n\r\nimport {\r\n SdNotifyService\r\n} from '@sd-angular/core/notify';\r\n\r\nimport {\r\n SdLoadingService\r\n} from '@sd-angular/core/loading';\r\n\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { SdExportService, SdExportTemplate, SdExportTemplateColumn } from '@sd-angular/core/export';\r\nimport { SdModal } from '@sd-angular/core/modal';\r\nimport {\r\n SdTranslateService\r\n} from '@sd-angular/core/translate';\r\nimport { Subscription } from 'rxjs';\r\nimport { SdColumnHiddenPipe } from './pipes/columm-hidden.pipe';\r\nimport { SdExcelItem, SdUploadExcelOption } from './upload-excel.model';\r\n\r\n@Component({\r\n selector: 'sd-upload-excel',\r\n templateUrl: './upload-excel.component.html',\r\n styleUrls: ['./upload-excel.component.scss']\r\n})\r\nexport class SdUploadExcel implements OnInit, OnDestroy {\r\n private importId = 'I' + uuid.v4();\r\n @Input() option: SdUploadExcelOption;\r\n @ViewChild('modal') modal: SdModal;\r\n items: SdExcelItem[] = [];\r\n // originItems: SdExcelItem[] = [];\r\n hasDescription = false;\r\n\r\n showing: 'ALL' | 'SUCCESS' | 'WARNING' | 'ERROR' = 'ALL';\r\n filteredItems: SdExcelItem[] = [];\r\n viewItems: SdExcelItem[] = [];\r\n numberOfSuccess = 0;\r\n numberOfError = 0;\r\n numberOfWarning = 0;\r\n file: File;\r\n #paginator: MatPaginator;\r\n @ViewChild(MatPaginator) set paginator(paginator: MatPaginator) {\r\n if (paginator && this.#paginator !== paginator) {\r\n this.#paginator = paginator;\r\n this.#subscription.add(paginator.page.subscribe(this.#reload));\r\n }\r\n }\r\n #subscription = new Subscription();\r\n uploading: boolean;\r\n isUploaded: boolean;\r\n isDownloadTemplate = false;\r\n @Output() sdClosed = new EventEmitter();\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private exportService: SdExportService,\r\n private translateService: SdTranslateService,\r\n private notifyService: SdNotifyService,\r\n private sdColumnHidden: SdColumnHiddenPipe,\r\n private loadingService: SdLoadingService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.isUploaded = false;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n open = () => {\r\n this.#reset();\r\n this.modal.open();\r\n }\r\n\r\n close = () => {\r\n this.modal.close();\r\n }\r\n\r\n #reset = () => {\r\n this.items = [];\r\n this.filteredItems = [];\r\n this.viewItems = [];\r\n this.numberOfSuccess = 0;\r\n this.numberOfError = 0;\r\n this.numberOfWarning = 0;\r\n this.showing = 'ALL';\r\n }\r\n\r\n #reload = () => {\r\n const pageIndex = this.#paginator.pageIndex;\r\n const pageSize = this.#paginator.pageSize;\r\n this.filteredItems = this.items.filter((item) => {\r\n const { validation } = item.sd;\r\n if (this.showing === 'SUCCESS') {\r\n return !validation?.error && !validation?.warning;\r\n } else if (this.showing === 'WARNING') {\r\n return !!validation?.warning && !validation?.error;\r\n } else if (this.showing === 'ERROR') {\r\n return !!validation?.error;\r\n }\r\n return true;\r\n });\r\n this.viewItems = this.filteredItems\r\n .filter((item, index) => index >= pageIndex * pageSize && index < (pageIndex + 1) * pageSize);\r\n\r\n this.numberOfSuccess = this.items.filter(this.#isSuccess).length;\r\n this.numberOfError = this.items.filter(this.#isError).length;\r\n this.numberOfWarning = this.items.filter(this.#isWarning).length;\r\n }\r\n\r\n #isError = (item: SdExcelItem) => !!item.sd.validation.error;\r\n #isWarning = (item: SdExcelItem) => item.sd.validation?.warning && !item.sd.validation?.error;\r\n #isSuccess = (item: SdExcelItem) => !item.sd.validation?.error && !item.sd.validation?.warning;\r\n\r\n upload = async () => {\r\n try {\r\n const { mappingItems, errorValidation, warningValidation } = this.option;\r\n const { translate } = this.translateService;\r\n const { items, file } = await this.exportService.uploadXlsx();\r\n this.hasDescription = this.option.columns.some(e => !!e.description);\r\n const offset = this.hasDescription ? 2 : 1;\r\n items.splice(0, offset);\r\n if (items.length === 0) {\r\n this.notifyService.notify.warning(`${translate(`No data to import`)}`);\r\n return;\r\n }\r\n if (items.length > this.option.limit) {\r\n this.notifyService.notify.warning(`${translate(`Limit rows`)}: ${this.option.limit}`);\r\n return;\r\n }\r\n this.#reset();\r\n // this.originItems = items.map(data => ({\r\n // data,\r\n // sd: {}\r\n // }));\r\n this.items = items.map((data, idx) => ({\r\n data,\r\n sd: {\r\n excelIndex: idx + (this.hasDescription ? 4 : 3),\r\n validation: {\r\n data: {}\r\n },\r\n origin: { ...data }\r\n }\r\n }));\r\n\r\n if (mappingItems) {\r\n const mappedItems = mappingItems(this.items);\r\n if (mappedItems instanceof Promise) {\r\n this.uploading = true;\r\n this.items = (await mappedItems.finally(() => this.uploading = false));\r\n } else {\r\n this.items = (mappedItems || this.items);\r\n }\r\n }\r\n this.file = file;\r\n this.loadingService.start();\r\n for (const [idx, item] of this.items.entries()) {\r\n await this.validate(item, idx);\r\n }\r\n\r\n // Nếu không có error thì tiếp tục validate từ option validate truyền vào\r\n if (!this.items.some(this.#isError) && errorValidation) {\r\n const results = await errorValidation(this.items.map(e => e.data));\r\n results.forEach(result => this.items[result.idx].sd.validation.error = result.message);\r\n }\r\n\r\n // Nếu không có warning thì tiếp tục validate từ option validate truyền vào\r\n if (!this.items.some(this.#isWarning) && warningValidation) {\r\n const results = await warningValidation(this.items.map(e => e.data));\r\n results.forEach(result => this.items[result.idx].sd.validation.warning = result.message);\r\n }\r\n\r\n this.#paginator.pageIndex = 0;\r\n this.#reload();\r\n this.ref.detectChanges();\r\n\r\n this.isUploaded = false;\r\n } catch (err) {\r\n this.notifyService.handle.error(err);\r\n } finally {\r\n this.loadingService.stop();\r\n }\r\n }\r\n\r\n validate = async (excelItem: SdExcelItem, idx: number) => {\r\n const { data: item, sd: { validation } } = excelItem;\r\n const { translate } = this.translateService;\r\n const errors: string[] = [];\r\n for (const column of this.option.columns) {\r\n validation.data[column.field] = {};\r\n if (!this.sdColumnHidden.transform(column)) {\r\n continue;\r\n }\r\n try {\r\n if (column.defaultValue !== undefined) {\r\n item[column.field] = item[column.field] ?? column.defaultValue;\r\n } else if (column.required && !item[column.field] && item[column.field] !== 0) {\r\n validation.data[column.field].error = `${translate('required')}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n if (column.type === 'string') {\r\n const value = (item[column.field] || '').toString();\r\n if (column.minLength !== undefined && value.length < column.minLength) {\r\n validation.data[column.field].error = `${translate('Min length')}: ${column.minLength}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n if (column.maxLength !== undefined && value.length > column.maxLength) {\r\n validation.data[column.field].error = `${translate('Max length')}: ${column.maxLength}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n item[column.field] = value;\r\n } else if (column.type === 'number') {\r\n if (item[column.field]) {\r\n const value = +item[column.field];\r\n if (Number.isNaN(value)) {\r\n validation.data[column.field].error = `${item[column.field]} ${translate('is not a number')}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n item[column.field] = value;\r\n }\r\n if (!item[column.field] && item[column.field] !== 0) {\r\n item[column.field] = undefined;\r\n }\r\n if (column.minValue !== undefined && item[column.field] < column.minValue) {\r\n validation.data[column.field].error = `${item[column.field]} ${translate('Min value')}: ${column.minValue}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n if (column.maxValue !== undefined && item[column.field] > column.maxValue) {\r\n validation.data[column.field].error = `${item[column.field]} ${translate('Max value')}: ${column.maxValue}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n } else if (column.type === 'bool') {\r\n if (item[column.field] === 0 || item[column.field] === false) {\r\n item[column.field] = '0';\r\n }\r\n if (item[column.field] === 1 || item[column.field] === true) {\r\n item[column.field] = '1';\r\n }\r\n\r\n if (item[column.field]) {\r\n const value = +item[column.field];\r\n if (Number.isNaN(value) || (value !== 0 && value !== 1)) {\r\n validation.data[column.field].error = `${translate('Value shoud be 0 or 1')}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n } else {\r\n if (column.parseToBool) {\r\n item[column.field] = item[column.field] === '1';\r\n }\r\n }\r\n }\r\n } else if (column.type === 'values') {\r\n if (item[column.field] && typeof (item[column.field]) !== 'number' && typeof (item[column.field]) !== 'string') {\r\n validation.data[column.field].error = `${item[column.field]} ${translate('Invalid data type')}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n if (column.checkValueInArray && item[column.field] && !column.values.some(e => e.toString() === item[column.field].toString())) {\r\n validation.data[column.field].error = `${item[column.field]} ${translate('Value not in')} [${column.values.join()}]`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n } else if (column.type === 'date' || column.type === 'datetime' || column.type === 'time') {\r\n const { type, format } = column;\r\n const val = item[column.field];\r\n if (format && item[column.field]) {\r\n if (typeof (val) !== 'string') {\r\n validation.data[column.field].error = `${translate('Invalid format')} ${column.format}: ${val}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n if (type === 'date' && !this.#isValidDate(format, val)) {\r\n validation.data[column.field].error = `${translate('Invalid format')} ${column.format}: ${val}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n if (type === 'time' && !this.#isValidTime(format, val)) {\r\n validation.data[column.field].error = `${translate('Invalid format')} ${column.format}: ${val}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n if (type === 'datetime' && !this.#isValidDateTime(format, val)) {\r\n validation.data[column.field].error = `${translate('Invalid format')} ${column.format}: ${val}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n item[column.field] = Date.parseFrom(val, column.format).toFormat('MM/dd/yyyy HH:mm:ss');\r\n }\r\n if (item[column.field] && !Date.isDate(item[column.field])) {\r\n validation.data[column.field].error = `${translate('Invalid date')}: ${item[column.field]}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n continue;\r\n }\r\n }\r\n\r\n if (!validation.data[column.field].error && column.errorValidation) {\r\n const error = await column.errorValidation(item, item[column.field], idx);\r\n if (error) {\r\n validation.data[column.field].error = `${error}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n }\r\n }\r\n\r\n if (!validation.data[column.field].warning && column.warningValidation) {\r\n const warning = await column.warningValidation(item, item[column.field], idx);\r\n if (warning) {\r\n validation.data[column.field].warning = `${warning}`;\r\n validation.warning += `<strong>[${column.title || column.field}]</strong> ${warning}<br>`;\r\n }\r\n }\r\n } catch (ex) {\r\n validation.data[column.field].error = `${ex?.message || ex?.error || ex || 'Có lỗi xảy ra'}`;\r\n errors.push(`<strong>[${column.title || column.field}]</strong> ${validation.data[column.field].error}`);\r\n }\r\n }\r\n validation.error = errors.join('<br>');\r\n }\r\n\r\n #parse = (item: SdExcelItem) => {\r\n const { data } = item;\r\n return data;\r\n }\r\n\r\n #mapItem = (item: SdExcelItem) => {\r\n const { data } = item;\r\n return data;\r\n }\r\n\r\n accept = () => {\r\n const successItems = this.items.filter(this.#isSuccess).map(this.#mapItem);\r\n const errorItems = this.items.filter(this.#isError).map(this.#mapItem);\r\n const warningItems = this.items.filter(this.#isWarning).map(this.#mapItem);\r\n this.option?.onAccept(this.items.map(this.#mapItem), successItems, errorItems, warningItems, this.file);\r\n this.isUploaded = true;\r\n }\r\n\r\n setValidation = (validates: { idx: number, messageError?: string, messageWarning?: string, messageSuccess?: string }[]) => {\r\n if (Array.isArray(validates)) {\r\n validates.forEach(validate => {\r\n this.items[validate.idx].sd.validation.error = validate.messageError;\r\n this.items[validate.idx].sd.validation.warning = validate.messageWarning;\r\n this.items[validate.idx].sd.validation.success = validate.messageSuccess;\r\n });\r\n }\r\n this.#reload();\r\n this.ref.detectChanges();\r\n }\r\n\r\n view = (showing: 'ALL' | 'SUCCESS' | 'WARNING' | 'ERROR' = 'ALL') => {\r\n this.showing = showing;\r\n this.#paginator.pageIndex = 0;\r\n this.#reload();\r\n }\r\n\r\n downloadTemplate = async () => {\r\n const sheets: {\r\n name: string,\r\n items: any[],\r\n fields: string[]\r\n }[] = [];\r\n if (Array.isArray(this.option?.sheets)) {\r\n for (const sheet of this.option.sheets) {\r\n if (sheet.name && sheet.items && sheet.fields) {\r\n if (Array.isArray(sheet.items)) {\r\n sheets.push({\r\n name: sheet.name,\r\n items: sheet.items,\r\n fields: sheet.fields\r\n });\r\n } else {\r\n sheets.push({\r\n name: sheet.name,\r\n items: await sheet.items(),\r\n fields: sheet.fields\r\n });\r\n }\r\n }\r\n }\r\n }\r\n const columnNotHiddens = this.option.columns.filter(column => this.sdColumnHidden.transform(column));\r\n const excelTemplate: SdExportTemplate = {\r\n fileName: this.option.fileName || 'Template',\r\n columns: columnNotHiddens.map(column => {\r\n return {\r\n field: column.field,\r\n title: column.title,\r\n width: column.width,\r\n required: column.required,\r\n description: column.description,\r\n fontColor: column.fontColor,\r\n fill: column.fill\r\n };\r\n }),\r\n sheets\r\n };\r\n this.isDownloadTemplate = true;\r\n await this.exportService.generateTemplate(excelTemplate).finally(() => {\r\n this.isDownloadTemplate = false;\r\n });\r\n }\r\n\r\n export = async () => {\r\n this.loadingService.start();\r\n const columns: SdExportTemplateColumn[] = [{\r\n field: 'sdMessage',\r\n title: this.translateService.translate('Upload message'),\r\n width: '250px',\r\n required: false\r\n }, ... this.option.columns.filter(column => this.sdColumnHidden.transform(column))];\r\n await this.exportService.export({\r\n columns,\r\n items: this.filteredItems.map(e => {\r\n let result = {};\r\n for (const column of columns) {\r\n result = {\r\n ...result,\r\n [column.field]: e.sd.origin?.[column.field]\r\n }\r\n }\r\n return {\r\n ...result,\r\n sdMessage: (e.sd.validation?.error || e.sd.validation?.warning || e.sd.validation?.success)?.replace(/<strong>/g, '')\r\n .replace(/<\\/strong>/g, '')\r\n .replace(/<br>/g, '\\n')\r\n };\r\n })\r\n }).finally(this.loadingService.stop);\r\n }\r\n\r\n #isValidDate = (format: string, value: string) => {\r\n if (value?.length !== format?.length) {\r\n return false;\r\n }\r\n const regex = /^(?:(?:31(\\/|-|\\.)(?:0?[13578]|1[02]))\\1|(?:(?:29|30)(\\/|-|\\.)(?:0?[13-9]|1[0-2])\\2))(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$|^(?:29(\\/|-|\\.)0?2\\3(?:(?:(?:1[6-9]|[2-9]\\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\\d|2[0-8])(\\/|-|\\.)(?:(?:0?[1-9])|(?:1[0-2]))\\4(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$/;\r\n return regex.test(value);\r\n }\r\n\r\n #isValidTime = (format: string, value: string) => {\r\n if (value?.length !== format?.length) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n #isValidDateTime = (format: string, value: string) => {\r\n if (value?.length !== format?.length) {\r\n return false;\r\n }\r\n const dates = value?.split(' ');\r\n if (dates.length !== 2) {\r\n return false;\r\n }\r\n const date = dates[0];\r\n if (!this.#isValidDate('dd/MM/yyyy', date)) {\r\n return false;\r\n }\r\n const time = dates[1];\r\n const regex = /^(0[0-9]|1[0-9]|2[0-3])(\\:)(0[0-9]|[0-5][0-9])$/;\r\n return regex.test(time);\r\n }\r\n onClosed = () => {\r\n this.sdClosed.emit();\r\n }\r\n}\r\n\r\n","import { DecimalPipe } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdExcelItem, SdUploadExcelColumn } from '../upload-excel.model';\r\n@Pipe({\r\n name: 'columnTransform'\r\n})\r\nexport class SdColumnTransformPipe implements PipeTransform {\r\n constructor(private decimalPipe: DecimalPipe) {\r\n\r\n }\r\n transform = async (rowData: SdExcelItem, column: SdUploadExcelColumn): Promise<string> => {\r\n const { type, transform } = column;\r\n const value = rowData.data[column.field];\r\n if (rowData.sd.validation.data[column.field]?.error) {\r\n return rowData.sd.origin[column.field] ?? value ?? '';\r\n }\r\n if (transform) {\r\n return transform(rowData.data, value);\r\n }\r\n if (column.type === 'number') {\r\n return Number.toVNCurrency(value) ?? '';\r\n }\r\n if (column.type === 'bool') {\r\n if (value === '1' || value === true) {\r\n return `<div class=\"text-center\"><input type=\"checkbox\" checked disabled></div>`;\r\n } else if (value === '0' || value === false) {\r\n return `<div class=\"text-center\"><input type=\"checkbox\" disabled></div>`;\r\n }\r\n }\r\n if (column.type === 'date') {\r\n return Date.toFormat(value, column.format || 'dd/MM/yyyy') ?? '';\r\n }\r\n if (column.type === 'datetime') {\r\n return Date.toFormat(value, column.format || 'dd/MM/yyyy HH:mm') ?? '';\r\n }\r\n return value ?? '';\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DecimalPipe } from '@angular/common';\r\nimport { DeviceDetectorModule } from 'ngx-device-detector';\r\nimport { SdNotifyModule } from '@sd-angular/core/notify';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { SdUploadExcel } from './upload-excel.component';\r\nimport { SdButtonModule } from '@sd-angular/core/button';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { SdModalModule } from '@sd-angular/core/modal';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SdInputModule } from '@sd-angular/core/input';\r\nimport { SdUtilityModule } from '@sd-angular/core/utility';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport {MatMenuModule} from '@angular/material/menu';\r\nimport { SdColumnHiddenPipe } from './pipes/columm-hidden.pipe';\r\nimport { SdColumnTransformPipe } from './pipes/column-transform.pipe';\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n DeviceDetectorModule.forRoot(),\r\n MatSlideToggleModule,\r\n MatTooltipModule,\r\n MatPaginatorModule,\r\n MatSlideToggleModule,\r\n SdNotifyModule,\r\n SdTranslateModule,\r\n SdUtilityModule,\r\n SdButtonModule,\r\n SdModalModule,\r\n SdInputModule,\r\n MatIconModule,\r\n MatMenuModule\r\n ],\r\n declarations: [\r\n SdUploadExcel,\r\n // pipe\r\n SdColumnHiddenPipe,\r\n SdColumnTransformPipe\r\n ],\r\n exports: [\r\n SdUploadExcel\r\n ],\r\n providers: [\r\n DecimalPipe,\r\n SdColumnHiddenPipe\r\n ]\r\n})\r\nexport class SdUploadExcelModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {SdColumnHiddenPipe as ɵa} from './src/lib/pipes/columm-hidden.pipe';\nexport {SdColumnTransformPipe as ɵb} from './src/lib/pipes/column-transform.pipe';"],"names":["uuid.v4"],"mappings":"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"}
@@ -25,6 +25,9 @@ import '@sd-angular/core/print';
25
25
  import '@sd-angular/core/zip';
26
26
  import '@sd-angular/core/export';
27
27
  import { SdTableModule } from '@sd-angular/core/table';
28
+ import '@sd-angular/core/date';
29
+ import '@sd-angular/core/month';
30
+ import '@sd-angular/core/date-full';
28
31
  import { NgModule } from '@angular/core';
29
32
  import { CommonModule } from '@angular/common';
30
33
  import { MatFormFieldModule } from '@angular/material/form-field';
@@ -1 +1 @@
1
- {"version":3,"file":"sd-angular-core.js","sources":["../../../../projects/sd-core/src/lib/material.module.ts","../../../../projects/sd-core/src/lib/core.module.ts","../../../../projects/sd-core/src/sd-angular-core.ts"],"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 { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MaterialModule } from './material.module';\r\n\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 { SdUploadExcelModule } from '@sd-angular/core/upload-excel';\r\nimport { SdGridModule } from '@sd-angular/core/grid';\r\nimport { SdFormModule } from '@sd-angular/core/form';\r\nimport { SdTableModule } from '@sd-angular/core/table';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaterialModule,\r\n SdChartModule,\r\n SdKonvaModule,\r\n SdGridMaterialModule,\r\n SdUploadExcelModule,\r\n SdGridModule,\r\n SdFormModule,\r\n SdTableModule,\r\n SdServiceModule\r\n ],\r\n declarations: [\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 SdTableModule,\r\n SdServiceModule,\r\n MaterialModule,\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdCoreModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAkEa,cAAc;;;YA5C1B,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,gBAAgB;oBAChB,kBAAkB;oBAClB,cAAc;oBACd,eAAe;oBACf,qBAAqB;oBACrB,iBAAiB;oBACjB,oBAAoB;oBACpB,cAAc;oBACd,aAAa;oBACb,aAAa;oBACb,cAAc;oBACd,eAAe;oBACf,eAAe;oBACf,oBAAoB;oBACpB,wBAAwB;oBACxB,cAAc;oBACd,kBAAkB;oBAClB,aAAa;oBACb,kBAAkB;iBACnB;gBACD,OAAO,EAAE;oBACP,gBAAgB;oBAChB,kBAAkB;oBAClB,cAAc;oBACd,eAAe;oBACf,qBAAqB;oBACrB,iBAAiB;oBACjB,oBAAoB;oBACpB,cAAc;oBACd,aAAa;oBACb,aAAa;oBACb,cAAc;oBACd,eAAe;oBACf,eAAe;oBACf,oBAAoB;oBACpB,wBAAwB;oBACxB,cAAc;oBACd,kBAAkB;oBAClB,aAAa;oBACb,kBAAkB;iBACnB;aACF;;;MCrBY,YAAY;;;YA9BxB,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,YAAY;oBACZ,cAAc;oBACd,aAAa;oBACb,aAAa;oBACb,oBAAoB;oBACpB,mBAAmB;oBACnB,YAAY;oBACZ,YAAY;oBACZ,aAAa;oBACb,eAAe;iBAChB;gBACD,YAAY,EAAE,EACb;gBACD,OAAO,EAAE;oBACP,aAAa;oBACb,aAAa;oBACb,oBAAoB;oBACpB,cAAc;oBACd,mBAAmB;oBACnB,YAAY;oBACZ,YAAY;oBACZ,aAAa;oBACb,eAAe;oBACf,cAAc;iBACf;gBACD,SAAS,EAAE,EACV;aACF;;;AC3CD;;;;;;"}
1
+ {"version":3,"file":"sd-angular-core.js","sources":["../../../../projects/sd-core/src/lib/material.module.ts","../../../../projects/sd-core/src/lib/core.module.ts","../../../../projects/sd-core/src/sd-angular-core.ts"],"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 { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MaterialModule } from './material.module';\r\n\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 { SdUploadExcelModule } from '@sd-angular/core/upload-excel';\r\nimport { SdGridModule } from '@sd-angular/core/grid';\r\nimport { SdFormModule } from '@sd-angular/core/form';\r\nimport { SdTableModule } from '@sd-angular/core/table';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaterialModule,\r\n SdChartModule,\r\n SdKonvaModule,\r\n SdGridMaterialModule,\r\n SdUploadExcelModule,\r\n SdGridModule,\r\n SdFormModule,\r\n SdTableModule,\r\n SdServiceModule\r\n ],\r\n declarations: [\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 SdTableModule,\r\n SdServiceModule,\r\n MaterialModule,\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdCoreModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAkEa,cAAc;;;YA5C1B,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,gBAAgB;oBAChB,kBAAkB;oBAClB,cAAc;oBACd,eAAe;oBACf,qBAAqB;oBACrB,iBAAiB;oBACjB,oBAAoB;oBACpB,cAAc;oBACd,aAAa;oBACb,aAAa;oBACb,cAAc;oBACd,eAAe;oBACf,eAAe;oBACf,oBAAoB;oBACpB,wBAAwB;oBACxB,cAAc;oBACd,kBAAkB;oBAClB,aAAa;oBACb,kBAAkB;iBACnB;gBACD,OAAO,EAAE;oBACP,gBAAgB;oBAChB,kBAAkB;oBAClB,cAAc;oBACd,eAAe;oBACf,qBAAqB;oBACrB,iBAAiB;oBACjB,oBAAoB;oBACpB,cAAc;oBACd,aAAa;oBACb,aAAa;oBACb,cAAc;oBACd,eAAe;oBACf,eAAe;oBACf,oBAAoB;oBACpB,wBAAwB;oBACxB,cAAc;oBACd,kBAAkB;oBAClB,aAAa;oBACb,kBAAkB;iBACnB;aACF;;;MCrBY,YAAY;;;YA9BxB,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,YAAY;oBACZ,cAAc;oBACd,aAAa;oBACb,aAAa;oBACb,oBAAoB;oBACpB,mBAAmB;oBACnB,YAAY;oBACZ,YAAY;oBACZ,aAAa;oBACb,eAAe;iBAChB;gBACD,YAAY,EAAE,EACb;gBACD,OAAO,EAAE;oBACP,aAAa;oBACb,aAAa;oBACb,oBAAoB;oBACpB,cAAc;oBACd,mBAAmB;oBACnB,YAAY;oBACZ,YAAY;oBACZ,aAAa;oBACb,eAAe;oBACf,cAAc;iBACf;gBACD,SAAS,EAAE,EACV;aACF;;;AC3CD;;;;;;"}
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"SdFormModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":29,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":31,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":32,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":33,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/modal","name":"SdModalModule","line":34,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/side-drawer","name":"SdSideDrawerModule","line":35,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/label","name":"SdLabelModule","line":36,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/upload-file","name":"SdUploadFileModule","line":37,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/date-range","name":"SdDateRangeModule","line":38,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/date-time","name":"SdDateTimeModule","line":39,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/time","name":"SdTimeModule","line":40,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/button","name":"SdButtonModule","line":41,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/autocomplete","name":"SdAutocompleteModule","line":42,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/input","name":"SdInputModule","line":43,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/input-currency","name":"SdInputCurrencyModule","line":44,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/input-number","name":"SdInputNumberModule","line":45,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/select","name":"SdSelectModule","line":46,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/select-editor","name":"SdSelectEditorModule","line":47,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/editor","name":"SdEditorModule","line":48,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/switch","name":"SdSwitchModule","line":49,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/radio","name":"SdRadioModule","line":50,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/chip","name":"SdChipModule","line":51,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/textarea","name":"SdTextareaModule","line":52,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/checkbox","name":"SdCheckboxModule","line":53,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/utility","name":"SdUtilityModule","line":54,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/quick-action","name":"SdQuickActionModule","line":55,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/badge","name":"SdBadgeModule","line":56,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/timeline","name":"SdTimelineModule","line":57,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/modal-resizable","name":"SdModalResizableModule","line":58,"character":4}],"declarations":[],"providers":[],"exports":[{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":65,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":66,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":67,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/modal","name":"SdModalModule","line":68,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/side-drawer","name":"SdSideDrawerModule","line":69,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/label","name":"SdLabelModule","line":70,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/upload-file","name":"SdUploadFileModule","line":71,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/date-range","name":"SdDateRangeModule","line":72,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/date-time","name":"SdDateTimeModule","line":73,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/time","name":"SdTimeModule","line":74,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/button","name":"SdButtonModule","line":75,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/autocomplete","name":"SdAutocompleteModule","line":76,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/input","name":"SdInputModule","line":77,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/input-currency","name":"SdInputCurrencyModule","line":78,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/input-number","name":"SdInputNumberModule","line":79,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/select","name":"SdSelectModule","line":80,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/select-editor","name":"SdSelectEditorModule","line":81,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/editor","name":"SdEditorModule","line":82,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/switch","name":"SdSwitchModule","line":83,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/radio","name":"SdRadioModule","line":84,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/chip","name":"SdChipModule","line":85,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/textarea","name":"SdTextareaModule","line":86,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/checkbox","name":"SdCheckboxModule","line":87,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/utility","name":"SdUtilityModule","line":88,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/quick-action","name":"SdQuickActionModule","line":89,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/badge","name":"SdBadgeModule","line":90,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/timeline","name":"SdTimelineModule","line":91,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/modal-resizable","name":"SdModalResizableModule","line":92,"character":4}]}]}],"members":{}}},"origins":{"SdFormModule":"./src/lib/form.module"},"importAs":"@sd-angular/core/form"}
1
+ {"__symbolic":"module","version":4,"metadata":{"SdFormModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":32,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":34,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":35,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":36,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/modal","name":"SdModalModule","line":37,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/side-drawer","name":"SdSideDrawerModule","line":38,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/label","name":"SdLabelModule","line":39,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/upload-file","name":"SdUploadFileModule","line":40,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/date","name":"SdDateModule","line":41,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/month","name":"SdMonthModule","line":42,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/date-full","name":"SdDateFullModule","line":43,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/date-range","name":"SdDateRangeModule","line":44,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/date-time","name":"SdDateTimeModule","line":45,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/time","name":"SdTimeModule","line":46,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/button","name":"SdButtonModule","line":47,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/autocomplete","name":"SdAutocompleteModule","line":48,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/input","name":"SdInputModule","line":49,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/input-currency","name":"SdInputCurrencyModule","line":50,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/input-number","name":"SdInputNumberModule","line":51,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/select","name":"SdSelectModule","line":52,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/select-editor","name":"SdSelectEditorModule","line":53,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/editor","name":"SdEditorModule","line":54,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/switch","name":"SdSwitchModule","line":55,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/radio","name":"SdRadioModule","line":56,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/chip","name":"SdChipModule","line":57,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/textarea","name":"SdTextareaModule","line":58,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/checkbox","name":"SdCheckboxModule","line":59,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/utility","name":"SdUtilityModule","line":60,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/quick-action","name":"SdQuickActionModule","line":61,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/badge","name":"SdBadgeModule","line":62,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/timeline","name":"SdTimelineModule","line":63,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/modal-resizable","name":"SdModalResizableModule","line":64,"character":4}],"declarations":[],"providers":[],"exports":[{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":71,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":72,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":73,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/modal","name":"SdModalModule","line":74,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/side-drawer","name":"SdSideDrawerModule","line":75,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/label","name":"SdLabelModule","line":76,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/upload-file","name":"SdUploadFileModule","line":77,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/date-range","name":"SdDateRangeModule","line":78,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/date","name":"SdDateModule","line":79,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/month","name":"SdMonthModule","line":80,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/date-full","name":"SdDateFullModule","line":81,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/date-time","name":"SdDateTimeModule","line":82,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/time","name":"SdTimeModule","line":83,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/button","name":"SdButtonModule","line":84,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/autocomplete","name":"SdAutocompleteModule","line":85,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/input","name":"SdInputModule","line":86,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/input-currency","name":"SdInputCurrencyModule","line":87,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/input-number","name":"SdInputNumberModule","line":88,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/select","name":"SdSelectModule","line":89,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/select-editor","name":"SdSelectEditorModule","line":90,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/editor","name":"SdEditorModule","line":91,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/switch","name":"SdSwitchModule","line":92,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/radio","name":"SdRadioModule","line":93,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/chip","name":"SdChipModule","line":94,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/textarea","name":"SdTextareaModule","line":95,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/checkbox","name":"SdCheckboxModule","line":96,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/utility","name":"SdUtilityModule","line":97,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/quick-action","name":"SdQuickActionModule","line":98,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/badge","name":"SdBadgeModule","line":99,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/timeline","name":"SdTimelineModule","line":100,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/modal-resizable","name":"SdModalResizableModule","line":101,"character":4}]}]}],"members":{}}},"origins":{"SdFormModule":"./src/lib/form.module"},"importAs":"@sd-angular/core/form"}
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"SdInputNumberModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"SdInputNumber"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":16,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":17,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":21,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":22,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/translate","name":"SdTranslateModule","line":23,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":24,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/popover","name":"SdPopoverModule","line":25,"character":4},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":26,"character":4}],"exports":[{"__symbolic":"reference","name":"SdInputNumber"}]}]}],"members":{}},"SdInputNumber":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":39,"character":1},"arguments":[{"selector":"sd-input-number","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":43,"character":19},"member":"OnPush"},"template":"<ng-container *ngIf=\"!appearance && sdLabelDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"sdLabelDef.templateRef\">\r\n </ng-container>\r\n</ng-container>\r\n<label *ngIf=\"!appearance && label && !sdLabelDef?.templateRef\" class=\"d-block mb-0 T14M\">{{label}} <span class=\"text-danger mb-2\"\r\n *ngIf=\"isRequired\">*</span></label>\r\n<div class=\"d-flex align-items-center\" [class.sd-view]=\"sdView?.templateRef\" [class.c-focused]=\"isFocused\"\r\n [class.c-disabled]=\"formControl.disabled\" (click)=\"onClick()\">\r\n <ng-container *ngIf=\"sdView?.templateRef && !isFocused; else default\">\r\n <ng-container *ngTemplateOutlet=\"sdView.templateRef;context: { value: formControl.value }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field class=\"sd-md\" [ngClass]=\"{ 'sd-sm': size === 'sm', 'no-padding-wrapper': disableErrorMessage}\"\r\n [appearance]=\"appearance || 'outline'\">\r\n <mat-label *ngIf=\"appearance && label\">{{label}}</mat-label>\r\n <input aria-hidden=\"true\" [id]=\"id\" [formControl]=\"inputControl\" #control matInput\r\n [placeholder]=\"placeholder || (appearance ? label : '')\" [errorStateMatcher]=\"matcher\"\r\n (keyup.enter)=\"onKeyupEnter()\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" (keydown)=\"onKeydown($event)\"\r\n [required]=\"isRequired\" [readonly]=\"isReadonly\" [autocomplete]=\"id\" (paste)=\"onPaste($event)\" autocorrect=\"off\"\r\n [attr.data-qclabel]=\"label\" [attr.data-qcid]=\"qcId\"\r\n [sdPopoverTriggerFor]=\"null\" [sdPopoverDisabled]=\"!disableErrorMessage || formControl.valid\">\r\n <ng-container *ngIf=\"sdSuffix?.templateRef\" matSuffix>\r\n <ng-container *ngTemplateOutlet=\"sdSuffix.templateRef\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-content select=\"[sdSuffixIcon]\" matSuffix></ng-content>\r\n <svg \r\n #copyTooltip=\"matTooltip\" \r\n *ngIf=\"copyable\" \r\n matSuffix \r\n [matTooltip]=\"copied ? 'Copied' : 'Copy'\" \r\n class=\"icon-copy\" \r\n focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" \r\n (click)=\"onCopyText()\">\r\n <path d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"></path>\r\n </svg>\r\n <mat-error *ngIf=\"formControl?.errors?.required\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{ \"This field is required\" | sdTranslate }}</ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.min\"> \r\n <ng-container *ngIf=\"!disableErrorMessage\">{{'Không nhập bé hơn '}} <strong>{{minNumber}}</strong></ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.max\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{'Không nhập lớn hơn '}} <strong>{{maxNumber}}</strong></ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.customValidator\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{formControl.errors?.customValidator}}</ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.inlineError\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{inlineError}}</ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n</div>\r\n<!-- <sd-popover #error=\"sdPopover\" type=\"danger\" width=\"300px\">\r\n <span *ngIf=\"formControl.errors?.required\">\r\n {{ \"This field is required\" | sdTranslate }}\r\n </span>\r\n <span *ngIf=\"formControl.errors?.customValidator\">\r\n {{formControl.errors?.customValidator}}\r\n </span>\r\n</sd-popover> -->","styles":[":host ::ng-deep .mat-form-field.sd-form-tooltip{width:calc(100% - 30px)}: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}:host ::ng-deep .mat-form-field:hover .icon-copy{opacity:1}:host ::ng-deep .mat-form-field .icon-copy{cursor:pointer;fill:rgba(0,0,0,.5);height:.9em;opacity:0;transition:opacity .2s linear;width:.9em}.sd-view:not(.c-focused):not(.c-disabled):hover{background-color:#ebecf0}.sd-tooltip{display:inline-block;margin:auto;text-align:center;width:30px}:host{display:block;padding-top:5px}.sd-md:hover .btn-copy{visibility:visible}.btn-copy{background:#e9e9e9!important;font-size:12px;line-height:26px!important;margin-bottom:3px;visibility:hidden}"]}]}],"members":{"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"_label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3},"arguments":["label"]}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":73,"character":3}}]}],"_disableErrorMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":3},"arguments":["disableErrorMessage"]}]}],"_blurOnEnter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":79,"character":3},"arguments":["blurOnEnter"]}]}],"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":83,"character":3}}]}],"modelChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":101,"character":3}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":105,"character":3}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":109,"character":3}}]}],"precision":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":110,"character":3}}]}],"readonly":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":113,"character":3}}]}],"min":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":118,"character":3}}]}],"max":[{"__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":130,"character":3}}]}],"_inlineError":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":136,"character":3},"arguments":["inlineError"]}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":141,"character":3}}]}],"appearance":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":151,"character":3}}]}],"copyTooltip":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":153,"character":3},"arguments":["copyTooltip"]}]}],"_copyable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":155,"character":3},"arguments":["copyable"]}]}],"sdChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":160,"character":3}}]}],"sdFocus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":161,"character":3}}]}],"sdBlur":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":162,"character":3}}]}],"sdFocusForceBlur":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":163,"character":3}}]}],"keyupEnter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":164,"character":3}}]}],"control":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":166,"character":3},"arguments":["control"]}]}],"sdView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":172,"character":3},"arguments":[{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdViewDefDirective","line":172,"character":16}]}]}],"sdSuffix":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":173,"character":3},"arguments":[{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdSuffixDirective","line":173,"character":16}]}]}],"sdLabelDef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":174,"character":3},"arguments":[{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdLabelDefDirective","line":174,"character":16}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":178,"character":5},"arguments":[{"__symbolic":"reference","module":"@sd-angular/core/common","name":"FORM_CONFIG","line":178,"character":12}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":178,"character":26}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":177,"character":17},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"IFormConfiguration","line":178,"character":57}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"customInlineErrorValidator":[{"__symbolic":"method"}],"onPaste":[{"__symbolic":"method"}],"onCopyText":[{"__symbolic":"method"}]}}},"origins":{"SdInputNumberModule":"./src/lib/input-number.module","SdInputNumber":"./src/lib/input-number.component"},"importAs":"@sd-angular/core/input-number"}
1
+ {"__symbolic":"module","version":4,"metadata":{"SdInputNumberModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"SdInputNumber"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":15,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":16,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":17,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":21,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/translate","name":"SdTranslateModule","line":22,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":23,"character":4},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":24,"character":4}],"exports":[{"__symbolic":"reference","name":"SdInputNumber"}]}]}],"members":{}},"SdInputNumber":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":39,"character":1},"arguments":[{"selector":"sd-input-number","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":43,"character":19},"member":"OnPush"},"template":"<ng-container *ngIf=\"!appearance && sdLabelDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"sdLabelDef.templateRef\">\r\n </ng-container>\r\n</ng-container>\r\n<label *ngIf=\"!appearance && label && !sdLabelDef?.templateRef\" class=\"d-block mb-0 T14M\">{{label}} <span class=\"text-danger mb-2\"\r\n *ngIf=\"isRequired\">*</span></label>\r\n<div class=\"d-flex align-items-center\" [class.sd-view]=\"sdView?.templateRef\" [class.c-focused]=\"isFocused\"\r\n [class.c-disabled]=\"formControl.disabled\" (click)=\"onClick()\">\r\n <ng-container *ngIf=\"sdView?.templateRef && !isFocused; else default\">\r\n <ng-container *ngTemplateOutlet=\"sdView.templateRef;context: { value: formControl.value }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field class=\"sd-md\" [ngClass]=\"{ 'sd-sm': size === 'sm', 'no-padding-wrapper': disableErrorMessage}\"\r\n [appearance]=\"appearance || 'outline'\">\r\n <mat-label *ngIf=\"appearance && label\">{{label}}</mat-label>\r\n <input aria-hidden=\"true\" [id]=\"id\" [formControl]=\"inputControl\" #control matInput\r\n [placeholder]=\"placeholder || (appearance ? label : '')\" [errorStateMatcher]=\"matcher\"\r\n (keyup.enter)=\"onKeyupEnter()\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" (keydown)=\"onKeydown($event)\"\r\n [required]=\"isRequired\" [readonly]=\"isReadonly\" [autocomplete]=\"id\" (paste)=\"onPaste($event)\" autocorrect=\"off\"\r\n [attr.data-qclabel]=\"label\" [attr.data-qcid]=\"qcId\">\r\n <ng-container *ngIf=\"sdSuffix?.templateRef\" matSuffix>\r\n <ng-container *ngTemplateOutlet=\"sdSuffix.templateRef\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-content select=\"[sdSuffixIcon]\" matSuffix></ng-content>\r\n <svg \r\n #copyTooltip=\"matTooltip\" \r\n *ngIf=\"copyable\" \r\n matSuffix \r\n [matTooltip]=\"copied ? 'Copied' : 'Copy'\" \r\n class=\"icon-copy\" \r\n focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" \r\n (click)=\"onCopyText()\">\r\n <path d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"></path>\r\n </svg>\r\n <mat-error *ngIf=\"formControl?.errors?.required\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{ \"This field is required\" | sdTranslate }}</ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.min\"> \r\n <ng-container *ngIf=\"!disableErrorMessage\">{{'Không nhập bé hơn '}} <strong>{{minNumber}}</strong></ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.max\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{'Không nhập lớn hơn '}} <strong>{{maxNumber}}</strong></ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.customValidator\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{formControl.errors?.customValidator}}</ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.inlineError\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{inlineError}}</ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n</div>\r\n<!-- <sd-popover #error=\"sdPopover\" type=\"danger\" width=\"300px\">\r\n <span *ngIf=\"formControl.errors?.required\">\r\n {{ \"This field is required\" | sdTranslate }}\r\n </span>\r\n <span *ngIf=\"formControl.errors?.customValidator\">\r\n {{formControl.errors?.customValidator}}\r\n </span>\r\n</sd-popover> -->","styles":[":host ::ng-deep .mat-form-field.sd-form-tooltip{width:calc(100% - 30px)}: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}:host ::ng-deep .mat-form-field:hover .icon-copy{opacity:1}:host ::ng-deep .mat-form-field .icon-copy{cursor:pointer;fill:rgba(0,0,0,.5);height:.9em;opacity:0;transition:opacity .2s linear;width:.9em}.sd-view:not(.c-focused):not(.c-disabled):hover{background-color:#ebecf0}.sd-tooltip{display:inline-block;margin:auto;text-align:center;width:30px}:host{display:block;padding-top:5px}.sd-md:hover .btn-copy{visibility:visible}.btn-copy{background:#e9e9e9!important;font-size:12px;line-height:26px!important;margin-bottom:3px;visibility:hidden}"]}]}],"members":{"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"_label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3},"arguments":["label"]}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":73,"character":3}}]}],"_disableErrorMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":3},"arguments":["disableErrorMessage"]}]}],"_blurOnEnter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":79,"character":3},"arguments":["blurOnEnter"]}]}],"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":83,"character":3}}]}],"modelChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":101,"character":3}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":105,"character":3}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":109,"character":3}}]}],"precision":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":110,"character":3}}]}],"readonly":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":113,"character":3}}]}],"min":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":118,"character":3}}]}],"max":[{"__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":130,"character":3}}]}],"_inlineError":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":136,"character":3},"arguments":["inlineError"]}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":141,"character":3}}]}],"appearance":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":151,"character":3}}]}],"copyTooltip":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":153,"character":3},"arguments":["copyTooltip"]}]}],"_copyable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":155,"character":3},"arguments":["copyable"]}]}],"sdChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":160,"character":3}}]}],"sdFocus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":161,"character":3}}]}],"sdBlur":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":162,"character":3}}]}],"sdFocusForceBlur":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":163,"character":3}}]}],"keyupEnter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":164,"character":3}}]}],"control":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":166,"character":3},"arguments":["control"]}]}],"sdView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":172,"character":3},"arguments":[{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdViewDefDirective","line":172,"character":16}]}]}],"sdSuffix":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":173,"character":3},"arguments":[{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdSuffixDirective","line":173,"character":16}]}]}],"sdLabelDef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":174,"character":3},"arguments":[{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdLabelDefDirective","line":174,"character":16}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":178,"character":5},"arguments":[{"__symbolic":"reference","module":"@sd-angular/core/common","name":"FORM_CONFIG","line":178,"character":12}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":178,"character":26}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":177,"character":17},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"IFormConfiguration","line":178,"character":57}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"customInlineErrorValidator":[{"__symbolic":"method"}],"onPaste":[{"__symbolic":"method"}],"onCopyText":[{"__symbolic":"method"}]}}},"origins":{"SdInputNumberModule":"./src/lib/input-number.module","SdInputNumber":"./src/lib/input-number.component"},"importAs":"@sd-angular/core/input-number"}
@@ -0,0 +1 @@
1
+ export * from './src/public-api';
@@ -0,0 +1,12 @@
1
+ {
2
+ "peerDependencies": {},
3
+ "main": "../bundles/sd-angular-core-month.umd.js",
4
+ "module": "../fesm2015/sd-angular-core-month.js",
5
+ "es2015": "../fesm2015/sd-angular-core-month.js",
6
+ "esm2015": "../esm2015/month/sd-angular-core-month.js",
7
+ "fesm2015": "../fesm2015/sd-angular-core-month.js",
8
+ "typings": "sd-angular-core-month.d.ts",
9
+ "metadata": "sd-angular-core-month.metadata.json",
10
+ "sideEffects": false,
11
+ "name": "@sd-angular/core/month"
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":{"SdMonthModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":15,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":16,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":17,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/material/datepicker","name":"MatDatepickerModule","line":21,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/translate","name":"SdTranslateModule","line":22,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":23,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/popover","name":"SdPopoverModule","line":24,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/button","name":"SdButtonModule","line":25,"character":4}],"declarations":[{"__symbolic":"reference","name":"SdMonth"}],"exports":[{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":31,"character":4},{"__symbolic":"reference","name":"SdMonth"}],"providers":[]}]}],"members":{}},"SdMonth":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":52,"character":1},"arguments":[{"selector":"sd-month","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":56,"character":19},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/material/core","name":"MAT_DATE_FORMATS","line":58,"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":59,"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":"<ng-container *ngIf=\"!appearance && sdLabelDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"sdLabelDef.templateRef\"> </ng-container>\r\n</ng-container>\r\n<label *ngIf=\"!appearance && label && !sdLabelDef?.templateRef\" class=\"d-block mb-0 T14M\"\r\n >{{ label }} <span class=\"text-danger mb-2\" *ngIf=\"required\">*</span></label\r\n>\r\n<div\r\n class=\"d-flex align-items-center\"\r\n [class.sd-view]=\"sdView?.templateRef\"\r\n [class.c-focused]=\"isFocused\"\r\n [class.c-disabled]=\"formControl.disabled\"\r\n (click)=\"onClick()\">\r\n <ng-container *ngIf=\"sdView?.templateRef && !isFocused && !datePicker?.opened; else default\">\r\n <ng-container *ngTemplateOutlet=\"sdView.templateRef; context: { value: formControl.value }\"> </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field\r\n class=\"sd-md\"\r\n [ngClass]=\"{ 'sd-sm': size === 'sm', 'no-padding-wrapper': disableErrorMessage }\"\r\n appearance=\"outline\">\r\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\r\n <input\r\n aria-hidden=\"true\"\r\n [id]=\"id\"\r\n matInput\r\n (keyup)=\"onKeyup($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (dateChange)=\"onChange($event)\"\r\n [autocomplete]=\"id\"\r\n autocorrect=\"off\"\r\n [formControl]=\"formControl\"\r\n [required]=\"required\"\r\n [matDatepicker]=\"picker\"\r\n [placeholder]=\"placeholder || (appearance ? label : '')\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n #input />\r\n <mat-icon\r\n *ngIf=\"formControl?.value && !required && !formControl.disabled\"\r\n class=\"pointer sd-suffix-icon\"\r\n (click)=\"clear($event)\"\r\n matSuffix\r\n >cancel\r\n </mat-icon>\r\n <mat-icon class=\"pointer sd-suffix-icon\" (click)=\"!formControl?.disabled && picker.open()\" #btn matSuffix> today </mat-icon>\r\n <mat-datepicker\r\n #picker\r\n [touchUi]=\"isMobileOrTablet\"\r\n startView=\"multi-year\"\r\n (monthSelected)=\"onMonthSelected($event)\"></mat-datepicker>\r\n <mat-error *ngIf=\"formControl?.errors?.required && formControl?.touched\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{ 'This field is required' | sdTranslate }}</ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl?.errors?.matDatepickerMin && formControl?.touched\">\r\n <ng-container *ngIf=\"!disableErrorMessage\"\r\n >{{ 'Min date' | sdTranslate }}:\r\n <strong>{{ min | date : 'dd/MM/yyyy HH:mm' }}</strong>\r\n </ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl?.errors?.matDatepickerMax && formControl?.touched\">\r\n <ng-container *ngIf=\"!disableErrorMessage\"\r\n >{{ 'Max date' | sdTranslate }}:\r\n <strong>{{ max | date : 'dd/MM/yyyy HH:mm' }}</strong>\r\n </ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl?.errors?.matDatetimePickerParse && formControl?.touched\">\r\n <ng-container *ngIf=\"!disableErrorMessage\"\r\n >{{ 'Parse error' | sdTranslate }}:\r\n <strong>{{ formControl?.errors?.matDatetimePickerParse?.text }}</strong>\r\n </ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl?.errors?.customValidator && formControl?.touched && !disableErrorMessage\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{ formControl?.errors?.customValidator }} </ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.inlineError && formControl?.touched && !disableErrorMessage\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{ inlineError }}</ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-template>\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}.sd-view:not(.c-focused):not(.c-disabled):hover{background-color:#ebecf0}"]}]}],"members":{"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":67,"character":3}}]}],"appearance":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":73,"character":3}}]}],"_disableErrorMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":76,"character":3},"arguments":["disableErrorMessage"]}]}],"_min":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":84,"character":3},"arguments":["min"]}]}],"_max":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":94,"character":3},"arguments":["max"]}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":102,"character":3}}]}],"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":104,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":116,"character":3}}]}],"_required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":127,"character":3},"arguments":["required"]}]}],"_inlineError":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":138,"character":3},"arguments":["inlineError"]}]}],"_label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":152,"character":3},"arguments":["label"]}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":160,"character":3}}]}],"defaultTime":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":161,"character":3}}]}],"minDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":163,"character":3}}]}],"maxDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":171,"character":3}}]}],"validator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":179,"character":3}}]}],"sdChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":180,"character":3}}]}],"sdFocus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":181,"character":3}}]}],"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":183,"character":3}}]}],"modelChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":194,"character":3}}]}],"sdView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":196,"character":3},"arguments":[{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdViewDefDirective","line":196,"character":16}]}]}],"sdLabelDef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":197,"character":3},"arguments":[{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdLabelDefDirective","line":197,"character":16}]}]}],"input":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":198,"character":3},"arguments":["input"]}]}],"datePicker":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":199,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material/datepicker","name":"MatDatepicker","line":199,"character":13}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":205,"character":5},"arguments":[{"__symbolic":"reference","module":"@sd-angular/core/common","name":"FORM_CONFIG","line":205,"character":12}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":205,"character":26}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":203,"character":17},{"__symbolic":"reference","module":"ngx-device-detector","name":"DeviceDetectorService","line":204,"character":19},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"IFormConfiguration","line":205,"character":57}]}],"ngOnDestroy":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"customInlineErrorValidator":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"focusInputElement":[{"__symbolic":"method"}]}}},"origins":{"SdMonthModule":"./src/lib/month.module","SdMonth":"./src/lib/month.component"},"importAs":"@sd-angular/core/month"}