@sd-angular/core 1.0.57 → 1.0.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sd-angular-core-grid-material.umd.js +29 -13
- package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
- package/esm2015/grid-material/src/lib/grid-material.component.js +17 -5
- package/esm2015/grid-material/src/lib/models/grid-column.model.js +1 -1
- package/esm2015/grid-material/src/lib/pipes/cell-view.pipe.js +8 -6
- package/fesm2015/sd-angular-core-grid-material.js +23 -9
- package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
- package/grid-material/sd-angular-core-grid-material.metadata.json +1 -1
- package/grid-material/src/lib/models/grid-column.model.d.ts +1 -0
- package/package.json +1 -1
- package/{sd-angular-core-1.0.57.tgz → sd-angular-core-1.0.60.tgz} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jb2x1bW4ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1L0Rlc2t0b3AvV29ya2luZy8xTUcvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLW1hdGVyaWFsLyIsInNvdXJjZXMiOlsic3JjL2xpYi9tb2RlbHMvZ3JpZC1jb2x1bW4ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNkQmFkZ2VDb2xvciB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvYmFkZ2UnO1xyXG5cclxuZXhwb3J0IHR5cGUgU2RHcmlkTWF0ZXJpYWxDb2x1bW48VCA9IGFueT4gPVxyXG4gIFNkR3JpZE1hdGVyaWFsQ29sdW1uVGV4dDxUPiB8XHJcbiAgU2RHcmlkTWF0ZXJpYWxDb2x1bW5OdW1iZXI8VD4gfFxyXG4gIFNkR3JpZE1hdGVyaWFsQm9vbDxUPiB8XHJcbiAgU2RHcmlkTWF0ZXJpYWxDb2x1bW5EYXRlPFQ+IHxcclxuICBTZEdyaWRNYXRlcmlhbENvbHVtblZhbHVlczxUPiB8XHJcbiAgU2RHcmlkTWF0ZXJpYWxDb2x1bW5JbWFnZTxUPiB8XHJcbiAgU2RHcmlkTWF0ZXJpYWxDb2x1bW5DaGlsZHJlbjxUPiB8XHJcbiAgU2RHcmlkTWF0ZXJpYWxDb2x1bW5DaGlsZHJlbkNvbDxUPjtcclxuXHJcbmludGVyZmFjZSBTZEdyaWRNYXRlcmlhbEJhc2VDb2x1bW48VCA9IGFueT4ge1xyXG4gIGZpZWxkOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB0aXRsZUh0bWw/OiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgd2lkdGg/OiBzdHJpbmc7XHJcbiAgaGlkZGVuPzogYm9vbGVhbjtcclxuICBpbnZpc2libGU/OiBib29sZWFuO1xyXG4gIGZpeGVkPzogYm9vbGVhbjtcclxuICBhbGlnbj86ICdjZW50ZXInIHwgJ2xlZnQnIHwgJ3JpZ2h0JztcclxuICBodG1sVGVtcGxhdGU/OiAodmFsdWU6IGFueSwgcm93RGF0YTogVCwgaXNNb2JpbGVPclRhYmxldDogYm9vbGVhbikgPT4gc3RyaW5nO1xyXG4gIHRyYW5zZm9ybT86ICh2YWx1ZTogYW55LCByb3dEYXRhOiBUKSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz47XHJcbiAgdG9vbHRpcD86ICh2YWx1ZTogYW55LCByb3dEYXRhOiBUKSA9PiBzdHJpbmc7XHJcbiAgY2xpY2s/OiAodmFsdWU6IGFueSwgcm93RGF0YTogVCkgPT4gdm9pZDtcclxuICBzb3J0YWJsZT86IGJvb2xlYW47XHJcbiAgZmlsdGVyPzoge1xyXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gICAgZGVmYXVsdFNob3dpbmc/OiBib29sZWFuO1xyXG4gICAgZGVmYXVsdD86IGFueTtcclxuICB9O1xyXG4gIGV4cG9ydD86IHtcclxuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICB9O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgU2RHcmlkTWF0ZXJpYWxDb2x1bW5UZXh0PFQgPSBhbnk+IGV4dGVuZHMgU2RHcmlkTWF0ZXJpYWxCYXNlQ29sdW1uPFQ+IHtcclxuICB0eXBlOiAnc3RyaW5nJztcclxuICBiYWRnZT86ICh2YWx1ZTogYW55LCByb3dEYXRhOiBUKSA9PiBTZEJhZGdlQ29sb3I7XHJcbiAgYmFkZ2VJY29uPzogKHZhbHVlOiBhbnksIHJvd0RhdGE6IFQpID0+IHN0cmluZztcclxuICBiYWRnZVR5cGU/OiAnY2lyY2xlJyB8ICdpY29uJztcclxuICBlZGl0b3I/OiB7XHJcbiAgICBjaGFuZ2U/OiAocm93RGF0YTogVCkgPT4gdm9pZCxcclxuICAgIGhpZGRlbj86IGJvb2xlYW4gfCAoKHJvd0RhdGE6IFQpID0+IGJvb2xlYW4pLFxyXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuIHwgKChyb3dEYXRhOiBUKSA9PiBib29sZWFuKSxcclxuICAgIHJlcXVpcmVkPzogYm9vbGVhbiB8ICgocm93RGF0YTogVCkgPT4gYm9vbGVhbiksXHJcbiAgICBtaW5MZW5ndGg/OiBudW1iZXIsXHJcbiAgICBtYXhMZW5ndGg/OiBudW1iZXIsXHJcbiAgICB2YWxpZGF0b3I/OiAocm93RGF0YTogVCkgPT4gc3RyaW5nXHJcbiAgfTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFNkR3JpZE1hdGVyaWFsQ29sdW1uTnVtYmVyPFQgPSBhbnk+IGV4dGVuZHMgU2RHcmlkTWF0ZXJpYWxCYXNlQ29sdW1uPFQ+IHtcclxuICB0eXBlOiAnbnVtYmVyJztcclxuICBiYWRnZT86ICh2YWx1ZTogYW55LCByb3dEYXRhOiBUKSA9PiBTZEJhZGdlQ29sb3I7XHJcbiAgYmFkZ2VJY29uPzogKHZhbHVlOiBhbnksIHJvd0RhdGE6IFQpID0+IHN0cmluZztcclxuICBiYWRnZVR5cGU/OiAnY2lyY2xlJyB8ICdpY29uJztcclxuICBlZGl0b3I/OiB7XHJcbiAgICBjaGFuZ2U/OiAocm93RGF0YTogVCkgPT4gdm9pZCxcclxuICAgIGhpZGRlbj86IGJvb2xlYW4gfCAoKHJvd0RhdGE6IFQpID0+IGJvb2xlYW4pLFxyXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuIHwgKChyb3dEYXRhOiBUKSA9PiBib29sZWFuKSxcclxuICAgIHJlcXVpcmVkPzogYm9vbGVhbiB8ICgocm93RGF0YTogVCkgPT4gYm9vbGVhbiksXHJcbiAgICBtaW5WYWx1ZT86IG51bWJlcixcclxuICAgIG1heFZhbHVlPzogbnVtYmVyLFxyXG4gICAgdmFsaWRhdG9yPzogKHJvd0RhdGE6IFQpID0+IHN0cmluZ1xyXG4gIH07XHJcbn1cclxuXHJcbmludGVyZmFjZSBTZEdyaWRNYXRlcmlhbEJvb2w8VCA9IGFueT4gZXh0ZW5kcyBTZEdyaWRNYXRlcmlhbEJhc2VDb2x1bW48VD4ge1xyXG4gIHR5cGU6ICdib29sJztcclxuICBvcHRpb24/OiB7XHJcbiAgICBkaXNwbGF5T25UcnVlPzogc3RyaW5nO1xyXG4gICAgZGlzcGxheU9uRmFsc2U/OiBzdHJpbmc7XHJcbiAgfTtcclxuICBiYWRnZVR5cGU/OiAnY2lyY2xlJztcclxuICBlZGl0b3I/OiB7XHJcbiAgICBjaGFuZ2U/OiAocm93RGF0YTogVCkgPT4gdm9pZCxcclxuICAgIGhpZGRlbj86IGJvb2xlYW4gfCAoKHJvd0RhdGE6IFQpID0+IGJvb2xlYW4pLFxyXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuIHwgKChyb3dEYXRhOiBUKSA9PiBib29sZWFuKSxcclxuICAgIHJlcXVpcmVkPzogYm9vbGVhbiB8ICgocm93RGF0YTogVCkgPT4gYm9vbGVhbiksXHJcbiAgfTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFNkR3JpZE1hdGVyaWFsQ29sdW1uRGF0ZTxUID0gYW55PiBleHRlbmRzIFNkR3JpZE1hdGVyaWFsQmFzZUNvbHVtbjxUPiB7XHJcbiAgdHlwZTogJ2RhdGUnIHwgJ2RhdGV0aW1lJyB8ICd0aW1lJztcclxuICBvcHRpb24/OiB7XHJcbiAgICB1c2VGaWx0ZXJEYXRlPzogYm9vbGVhbjtcclxuICAgIHRpbWVEaWZmZXJlbnQ/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jb2x1bW4ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1L0Rlc2t0b3AvV29ya2luZy8xTUcvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLW1hdGVyaWFsLyIsInNvdXJjZXMiOlsic3JjL2xpYi9tb2RlbHMvZ3JpZC1jb2x1bW4ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNkQmFkZ2VDb2xvciB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvYmFkZ2UnO1xyXG5cclxuZXhwb3J0IHR5cGUgU2RHcmlkTWF0ZXJpYWxDb2x1bW48VCA9IGFueT4gPVxyXG4gIFNkR3JpZE1hdGVyaWFsQ29sdW1uVGV4dDxUPiB8XHJcbiAgU2RHcmlkTWF0ZXJpYWxDb2x1bW5OdW1iZXI8VD4gfFxyXG4gIFNkR3JpZE1hdGVyaWFsQm9vbDxUPiB8XHJcbiAgU2RHcmlkTWF0ZXJpYWxDb2x1bW5EYXRlPFQ+IHxcclxuICBTZEdyaWRNYXRlcmlhbENvbHVtblZhbHVlczxUPiB8XHJcbiAgU2RHcmlkTWF0ZXJpYWxDb2x1bW5JbWFnZTxUPiB8XHJcbiAgU2RHcmlkTWF0ZXJpYWxDb2x1bW5DaGlsZHJlbjxUPiB8XHJcbiAgU2RHcmlkTWF0ZXJpYWxDb2x1bW5DaGlsZHJlbkNvbDxUPjtcclxuXHJcbmludGVyZmFjZSBTZEdyaWRNYXRlcmlhbEJhc2VDb2x1bW48VCA9IGFueT4ge1xyXG4gIGZpZWxkOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB0aXRsZUh0bWw/OiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgd2lkdGg/OiBzdHJpbmc7XHJcbiAgaGlkZGVuPzogYm9vbGVhbjtcclxuICBpbnZpc2libGU/OiBib29sZWFuO1xyXG4gIGZpeGVkPzogYm9vbGVhbjtcclxuICBhbGlnbj86ICdjZW50ZXInIHwgJ2xlZnQnIHwgJ3JpZ2h0JztcclxuICBodG1sVGVtcGxhdGU/OiAodmFsdWU6IGFueSwgcm93RGF0YTogVCwgaXNNb2JpbGVPclRhYmxldDogYm9vbGVhbikgPT4gc3RyaW5nO1xyXG4gIHRyYW5zZm9ybT86ICh2YWx1ZTogYW55LCByb3dEYXRhOiBUKSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz47XHJcbiAgdG9vbHRpcD86ICh2YWx1ZTogYW55LCByb3dEYXRhOiBUKSA9PiBzdHJpbmc7XHJcbiAgY2xpY2s/OiAodmFsdWU6IGFueSwgcm93RGF0YTogVCkgPT4gdm9pZDtcclxuICBzb3J0YWJsZT86IGJvb2xlYW47XHJcbiAgZmlsdGVyPzoge1xyXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gICAgZGVmYXVsdFNob3dpbmc/OiBib29sZWFuO1xyXG4gICAgZGVmYXVsdD86IGFueTtcclxuICB9O1xyXG4gIGV4cG9ydD86IHtcclxuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICB9O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgU2RHcmlkTWF0ZXJpYWxDb2x1bW5UZXh0PFQgPSBhbnk+IGV4dGVuZHMgU2RHcmlkTWF0ZXJpYWxCYXNlQ29sdW1uPFQ+IHtcclxuICB0eXBlOiAnc3RyaW5nJztcclxuICBiYWRnZT86ICh2YWx1ZTogYW55LCByb3dEYXRhOiBUKSA9PiBTZEJhZGdlQ29sb3I7XHJcbiAgYmFkZ2VJY29uPzogKHZhbHVlOiBhbnksIHJvd0RhdGE6IFQpID0+IHN0cmluZztcclxuICBiYWRnZVR5cGU/OiAnY2lyY2xlJyB8ICdpY29uJztcclxuICBlZGl0b3I/OiB7XHJcbiAgICBjaGFuZ2U/OiAocm93RGF0YTogVCkgPT4gdm9pZCxcclxuICAgIGhpZGRlbj86IGJvb2xlYW4gfCAoKHJvd0RhdGE6IFQpID0+IGJvb2xlYW4pLFxyXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuIHwgKChyb3dEYXRhOiBUKSA9PiBib29sZWFuKSxcclxuICAgIHJlcXVpcmVkPzogYm9vbGVhbiB8ICgocm93RGF0YTogVCkgPT4gYm9vbGVhbiksXHJcbiAgICBtaW5MZW5ndGg/OiBudW1iZXIsXHJcbiAgICBtYXhMZW5ndGg/OiBudW1iZXIsXHJcbiAgICB2YWxpZGF0b3I/OiAocm93RGF0YTogVCkgPT4gc3RyaW5nXHJcbiAgfTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFNkR3JpZE1hdGVyaWFsQ29sdW1uTnVtYmVyPFQgPSBhbnk+IGV4dGVuZHMgU2RHcmlkTWF0ZXJpYWxCYXNlQ29sdW1uPFQ+IHtcclxuICB0eXBlOiAnbnVtYmVyJztcclxuICBiYWRnZT86ICh2YWx1ZTogYW55LCByb3dEYXRhOiBUKSA9PiBTZEJhZGdlQ29sb3I7XHJcbiAgYmFkZ2VJY29uPzogKHZhbHVlOiBhbnksIHJvd0RhdGE6IFQpID0+IHN0cmluZztcclxuICBiYWRnZVR5cGU/OiAnY2lyY2xlJyB8ICdpY29uJztcclxuICBlZGl0b3I/OiB7XHJcbiAgICBjaGFuZ2U/OiAocm93RGF0YTogVCkgPT4gdm9pZCxcclxuICAgIGhpZGRlbj86IGJvb2xlYW4gfCAoKHJvd0RhdGE6IFQpID0+IGJvb2xlYW4pLFxyXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuIHwgKChyb3dEYXRhOiBUKSA9PiBib29sZWFuKSxcclxuICAgIHJlcXVpcmVkPzogYm9vbGVhbiB8ICgocm93RGF0YTogVCkgPT4gYm9vbGVhbiksXHJcbiAgICBtaW5WYWx1ZT86IG51bWJlcixcclxuICAgIG1heFZhbHVlPzogbnVtYmVyLFxyXG4gICAgdmFsaWRhdG9yPzogKHJvd0RhdGE6IFQpID0+IHN0cmluZ1xyXG4gIH07XHJcbn1cclxuXHJcbmludGVyZmFjZSBTZEdyaWRNYXRlcmlhbEJvb2w8VCA9IGFueT4gZXh0ZW5kcyBTZEdyaWRNYXRlcmlhbEJhc2VDb2x1bW48VD4ge1xyXG4gIHR5cGU6ICdib29sJztcclxuICBvcHRpb24/OiB7XHJcbiAgICBkaXNwbGF5T25UcnVlPzogc3RyaW5nO1xyXG4gICAgZGlzcGxheU9uRmFsc2U/OiBzdHJpbmc7XHJcbiAgfTtcclxuICBiYWRnZVR5cGU/OiAnY2lyY2xlJztcclxuICBlZGl0b3I/OiB7XHJcbiAgICBjaGFuZ2U/OiAocm93RGF0YTogVCkgPT4gdm9pZCxcclxuICAgIGhpZGRlbj86IGJvb2xlYW4gfCAoKHJvd0RhdGE6IFQpID0+IGJvb2xlYW4pLFxyXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuIHwgKChyb3dEYXRhOiBUKSA9PiBib29sZWFuKSxcclxuICAgIHJlcXVpcmVkPzogYm9vbGVhbiB8ICgocm93RGF0YTogVCkgPT4gYm9vbGVhbiksXHJcbiAgfTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFNkR3JpZE1hdGVyaWFsQ29sdW1uRGF0ZTxUID0gYW55PiBleHRlbmRzIFNkR3JpZE1hdGVyaWFsQmFzZUNvbHVtbjxUPiB7XHJcbiAgdHlwZTogJ2RhdGUnIHwgJ2RhdGV0aW1lJyB8ICd0aW1lJztcclxuICBvcHRpb24/OiB7XHJcbiAgICB1c2VGaWx0ZXJEYXRlPzogYm9vbGVhbjtcclxuICAgIHRpbWVEaWZmZXJlbnQ/OiAnc2Vjb25kJyB8ICdtaW51dGUnIHwgJ2hvdXInIHwgJ2RheScgfCAnbW9udGgnO1xyXG4gIH07XHJcbiAgdHJhbnNmb3JtRGF0ZT86ICh2YWx1ZTogYW55LCByb3dEYXRhOiBUKSA9PiBzdHJpbmcgfCBEYXRlO1xyXG4gIGVkaXRvcj86IHtcclxuICAgIGNoYW5nZT86IChyb3dEYXRhOiBUKSA9PiB2b2lkLFxyXG4gICAgaGlkZGVuPzogYm9vbGVhbiB8ICgocm93RGF0YTogVCkgPT4gYm9vbGVhbiksXHJcbiAgICBkaXNhYmxlZD86IGJvb2xlYW4gfCAoKHJvd0RhdGE6IFQpID0+IGJvb2xlYW4pLFxyXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuIHwgKChyb3dEYXRhOiBUKSA9PiBib29sZWFuKSxcclxuICB9O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgU2RHcmlkTWF0ZXJpYWxDb2x1bW5WYWx1ZXM8VCA9IGFueT4gZXh0ZW5kcyBTZEdyaWRNYXRlcmlhbEJhc2VDb2x1bW48VD4ge1xyXG4gIHR5cGU6ICd2YWx1ZXMnO1xyXG4gIGJhZGdlPzogKHZhbHVlOiBhbnksIHJvd0RhdGE6IFQpID0+IFNkQmFkZ2VDb2xvcjtcclxuICBiYWRnZUljb24/OiAodmFsdWU6IGFueSwgcm93RGF0YTogVCkgPT4gc3RyaW5nO1xyXG4gIGJhZGdlVHlwZT86ICdjaXJjbGUnIHwgJ2ljb24nO1xyXG4gIG9wdGlvbjoge1xyXG4gICAgaXRlbXM6IGFueVtdIHwgKChzZWFyY2hUZXh0Pzogc3RyaW5nIHwgc3RyaW5nW10sIGlzRm9ybVZhbHVlPzogYm9vbGVhbikgPT4gUHJvbWlzZTxhbnlbXT4pO1xyXG4gICAgdmFsdWVGaWVsZDogc3RyaW5nO1xyXG4gICAgZGlzcGxheUZpZWxkOiBzdHJpbmc7XHJcbiAgICBzZWxlY3Rpb24/OiAnQVVUT0NPTVBMRVRFJyB8ICdNVUxUSVBMRScgfCAnTVVMVElQTEVBVVRPQ09NUExFVEUnO1xyXG4gIH07XHJcbiAgZWRpdG9yPzoge1xyXG4gICAgY2hhbmdlPzogKHJvd0RhdGE6IFQpID0+IHZvaWQsXHJcbiAgICBoaWRkZW4/OiBib29sZWFuIHwgKChyb3dEYXRhOiBUKSA9PiBib29sZWFuKSxcclxuICAgIGRpc2FibGVkPzogYm9vbGVhbiB8ICgocm93RGF0YTogVCkgPT4gYm9vbGVhbiksXHJcbiAgICByZXF1aXJlZD86IGJvb2xlYW4gfCAoKHJvd0RhdGE6IFQpID0+IGJvb2xlYW4pLFxyXG4gIH07XHJcbn1cclxuXHJcbmludGVyZmFjZSBTZEdyaWRNYXRlcmlhbENvbHVtbkltYWdlPFQgPSBhbnk+IGV4dGVuZHMgU2RHcmlkTWF0ZXJpYWxCYXNlQ29sdW1uPFQ+IHtcclxuICB0eXBlOiAnaW1hZ2UnO1xyXG4gIG9wdGlvbjoge1xyXG4gICAgaGVpZ2h0OiBudW1iZXIsXHJcbiAgICB3aWR0aDogbnVtYmVyXHJcbiAgfTtcclxuICBlZGl0b3I/OiB7XHJcbiAgICBjaGFuZ2U/OiAocm93RGF0YTogVCkgPT4gdm9pZCxcclxuICAgIGhpZGRlbj86IGJvb2xlYW4gfCAoKHJvd0RhdGE6IFQpID0+IGJvb2xlYW4pLFxyXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuIHwgKChyb3dEYXRhOiBUKSA9PiBib29sZWFuKSxcclxuICAgIHJlcXVpcmVkPzogYm9vbGVhbiB8ICgocm93RGF0YTogVCkgPT4gYm9vbGVhbiksXHJcbiAgfTtcclxufVxyXG5cclxudHlwZSBTZEdyaWRNYXRlcmlhbE5vcm1hbENvbHVtbjxUPiA9XHJcbiAgRXhjbHVkZTxFeGNsdWRlPFNkR3JpZE1hdGVyaWFsQ29sdW1uPFQ+LFxyXG4gICAgU2RHcmlkTWF0ZXJpYWxDb2x1bW5DaGlsZHJlbjxUPj4sXHJcbiAgICBTZEdyaWRNYXRlcmlhbENvbHVtbkNoaWxkcmVuQ29sPFQ+PjtcclxuXHJcbmV4cG9ydCB0eXBlIFNkR3JpZE1hdGVyaWFsQ2hpbGRDb2x1bW48VCA9IGFueT4gPSAoU2RHcmlkTWF0ZXJpYWxOb3JtYWxDb2x1bW48VD5cclxuICAmIHsgZHluYW1pY1RpdGxlPzogKHJvd0RhdGE6IFQpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPiwgY29sU3BhbjogMSB8IDIgfSk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNkR3JpZE1hdGVyaWFsQ29sdW1uQ2hpbGRyZW48VCA9IGFueT4gZXh0ZW5kcyBTZEdyaWRNYXRlcmlhbEJhc2VDb2x1bW48VD4ge1xyXG4gIHR5cGU6ICdjaGlsZHJlbic7XHJcbiAgY2hpbGRyZW46IFNkR3JpZE1hdGVyaWFsQ2hpbGRDb2x1bW48VD5bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZEdyaWRNYXRlcmlhbENvbHVtbkNoaWxkcmVuQ29sPFQgPSBhbnk+IGV4dGVuZHMgU2RHcmlkTWF0ZXJpYWxCYXNlQ29sdW1uPFQ+IHtcclxuICB0eXBlOiAnY2hpbGRyZW4tY29sJztcclxuICBjaGlsZHJlbjogU2RHcmlkTWF0ZXJpYWxOb3JtYWxDb2x1bW48VD5bXTtcclxufVxyXG4iXX0=
|
|
@@ -36,6 +36,12 @@ export class SdCellViewPipe {
|
|
|
36
36
|
result.display.html = htmlTemplate(value, rowData, __classPrivateFieldGet(this, _isMobileOrTablet));
|
|
37
37
|
}
|
|
38
38
|
else {
|
|
39
|
+
if (column.type === 'datetime' || column.type === 'date' || column.type === 'time') {
|
|
40
|
+
const { transformDate } = column;
|
|
41
|
+
if (transformDate) {
|
|
42
|
+
value = transformDate(value, rowData);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
39
45
|
if (typeof (transform) === 'function') {
|
|
40
46
|
const val = transform(value, rowData);
|
|
41
47
|
if (val instanceof Promise) {
|
|
@@ -44,10 +50,6 @@ export class SdCellViewPipe {
|
|
|
44
50
|
else {
|
|
45
51
|
result.display.value = val;
|
|
46
52
|
}
|
|
47
|
-
if (column.type === 'datetime' && result.display.value) {
|
|
48
|
-
result.display.hasHtml = true;
|
|
49
|
-
result.display.html = `<span class="d-block T14R text-black400">${Date.toFormat(result.display.value, 'HH:mm')}</span><span class="d-block T14R">${Date.toFormat(result.display.value, 'dd/MM/yyyy')}</span>`;
|
|
50
|
-
}
|
|
51
53
|
}
|
|
52
54
|
else {
|
|
53
55
|
if (column.type === 'date' || column.type === 'datetime') {
|
|
@@ -77,7 +79,7 @@ export class SdCellViewPipe {
|
|
|
77
79
|
result.display.value = Date.toFormat(value, column.type === 'date' ? 'dd/MM/yyyy' : 'dd/MM/yyyy HH:mm');
|
|
78
80
|
if (column.type === 'datetime' && result.display.value) {
|
|
79
81
|
result.display.hasHtml = true;
|
|
80
|
-
result.display.html = `<span class="d-block T14R text-black400">${Date.toFormat(
|
|
82
|
+
result.display.html = `<span class="d-block T14R text-black400">${Date.toFormat(value, 'HH:mm')}</span><span class="d-block T14R">${Date.toFormat(value, 'dd/MM/yyyy')}</span>`;
|
|
81
83
|
}
|
|
82
84
|
}
|
|
83
85
|
}
|
|
@@ -144,4 +146,4 @@ SdCellViewPipe.ctorParameters = () => [
|
|
|
144
146
|
{ type: SdUtilityService },
|
|
145
147
|
{ type: SdColumnValuesPipe }
|
|
146
148
|
];
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC12aWV3LnBpcGUuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1L0Rlc2t0b3AvV29ya2luZy8xTUcvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLW1hdGVyaWFsLyIsInNvdXJjZXMiOlsic3JjL2xpYi9waXBlcy9jZWxsLXZpZXcucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSTVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSTFELE1BQU0sT0FBTyxjQUFjO0lBT3pCLFlBQ0UsYUFBb0MsRUFDNUIsY0FBZ0MsRUFDaEMsZ0JBQW9DO1FBRHBDLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9CO1FBVDlDLHFCQUFhLEVBQUUsRUFBQztRQUNoQixxQkFBYSwyQ0FBa0IsRUFBRSxFQUFDO1FBQ2xDLG1CQUFXLDJDQUFrQixFQUFFLEVBQUM7UUFDaEMsa0JBQVUseUNBQWdCLEVBQUUsRUFBQztRQUM3QixvQkFBWSx5Q0FBZ0IsR0FBRyxFQUFDO1FBQ2hDLDRCQUFvQixLQUFLLEVBQUM7UUFLeEIsdUJBQUEsSUFBSSxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLEVBQUM7SUFDdEQsQ0FBQztJQUNLLFNBQVMsQ0FDYixLQUFVLEVBQ1YsT0FBWSxFQUNaLE1BQTRCLEVBQzVCLFVBQWdDLEVBQ2hDLEdBQVc7OztZQUNYLE1BQU0sRUFBRSxjQUFjLEVBQUUsR0FBRyxVQUFVLENBQUM7WUFDdEMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFT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LENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQzthQUM1QztZQUNELE9BQU8sTUFBTSxDQUFDOztLQUNmOzs7O1lBMUhGLElBQUksU0FBQztnQkFDSixJQUFJLEVBQUUsVUFBVTthQUNqQjs7O1lBUFEscUJBQXFCO1lBRHJCLGdCQUFnQjtZQUtoQixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNkVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBEZXZpY2VEZXRlY3RvclNlcnZpY2UgfSBmcm9tICduZ3gtZGV2aWNlLWRldGVjdG9yJztcclxuaW1wb3J0IHsgU2RDZWxsVmlldyB9IGZyb20gJy4uL21vZGVscy9ncmlkLWNlbGwubW9kZWwnO1xyXG5pbXBvcnQgeyBTZEdyaWRNYXRlcmlhbENvbHVtbiB9IGZyb20gJy4uL21vZGVscy9ncmlkLWNvbHVtbi5tb2RlbCc7XHJcbmltcG9ydCB7IFNkR3JpZE1hdGVyaWFsT3B0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtb3B0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgU2RDb2x1bW5WYWx1ZXNQaXBlIH0gZnJvbSAnLi9jb2x1bW4tdmFsdWVzLnBpcGUnO1xyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2NlbGxWaWV3J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RDZWxsVmlld1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICAjbWF4U2Vjb25kID0gNjA7XHJcbiAgI21heE1pbnV0ZSA9IHRoaXMuI21heFNlY29uZCAqIDYwO1xyXG4gICNtYXhIb3VyID0gdGhpcy4jbWF4TWludXRlICogMjQ7XHJcbiAgI21heERheSA9IHRoaXMuI21heEhvdXIgKiAzMDtcclxuICAjbWF4TW9udGggPSB0aGlzLiNtYXhIb3VyICogMzY1O1xyXG4gICNpc01vYmlsZU9yVGFibGV0ID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBkZXZpY2VTZXJ2aWNlOiBEZXZpY2VEZXRlY3RvclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBTZFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb2x1bW5WYWx1ZXNQaXBlOiBTZENvbHVtblZhbHVlc1BpcGUpIHtcclxuICAgIHRoaXMuI2lzTW9iaWxlT3JUYWJsZXQgPSAhZGV2aWNlU2VydmljZS5pc0Rlc2t0b3AoKTtcclxuICB9XHJcbiAgYXN5bmMgdHJhbnNmb3JtKFxyXG4gICAgdmFsdWU6IGFueSxcclxuICAgIHJvd0RhdGE6IGFueSxcclxuICAgIGNvbHVtbjogU2RHcmlkTWF0ZXJpYWxDb2x1bW4sXHJcbiAgICBncmlkT3B0aW9uOiBTZEdyaWRNYXRlcmlhbE9wdGlvbixcclxuICAgIGtleTogc3RyaW5nKTogUHJvbWlzZTxTZENlbGxWaWV3PiB7XHJcbiAgICBjb25zdCB7IGRpc3BsYXlPbkVtcHR5IH0gPSBncmlkT3B0aW9uO1xyXG4gICAgY29uc3QgeyBhbGlnbiwgY2xpY2ssIHRvb2x0aXAsIGh0bWxUZW1wbGF0ZSwgdHJhbnNmb3JtIH0gPSBjb2x1bW47XHJcbiAgICBjb25zdCByZXN1bHQ6IFNkQ2VsbFZpZXcgPSB7XHJcbiAgICAgIGJhZGdlOiBudWxsLFxyXG4gICAgICB0b29sdGlwOiBudWxsLFxyXG4gICAgICBkaXNwbGF5OiB7XHJcbiAgICAgICAgYWxpZ246IGFsaWduIHx8IChjb2x1bW4udHlwZSA9PT0gJ251bWJlcicgPyAncmlnaHQnIDogJ2xlZnQnKSxcclxuICAgICAgICB2YWx1ZVxyXG4gICAgICB9LFxyXG4gICAgICBjbGljazogbnVsbFxyXG4gICAgfTtcclxuICAgIC8vIERpc3BsYXlcclxuICAgIGlmICh0eXBlb2YgKGh0bWxUZW1wbGF0ZSkgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgcmVzdWx0LmRpc3BsYXkuaGFzSHRtbCA9IHRydWU7XHJcbiAgICAgIHJlc3VsdC5kaXNwbGF5Lmh0bWwgPSBodG1sVGVtcGxhdGUodmFsdWUsIHJvd0RhdGEsIHRoaXMuI2lzTW9iaWxlT3JUYWJsZXQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHR5cGVvZiAodHJhbnNmb3JtKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIGNvbnN0IHZhbCA9IHRyYW5zZm9ybSh2YWx1ZSwgcm93RGF0YSk7XHJcbiAgICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgIHJlc3VsdC5kaXNwbGF5LnZhbHVlID0gYXdhaXQgdmFsO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXN1bHQuZGlzcGxheS52YWx1ZSA9IHZhbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNvbHVtbi50eXBlID09PSAnZGF0ZXRpbWUnICYmIHJlc3VsdC5kaXNwbGF5LnZhbHVlKSB7XHJcbiAgICAgICAgICByZXN1bHQuZGlzcGxheS5oYXNIdG1sID0gdHJ1ZTtcclxuICAgICAgICAgIHJlc3VsdC5kaXNwbGF5Lmh0bWwgPSBgPHNwYW4gY2xhc3M9XCJkLWJsb2NrIFQxNFIgdGV4dC1ibGFjazQwMFwiPiR7RGF0ZS50b0Zvcm1hdChyZXN1bHQuZGlzcGxheS52YWx1ZSwgJ0hIOm1tJyl9PC9zcGFuPjxzcGFuIGNsYXNzPVwiZC1ibG9jayBUMTRSXCI+JHtEYXRlLnRvRm9ybWF0KHJlc3VsdC5kaXNwbGF5LnZhbHVlLCAnZGQvTU0veXl5eScpfTwvc3Bhbj5gXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2RhdGUnIHx8IGNvbHVtbi50eXBlID09PSAnZGF0ZXRpbWUnKSB7XHJcbiAgICAgICAgICBjb25zdCB7IG9wdGlvbiB9ID0gY29sdW1uO1xyXG4gICAgICAgICAgY29uc3Qgc2Vjb25kcyA9IE1hdGgucm91bmQoKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gbmV3IERhdGUodmFsdWUpLmdldFRpbWUoKSkgLyAxMDAwKTtcclxuICAgICAgICAgIGlmIChvcHRpb24/LnRpbWVEaWZmZXJlbnQgPT09ICdtb250aCcgJiYgc2Vjb25kcyA8IHRoaXMuI21heE1vbnRoKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdC5kaXNwbGF5LnZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS50aW1lRGlmZmVyZW5jZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgIHJlc3VsdC50b29sdGlwID0gRGF0ZS50b0Zvcm1hdCh2YWx1ZSwgY29sdW1uLnR5cGUgPT09ICdkYXRlJyA/ICdkZC9NTS95eXl5JyA6ICdkZC9NTS95eXl5IEhIOm1tJyk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbj8udGltZURpZmZlcmVudCA9PT0gJ2RheScgJiYgc2Vjb25kcyA8IHRoaXMuI21heERheSkge1xyXG4gICAgICAgICAgICByZXN1bHQuZGlzcGxheS52YWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UudGltZURpZmZlcmVuY2UodmFsdWUpO1xyXG4gICAgICAgICAgICByZXN1bHQudG9vbHRpcCA9IERhdGUudG9Gb3JtYXQodmFsdWUsIGNvbHVtbi50eXBlID09PSAnZGF0ZScgPyAnZGQvTU0veXl5eScgOiAnZGQvTU0veXl5eSBISDptbScpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChvcHRpb24/LnRpbWVEaWZmZXJlbnQgPT09ICdob3VyJyAmJiBzZWNvbmRzIDwgdGhpcy4jbWF4SG91cikge1xyXG4gICAgICAgICAgICByZXN1bHQuZGlzcGxheS52YWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UudGltZURpZmZlcmVuY2UodmFsdWUpO1xyXG4gICAgICAgICAgICByZXN1bHQudG9vbHRpcCA9IERhdGUudG9Gb3JtYXQodmFsdWUsIGNvbHVtbi50eXBlID09PSAnZGF0ZScgPyAnZGQvTU0veXl5eScgOiAnZGQvTU0veXl5eSBISDptbScpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChvcHRpb24/LnRpbWVEaWZmZXJlbnQgPT09ICdtaW51dGUnICYmIHNlY29uZHMgPCB0aGlzLiNtYXhNaW51dGUpIHtcclxuICAgICAgICAgICAgcmVzdWx0LmRpc3BsYXkudmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLnRpbWVEaWZmZXJlbmNlKHZhbHVlKTtcclxuICAgICAgICAgICAgcmVzdWx0LnRvb2x0aXAgPSBEYXRlLnRvRm9ybWF0KHZhbHVlLCBjb2x1bW4udHlwZSA9PT0gJ2RhdGUnID8gJ2RkL01NL3l5eXknIDogJ2RkL01NL3l5eXkgSEg6bW0nKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAob3B0aW9uPy50aW1lRGlmZmVyZW50ID09PSAnc2Vjb25kJyAmJiBzZWNvbmRzIDwgdGhpcy4jbWF4U2Vjb25kKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdC5kaXNwbGF5LnZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS50aW1lRGlmZmVyZW5jZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgIHJlc3VsdC50b29sdGlwID0gRGF0ZS50b0Zvcm1hdCh2YWx1ZSwgY29sdW1uLnR5cGUgPT09ICdkYXRlJyA/ICdkZC9NTS95eXl5JyA6ICdkZC9NTS95eXl5IEhIOm1tJyk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXN1bHQuZGlzcGxheS52YWx1ZSA9IERhdGUudG9Gb3JtYXQodmFsdWUsIGNvbHVtbi50eXBlID09PSAnZGF0ZScgPyAnZGQvTU0veXl5eScgOiAnZGQvTU0veXl5eSBISDptbScpO1xyXG4gICAgICAgICAgICBpZiAoY29sdW1uLnR5cGUgPT09ICdkYXRldGltZScgJiYgcmVzdWx0LmRpc3BsYXkudmFsdWUpIHtcclxuICAgICAgICAgICAgICByZXN1bHQuZGlzcGxheS5oYXNIdG1sID0gdHJ1ZTtcclxuICAgICAgICAgICAgICByZXN1bHQuZGlzcGxheS5odG1sID0gYDxzcGFuIGNsYXNzPVwiZC1ibG9jayBUMTRSIHRleHQtYmxhY2s0MDBcIj4ke0RhdGUudG9Gb3JtYXQocmVzdWx0LmRpc3BsYXkudmFsdWUsICdISDptbScpfTwvc3Bhbj48c3BhbiBjbGFzcz1cImQtYmxvY2sgVDE0UlwiPiR7RGF0ZS50b0Zvcm1hdChyZXN1bHQuZGlzcGxheS52YWx1ZSwgJ2RkL01NL3l5eXknKX08L3NwYW4+YFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ3RpbWUnKSB7XHJcbiAgICAgICAgICByZXN1bHQuZGlzcGxheS52YWx1ZSA9IERhdGUudG9Gb3JtYXQodmFsdWUsICdISDptbScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY29sdW1uLnR5cGUgPT09ICd2YWx1ZXMnKSB7XHJcbiAgICAgICAgICByZXN1bHQuZGlzcGxheS52YWx1ZSA9IGF3YWl0IHRoaXMuY29sdW1uVmFsdWVzUGlwZS50cmFuc2Zvcm0odmFsdWUsIGNvbHVtbik7XHJcbiAgICAgICAgfSBlbHNlIGlmIChjb2x1bW4udHlwZSA9PT0gJ251bWJlcicgJiYgTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSkge1xyXG4gICAgICAgICAgcmVzdWx0LmRpc3BsYXkudmFsdWUgPSBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNvbHVtbi50eXBlID09PSAnYm9vbCcpIHtcclxuICAgICAgICAgIGNvbnN0IHsgb3B0aW9uIH0gPSBjb2x1bW47XHJcbiAgICAgICAgICByZXN1bHQuZGlzcGxheS52YWx1ZSA9IHZhbHVlID09PSB0cnVlID8gKG9wdGlvbj8uZGlzcGxheU9uVHJ1ZSB8fCAnVHJ1ZScpIDogKG9wdGlvbj8uZGlzcGxheU9uRmFsc2UgfHwgJ0ZhbHNlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChkaXNwbGF5T25FbXB0eSAmJiAocmVzdWx0LmRpc3BsYXkudmFsdWUgPT09IG51bGwgfHwgcmVzdWx0LmRpc3BsYXkudmFsdWUgPT09IHVuZGVmaW5lZCB8fCByZXN1bHQuZGlzcGxheS52YWx1ZSA9PT0gJycpKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiAoZGlzcGxheU9uRW1wdHkpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICByZXN1bHQuZGlzcGxheS5oYXNIdG1sID0gdHJ1ZTtcclxuICAgICAgICAgIHJlc3VsdC5kaXNwbGF5Lmh0bWwgPSBkaXNwbGF5T25FbXB0eShyb3dEYXRhLCBjb2x1bW4pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXN1bHQuZGlzcGxheS5oYXNIdG1sID0gdHJ1ZTtcclxuICAgICAgICAgIHJlc3VsdC5kaXNwbGF5Lmh0bWwgPSBgPGRpdiBjbGFzcz1cIlQxNlIgdGV4dC1ibGFjazQwMFwiPi0tPC9kaXY+YDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIEJhZGdlXHJcbiAgICBpZiAoKGNvbHVtbi50eXBlID09PSAnc3RyaW5nJyB8fCBjb2x1bW4udHlwZSA9PT0gJ251bWJlcicgfHwgY29sdW1uLnR5cGUgPT09ICd2YWx1ZXMnKSAmJiBjb2x1bW4uYmFkZ2UpIHtcclxuICAgICAgcmVzdWx0LmJhZGdlID0ge1xyXG4gICAgICAgIHR5cGU6ICFjb2x1bW4/LmJhZGdlVHlwZSA/ICdyb3VuZCcgOiBjb2x1bW4uYmFkZ2VUeXBlLFxyXG4gICAgICAgIGNvbG9yOiBjb2x1bW4uYmFkZ2UodmFsdWUsIHJvd0RhdGEpLFxyXG4gICAgICAgIGljb246IGNvbHVtbj8uYmFkZ2VJY29uPy4odmFsdWUsIHJvd0RhdGEpXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2UgaWYgKGNvbHVtbi50eXBlID09PSAnYm9vbCcpIHtcclxuICAgICAgcmVzdWx0LmJhZGdlID0ge1xyXG4gICAgICAgIHR5cGU6ICFjb2x1bW4/LmJhZGdlVHlwZSA/ICdyb3VuZCcgOiBjb2x1bW4uYmFkZ2VUeXBlLFxyXG4gICAgICAgIGNvbG9yOiAhIXZhbHVlID8gJ3N1Y2Nlc3MnIDogJ2RhbmdlcicsXHJcbiAgICAgICAgaWNvbjogbnVsbFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgLy8gVG9vbHRpcFxyXG4gICAgaWYgKHR5cGVvZiAodG9vbHRpcCkgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgcmVzdWx0LnRvb2x0aXAgPSB0b29sdGlwKHZhbHVlLCByb3dEYXRhKTtcclxuICAgIH1cclxuICAgIC8vIENsaWNrYWJsZVxyXG4gICAgaWYgKHR5cGVvZiAoY2xpY2spID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIHJlc3VsdC5jbGljayA9ICgpID0+IGNsaWNrKHZhbHVlLCByb3dEYXRhKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC12aWV3LnBpcGUuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1L0Rlc2t0b3AvV29ya2luZy8xTUcvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLW1hdGVyaWFsLyIsInNvdXJjZXMiOlsic3JjL2xpYi9waXBlcy9jZWxsLXZpZXcucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSTVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSTFELE1BQU0sT0FBTyxjQUFjO0lBT3pCLFlBQ0UsYUFBb0MsRUFDNUIsY0FBZ0MsRUFDaEMsZ0JBQW9DO1FBRHBDLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9CO1FBVDlDLHFCQUFhLEVBQUUsRUFBQztRQUNoQixxQkFBYSwyQ0FBa0IsRUFBRSxFQUFDO1FBQ2xDLG1CQUFXLDJDQUFrQixFQUFFLEVBQUM7UUFDaEMsa0JBQVUseUNBQWdCLEVBQUUsRUFBQztRQUM3QixvQkFBWSx5Q0FBZ0IsR0FBRyxFQUFDO1FBQ2hDLDRCQUFvQixLQUFLLEVBQUM7UUFLeEIsdUJBQUEsSUFBSSxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLEVBQUM7SUFDdEQsQ0FBQztJQUNLLFNBQVMsQ0FDYixLQUFVLEVBQ1YsT0FBWSxFQUNaLE1BQTRCLEVBQzVCLFVBQWdDLEVBQ2hDLEdBQVc7OztZQUNYLE1BQU0sRUFBRSxjQUFjLEVBQUUsR0FBRyxVQUFVLENBQUM7WUFDdEMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFT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akI7OztZQVBRLHFCQUFxQjtZQURyQixnQkFBZ0I7WUFLaEIsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTZFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS91dGlsaXR5JztcclxuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XHJcbmltcG9ydCB7IFNkQ2VsbFZpZXcgfSBmcm9tICcuLi9tb2RlbHMvZ3JpZC1jZWxsLm1vZGVsJztcclxuaW1wb3J0IHsgU2RHcmlkTWF0ZXJpYWxDb2x1bW4gfSBmcm9tICcuLi9tb2RlbHMvZ3JpZC1jb2x1bW4ubW9kZWwnO1xyXG5pbXBvcnQgeyBTZEdyaWRNYXRlcmlhbE9wdGlvbiB9IGZyb20gJy4uL21vZGVscy9ncmlkLW9wdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFNkQ29sdW1uVmFsdWVzUGlwZSB9IGZyb20gJy4vY29sdW1uLXZhbHVlcy5waXBlJztcclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdjZWxsVmlldydcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkQ2VsbFZpZXdQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgI21heFNlY29uZCA9IDYwO1xyXG4gICNtYXhNaW51dGUgPSB0aGlzLiNtYXhTZWNvbmQgKiA2MDtcclxuICAjbWF4SG91ciA9IHRoaXMuI21heE1pbnV0ZSAqIDI0O1xyXG4gICNtYXhEYXkgPSB0aGlzLiNtYXhIb3VyICogMzA7XHJcbiAgI21heE1vbnRoID0gdGhpcy4jbWF4SG91ciAqIDM2NTtcclxuICAjaXNNb2JpbGVPclRhYmxldCA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgZGV2aWNlU2VydmljZTogRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1dGlsaXR5U2VydmljZTogU2RVdGlsaXR5U2VydmljZSxcclxuICAgIHByaXZhdGUgY29sdW1uVmFsdWVzUGlwZTogU2RDb2x1bW5WYWx1ZXNQaXBlKSB7XHJcbiAgICB0aGlzLiNpc01vYmlsZU9yVGFibGV0ID0gIWRldmljZVNlcnZpY2UuaXNEZXNrdG9wKCk7XHJcbiAgfVxyXG4gIGFzeW5jIHRyYW5zZm9ybShcclxuICAgIHZhbHVlOiBhbnksXHJcbiAgICByb3dEYXRhOiBhbnksXHJcbiAgICBjb2x1bW46IFNkR3JpZE1hdGVyaWFsQ29sdW1uLFxyXG4gICAgZ3JpZE9wdGlvbjogU2RHcmlkTWF0ZXJpYWxPcHRpb24sXHJcbiAgICBrZXk6IHN0cmluZyk6IFByb21pc2U8U2RDZWxsVmlldz4ge1xyXG4gICAgY29uc3QgeyBkaXNwbGF5T25FbXB0eSB9ID0gZ3JpZE9wdGlvbjtcclxuICAgIGNvbnN0IHsgYWxpZ24sIGNsaWNrLCB0b29sdGlwLCBodG1sVGVtcGxhdGUsIHRyYW5zZm9ybSB9ID0gY29sdW1uO1xyXG4gICAgY29uc3QgcmVzdWx0OiBTZENlbGxWaWV3ID0ge1xyXG4gICAgICBiYWRnZTogbnVsbCxcclxuICAgICAgdG9vbHRpcDogbnVsbCxcclxuICAgICAgZGlzcGxheToge1xyXG4gICAgICAgIGFsaWduOiBhbGlnbiB8fCAoY29sdW1uLnR5cGUgPT09ICdudW1iZXInID8gJ3JpZ2h0JyA6ICdsZWZ0JyksXHJcbiAgICAgICAgdmFsdWVcclxuICAgICAgfSxcclxuICAgICAgY2xpY2s6IG51bGxcclxuICAgIH07XHJcbiAgICAvLyBEaXNwbGF5XHJcbiAgICBpZiAodHlwZW9mIChodG1sVGVtcGxhdGUpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIHJlc3VsdC5kaXNwbGF5Lmhhc0h0bWwgPSB0cnVlO1xyXG4gICAgICByZXN1bHQuZGlzcGxheS5odG1sID0gaHRtbFRlbXBsYXRlKHZhbHVlLCByb3dEYXRhLCB0aGlzLiNpc01vYmlsZU9yVGFibGV0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCBjb2x1bW4udHlwZSA9PT0gJ2RhdGUnIHx8IGNvbHVtbi50eXBlID09PSAndGltZScpIHtcclxuICAgICAgICBjb25zdCB7IHRyYW5zZm9ybURhdGUgfSA9IGNvbHVtbjtcclxuICAgICAgICBpZiAodHJhbnNmb3JtRGF0ZSkge1xyXG4gICAgICAgICAgdmFsdWUgPSB0cmFuc2Zvcm1EYXRlKHZhbHVlLCByb3dEYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHR5cGVvZiAodHJhbnNmb3JtKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIGNvbnN0IHZhbCA9IHRyYW5zZm9ybSh2YWx1ZSwgcm93RGF0YSk7XHJcbiAgICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgIHJlc3VsdC5kaXNwbGF5LnZhbHVlID0gYXdhaXQgdmFsO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXN1bHQuZGlzcGxheS52YWx1ZSA9IHZhbDtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGNvbHVtbi50eXBlID09PSAnZGF0ZScgfHwgY29sdW1uLnR5cGUgPT09ICdkYXRldGltZScpIHtcclxuICAgICAgICAgIGNvbnN0IHsgb3B0aW9uIH0gPSBjb2x1bW47XHJcbiAgICAgICAgICBjb25zdCBzZWNvbmRzID0gTWF0aC5yb3VuZCgobmV3IERhdGUoKS5nZXRUaW1lKCkgLSBuZXcgRGF0ZSh2YWx1ZSkuZ2V0VGltZSgpKSAvIDEwMDApO1xyXG4gICAgICAgICAgaWYgKG9wdGlvbj8udGltZURpZmZlcmVudCA9PT0gJ21vbnRoJyAmJiBzZWNvbmRzIDwgdGhpcy4jbWF4TW9udGgpIHtcclxuICAgICAgICAgICAgcmVzdWx0LmRpc3BsYXkudmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLnRpbWVEaWZmZXJlbmNlKHZhbHVlKTtcclxuICAgICAgICAgICAgcmVzdWx0LnRvb2x0aXAgPSBEYXRlLnRvRm9ybWF0KHZhbHVlLCBjb2x1bW4udHlwZSA9PT0gJ2RhdGUnID8gJ2RkL01NL3l5eXknIDogJ2RkL01NL3l5eXkgSEg6bW0nKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAob3B0aW9uPy50aW1lRGlmZmVyZW50ID09PSAnZGF5JyAmJiBzZWNvbmRzIDwgdGhpcy4jbWF4RGF5KSB7XHJcbiAgICAgICAgICAgIHJlc3VsdC5kaXNwbGF5LnZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS50aW1lRGlmZmVyZW5jZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgIHJlc3VsdC50b29sdGlwID0gRGF0ZS50b0Zvcm1hdCh2YWx1ZSwgY29sdW1uLnR5cGUgPT09ICdkYXRlJyA/ICdkZC9NTS95eXl5JyA6ICdkZC9NTS95eXl5IEhIOm1tJyk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbj8udGltZURpZmZlcmVudCA9PT0gJ2hvdXInICYmIHNlY29uZHMgPCB0aGlzLiNtYXhIb3VyKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdC5kaXNwbGF5LnZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS50aW1lRGlmZmVyZW5jZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgIHJlc3VsdC50b29sdGlwID0gRGF0ZS50b0Zvcm1hdCh2YWx1ZSwgY29sdW1uLnR5cGUgPT09ICdkYXRlJyA/ICdkZC9NTS95eXl5JyA6ICdkZC9NTS95eXl5IEhIOm1tJyk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbj8udGltZURpZmZlcmVudCA9PT0gJ21pbnV0ZScgJiYgc2Vjb25kcyA8IHRoaXMuI21heE1pbnV0ZSkge1xyXG4gICAgICAgICAgICByZXN1bHQuZGlzcGxheS52YWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UudGltZURpZmZlcmVuY2UodmFsdWUpO1xyXG4gICAgICAgICAgICByZXN1bHQudG9vbHRpcCA9IERhdGUudG9Gb3JtYXQodmFsdWUsIGNvbHVtbi50eXBlID09PSAnZGF0ZScgPyAnZGQvTU0veXl5eScgOiAnZGQvTU0veXl5eSBISDptbScpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChvcHRpb24/LnRpbWVEaWZmZXJlbnQgPT09ICdzZWNvbmQnICYmIHNlY29uZHMgPCB0aGlzLiNtYXhTZWNvbmQpIHtcclxuICAgICAgICAgICAgcmVzdWx0LmRpc3BsYXkudmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLnRpbWVEaWZmZXJlbmNlKHZhbHVlKTtcclxuICAgICAgICAgICAgcmVzdWx0LnRvb2x0aXAgPSBEYXRlLnRvRm9ybWF0KHZhbHVlLCBjb2x1bW4udHlwZSA9PT0gJ2RhdGUnID8gJ2RkL01NL3l5eXknIDogJ2RkL01NL3l5eXkgSEg6bW0nKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlc3VsdC5kaXNwbGF5LnZhbHVlID0gRGF0ZS50b0Zvcm1hdCh2YWx1ZSwgY29sdW1uLnR5cGUgPT09ICdkYXRlJyA/ICdkZC9NTS95eXl5JyA6ICdkZC9NTS95eXl5IEhIOm1tJyk7XHJcbiAgICAgICAgICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2RhdGV0aW1lJyAmJiByZXN1bHQuZGlzcGxheS52YWx1ZSkge1xyXG4gICAgICAgICAgICAgIHJlc3VsdC5kaXNwbGF5Lmhhc0h0bWwgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHJlc3VsdC5kaXNwbGF5Lmh0bWwgPSBgPHNwYW4gY2xhc3M9XCJkLWJsb2NrIFQxNFIgdGV4dC1ibGFjazQwMFwiPiR7RGF0ZS50b0Zvcm1hdCh2YWx1ZSwgJ0hIOm1tJyl9PC9zcGFuPjxzcGFuIGNsYXNzPVwiZC1ibG9jayBUMTRSXCI+JHtEYXRlLnRvRm9ybWF0KHZhbHVlLCAnZGQvTU0veXl5eScpfTwvc3Bhbj5gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNvbHVtbi50eXBlID09PSAndGltZScpIHtcclxuICAgICAgICAgIHJlc3VsdC5kaXNwbGF5LnZhbHVlID0gRGF0ZS50b0Zvcm1hdCh2YWx1ZSwgJ0hIOm1tJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ3ZhbHVlcycpIHtcclxuICAgICAgICAgIHJlc3VsdC5kaXNwbGF5LnZhbHVlID0gYXdhaXQgdGhpcy5jb2x1bW5WYWx1ZXNQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgY29sdW1uKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGNvbHVtbi50eXBlID09PSAnbnVtYmVyJyAmJiBOdW1iZXIuaXNOdW1iZXIodmFsdWUpKSB7XHJcbiAgICAgICAgICByZXN1bHQuZGlzcGxheS52YWx1ZSA9IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY29sdW1uLnR5cGUgPT09ICdib29sJykge1xyXG4gICAgICAgICAgY29uc3QgeyBvcHRpb24gfSA9IGNvbHVtbjtcclxuICAgICAgICAgIHJlc3VsdC5kaXNwbGF5LnZhbHVlID0gdmFsdWUgPT09IHRydWUgPyAob3B0aW9uPy5kaXNwbGF5T25UcnVlIHx8ICdUcnVlJykgOiAob3B0aW9uPy5kaXNwbGF5T25GYWxzZSB8fCAnRmFsc2UnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGRpc3BsYXlPbkVtcHR5ICYmIChyZXN1bHQuZGlzcGxheS52YWx1ZSA9PT0gbnVsbCB8fCByZXN1bHQuZGlzcGxheS52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHJlc3VsdC5kaXNwbGF5LnZhbHVlID09PSAnJykpIHtcclxuICAgICAgICBpZiAodHlwZW9mIChkaXNwbGF5T25FbXB0eSkgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgIHJlc3VsdC5kaXNwbGF5Lmhhc0h0bWwgPSB0cnVlO1xyXG4gICAgICAgICAgcmVzdWx0LmRpc3BsYXkuaHRtbCA9IGRpc3BsYXlPbkVtcHR5KHJvd0RhdGEsIGNvbHVtbik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlc3VsdC5kaXNwbGF5Lmhhc0h0bWwgPSB0cnVlO1xyXG4gICAgICAgICAgcmVzdWx0LmRpc3BsYXkuaHRtbCA9IGA8ZGl2IGNsYXNzPVwiVDE2UiB0ZXh0LWJsYWNrNDAwXCI+LS08L2Rpdj5gO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gQmFkZ2VcclxuICAgIGlmICgoY29sdW1uLnR5cGUgPT09ICdzdHJpbmcnIHx8IGNvbHVtbi50eXBlID09PSAnbnVtYmVyJyB8fCBjb2x1bW4udHlwZSA9PT0gJ3ZhbHVlcycpICYmIGNvbHVtbi5iYWRnZSkge1xyXG4gICAgICByZXN1bHQuYmFkZ2UgPSB7XHJcbiAgICAgICAgdHlwZTogIWNvbHVtbj8uYmFkZ2VUeXBlID8gJ3JvdW5kJyA6IGNvbHVtbi5iYWRnZVR5cGUsXHJcbiAgICAgICAgY29sb3I6IGNvbHVtbi5iYWRnZSh2YWx1ZSwgcm93RGF0YSksXHJcbiAgICAgICAgaWNvbjogY29sdW1uPy5iYWRnZUljb24/Lih2YWx1ZSwgcm93RGF0YSlcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSBpZiAoY29sdW1uLnR5cGUgPT09ICdib29sJykge1xyXG4gICAgICByZXN1bHQuYmFkZ2UgPSB7XHJcbiAgICAgICAgdHlwZTogIWNvbHVtbj8uYmFkZ2VUeXBlID8gJ3JvdW5kJyA6IGNvbHVtbi5iYWRnZVR5cGUsXHJcbiAgICAgICAgY29sb3I6ICEhdmFsdWUgPyAnc3VjY2VzcycgOiAnZGFuZ2VyJyxcclxuICAgICAgICBpY29uOiBudWxsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICAvLyBUb29sdGlwXHJcbiAgICBpZiAodHlwZW9mICh0b29sdGlwKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICByZXN1bHQudG9vbHRpcCA9IHRvb2x0aXAodmFsdWUsIHJvd0RhdGEpO1xyXG4gICAgfVxyXG4gICAgLy8gQ2xpY2thYmxlXHJcbiAgICBpZiAodHlwZW9mIChjbGljaykgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgcmVzdWx0LmNsaWNrID0gKCkgPT4gY2xpY2sodmFsdWUsIHJvd0RhdGEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1554,18 +1554,30 @@ class SdGridMaterial {
|
|
|
1554
1554
|
}
|
|
1555
1555
|
}
|
|
1556
1556
|
else if (column.type === 'date') {
|
|
1557
|
+
let date = item[column.field];
|
|
1558
|
+
const { transformDate } = column;
|
|
1559
|
+
if (transformDate) {
|
|
1560
|
+
date = transformDate(date, item);
|
|
1561
|
+
}
|
|
1557
1562
|
// Nếu là date thì convert theo đúng format
|
|
1558
|
-
const date = new Date(item[column.field]);
|
|
1559
1563
|
obj[column.field] = Date.toFormat(date, 'dd/MM/yyyy');
|
|
1560
1564
|
}
|
|
1561
1565
|
else if (column.type === 'datetime') {
|
|
1566
|
+
let date = item[column.field];
|
|
1567
|
+
const { transformDate } = column;
|
|
1568
|
+
if (transformDate) {
|
|
1569
|
+
date = transformDate(date, item);
|
|
1570
|
+
}
|
|
1562
1571
|
// Nếu là datetime thì convert theo đúng format
|
|
1563
|
-
const date = new Date(item[column.field]);
|
|
1564
1572
|
obj[column.field] = Date.toFormat(date, 'dd/MM/yyyy HH:mm:ss');
|
|
1565
1573
|
}
|
|
1566
1574
|
else if (column.type === 'time') {
|
|
1575
|
+
let date = item[column.field];
|
|
1576
|
+
const { transformDate } = column;
|
|
1577
|
+
if (transformDate) {
|
|
1578
|
+
date = transformDate(date, item);
|
|
1579
|
+
}
|
|
1567
1580
|
// Nếu là time thì convert theo đúng format
|
|
1568
|
-
const date = new Date(item[column.field]);
|
|
1569
1581
|
obj[column.field] = Date.toFormat(date, 'HH:mm:ss');
|
|
1570
1582
|
}
|
|
1571
1583
|
else if (column.type === 'values') {
|
|
@@ -1978,7 +1990,7 @@ _paginator = new WeakMap(), _sort = new WeakMap(), _subscription$1 = new WeakMap
|
|
|
1978
1990
|
SdGridMaterial.decorators = [
|
|
1979
1991
|
{ type: Component, args: [{
|
|
1980
1992
|
selector: 'sd-grid-material',
|
|
1981
|
-
template: "<ng-container *ngIf=\"gridConfigurationObserver | async as gridConfiguration\">\r\n <ng-container *ngIf=\"\r\n gridConfiguration\r\n | sdGridConfigurationResult\r\n : gridOption\r\n : sdSubInformation as configuration\r\n \">\r\n <ng-container *ngIf=\"!gridOption.filter?.disabled\">\r\n <sd-grid-filter [filter]=\"gridOption?.filter\" [columns]=\"configuration.firstColumns\" [filterDefs]=\"filterDefs\">\r\n </sd-grid-filter>\r\n </ng-container>\r\n <div class=\"c-container {{ gridOption?.style?.grid }}\" [ngClass]=\"{ 'mat-elevation-z2': gridOption?.shadow }\">\r\n <div class=\"c-loading\" *ngIf=\"isLoading\">\r\n <mat-spinner *ngIf=\"isLoading\"></mat-spinner>\r\n </div>\r\n <ng-container>\r\n <div class=\"c-table\" sdScroll [ngStyle]=\"{\r\n 'max-height': gridOption?.maxHeight,\r\n 'min-height': gridOption?.minHeight\r\n }\">\r\n <table *ngIf=\"items?.length; else elseEmpty\" mat-table [dataSource]=\"items | sdGroup:gridOption\" matSort\r\n [matSortDisabled]=\"!gridOption.sortable\" cdkDropList cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListDisabled]=\"!gridOption.dropDragColumnEnable\"\r\n (cdkDropListDropped)=\"drop($event, configuration.displayedColumns)\" multiTemplateDataRows>\r\n\r\n <ng-container matColumnDef=\"sdSubInformation\" sticky>\r\n <td class=\"p-0\" mat-cell *matCellDef=\"let item\" [attr.colspan]=\"configuration.displayedColumns.length\">\r\n <div *ngIf=\"sdSubInformation?.templateRef\" [@detailExpand]=\"item.isExpanded ? 'expanded' : 'collapsed'\">\r\n <ng-container *ngIf=\"item.isExpanded\">\r\n <ng-container *ngTemplateOutlet=\"\r\n sdSubInformation.templateRef;\r\n context: { item: item }\r\n \">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdSubInformationAction\" stickyEnd>\r\n <th class=\"p-0\" mat-header-cell *matHeaderCellDef style=\"width: 1px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button *ngIf=\"!element.isExpanding\" mat-icon-button aria-label=\"Expand & Collapse\"\r\n (click)=\"onExpand(element)\">\r\n <mat-icon *ngIf=\"!element.isExpanded\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"element.isExpanded\">expand_less</mat-icon>\r\n </button>\r\n <div *ngIf=\"element.isExpanding\" class=\"lds-ring\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdSelection\" sticky>\r\n <th class=\"text-center px-15\" mat-header-cell *matHeaderCellDef style=\"min-width: 50px; max-width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\">\r\n <ng-container *ngIf=\"items | selectionVisibleSelectAll: gridOption?.selection | async\">\r\n <mat-checkbox *ngIf=\"!gridOption.selection?.single\" class=\"c-selection\" color=\"primary\"\r\n [(ngModel)]=\"isSelectAll\" (change)=\"onSelectAll()\">\r\n </mat-checkbox>\r\n </ng-container>\r\n\r\n </th>\r\n <td class=\"text-center px-15\" mat-cell *matCellDef=\"let item\" style=\"min-width: 50px; max-width: 50px\">\r\n <ng-container *ngIf=\"item | selectionVisible:gridOption?.selection\">\r\n <mat-checkbox class=\"c-selection\" color=\"primary\" [(ngModel)]=\"item.isSelected\"\r\n (change)=\"onSelect(item)\" [disabled]=\"\r\n selectedItems | selectionDisable: item:gridOption?.selection\r\n \">\r\n </mat-checkbox>\r\n </ng-container>\r\n\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdEditorValidation\">\r\n <th class=\"p-0\" mat-header-cell *matHeaderCellDef style=\"width: 2px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\">\r\n </th>\r\n <td class=\"p-0 position-relative\" mat-cell *matCellDef=\"let item; index as idx\">\r\n <sd-desktop-editor-validation [sdId]=\"item.sdId\" [item]=\"item\" [items]=\"items\"\r\n [gridOption]=\"gridOption\">\r\n </sd-desktop-editor-validation>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdEditor\">\r\n <th class=\"px-8 py-8\" mat-header-cell *matHeaderCellDef style=\"width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\">\r\n <button class=\"c-btn-add\"\r\n *ngIf=\"gridOption.editor?.addable && (!gridOption.editor.limit || gridOption.editor.limit > items.length)\"\r\n (click)=\"onCreate()\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon-add\">add</mat-icon>\r\n </button>\r\n </th>\r\n <td class=\"px-8\" mat-cell *matCellDef=\"let item; index as idx\">\r\n <ng-container *sdLet=\"item.editorStatus | sdEditorHandlerRow:item:gridOption as editorHandler\">\r\n <div *ngIf=\"editorHandler\" class=\"d-flex align-items-center justify-content-center\">\r\n <button *ngIf=\"editorHandler.editable\" class=\"mx-2\" (click)=\"onUpdate(item)\" aria-hidden=\"true\"\r\n mat-icon-button>\r\n <mat-icon class=\"c-icon\">edit</mat-icon>\r\n </button>\r\n <button *ngIf=\"editorHandler.removable\" class=\"mx-2\" (click)=\"onRemove(item)\" aria-hidden=\"true\"\r\n mat-icon-button>\r\n <mat-icon class=\"c-icon\">delete</mat-icon>\r\n </button>\r\n <button *ngIf=\"editorHandler.savable\" class=\"mx-2\" (click)=\"onSave(item)\" aria-hidden=\"true\"\r\n mat-icon-button>\r\n <mat-icon class=\"c-icon\">save</mat-icon>\r\n </button>\r\n <button *ngIf=\"editorHandler.cancelable\" class=\"mx-2\" (click)=\"onCancel(item)\" aria-hidden=\"true\"\r\n mat-icon-button>\r\n <mat-icon class=\"c-icon\">close</mat-icon>\r\n </button>\r\n </div>\r\n </ng-container>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdCommand\">\r\n <th class=\"px-8 py-8\" mat-header-cell *matHeaderCellDef style=\"width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n <td class=\"px-8\" mat-cell *matCellDef=\"let item\">\r\n <sd-desktop-command [commands]=\"gridOption.commands\" [item]=\"item\"></sd-desktop-command>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdGroup\">\r\n <th mat-header-cell *matHeaderCellDef class=\"px-8 py-8\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\">\r\n </th>\r\n <td class=\"p-0\" mat-cell *matCellDef=\"let item\"\r\n [attr.colspan]=\"!item?.sdGroup ? 1 : configuration.displayedColumns.length\">\r\n <div [innerHtml]=\"item?.sdGroup?.htmlTemplate | safeHtml\">\r\n </div>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of configuration.firstColumns; let i = index\" [matColumnDef]=\"column.field\"\r\n [sticky]=\"configuration.fixedColumn[column.field]\">\r\n <th mat-header-cell *matHeaderCellDef cdkDrag class=\"px-8 py-8 c-th\"\r\n [ngStyle]=\"{ 'min-width': configuration.firstColumns[i].width }\" [attr.rowspan]=\"\r\n configuration.multipleHeader && column.type !== 'children-col'\r\n ? 2\r\n : 1\r\n \" [attr.colspan]=\"\r\n column.type === 'children-col' ? column.children?.length : 1\r\n \">\r\n <div>\r\n <div aria-hidden=\"false\" role=\"presentation\" mat-sort-header [disabled]=\"\r\n !column.sortable || column.type === 'children-col'\r\n \" [innerHTML]=\"configuration.firstColumns[i].titleHtml || configuration.firstColumns[i].title\">\r\n </div>\r\n <sd-column-inline-filter *ngIf=\"gridOption.filter?.inlineColumn\" [value]=\"columnFilter[column.field]\"\r\n [columnFilter]=\"columnFilter\" [column]=\"column\" (filterChange)=\"onFilterChange()\">\r\n </sd-column-inline-filter>\r\n </div>\r\n </th>\r\n <td class=\"c-td px-8\" mat-cell *matCellDef=\"let item\">\r\n <sd-desktop-cell *ngIf=\"!item?.sdGroup\" [sdId]=\"item.sdId\" [key]=\"key\" [value]=\"item[column.field]\"\r\n [column]=\"column\" [item]=\"item\" [idx]=\"i\" [cellDef]=\"cellDef\" [gridOption]=\"gridOption\">\r\n </sd-desktop-cell>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef>\r\n <ng-container *ngIf=\"footerDef[column.field]\">\r\n <ng-container *ngTemplateOutlet=\"\r\n footerDef[column.field].templateRef;\r\n context: { items: items, column: column }\r\n \">\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of configuration.secondColumns; let i = index\"\r\n [matColumnDef]=\"column.field\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header class=\"c-th px-8\"\r\n [ngStyle]=\"{ 'min-width': column.width }\">\r\n <div>\r\n <div [class.text-right]=\"column.align === 'right' || (!column.align && column.type === 'number')\"\r\n [class.text-center]=\"column.align === 'center'\" [innerHTML]=\"column.titleHtml || column.title\">\r\n </div>\r\n <sd-column-inline-filter *ngIf=\"gridOption.filter?.inlineColumn\" [value]=\"columnFilter[column.field]\"\r\n [columnFilter]=\"columnFilter\" [column]=\"column\" (filterChange)=\"onFilterChange()\">\r\n </sd-column-inline-filter>\r\n </div>\r\n </th>\r\n <td class=\"c-td px-8\" mat-cell *matCellDef=\"let item\">\r\n <sd-desktop-cell [sdId]=\"item.sdId\" [key]=\"key\" [value]=\"item[column.field]\" [column]=\"column\"\r\n [item]=\"item\" [idx]=\"i\" [cellDef]=\"cellDef\" [gridOption]=\"gridOption\">\r\n </sd-desktop-cell>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef>\r\n <ng-container *ngIf=\"footerDef[column.field]\">\r\n <ng-container *ngTemplateOutlet=\"\r\n footerDef[column.field].templateRef;\r\n context: { items: items, column: column }\r\n \">\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n <tr class=\"c-first-header\" mat-header-row *matHeaderRowDef=\"configuration.firstHeaders; sticky: true\"></tr>\r\n <ng-container *ngIf=\"configuration.secondHeaders?.length\">\r\n <tr class=\"c-second-header\" mat-header-row *matHeaderRowDef=\"configuration.secondHeaders; sticky: true\">\r\n </tr>\r\n </ng-container>\r\n <tr mat-row *matRowDef=\"let row; columns: configuration.displayedColumns\" matRipple class=\"c-row\"\r\n [class.selected]=\"row.isSelected\" [style]=\"row | sdStyleRowCss:gridOption\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['sdSubInformation']\" class=\"c-detail-row\"></tr>\r\n <ng-container *ngIf=\"hasFooter && configuration.displayedFooters?.length\">\r\n <tr mat-footer-row *matFooterRowDef=\"configuration.displayedFooters; sticky: true\"></tr>\r\n </ng-container>\r\n </table>\r\n <ng-template #elseEmpty>\r\n <table mat-table [dataSource]=\"[{}]\">\r\n <ng-container matColumnDef=\"sdSelection\" sticky>\r\n <th class=\"px-15\" mat-header-cell *matHeaderCellDef style=\"min-width: 50px; max-width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdEditorValidation\">\r\n <th class=\"p-0\" mat-header-cell *matHeaderCellDef style=\"width: 4px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\">\r\n </th>\r\n <td class=\"p-0\" mat-cell *matCellDef=\"let item\">\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdEditor\">\r\n <th class=\"px-8 py-8\" mat-header-cell *matHeaderCellDef style=\"min-width: 50px; max-width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\">\r\n <button class=\"c-btn-add\"\r\n *ngIf=\"gridOption.editor?.addable && (!gridOption.editor.limit || gridOption.editor.limit > items.length)\"\r\n (click)=\"onCreate()\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon-add\">add</mat-icon>\r\n </button>\r\n </th>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdCommand\">\r\n <th class=\"px-8\" mat-header-cell *matHeaderCellDef style=\"min-width: 50px; max-width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdSubInformationAction\">\r\n <th class=\"p-0\" mat-header-cell *matHeaderCellDef style=\"width: 1px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdEmpty\">\r\n <td class=\"c-empty\" mat-cell *matCellDef=\"let item\"\r\n [attr.colspan]=\"configuration.displayedColumns.length\">\r\n <ng-container *ngIf=\"sdEmptyData?.templateRef; else sdEmptyDataNoRef\">\r\n <ng-container *ngTemplateOutlet=\"\r\n sdEmptyData.templateRef;\r\n context: { item: item }\r\n \">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #sdEmptyDataNoRef>\r\n <mat-icon fontSet=\"material-icons-outlined\">leaderboard</mat-icon>\r\n </ng-template>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdGroup\">\r\n <th mat-header-cell *matHeaderCellDef class=\"px-8 py-8\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\">\r\n </th>\r\n <td class=\"p-0\" mat-cell *matCellDef=\"let item\">\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of configuration.columns\" [matColumnDef]=\"column.field\"\r\n [sticky]=\"configuration.fixedColumn[column.field]\">\r\n <th mat-header-cell *matHeaderCellDef class=\"c-th px-8 py-8\" [ngStyle]=\"{ 'min-width': column.width }\">\r\n <div [class.text-right]=\"column.align === 'right' || (!column.align && column.type === 'number')\"\r\n [class.text-center]=\"column.align === 'center'\" [innerHTML]=\"column.titleHtml || column.title\">\r\n </div>\r\n </th>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of configuration.firstColumns; let i = index\"\r\n [matColumnDef]=\"column.field\" [sticky]=\"configuration.fixedColumn[column.field]\">\r\n <th mat-header-cell *matHeaderCellDef class=\"c-th px-8 py-8\"\r\n [ngStyle]=\"{ 'min-width': configuration.firstColumns[i].width }\" [attr.rowspan]=\"\r\n configuration.multipleHeader &&\r\n column.type !== 'children-col'\r\n ? 2\r\n : 1\r\n \" [attr.colspan]=\"\r\n column.type === 'children-col' ? column.children?.length : 1\r\n \">\r\n <div>\r\n <div [class.text-right]=\"column.align === 'right' || (!column.align && column.type === 'number')\"\r\n [class.text-center]=\"column.align === 'center'\"\r\n [innerHTML]=\"configuration.firstColumns[i].titleHtml || configuration.firstColumns[i].title\">\r\n </div>\r\n <sd-column-inline-filter *ngIf=\"gridOption.filter?.inlineColumn\"\r\n [value]=\"columnFilter[column.field]\" [columnFilter]=\"columnFilter\" [column]=\"column\"\r\n (filterChange)=\"onFilterChange()\"></sd-column-inline-filter>\r\n </div>\r\n </th>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of configuration.secondColumns\" [matColumnDef]=\"column.field\">\r\n <th mat-header-cell *matHeaderCellDef class=\"c-th px-8 py-8\" [ngStyle]=\"{ 'min-width': column.width }\">\r\n <div>\r\n <div [class.text-right]=\"column.align === 'right' || (!column.align && column.type === 'number')\"\r\n [class.text-center]=\"column.align === 'center'\" [innerHTML]=\"column.titleHtml || column.title\">\r\n </div>\r\n <sd-column-inline-filter *ngIf=\"gridOption.filter?.inlineColumn\"\r\n [value]=\"columnFilter[column.field]\" [columnFilter]=\"columnFilter\" [column]=\"column\"\r\n (filterChange)=\"onFilterChange()\"></sd-column-inline-filter>\r\n </div>\r\n </th>\r\n </ng-container>\r\n <tr class=\"c-first-header\" mat-header-row *matHeaderRowDef=\"configuration.firstHeaders; sticky: true\">\r\n </tr>\r\n <tr class=\"c-second-header\" mat-header-row *matHeaderRowDef=\"configuration.secondHeaders; sticky: true\">\r\n </tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['sdEmpty']\"></tr>\r\n </table>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-paginator\">\r\n <div class=\"c-action\">\r\n <sd-button *ngIf=\"\r\n !gridOption.filter?.disabled && !gridOption.filter?.inlineColumn\r\n \" class=\"mr-10\" [title]=\"'Filter' | sdTranslate\" icon=\"filter_alt\" size=\"sm\" (action)=\"gridFilter.open()\"\r\n type=\"link\">\r\n </sd-button>\r\n <sd-button *ngIf=\"gridOption.reload?.visible\" class=\"mr-10\" [title]=\"'Reload' | sdTranslate\" icon=\"refresh\"\r\n size=\"sm\" (action)=\"reload()\" [disabled]=\"!items?.length\" type=\"link\">\r\n </sd-button>\r\n <ng-container *ngIf=\"gridOption.export?.visible && items?.length\">\r\n <ng-container *ngIf=\"isExporting; else unExporting\">\r\n <sd-button class=\"mr-10\" [loading]=\"isExporting\" [title]=\"exportTitle | sdTranslate\" icon=\"get_app\"\r\n size=\"sm\" type=\"link\">\r\n </sd-button>\r\n </ng-container>\r\n <ng-template #unExporting>\r\n <sd-button class=\"mr-10\" [title]=\"exportTitle | sdTranslate\" icon=\"get_app\" size=\"sm\"\r\n [matMenuTriggerFor]=\"menu\" type=\"link\">\r\n </sd-button>\r\n </ng-template>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <button *ngIf=\"gridOption.export?.visibleExcel !== false\" mat-menu-item\r\n (click)=\"sdPopupExport.exportDefault()\" type=\"button\">\r\n <mat-icon fontSet=\"material-icons-outlined\">file_download</mat-icon>\r\n <span> {{ \"Export excel\" | sdTranslate }}</span>\r\n </button>\r\n <button *ngIf=\"gridOption.export?.visibleCSV !== false\" mat-menu-item\r\n (click)=\"sdPopupExport.exportDefault(true)\" type=\"button\">\r\n <mat-icon fontSet=\"material-icons-outlined\">file_download</mat-icon>\r\n <span> {{ \"Export CSV\" | sdTranslate }}</span>\r\n </button>\r\n <button *ngIf=\"gridOption.export?.key\" mat-menu-item (click)=\"sdPopupExport.open()\" type=\"button\">\r\n <mat-icon fontSet=\"material-icons-outlined\">settings</mat-icon>\r\n <span> {{ \"Configure\" | sdTranslate }}</span>\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n <sd-button *ngIf=\"gridOption.config?.visible\" class=\"mr-10\" [title]=\"'Configure' | sdTranslate\"\r\n icon=\"settings\" size=\"sm\" (action)=\"popupGridConfiguration.open()\" type=\"link\">\r\n </sd-button>\r\n </div>\r\n <mat-paginator [class.d-none]=\"gridOption.paginate?.hidden\" [length]=\"total\"\r\n [pageSize]=\"gridOption.paginate?.pageSize\" [pageSizeOptions]=\"gridOption.paginate?.pages\"\r\n [showFirstLastButtons]=\"gridOption.paginate?.showFirstLastButtons\"></mat-paginator>\r\n </div>\r\n </div>\r\n <sd-popup-export *ngIf=\"gridOption.export?.visible\" [gridOption]=\"gridOption\" (export)=\"onExport($event)\"\r\n #sdPopupExport>\r\n </sd-popup-export>\r\n <sd-popup-grid-configuration [gridOption]=\"gridOption\" [key]=\"key\" #popupGridConfiguration>\r\n </sd-popup-grid-configuration>\r\n </ng-container>\r\n</ng-container>\r\n<sd-grid-quick-action [gridOption]=\"gridOption\" [selectedItems]=\"selectedItems\" (clear)=\"onClearSelection()\">\r\n</sd-grid-quick-action>",
|
|
1993
|
+
template: "<ng-container *ngIf=\"gridConfigurationObserver | async as gridConfiguration\">\r\n <ng-container *ngIf=\"\r\n gridConfiguration\r\n | sdGridConfigurationResult\r\n : gridOption\r\n : sdSubInformation as configuration\r\n \">\r\n <ng-container *ngIf=\"!gridOption.filter?.disabled\">\r\n <sd-grid-filter [filter]=\"gridOption?.filter\" [columns]=\"configuration.firstColumns\" [filterDefs]=\"filterDefs\">\r\n </sd-grid-filter>\r\n </ng-container>\r\n <div class=\"c-container {{ gridOption?.style?.grid }}\" [ngClass]=\"{ 'mat-elevation-z2': gridOption?.shadow }\">\r\n <div class=\"c-loading\" *ngIf=\"isLoading\">\r\n <mat-spinner *ngIf=\"isLoading\"></mat-spinner>\r\n </div>\r\n <ng-container>\r\n <div class=\"c-table\" sdScroll [ngStyle]=\"{\r\n 'max-height': gridOption?.maxHeight,\r\n 'min-height': gridOption?.minHeight\r\n }\">\r\n <table *ngIf=\"items?.length; else elseEmpty\" mat-table [dataSource]=\"items | sdGroup:gridOption\" matSort\r\n [matSortDisabled]=\"!gridOption.sortable\" cdkDropList cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListDisabled]=\"!gridOption.dropDragColumnEnable\"\r\n (cdkDropListDropped)=\"drop($event, configuration.displayedColumns)\" multiTemplateDataRows>\r\n\r\n <ng-container matColumnDef=\"sdSubInformation\" sticky>\r\n <td class=\"p-0\" mat-cell *matCellDef=\"let item\" [attr.colspan]=\"configuration.displayedColumns.length\">\r\n <div *ngIf=\"sdSubInformation?.templateRef\" [@detailExpand]=\"item.isExpanded ? 'expanded' : 'collapsed'\">\r\n <ng-container *ngIf=\"item.isExpanded\">\r\n <ng-container *ngTemplateOutlet=\"\r\n sdSubInformation.templateRef;\r\n context: { item: item }\r\n \">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdSubInformationAction\" stickyEnd>\r\n <th class=\"p-0\" mat-header-cell *matHeaderCellDef style=\"width: 1px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button *ngIf=\"!element.isExpanding\" mat-icon-button aria-label=\"Expand & Collapse\"\r\n (click)=\"onExpand(element)\">\r\n <mat-icon *ngIf=\"!element.isExpanded\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"element.isExpanded\">expand_less</mat-icon>\r\n </button>\r\n <div *ngIf=\"element.isExpanding\" class=\"lds-ring\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdSelection\" sticky>\r\n <th class=\"text-center px-15\" mat-header-cell *matHeaderCellDef style=\"min-width: 50px; max-width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\">\r\n <ng-container *ngIf=\"items | selectionVisibleSelectAll: gridOption?.selection | async\">\r\n <mat-checkbox *ngIf=\"!gridOption.selection?.single\" class=\"c-selection\" color=\"primary\"\r\n [(ngModel)]=\"isSelectAll\" (change)=\"onSelectAll()\">\r\n </mat-checkbox>\r\n </ng-container>\r\n\r\n </th>\r\n <td class=\"text-center px-15\" mat-cell *matCellDef=\"let item\" style=\"min-width: 50px; max-width: 50px\">\r\n <ng-container *ngIf=\"item | selectionVisible:gridOption?.selection\">\r\n <mat-checkbox class=\"c-selection\" color=\"primary\" [(ngModel)]=\"item.isSelected\"\r\n (change)=\"onSelect(item)\" [disabled]=\"\r\n selectedItems | selectionDisable: item:gridOption?.selection\r\n \">\r\n </mat-checkbox>\r\n </ng-container>\r\n\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdEditorValidation\">\r\n <th class=\"p-0\" mat-header-cell *matHeaderCellDef style=\"width: 2px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\">\r\n </th>\r\n <td class=\"p-0 position-relative\" mat-cell *matCellDef=\"let item; index as idx\">\r\n <sd-desktop-editor-validation [sdId]=\"item.sdId\" [item]=\"item\" [items]=\"items\"\r\n [gridOption]=\"gridOption\">\r\n </sd-desktop-editor-validation>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdEditor\">\r\n <th class=\"px-8 py-8\" mat-header-cell *matHeaderCellDef style=\"width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\">\r\n <button class=\"c-btn-add\"\r\n *ngIf=\"gridOption.editor?.addable && (!gridOption.editor.limit || gridOption.editor.limit > items.length)\"\r\n (click)=\"onCreate()\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon-add\">add</mat-icon>\r\n </button>\r\n </th>\r\n <td class=\"px-8\" mat-cell *matCellDef=\"let item; index as idx\">\r\n <ng-container *sdLet=\"item.editorStatus | sdEditorHandlerRow:item:gridOption as editorHandler\">\r\n <div *ngIf=\"editorHandler\" class=\"d-flex align-items-center justify-content-center\">\r\n <button *ngIf=\"editorHandler.editable\" class=\"mx-2\" (click)=\"onUpdate(item)\" aria-hidden=\"true\"\r\n mat-icon-button>\r\n <mat-icon class=\"c-icon\">edit</mat-icon>\r\n </button>\r\n <button *ngIf=\"editorHandler.removable\" class=\"mx-2\" (click)=\"onRemove(item)\" aria-hidden=\"true\"\r\n mat-icon-button>\r\n <mat-icon class=\"c-icon\">delete</mat-icon>\r\n </button>\r\n <button *ngIf=\"editorHandler.savable\" class=\"mx-2\" (click)=\"onSave(item)\" aria-hidden=\"true\"\r\n mat-icon-button>\r\n <mat-icon class=\"c-icon\">save</mat-icon>\r\n </button>\r\n <button *ngIf=\"editorHandler.cancelable\" class=\"mx-2\" (click)=\"onCancel(item)\" aria-hidden=\"true\"\r\n mat-icon-button>\r\n <mat-icon class=\"c-icon\">close</mat-icon>\r\n </button>\r\n </div>\r\n </ng-container>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdCommand\">\r\n <th class=\"px-8 py-8\" mat-header-cell *matHeaderCellDef style=\"width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n <td class=\"px-8\" mat-cell *matCellDef=\"let item\">\r\n <sd-desktop-command [commands]=\"gridOption.commands\" [item]=\"item\"></sd-desktop-command>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdGroup\">\r\n <th mat-header-cell *matHeaderCellDef class=\"px-8 py-8\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\">\r\n </th>\r\n <td class=\"p-0\" mat-cell *matCellDef=\"let item\"\r\n [attr.colspan]=\"!item?.sdGroup ? 1 : configuration.displayedColumns.length\">\r\n <div [innerHtml]=\"item?.sdGroup?.htmlTemplate | safeHtml\">\r\n </div>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of configuration.firstColumns; let i = index\" [matColumnDef]=\"column.field\"\r\n [sticky]=\"configuration.fixedColumn[column.field]\">\r\n <th mat-header-cell *matHeaderCellDef cdkDrag class=\"px-8 py-8 c-th\"\r\n [ngStyle]=\"{ 'min-width': configuration.firstColumns[i].width }\" [attr.rowspan]=\"\r\n configuration.multipleHeader && column.type !== 'children-col'\r\n ? 2\r\n : 1\r\n \" [attr.colspan]=\"\r\n column.type === 'children-col' ? column.children?.length : 1\r\n \">\r\n <div>\r\n <div aria-hidden=\"false\" role=\"presentation\" mat-sort-header [disabled]=\"\r\n !column.sortable || column.type === 'children-col'\r\n \" [class.text-right]=\"column.align === 'right' || (!column.align && column.type === 'number')\"\r\n [class.text-center]=\"column.align === 'center'\"\r\n [innerHTML]=\"configuration.firstColumns[i].titleHtml || configuration.firstColumns[i].title\">\r\n </div>\r\n <sd-column-inline-filter *ngIf=\"gridOption.filter?.inlineColumn\" [value]=\"columnFilter[column.field]\"\r\n [columnFilter]=\"columnFilter\" [column]=\"column\" (filterChange)=\"onFilterChange()\">\r\n </sd-column-inline-filter>\r\n </div>\r\n </th>\r\n <td class=\"c-td px-8\" mat-cell *matCellDef=\"let item\">\r\n <sd-desktop-cell *ngIf=\"!item?.sdGroup\" [sdId]=\"item.sdId\" [key]=\"key\" [value]=\"item[column.field]\"\r\n [column]=\"column\" [item]=\"item\" [idx]=\"i\" [cellDef]=\"cellDef\" [gridOption]=\"gridOption\">\r\n </sd-desktop-cell>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef>\r\n <ng-container *ngIf=\"footerDef[column.field]\">\r\n <ng-container *ngTemplateOutlet=\"\r\n footerDef[column.field].templateRef;\r\n context: { items: items, column: column }\r\n \">\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of configuration.secondColumns; let i = index\"\r\n [matColumnDef]=\"column.field\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header class=\"c-th px-8\"\r\n [ngStyle]=\"{ 'min-width': column.width }\">\r\n <div>\r\n <div [class.text-right]=\"column.align === 'right' || (!column.align && column.type === 'number')\"\r\n [class.text-center]=\"column.align === 'center'\" [innerHTML]=\"column.titleHtml || column.title\">\r\n </div>\r\n <sd-column-inline-filter *ngIf=\"gridOption.filter?.inlineColumn\" [value]=\"columnFilter[column.field]\"\r\n [columnFilter]=\"columnFilter\" [column]=\"column\" (filterChange)=\"onFilterChange()\">\r\n </sd-column-inline-filter>\r\n </div>\r\n </th>\r\n <td class=\"c-td px-8\" mat-cell *matCellDef=\"let item\">\r\n <sd-desktop-cell [sdId]=\"item.sdId\" [key]=\"key\" [value]=\"item[column.field]\" [column]=\"column\"\r\n [item]=\"item\" [idx]=\"i\" [cellDef]=\"cellDef\" [gridOption]=\"gridOption\">\r\n </sd-desktop-cell>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef>\r\n <ng-container *ngIf=\"footerDef[column.field]\">\r\n <ng-container *ngTemplateOutlet=\"\r\n footerDef[column.field].templateRef;\r\n context: { items: items, column: column }\r\n \">\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n <tr class=\"c-first-header\" mat-header-row *matHeaderRowDef=\"configuration.firstHeaders; sticky: true\"></tr>\r\n <ng-container *ngIf=\"configuration.secondHeaders?.length\">\r\n <tr class=\"c-second-header\" mat-header-row *matHeaderRowDef=\"configuration.secondHeaders; sticky: true\">\r\n </tr>\r\n </ng-container>\r\n <tr mat-row *matRowDef=\"let row; columns: configuration.displayedColumns\" matRipple class=\"c-row\"\r\n [class.selected]=\"row.isSelected\" [style]=\"row | sdStyleRowCss:gridOption\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['sdSubInformation']\" class=\"c-detail-row\"></tr>\r\n <ng-container *ngIf=\"hasFooter && configuration.displayedFooters?.length\">\r\n <tr mat-footer-row *matFooterRowDef=\"configuration.displayedFooters; sticky: true\"></tr>\r\n </ng-container>\r\n </table>\r\n <ng-template #elseEmpty>\r\n <table mat-table [dataSource]=\"[{}]\">\r\n <ng-container matColumnDef=\"sdSelection\" sticky>\r\n <th class=\"px-15\" mat-header-cell *matHeaderCellDef style=\"min-width: 50px; max-width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdEditorValidation\">\r\n <th class=\"p-0\" mat-header-cell *matHeaderCellDef style=\"width: 4px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\">\r\n </th>\r\n <td class=\"p-0\" mat-cell *matCellDef=\"let item\">\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdEditor\">\r\n <th class=\"px-8 py-8\" mat-header-cell *matHeaderCellDef style=\"min-width: 50px; max-width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\">\r\n <button class=\"c-btn-add\"\r\n *ngIf=\"gridOption.editor?.addable && (!gridOption.editor.limit || gridOption.editor.limit > items.length)\"\r\n (click)=\"onCreate()\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon-add\">add</mat-icon>\r\n </button>\r\n </th>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdCommand\">\r\n <th class=\"px-8\" mat-header-cell *matHeaderCellDef style=\"min-width: 50px; max-width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdSubInformationAction\">\r\n <th class=\"p-0\" mat-header-cell *matHeaderCellDef style=\"width: 1px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdEmpty\">\r\n <td class=\"c-empty\" mat-cell *matCellDef=\"let item\"\r\n [attr.colspan]=\"configuration.displayedColumns.length\">\r\n <ng-container *ngIf=\"sdEmptyData?.templateRef; else sdEmptyDataNoRef\">\r\n <ng-container *ngTemplateOutlet=\"\r\n sdEmptyData.templateRef;\r\n context: { item: item }\r\n \">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #sdEmptyDataNoRef>\r\n <mat-icon fontSet=\"material-icons-outlined\">leaderboard</mat-icon>\r\n </ng-template>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdGroup\">\r\n <th mat-header-cell *matHeaderCellDef class=\"px-8 py-8\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\">\r\n </th>\r\n <td class=\"p-0\" mat-cell *matCellDef=\"let item\">\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of configuration.columns\" [matColumnDef]=\"column.field\"\r\n [sticky]=\"configuration.fixedColumn[column.field]\">\r\n <th mat-header-cell *matHeaderCellDef class=\"c-th px-8 py-8\" [ngStyle]=\"{ 'min-width': column.width }\">\r\n <div [class.text-right]=\"column.align === 'right' || (!column.align && column.type === 'number')\"\r\n [class.text-center]=\"column.align === 'center'\" [innerHTML]=\"column.titleHtml || column.title\">\r\n </div>\r\n </th>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of configuration.firstColumns; let i = index\"\r\n [matColumnDef]=\"column.field\" [sticky]=\"configuration.fixedColumn[column.field]\">\r\n <th mat-header-cell *matHeaderCellDef class=\"c-th px-8 py-8\"\r\n [ngStyle]=\"{ 'min-width': configuration.firstColumns[i].width }\" [attr.rowspan]=\"\r\n configuration.multipleHeader &&\r\n column.type !== 'children-col'\r\n ? 2\r\n : 1\r\n \" [attr.colspan]=\"\r\n column.type === 'children-col' ? column.children?.length : 1\r\n \">\r\n <div>\r\n <div [class.text-right]=\"column.align === 'right' || (!column.align && column.type === 'number')\"\r\n [class.text-center]=\"column.align === 'center'\"\r\n [innerHTML]=\"configuration.firstColumns[i].titleHtml || configuration.firstColumns[i].title\">\r\n </div>\r\n <sd-column-inline-filter *ngIf=\"gridOption.filter?.inlineColumn\"\r\n [value]=\"columnFilter[column.field]\" [columnFilter]=\"columnFilter\" [column]=\"column\"\r\n (filterChange)=\"onFilterChange()\"></sd-column-inline-filter>\r\n </div>\r\n </th>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of configuration.secondColumns\" [matColumnDef]=\"column.field\">\r\n <th mat-header-cell *matHeaderCellDef class=\"c-th px-8 py-8\" [ngStyle]=\"{ 'min-width': column.width }\">\r\n <div>\r\n <div [class.text-right]=\"column.align === 'right' || (!column.align && column.type === 'number')\"\r\n [class.text-center]=\"column.align === 'center'\" [innerHTML]=\"column.titleHtml || column.title\">\r\n </div>\r\n <sd-column-inline-filter *ngIf=\"gridOption.filter?.inlineColumn\"\r\n [value]=\"columnFilter[column.field]\" [columnFilter]=\"columnFilter\" [column]=\"column\"\r\n (filterChange)=\"onFilterChange()\"></sd-column-inline-filter>\r\n </div>\r\n </th>\r\n </ng-container>\r\n <tr class=\"c-first-header\" mat-header-row *matHeaderRowDef=\"configuration.firstHeaders; sticky: true\">\r\n </tr>\r\n <tr class=\"c-second-header\" mat-header-row *matHeaderRowDef=\"configuration.secondHeaders; sticky: true\">\r\n </tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['sdEmpty']\"></tr>\r\n </table>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-paginator\">\r\n <div class=\"c-action\">\r\n <sd-button *ngIf=\"\r\n !gridOption.filter?.disabled && !gridOption.filter?.inlineColumn\r\n \" class=\"mr-10\" [title]=\"'Filter' | sdTranslate\" icon=\"filter_alt\" size=\"sm\" (action)=\"gridFilter.open()\"\r\n type=\"link\">\r\n </sd-button>\r\n <sd-button *ngIf=\"gridOption.reload?.visible\" class=\"mr-10\" [title]=\"'Reload' | sdTranslate\" icon=\"refresh\"\r\n size=\"sm\" (action)=\"reload()\" [disabled]=\"!items?.length\" type=\"link\">\r\n </sd-button>\r\n <ng-container *ngIf=\"gridOption.export?.visible && items?.length\">\r\n <ng-container *ngIf=\"isExporting; else unExporting\">\r\n <sd-button class=\"mr-10\" [loading]=\"isExporting\" [title]=\"exportTitle | sdTranslate\" icon=\"get_app\"\r\n size=\"sm\" type=\"link\">\r\n </sd-button>\r\n </ng-container>\r\n <ng-template #unExporting>\r\n <sd-button class=\"mr-10\" [title]=\"exportTitle | sdTranslate\" icon=\"get_app\" size=\"sm\"\r\n [matMenuTriggerFor]=\"menu\" type=\"link\">\r\n </sd-button>\r\n </ng-template>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <button *ngIf=\"gridOption.export?.visibleExcel !== false\" mat-menu-item\r\n (click)=\"sdPopupExport.exportDefault()\" type=\"button\">\r\n <mat-icon fontSet=\"material-icons-outlined\">file_download</mat-icon>\r\n <span> {{ \"Export excel\" | sdTranslate }}</span>\r\n </button>\r\n <button *ngIf=\"gridOption.export?.visibleCSV !== false\" mat-menu-item\r\n (click)=\"sdPopupExport.exportDefault(true)\" type=\"button\">\r\n <mat-icon fontSet=\"material-icons-outlined\">file_download</mat-icon>\r\n <span> {{ \"Export CSV\" | sdTranslate }}</span>\r\n </button>\r\n <button *ngIf=\"gridOption.export?.key\" mat-menu-item (click)=\"sdPopupExport.open()\" type=\"button\">\r\n <mat-icon fontSet=\"material-icons-outlined\">settings</mat-icon>\r\n <span> {{ \"Configure\" | sdTranslate }}</span>\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n <sd-button *ngIf=\"gridOption.config?.visible\" class=\"mr-10\" [title]=\"'Configure' | sdTranslate\"\r\n icon=\"settings\" size=\"sm\" (action)=\"popupGridConfiguration.open()\" type=\"link\">\r\n </sd-button>\r\n </div>\r\n <mat-paginator [class.d-none]=\"gridOption.paginate?.hidden\" [length]=\"total\"\r\n [pageSize]=\"gridOption.paginate?.pageSize\" [pageSizeOptions]=\"gridOption.paginate?.pages\"\r\n [showFirstLastButtons]=\"gridOption.paginate?.showFirstLastButtons\"></mat-paginator>\r\n </div>\r\n </div>\r\n <sd-popup-export *ngIf=\"gridOption.export?.visible\" [gridOption]=\"gridOption\" (export)=\"onExport($event)\"\r\n #sdPopupExport>\r\n </sd-popup-export>\r\n <sd-popup-grid-configuration [gridOption]=\"gridOption\" [key]=\"key\" #popupGridConfiguration>\r\n </sd-popup-grid-configuration>\r\n </ng-container>\r\n</ng-container>\r\n<sd-grid-quick-action [gridOption]=\"gridOption\" [selectedItems]=\"selectedItems\" (clear)=\"onClearSelection()\">\r\n</sd-grid-quick-action>",
|
|
1982
1994
|
animations: [
|
|
1983
1995
|
trigger('detailExpand', [
|
|
1984
1996
|
state('collapsed', style({ height: '0', minHeight: '0', visibility: 'hidden' })),
|
|
@@ -3186,6 +3198,12 @@ class SdCellViewPipe {
|
|
|
3186
3198
|
result.display.html = htmlTemplate(value, rowData, __classPrivateFieldGet(this, _isMobileOrTablet$1));
|
|
3187
3199
|
}
|
|
3188
3200
|
else {
|
|
3201
|
+
if (column.type === 'datetime' || column.type === 'date' || column.type === 'time') {
|
|
3202
|
+
const { transformDate } = column;
|
|
3203
|
+
if (transformDate) {
|
|
3204
|
+
value = transformDate(value, rowData);
|
|
3205
|
+
}
|
|
3206
|
+
}
|
|
3189
3207
|
if (typeof (transform) === 'function') {
|
|
3190
3208
|
const val = transform(value, rowData);
|
|
3191
3209
|
if (val instanceof Promise) {
|
|
@@ -3194,10 +3212,6 @@ class SdCellViewPipe {
|
|
|
3194
3212
|
else {
|
|
3195
3213
|
result.display.value = val;
|
|
3196
3214
|
}
|
|
3197
|
-
if (column.type === 'datetime' && result.display.value) {
|
|
3198
|
-
result.display.hasHtml = true;
|
|
3199
|
-
result.display.html = `<span class="d-block T14R text-black400">${Date.toFormat(result.display.value, 'HH:mm')}</span><span class="d-block T14R">${Date.toFormat(result.display.value, 'dd/MM/yyyy')}</span>`;
|
|
3200
|
-
}
|
|
3201
3215
|
}
|
|
3202
3216
|
else {
|
|
3203
3217
|
if (column.type === 'date' || column.type === 'datetime') {
|
|
@@ -3227,7 +3241,7 @@ class SdCellViewPipe {
|
|
|
3227
3241
|
result.display.value = Date.toFormat(value, column.type === 'date' ? 'dd/MM/yyyy' : 'dd/MM/yyyy HH:mm');
|
|
3228
3242
|
if (column.type === 'datetime' && result.display.value) {
|
|
3229
3243
|
result.display.hasHtml = true;
|
|
3230
|
-
result.display.html = `<span class="d-block T14R text-black400">${Date.toFormat(
|
|
3244
|
+
result.display.html = `<span class="d-block T14R text-black400">${Date.toFormat(value, 'HH:mm')}</span><span class="d-block T14R">${Date.toFormat(value, 'dd/MM/yyyy')}</span>`;
|
|
3231
3245
|
}
|
|
3232
3246
|
}
|
|
3233
3247
|
}
|