@ng-matero/extensions 12.5.2 → 13.0.0
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/README.md +2 -16
- package/_all-color.scss +1 -1
- package/_all-theme.scss +2 -0
- package/_index.scss +3 -1
- package/_theming.scss +3 -1
- package/alert/_alert-theme.scss +2 -2
- package/alert/alert.component.d.ts +3 -0
- package/alert/alert.module.d.ts +6 -0
- package/alert/mtxAlert.d.ts +1 -0
- package/alert/package.json +5 -6
- package/button/button-loading.directive.d.ts +3 -0
- package/button/button.module.d.ts +8 -0
- package/button/mtxButton.d.ts +1 -0
- package/button/package.json +5 -6
- package/checkbox-group/checkbox-group.component.d.ts +5 -4
- package/checkbox-group/checkbox-group.module.d.ts +9 -0
- package/checkbox-group/mtxCheckboxGroup.d.ts +1 -0
- package/checkbox-group/package.json +5 -6
- package/colorpicker/_colorpicker-theme.import.scss +2 -0
- package/colorpicker/_colorpicker-theme.scss +43 -0
- package/colorpicker/colorpicker-animations.d.ts +8 -0
- package/colorpicker/colorpicker-content.scss +4 -0
- package/colorpicker/colorpicker-input.d.ts +92 -0
- package/colorpicker/colorpicker-module.d.ts +15 -0
- package/colorpicker/colorpicker-toggle.d.ts +38 -0
- package/colorpicker/colorpicker-toggle.scss +23 -0
- package/colorpicker/colorpicker.d.ts +131 -0
- package/{extensions.d.ts → colorpicker/mtxColorpicker.d.ts} +1 -0
- package/colorpicker/package.json +10 -0
- package/colorpicker/public-api.d.ts +5 -0
- package/column-resize/column-resize-directives/column-resize-flex.d.ts +3 -0
- package/column-resize/column-resize-directives/column-resize.d.ts +3 -0
- package/column-resize/column-resize-module.d.ts +6 -7
- package/column-resize/column-resize-notifier.d.ts +5 -7
- package/column-resize/column-resize.d.ts +3 -0
- package/column-resize/column-size-store.d.ts +3 -7
- package/column-resize/event-dispatcher.d.ts +3 -0
- package/column-resize/mtxColumnResize.d.ts +1 -0
- package/column-resize/overlay-handle.d.ts +3 -0
- package/column-resize/package.json +5 -6
- package/column-resize/resizable.d.ts +3 -0
- package/column-resize/resize-strategy.d.ts +7 -0
- package/core/datetime/datetime.module.d.ts +8 -0
- package/core/datetime/native-datetime-adapter.d.ts +3 -0
- package/core/density/private/_compatibility.scss +74 -0
- package/core/mtxCore.d.ts +1 -0
- package/core/package.json +5 -6
- package/{pipes/public-api.d.ts → core/pipes/index.d.ts} +0 -0
- package/core/pipes/pipes.module.d.ts +8 -0
- package/{pipes → core/pipes}/to-observable.pipe.d.ts +3 -0
- package/core/public-api.d.ts +1 -0
- package/core/style/_elevation.scss +197 -0
- package/core/style/_private.scss +41 -0
- package/core/style/_variables.scss +44 -0
- package/core/style/_vendor-prefixes.scss +60 -0
- package/core/theming/_palette.scss +746 -0
- package/core/theming/_theming.scss +430 -0
- package/core/typography/_typography-utils.scss +101 -0
- package/core/typography/_typography.scss +273 -0
- package/datetimepicker/_datetimepicker-theme.scss +17 -5
- package/datetimepicker/calendar-body.d.ts +3 -0
- package/datetimepicker/calendar-body.scss +5 -4
- package/datetimepicker/calendar.d.ts +6 -11
- package/datetimepicker/clock.d.ts +13 -9
- package/datetimepicker/datetimepicker-animations.d.ts +7 -5
- package/datetimepicker/datetimepicker-input.d.ts +7 -2
- package/datetimepicker/datetimepicker-module.d.ts +20 -0
- package/datetimepicker/datetimepicker-toggle.d.ts +20 -2
- package/datetimepicker/datetimepicker-toggle.scss +23 -0
- package/datetimepicker/datetimepicker-types.d.ts +1 -0
- package/datetimepicker/datetimepicker.d.ts +73 -25
- package/datetimepicker/month-view.d.ts +7 -4
- package/datetimepicker/mtxDatetimepicker.d.ts +1 -2
- package/datetimepicker/multi-year-view.d.ts +7 -4
- package/datetimepicker/package.json +5 -6
- package/datetimepicker/public-api.d.ts +4 -1
- package/datetimepicker/year-view.d.ts +7 -4
- package/dialog/{dialog.config.d.ts → dialog-config.d.ts} +0 -0
- package/dialog/dialog.component.d.ts +4 -1
- package/dialog/dialog.d.ts +4 -1
- package/dialog/dialog.module.d.ts +10 -0
- package/dialog/mtxDialog.d.ts +1 -0
- package/dialog/package.json +5 -6
- package/dialog/public-api.d.ts +2 -2
- package/esm2020/alert/alert.component.mjs +52 -0
- package/esm2020/alert/alert.module.mjs +18 -0
- package/{esm2015/alert/mtxAlert.js → esm2020/alert/mtxAlert.mjs} +0 -0
- package/{esm2015/alert/public-api.js → esm2020/alert/public-api.mjs} +0 -0
- package/esm2020/button/button-loading.directive.mjs +79 -0
- package/esm2020/button/button.module.mjs +20 -0
- package/{esm2015/button/mtxButton.js → esm2020/button/mtxButton.mjs} +0 -0
- package/{esm2015/button/public-api.js → esm2020/button/public-api.mjs} +0 -0
- package/esm2020/checkbox-group/checkbox-group.component.mjs +234 -0
- package/{esm2015/checkbox-group/checkbox-group.interface.js → esm2020/checkbox-group/checkbox-group.interface.mjs} +0 -0
- package/esm2020/checkbox-group/checkbox-group.module.mjs +21 -0
- package/{esm2015/checkbox-group/mtxCheckboxGroup.js → esm2020/checkbox-group/mtxCheckboxGroup.mjs} +0 -0
- package/{esm2015/checkbox-group/public-api.js → esm2020/checkbox-group/public-api.mjs} +0 -0
- package/esm2020/colorpicker/colorpicker-animations.mjs +16 -0
- package/esm2020/colorpicker/colorpicker-input.mjs +228 -0
- package/esm2020/colorpicker/colorpicker-module.mjs +65 -0
- package/esm2020/colorpicker/colorpicker-toggle.mjs +90 -0
- package/esm2020/colorpicker/colorpicker.mjs +363 -0
- package/esm2020/colorpicker/mtxColorpicker.mjs +5 -0
- package/esm2020/colorpicker/public-api.mjs +6 -0
- package/esm2020/column-resize/column-resize-directives/column-resize-flex.mjs +45 -0
- package/esm2020/column-resize/column-resize-directives/column-resize.mjs +45 -0
- package/{esm2015/column-resize/column-resize-directives/constants.js → esm2020/column-resize/column-resize-directives/constants.mjs} +0 -0
- package/esm2020/column-resize/column-resize-module.mjs +28 -0
- package/esm2020/column-resize/column-resize-notifier.mjs +47 -0
- package/esm2020/column-resize/column-resize.mjs +82 -0
- package/esm2020/column-resize/column-size-store.mjs +20 -0
- package/esm2020/column-resize/event-dispatcher.mjs +67 -0
- package/{esm2015/column-resize/mtxColumnResize.js → esm2020/column-resize/mtxColumnResize.mjs} +0 -0
- package/esm2020/column-resize/overlay-handle.mjs +146 -0
- package/{esm2015/column-resize/polyfill.js → esm2020/column-resize/polyfill.mjs} +0 -0
- package/{esm2015/column-resize/public-api.js → esm2020/column-resize/public-api.mjs} +0 -0
- package/esm2020/column-resize/resizable.mjs +199 -0
- package/{esm2015/column-resize/resize-ref.js → esm2020/column-resize/resize-ref.mjs} +0 -0
- package/esm2020/column-resize/resize-strategy.mjs +232 -0
- package/{esm2015/column-resize/selectors.js → esm2020/column-resize/selectors.mjs} +0 -0
- package/{esm2015/core/datetime/datetime-adapter.js → esm2020/core/datetime/datetime-adapter.mjs} +0 -0
- package/{esm2015/core/datetime/datetime-formats.js → esm2020/core/datetime/datetime-formats.mjs} +0 -0
- package/esm2020/core/datetime/datetime.module.mjs +42 -0
- package/{esm2015/core/datetime/index.js → esm2020/core/datetime/index.mjs} +0 -0
- package/esm2020/core/datetime/native-datetime-adapter.mjs +138 -0
- package/{esm2015/core/datetime/native-datetime-formats.js → esm2020/core/datetime/native-datetime-formats.mjs} +0 -0
- package/{esm2015/core/mtxCore.js → esm2020/core/mtxCore.mjs} +0 -0
- package/esm2020/core/pipes/index.mjs +3 -0
- package/esm2020/core/pipes/pipes.module.mjs +18 -0
- package/esm2020/core/pipes/to-observable.pipe.mjs +15 -0
- package/{esm2015/core/public-api.js → esm2020/core/public-api.mjs} +2 -1
- package/esm2020/datetimepicker/calendar-body.mjs +78 -0
- package/esm2020/datetimepicker/calendar.mjs +618 -0
- package/esm2020/datetimepicker/clock.mjs +277 -0
- package/esm2020/datetimepicker/datetimepicker-animations.mjs +44 -0
- package/{esm2015/datetimepicker/datetimepicker-errors.js → esm2020/datetimepicker/datetimepicker-errors.mjs} +0 -0
- package/{esm2015/datetimepicker/datetimepicker-filtertype.js → esm2020/datetimepicker/datetimepicker-filtertype.mjs} +0 -0
- package/esm2020/datetimepicker/datetimepicker-input.mjs +344 -0
- package/esm2020/datetimepicker/datetimepicker-module.mjs +75 -0
- package/esm2020/datetimepicker/datetimepicker-toggle.mjs +94 -0
- package/esm2020/datetimepicker/datetimepicker-types.mjs +2 -0
- package/esm2020/datetimepicker/datetimepicker.mjs +492 -0
- package/esm2020/datetimepicker/month-view.mjs +148 -0
- package/esm2020/datetimepicker/mtxDatetimepicker.mjs +5 -0
- package/esm2020/datetimepicker/multi-year-view.mjs +214 -0
- package/esm2020/datetimepicker/public-api.mjs +14 -0
- package/esm2020/datetimepicker/year-view.mjs +138 -0
- package/{esm2015/dialog/dialog.config.js → esm2020/dialog/dialog-config.mjs} +1 -1
- package/esm2020/dialog/dialog.component.mjs +33 -0
- package/esm2020/dialog/dialog.mjs +74 -0
- package/esm2020/dialog/dialog.module.mjs +24 -0
- package/{esm2015/dialog/mtxDialog.js → esm2020/dialog/mtxDialog.mjs} +0 -0
- package/esm2020/dialog/public-api.mjs +5 -0
- package/esm2020/form-group/form-group.component.mjs +37 -0
- package/esm2020/form-group/form-group.module.mjs +18 -0
- package/{esm2015/form-group/mtxFormGroup.js → esm2020/form-group/mtxFormGroup.mjs} +0 -0
- package/{esm2015/form-group/public-api.js → esm2020/form-group/public-api.mjs} +0 -0
- package/esm2020/grid/cell.component.mjs +108 -0
- package/esm2020/grid/column-menu.component.mjs +95 -0
- package/esm2020/grid/column-resize/column-resize-directives/column-resize-flex.mjs +37 -0
- package/esm2020/grid/column-resize/column-resize-directives/column-resize.mjs +37 -0
- package/{esm2015/grid/column-resize/column-resize-directives/common.js → esm2020/grid/column-resize/column-resize-directives/common.mjs} +0 -0
- package/esm2020/grid/column-resize/column-resize-module.mjs +42 -0
- package/esm2020/grid/column-resize/overlay-handle.mjs +60 -0
- package/{esm2015/grid/column-resize/resizable-directives/common.js → esm2020/grid/column-resize/resizable-directives/common.mjs} +0 -0
- package/esm2020/grid/column-resize/resizable-directives/resizable.mjs +62 -0
- package/esm2020/grid/column-resize/resize-strategy.mjs +42 -0
- package/esm2020/grid/expansion-toggle.directive.mjs +64 -0
- package/esm2020/grid/grid.component.mjs +556 -0
- package/{esm2015/grid/grid.interface.js → esm2020/grid/grid.interface.mjs} +0 -0
- package/esm2020/grid/grid.module.mjs +117 -0
- package/esm2020/grid/grid.service.mjs +44 -0
- package/{esm2015/grid/mtxGrid.js → esm2020/grid/mtxGrid.mjs} +0 -0
- package/esm2020/grid/public-api.mjs +16 -0
- package/esm2020/loader/loader.component.mjs +63 -0
- package/esm2020/loader/loader.module.mjs +20 -0
- package/{esm2015/loader/mtxLoader.js → esm2020/loader/mtxLoader.mjs} +0 -0
- package/{esm2015/loader/public-api.js → esm2020/loader/public-api.mjs} +0 -0
- package/esm2020/ng-matero-extensions.mjs +5 -0
- package/{esm2015/popover/mtxPopover.js → esm2020/popover/mtxPopover.mjs} +0 -0
- package/{esm2015/popover/popover-animations.js → esm2020/popover/popover-animations.mjs} +0 -0
- package/{esm2015/popover/popover-errors.js → esm2020/popover/popover-errors.mjs} +0 -0
- package/{esm2015/popover/popover-interfaces.js → esm2020/popover/popover-interfaces.mjs} +0 -0
- package/esm2020/popover/popover-module.mjs +22 -0
- package/esm2020/popover/popover-target.mjs +17 -0
- package/esm2020/popover/popover-trigger.mjs +441 -0
- package/{esm2015/popover/popover-types.js → esm2020/popover/popover-types.mjs} +0 -0
- package/esm2020/popover/popover.mjs +334 -0
- package/{esm2015/popover/public-api.js → esm2020/popover/public-api.mjs} +0 -0
- package/{esm2015/progress/mtxProgress.js → esm2020/progress/mtxProgress.mjs} +0 -0
- package/esm2020/progress/progress.component.mjs +55 -0
- package/esm2020/progress/progress.module.mjs +18 -0
- package/{esm2015/progress/public-api.js → esm2020/progress/public-api.mjs} +0 -0
- package/esm2020/public-api.mjs +5 -0
- package/{esm2015/select/mtxSelect.js → esm2020/select/mtxSelect.mjs} +0 -0
- package/{esm2015/select/option.component.js → esm2020/select/option.component.mjs} +18 -26
- package/{esm2015/select/public-api.js → esm2020/select/public-api.mjs} +0 -0
- package/esm2020/select/select.component.mjs +458 -0
- package/esm2020/select/select.module.mjs +74 -0
- package/esm2020/select/templates.directive.mjs +124 -0
- package/{esm2015/slider/mtxSlider.js → esm2020/slider/mtxSlider.mjs} +0 -0
- package/{esm2015/slider/public-api.js → esm2020/slider/public-api.mjs} +0 -0
- package/esm2020/slider/slider-module.mjs +19 -0
- package/esm2020/slider/slider.mjs +1115 -0
- package/{esm2015/split/interface.js → esm2020/split/interface.mjs} +1 -1
- package/{esm2015/split/mtxSplit.js → esm2020/split/mtxSplit.mjs} +0 -0
- package/{esm2015/split/public-api.js → esm2020/split/public-api.mjs} +0 -0
- package/esm2020/split/split-pane.directive.mjs +149 -0
- package/esm2020/split/split.component.mjs +619 -0
- package/esm2020/split/split.module.mjs +19 -0
- package/esm2020/split/utils.mjs +222 -0
- package/{esm2015/text3d/mtxText3d.js → esm2020/text3d/mtxText3d.mjs} +0 -0
- package/{esm2015/text3d/public-api.js → esm2020/text3d/public-api.mjs} +0 -0
- package/esm2020/text3d/text3d.component.mjs +45 -0
- package/esm2020/text3d/text3d.module.mjs +18 -0
- package/{esm2015/tooltip/mtxTooltip.js → esm2020/tooltip/mtxTooltip.mjs} +0 -0
- package/{esm2015/tooltip/public-api.js → esm2020/tooltip/public-api.mjs} +0 -0
- package/{esm2015/tooltip/tooltip-animations.js → esm2020/tooltip/tooltip-animations.mjs} +0 -0
- package/esm2020/tooltip/tooltip-module.mjs +23 -0
- package/esm2020/tooltip/tooltip.mjs +674 -0
- package/fesm2015/mtxAlert.mjs +74 -0
- package/fesm2015/mtxAlert.mjs.map +1 -0
- package/fesm2015/mtxButton.mjs +102 -0
- package/fesm2015/mtxButton.mjs.map +1 -0
- package/fesm2015/mtxCheckboxGroup.mjs +257 -0
- package/fesm2015/mtxCheckboxGroup.mjs.map +1 -0
- package/fesm2015/mtxColorpicker.mjs +754 -0
- package/fesm2015/mtxColorpicker.mjs.map +1 -0
- package/fesm2015/{mtxColumnResize.js → mtxColumnResize.mjs} +108 -145
- package/fesm2015/mtxColumnResize.mjs.map +1 -0
- package/fesm2015/mtxCore.mjs +362 -0
- package/fesm2015/mtxCore.mjs.map +1 -0
- package/fesm2015/mtxDatetimepicker.mjs +2474 -0
- package/fesm2015/mtxDatetimepicker.mjs.map +1 -0
- package/fesm2015/mtxDialog.mjs +128 -0
- package/fesm2015/mtxDialog.mjs.map +1 -0
- package/fesm2015/mtxFormGroup.mjs +59 -0
- package/fesm2015/mtxFormGroup.mjs.map +1 -0
- package/fesm2015/mtxGrid.mjs +1271 -0
- package/fesm2015/mtxGrid.mjs.map +1 -0
- package/fesm2015/mtxLoader.mjs +87 -0
- package/fesm2015/mtxLoader.mjs.map +1 -0
- package/fesm2015/mtxPopover.mjs +865 -0
- package/fesm2015/mtxPopover.mjs.map +1 -0
- package/fesm2015/mtxProgress.mjs +77 -0
- package/fesm2015/mtxProgress.mjs.map +1 -0
- package/fesm2015/mtxSelect.mjs +712 -0
- package/fesm2015/mtxSelect.mjs.map +1 -0
- package/fesm2015/mtxSlider.mjs +1139 -0
- package/fesm2015/mtxSlider.mjs.map +1 -0
- package/fesm2015/{mtxSplit.js → mtxSplit.mjs} +87 -98
- package/fesm2015/mtxSplit.mjs.map +1 -0
- package/fesm2015/mtxText3d.mjs +67 -0
- package/fesm2015/mtxText3d.mjs.map +1 -0
- package/fesm2015/{mtxTooltip.js → mtxTooltip.mjs} +90 -88
- package/fesm2015/mtxTooltip.mjs.map +1 -0
- package/fesm2015/ng-matero-extensions.mjs +9 -0
- package/fesm2015/ng-matero-extensions.mjs.map +1 -0
- package/fesm2020/mtxAlert.mjs +74 -0
- package/fesm2020/mtxAlert.mjs.map +1 -0
- package/fesm2020/mtxButton.mjs +102 -0
- package/fesm2020/mtxButton.mjs.map +1 -0
- package/fesm2020/mtxCheckboxGroup.mjs +257 -0
- package/fesm2020/mtxCheckboxGroup.mjs.map +1 -0
- package/fesm2020/mtxColorpicker.mjs +750 -0
- package/fesm2020/mtxColorpicker.mjs.map +1 -0
- package/fesm2020/mtxColumnResize.mjs +953 -0
- package/fesm2020/mtxColumnResize.mjs.map +1 -0
- package/{fesm2015/mtxCore.js → fesm2020/mtxCore.mjs} +75 -42
- package/fesm2020/mtxCore.mjs.map +1 -0
- package/fesm2020/mtxDatetimepicker.mjs +2462 -0
- package/fesm2020/mtxDatetimepicker.mjs.map +1 -0
- package/fesm2020/mtxDialog.mjs +129 -0
- package/fesm2020/mtxDialog.mjs.map +1 -0
- package/fesm2020/mtxFormGroup.mjs +59 -0
- package/fesm2020/mtxFormGroup.mjs.map +1 -0
- package/fesm2020/mtxGrid.mjs +1259 -0
- package/fesm2020/mtxGrid.mjs.map +1 -0
- package/fesm2020/mtxLoader.mjs +87 -0
- package/fesm2020/mtxLoader.mjs.map +1 -0
- package/{fesm2015/mtxPopover.js → fesm2020/mtxPopover.mjs} +120 -111
- package/fesm2020/mtxPopover.mjs.map +1 -0
- package/fesm2020/mtxProgress.mjs +77 -0
- package/fesm2020/mtxProgress.mjs.map +1 -0
- package/fesm2020/mtxSelect.mjs +709 -0
- package/fesm2020/mtxSelect.mjs.map +1 -0
- package/{fesm2015/mtxSlider.js → fesm2020/mtxSlider.mjs} +97 -94
- package/fesm2020/mtxSlider.mjs.map +1 -0
- package/fesm2020/mtxSplit.mjs +1007 -0
- package/fesm2020/mtxSplit.mjs.map +1 -0
- package/fesm2020/mtxText3d.mjs +67 -0
- package/fesm2020/mtxText3d.mjs.map +1 -0
- package/fesm2020/mtxTooltip.mjs +718 -0
- package/fesm2020/mtxTooltip.mjs.map +1 -0
- package/fesm2020/ng-matero-extensions.mjs +9 -0
- package/fesm2020/ng-matero-extensions.mjs.map +1 -0
- package/form-group/_form-group-theme.scss +1 -1
- package/form-group/form-group.component.d.ts +5 -4
- package/form-group/form-group.module.d.ts +6 -0
- package/form-group/mtxFormGroup.d.ts +1 -0
- package/form-group/package.json +5 -6
- package/grid/_grid-theme.scss +1 -1
- package/grid/cell.component.d.ts +3 -0
- package/grid/column-menu.component.d.ts +3 -0
- package/grid/column-menu.component.scss +1 -1
- package/grid/column-resize/_column-resize.scss +3 -3
- package/grid/column-resize/column-resize-directives/column-resize-flex.d.ts +3 -0
- package/grid/column-resize/column-resize-directives/column-resize.d.ts +3 -0
- package/grid/column-resize/column-resize-module.d.ts +12 -7
- package/grid/column-resize/overlay-handle.d.ts +3 -0
- package/grid/column-resize/resizable-directives/resizable.d.ts +3 -0
- package/grid/column-resize/resize-strategy.d.ts +3 -0
- package/grid/expansion-toggle.directive.d.ts +3 -0
- package/grid/grid.component.d.ts +20 -1
- package/grid/grid.module.d.ts +26 -0
- package/grid/grid.service.d.ts +3 -0
- package/grid/mtxGrid.d.ts +1 -0
- package/grid/package.json +5 -6
- package/grid/public-api.d.ts +0 -1
- package/loader/_loader-theme.scss +1 -1
- package/loader/loader.component.d.ts +7 -1
- package/loader/loader.module.d.ts +8 -0
- package/loader/mtxLoader.d.ts +1 -0
- package/loader/package.json +5 -6
- package/{color-picker/mtxColorPicker.d.ts → ng-matero-extensions.d.ts} +1 -0
- package/package.json +171 -15
- package/popover/_popover-theme.scss +1 -1
- package/popover/mtxPopover.d.ts +1 -0
- package/popover/package.json +5 -6
- package/popover/popover-module.d.ts +10 -0
- package/popover/popover-target.d.ts +3 -0
- package/popover/popover-trigger.d.ts +3 -0
- package/popover/popover.d.ts +6 -3
- package/progress/_progress-theme.scss +2 -2
- package/progress/mtxProgress.d.ts +1 -0
- package/progress/package.json +5 -6
- package/progress/progress.component.d.ts +3 -0
- package/progress/progress.module.d.ts +6 -0
- package/public-api.d.ts +2 -19
- package/select/_select-theme.scss +1 -1
- package/select/mtxSelect.d.ts +1 -0
- package/select/option.component.d.ts +3 -0
- package/select/package.json +5 -6
- package/select/select.component.d.ts +4 -1
- package/select/select.component.scss +1 -1
- package/select/select.module.d.ts +10 -0
- package/select/templates.directive.d.ts +23 -0
- package/slider/_slider-theme.scss +5 -5
- package/slider/mtxSlider.d.ts +1 -0
- package/slider/package.json +5 -6
- package/slider/slider-module.d.ts +7 -0
- package/slider/slider.d.ts +4 -1
- package/slider/slider.scss +8 -7
- package/split/_split-theme.scss +10 -3
- package/split/interface.d.ts +1 -2
- package/split/mtxSplit.d.ts +1 -0
- package/split/package.json +5 -6
- package/split/split-pane.directive.d.ts +3 -0
- package/split/split.component.d.ts +12 -1
- package/split/split.module.d.ts +7 -0
- package/text3d/_text3d-theme.scss +2 -2
- package/text3d/mtxText3d.d.ts +1 -0
- package/text3d/package.json +5 -6
- package/text3d/text3d.component.d.ts +3 -1
- package/text3d/text3d.module.d.ts +6 -0
- package/tooltip/_tooltip-theme.scss +3 -3
- package/tooltip/mtxTooltip.d.ts +1 -0
- package/tooltip/package.json +5 -6
- package/tooltip/tooltip-module.d.ts +10 -0
- package/tooltip/tooltip.d.ts +5 -0
- package/tooltip/tooltip.scss +1 -1
- package/alert/mtxAlert.metadata.json +0 -1
- package/bundles/extensions.umd.js +0 -198
- package/bundles/extensions.umd.js.map +0 -1
- package/bundles/mtxAlert.umd.js +0 -101
- package/bundles/mtxAlert.umd.js.map +0 -1
- package/bundles/mtxButton.umd.js +0 -119
- package/bundles/mtxButton.umd.js.map +0 -1
- package/bundles/mtxCheckboxGroup.umd.js +0 -285
- package/bundles/mtxCheckboxGroup.umd.js.map +0 -1
- package/bundles/mtxColorPicker.umd.js +0 -337
- package/bundles/mtxColorPicker.umd.js.map +0 -1
- package/bundles/mtxColumnResize.umd.js +0 -1339
- package/bundles/mtxColumnResize.umd.js.map +0 -1
- package/bundles/mtxCore.umd.js +0 -670
- package/bundles/mtxCore.umd.js.map +0 -1
- package/bundles/mtxDatetimepicker.umd.js +0 -2590
- package/bundles/mtxDatetimepicker.umd.js.map +0 -1
- package/bundles/mtxDialog.umd.js +0 -160
- package/bundles/mtxDialog.umd.js.map +0 -1
- package/bundles/mtxFormGroup.umd.js +0 -80
- package/bundles/mtxFormGroup.umd.js.map +0 -1
- package/bundles/mtxGrid.umd.js +0 -1583
- package/bundles/mtxGrid.umd.js.map +0 -1
- package/bundles/mtxLoader.umd.js +0 -104
- package/bundles/mtxLoader.umd.js.map +0 -1
- package/bundles/mtxPipes.umd.js +0 -44
- package/bundles/mtxPipes.umd.js.map +0 -1
- package/bundles/mtxPopover.umd.js +0 -1260
- package/bundles/mtxPopover.umd.js.map +0 -1
- package/bundles/mtxProgress.umd.js +0 -92
- package/bundles/mtxProgress.umd.js.map +0 -1
- package/bundles/mtxSelect.umd.js +0 -1097
- package/bundles/mtxSelect.umd.js.map +0 -1
- package/bundles/mtxSlider.umd.js +0 -1551
- package/bundles/mtxSlider.umd.js.map +0 -1
- package/bundles/mtxSplit.umd.js +0 -1430
- package/bundles/mtxSplit.umd.js.map +0 -1
- package/bundles/mtxText3d.umd.js +0 -92
- package/bundles/mtxText3d.umd.js.map +0 -1
- package/bundles/mtxTooltip.umd.js +0 -1078
- package/bundles/mtxTooltip.umd.js.map +0 -1
- package/button/mtxButton.metadata.json +0 -1
- package/checkbox-group/mtxCheckboxGroup.metadata.json +0 -1
- package/color-picker/color-picker.component.d.ts +0 -120
- package/color-picker/color-picker.module.d.ts +0 -2
- package/color-picker/mtxColorPicker.metadata.json +0 -1
- package/color-picker/package.json +0 -11
- package/color-picker/public-api.d.ts +0 -2
- package/column-resize/mtxColumnResize.metadata.json +0 -1
- package/core/mtxCore.metadata.json +0 -1
- package/datetimepicker/datetimepicker.module.d.ts +0 -2
- package/datetimepicker/mtxDatetimepicker.metadata.json +0 -1
- package/dialog/mtxDialog.metadata.json +0 -1
- package/esm2015/alert/alert.component.js +0 -63
- package/esm2015/alert/alert.module.js +0 -14
- package/esm2015/button/button-loading.directive.js +0 -89
- package/esm2015/button/button.module.js +0 -16
- package/esm2015/checkbox-group/checkbox-group.component.js +0 -236
- package/esm2015/checkbox-group/checkbox-group.module.js +0 -17
- package/esm2015/color-picker/color-picker.component.js +0 -268
- package/esm2015/color-picker/color-picker.module.js +0 -26
- package/esm2015/color-picker/mtxColorPicker.js +0 -5
- package/esm2015/color-picker/public-api.js +0 -3
- package/esm2015/column-resize/column-resize-directives/column-resize-flex.js +0 -54
- package/esm2015/column-resize/column-resize-directives/column-resize.js +0 -54
- package/esm2015/column-resize/column-resize-module.js +0 -24
- package/esm2015/column-resize/column-resize-notifier.js +0 -54
- package/esm2015/column-resize/column-resize.js +0 -80
- package/esm2015/column-resize/column-size-store.js +0 -18
- package/esm2015/column-resize/event-dispatcher.js +0 -75
- package/esm2015/column-resize/overlay-handle.js +0 -144
- package/esm2015/column-resize/resizable.js +0 -197
- package/esm2015/column-resize/resize-strategy.js +0 -245
- package/esm2015/core/datetime/datetime.module.js +0 -32
- package/esm2015/core/datetime/native-datetime-adapter.js +0 -144
- package/esm2015/datetimepicker/calendar-body.js +0 -75
- package/esm2015/datetimepicker/calendar.js +0 -629
- package/esm2015/datetimepicker/clock.js +0 -283
- package/esm2015/datetimepicker/datetimepicker-animations.js +0 -30
- package/esm2015/datetimepicker/datetimepicker-input.js +0 -333
- package/esm2015/datetimepicker/datetimepicker-toggle.js +0 -81
- package/esm2015/datetimepicker/datetimepicker.js +0 -411
- package/esm2015/datetimepicker/datetimepicker.module.js +0 -49
- package/esm2015/datetimepicker/month-view.js +0 -149
- package/esm2015/datetimepicker/mtxDatetimepicker.js +0 -7
- package/esm2015/datetimepicker/multi-year-view.js +0 -214
- package/esm2015/datetimepicker/public-api.js +0 -11
- package/esm2015/datetimepicker/year-view.js +0 -140
- package/esm2015/dialog/dialog.component.js +0 -40
- package/esm2015/dialog/dialog.js +0 -81
- package/esm2015/dialog/dialog.module.js +0 -21
- package/esm2015/dialog/public-api.js +0 -5
- package/esm2015/extensions-experimental.module.js +0 -13
- package/esm2015/extensions.js +0 -5
- package/esm2015/extensions.module.js +0 -40
- package/esm2015/form-group/form-group.component.js +0 -47
- package/esm2015/form-group/form-group.module.js +0 -14
- package/esm2015/grid/cell-selection.directive.js +0 -62
- package/esm2015/grid/cell.component.js +0 -115
- package/esm2015/grid/column-menu.component.js +0 -72
- package/esm2015/grid/column-resize/column-resize-directives/column-resize-flex.js +0 -47
- package/esm2015/grid/column-resize/column-resize-directives/column-resize.js +0 -47
- package/esm2015/grid/column-resize/column-resize-module.js +0 -36
- package/esm2015/grid/column-resize/overlay-handle.js +0 -68
- package/esm2015/grid/column-resize/resizable-directives/resizable.js +0 -75
- package/esm2015/grid/column-resize/resize-strategy.js +0 -45
- package/esm2015/grid/expansion-toggle.directive.js +0 -62
- package/esm2015/grid/grid.component.js +0 -418
- package/esm2015/grid/grid.module.js +0 -69
- package/esm2015/grid/grid.service.js +0 -50
- package/esm2015/grid/public-api.js +0 -17
- package/esm2015/loader/loader.component.js +0 -66
- package/esm2015/loader/loader.module.js +0 -16
- package/esm2015/pipes/mtxPipes.js +0 -5
- package/esm2015/pipes/pipes.module.js +0 -14
- package/esm2015/pipes/public-api.js +0 -3
- package/esm2015/pipes/to-observable.pipe.js +0 -12
- package/esm2015/popover/popover-module.js +0 -18
- package/esm2015/popover/popover-target.js +0 -24
- package/esm2015/popover/popover-trigger.js +0 -434
- package/esm2015/popover/popover.js +0 -326
- package/esm2015/progress/progress.component.js +0 -54
- package/esm2015/progress/progress.module.js +0 -14
- package/esm2015/public-api.js +0 -23
- package/esm2015/select/select.component.js +0 -380
- package/esm2015/select/select.module.js +0 -46
- package/esm2015/select/templates.directive.js +0 -211
- package/esm2015/slider/slider-module.js +0 -15
- package/esm2015/slider/slider.js +0 -1115
- package/esm2015/split/split-pane.directive.js +0 -156
- package/esm2015/split/split.component.js +0 -620
- package/esm2015/split/split.module.js +0 -15
- package/esm2015/split/utils.js +0 -227
- package/esm2015/text3d/text3d.component.js +0 -53
- package/esm2015/text3d/text3d.module.js +0 -14
- package/esm2015/tooltip/tooltip-module.js +0 -20
- package/esm2015/tooltip/tooltip.js +0 -678
- package/extensions-experimental.module.d.ts +0 -2
- package/extensions.metadata.json +0 -1
- package/extensions.module.d.ts +0 -2
- package/fesm2015/extensions.js +0 -80
- package/fesm2015/extensions.js.map +0 -1
- package/fesm2015/mtxAlert.js +0 -82
- package/fesm2015/mtxAlert.js.map +0 -1
- package/fesm2015/mtxButton.js +0 -108
- package/fesm2015/mtxButton.js.map +0 -1
- package/fesm2015/mtxCheckboxGroup.js +0 -256
- package/fesm2015/mtxCheckboxGroup.js.map +0 -1
- package/fesm2015/mtxColorPicker.js +0 -295
- package/fesm2015/mtxColorPicker.js.map +0 -1
- package/fesm2015/mtxColumnResize.js.map +0 -1
- package/fesm2015/mtxCore.js.map +0 -1
- package/fesm2015/mtxDatetimepicker.js +0 -2355
- package/fesm2015/mtxDatetimepicker.js.map +0 -1
- package/fesm2015/mtxDialog.js +0 -141
- package/fesm2015/mtxDialog.js.map +0 -1
- package/fesm2015/mtxFormGroup.js +0 -66
- package/fesm2015/mtxFormGroup.js.map +0 -1
- package/fesm2015/mtxGrid.js +0 -1186
- package/fesm2015/mtxGrid.js.map +0 -1
- package/fesm2015/mtxLoader.js +0 -87
- package/fesm2015/mtxLoader.js.map +0 -1
- package/fesm2015/mtxPipes.js +0 -31
- package/fesm2015/mtxPipes.js.map +0 -1
- package/fesm2015/mtxPopover.js.map +0 -1
- package/fesm2015/mtxProgress.js +0 -73
- package/fesm2015/mtxProgress.js.map +0 -1
- package/fesm2015/mtxSelect.js +0 -700
- package/fesm2015/mtxSelect.js.map +0 -1
- package/fesm2015/mtxSlider.js.map +0 -1
- package/fesm2015/mtxSplit.js.map +0 -1
- package/fesm2015/mtxText3d.js +0 -72
- package/fesm2015/mtxText3d.js.map +0 -1
- package/fesm2015/mtxTooltip.js.map +0 -1
- package/form-group/mtxFormGroup.metadata.json +0 -1
- package/grid/cell-selection.directive.d.ts +0 -17
- package/grid/mtxGrid.metadata.json +0 -1
- package/loader/mtxLoader.metadata.json +0 -1
- package/pipes/mtxPipes.d.ts +0 -4
- package/pipes/mtxPipes.metadata.json +0 -1
- package/pipes/package.json +0 -11
- package/pipes/pipes.module.d.ts +0 -2
- package/popover/mtxPopover.metadata.json +0 -1
- package/progress/mtxProgress.metadata.json +0 -1
- package/select/mtxSelect.metadata.json +0 -1
- package/slider/mtxSlider.metadata.json +0 -1
- package/split/mtxSplit.metadata.json +0 -1
- package/text3d/mtxText3d.metadata.json +0 -1
- package/tooltip/mtxTooltip.metadata.json +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mtxGrid.mjs","sources":["../../../projects/extensions/grid/grid.service.ts","../../../projects/extensions/grid/column-menu.component.ts","../../../projects/extensions/grid/column-menu.component.html","../../../projects/extensions/grid/cell.component.ts","../../../projects/extensions/grid/cell.component.html","../../../projects/extensions/grid/expansion-toggle.directive.ts","../../../projects/extensions/grid/column-resize/resize-strategy.ts","../../../projects/extensions/grid/column-resize/column-resize-directives/common.ts","../../../projects/extensions/grid/column-resize/column-resize-directives/column-resize.ts","../../../projects/extensions/grid/column-resize/overlay-handle.ts","../../../projects/extensions/grid/column-resize/resizable-directives/common.ts","../../../projects/extensions/grid/column-resize/resizable-directives/resizable.ts","../../../projects/extensions/grid/grid.component.ts","../../../projects/extensions/grid/grid.component.html","../../../projects/extensions/grid/column-resize/column-resize-directives/column-resize-flex.ts","../../../projects/extensions/grid/column-resize/column-resize-module.ts","../../../projects/extensions/grid/grid.module.ts","../../../projects/extensions/grid/mtxGrid.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { MtxGridColumn } from './grid.interface';\n\n@Injectable()\nexport class MtxGridService {\n constructor() {}\n\n /**\n * Get cell value from column key e.g. `a.b.c`\n * @param rowData Row data\n * @param colDef Column definition\n */\n getCellValue(rowData: any, colDef: MtxGridColumn): string {\n const keyArr = colDef.field ? colDef.field.split('.') : [];\n\n let tmp: any = '';\n\n keyArr.forEach((key: string, i: number) => {\n if (i === 0) {\n tmp = rowData[key];\n } else {\n tmp = tmp && tmp[key];\n }\n });\n return tmp;\n }\n\n /**\n * Get all data of a col\n * @param data All data\n * @param colDef Column definition\n */\n getColData(data: any[], colDef: MtxGridColumn): any[] {\n return data.map((rowData: any) => this.getCellValue(rowData, colDef));\n }\n\n /**\n * Remove white spaces in a string and convert string to array\n * @param str string\n */\n str2arr(str: string): string[] {\n return str.replace(/[\\r\\n\\s]/g, '').split(',');\n }\n}\n","import {\n Component,\n Input,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n Output,\n EventEmitter,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { MatMenu, MatMenuTrigger } from '@angular/material/menu';\nimport { ThemePalette } from '@angular/material/core';\nimport { MtxGridButtonType, MtxGridColumnSelectionItem } from './grid.interface';\n\n@Component({\n selector: 'mtx-grid-column-menu',\n exportAs: 'mtxGridColumnMenu',\n templateUrl: './column-menu.component.html',\n styleUrls: ['./column-menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtxGridColumnMenuComponent {\n @ViewChild('menu', { static: true }) menuPanel!: MatMenu;\n @ViewChild(MatMenuTrigger) menuTrigger!: MatMenuTrigger;\n\n @Input() columns: MtxGridColumnSelectionItem[] = [];\n @Input() selectable = true;\n @Input() selectableChecked: 'show' | 'hide' = 'show';\n @Input() sortable = true;\n @Input() dndSortable = true;\n\n @Input()\n get buttonText() {\n const defaultText = `Columns ${this.selectableChecked === 'show' ? 'Shown' : 'Hidden'}`;\n const text = this._buttonText ? this._buttonText : defaultText;\n return text;\n }\n set buttonText(value: string) {\n this._buttonText = value;\n }\n private _buttonText = '';\n\n @Input() buttonType: MtxGridButtonType = 'stroked';\n @Input() buttonColor: ThemePalette;\n @Input() buttonClass = '';\n @Input() buttonIcon = '';\n\n @Input() showHeader = false;\n @Input() headerText = 'Columns Header';\n @Input() headerTemplate!: TemplateRef<any>;\n @Input() showFooter = false;\n @Input() footerText = 'Columns Footer';\n @Input() footerTemplate!: TemplateRef<any>;\n\n @Output() selectionChange = new EventEmitter<MtxGridColumnSelectionItem[]>();\n @Output() sortChange = new EventEmitter<MtxGridColumnSelectionItem[]>();\n\n _handleDroped(event: CdkDragDrop<string[]>) {\n moveItemInArray(this.columns, event.previousIndex, event.currentIndex);\n this.sortChange.emit(this.columns);\n }\n\n _handleSelection(e: MatCheckboxChange) {\n this.selectionChange.emit(this.columns);\n }\n}\n","<ng-container [ngSwitch]=\"buttonType\">\r\n <ng-container *ngSwitchCase=\"'raised'\">\r\n <button [ngClass]=\"buttonClass\" mat-raised-button [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'stroked'\">\r\n <button [ngClass]=\"buttonClass\" mat-stroked-button [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'flat'\">\r\n <button [ngClass]=\"buttonClass\" mat-flat-button [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'icon'\">\r\n <button [ngClass]=\"buttonClass\" mat-icon-button [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'fab'\">\r\n <button [ngClass]=\"buttonClass\" mat-fab [color]=\"buttonColor\" [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'mini-fab'\">\r\n <button [ngClass]=\"buttonClass\" mat-mini-fab [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <button [ngClass]=\"buttonClass\" mat-button [color]=\"buttonColor\" [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<mat-menu #menu=\"matMenu\" class=\"mtx-grid-column-menu\">\r\n <div class=\"mtx-grid-column-menu-content\"\r\n (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\r\n <div class=\"mtx-grid-column-menu-header\" *ngIf=\"showHeader\">\r\n <ng-template [ngIf]=\"headerTemplate\" [ngIfElse]=\"defaultHeaderTpl\">\r\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\r\n </ng-template>\r\n <ng-template #defaultHeaderTpl>{{headerText}}</ng-template>\r\n </div>\r\n\r\n <div class=\"mtx-grid-column-menu-body\">\r\n <div class=\"mtx-grid-column-menu-list\"\r\n cdkDropList (cdkDropListDropped)=\"_handleDroped($event)\"\r\n *ngIf=\"sortable\">\r\n <div class=\"mtx-grid-column-menu-item\" *ngFor=\"let col of columns\"\r\n cdkDrag [cdkDragDisabled]=\"selectableChecked === 'show'? !col.show : col.hide\">\r\n <mat-icon cdkDragHandle>drag_handle</mat-icon>\r\n <ng-template [ngTemplateOutlet]=\"checkboxList\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col }\">\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mtx-grid-column-menu-list\" *ngIf=\"!sortable\">\r\n <div class=\"mtx-grid-column-menu-item\" *ngFor=\"let col of columns\">\r\n <ng-template [ngTemplateOutlet]=\"checkboxList\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col }\">\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mtx-grid-column-menu-footer\" *ngIf=\"showFooter\">\r\n <ng-template [ngIf]=\"footerTemplate\" [ngIfElse]=\"defaultFooterTpl\">\r\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\r\n </ng-template>\r\n <ng-template #defaultFooterTpl>{{footerText}}</ng-template>\r\n </div>\r\n </div>\r\n</mat-menu>\r\n\r\n<ng-template #checkboxList let-col>\r\n <mat-checkbox class=\"mtx-grid-column-menu-item-label\"\r\n *ngIf=\"selectable\"\r\n [(ngModel)]=\"col[selectableChecked]\"\r\n [disabled]=\"col.disabled\"\r\n (change)=\"_handleSelection($event)\">\r\n {{col.label | toObservable | async}}\r\n </mat-checkbox>\r\n <span class=\"mtx-grid-column-menu-item-label\" *ngIf=\"!selectable\">\r\n {{col.label | toObservable | async}}\r\n </span>\r\n</ng-template>\r\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { MtxDialog } from '@ng-matero/extensions/dialog';\nimport { Observable } from 'rxjs';\n\nimport { MtxGridColumn, MtxGridColumnButton } from './grid.interface';\nimport { MtxGridService } from './grid.service';\nimport PhotoViewer from 'photoviewer';\n\n@Component({\n selector: 'mtx-grid-cell',\n exportAs: 'mtxGridCell',\n templateUrl: './cell.component.html',\n styleUrls: ['./cell.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtxGridCellComponent {\n /** Row data */\n @Input() rowData = {};\n\n /** Column definition */\n @Input() colDef!: MtxGridColumn;\n\n /** All data */\n @Input() data: any[] = [];\n\n /** Whether show summary */\n @Input() summary = false;\n\n get _colValue() {\n return this._dataGridSrv.getCellValue(this.rowData, this.colDef);\n }\n\n _isString(fn: any) {\n return Object.prototype.toString.call(fn) === '[object String]';\n }\n\n _isFunction(fn: any) {\n return Object.prototype.toString.call(fn) === '[object Function]';\n }\n\n _isEmptyValue(value: any) {\n return value == null || value.toString() === '';\n }\n\n _isContainHTML(value: string) {\n return /<\\/?[a-z][\\s\\S]*>/i.test(value);\n }\n\n _getText(value: any) {\n return this._isEmptyValue(value) ? '--' : value;\n }\n\n _getTooltip(value: any) {\n return this._isEmptyValue(value) ? '' : value;\n }\n\n _getFormatterTooltip(value: any) {\n return this._isContainHTML(value) || this._isEmptyValue(value) ? '' : value;\n }\n\n _formatSummary(data: any[], colDef: MtxGridColumn) {\n if (this._isString(colDef.summary)) {\n return colDef.summary;\n } else if (this._isFunction(colDef.summary)) {\n return (colDef.summary as (data: any[], colDef?: MtxGridColumn) => void)(\n this._dataGridSrv.getColData(data, colDef),\n colDef\n );\n }\n }\n\n constructor(private _dialog: MtxDialog, private _dataGridSrv: MtxGridService) {}\n\n _handleActionConfirm(\n event: MouseEvent,\n title: string | Observable<string>,\n description: string | Observable<string> = '',\n okColor: ThemePalette = 'primary',\n okText: string | Observable<string> = 'OK',\n closeColor: ThemePalette,\n closeText: string | Observable<string> = 'CLOSE',\n fn?: (p: any) => void,\n data?: any\n ) {\n event.preventDefault();\n event.stopPropagation();\n\n this._dialog.open({\n title,\n description,\n buttons: [\n {\n color: okColor,\n text: okText,\n onClick: () => (fn ? fn(data) : {}),\n },\n { color: closeColor, text: closeText, onClick: () => {} },\n ],\n });\n }\n\n _handleActionClick(event: MouseEvent, btn: MtxGridColumnButton, rowData: any) {\n event.preventDefault();\n event.stopPropagation();\n\n if (btn.click) {\n btn.click(rowData);\n }\n }\n\n /** Preview enlarged image */\n _onPreview(urlStr: string) {\n const imgs: PhotoViewer.Img[] = [];\n\n this._dataGridSrv.str2arr(urlStr).forEach((url, index) => {\n imgs.push({ title: index + 1 + '', src: url });\n });\n\n const footerToolbar =\n imgs.length > 1\n ? ['zoomIn', 'zoomOut', 'prev', 'next', 'rotateRight', 'rotateLeft', 'actualSize']\n : ['zoomIn', 'zoomOut', 'rotateRight', 'rotateLeft', 'actualSize'];\n\n const options: PhotoViewer.Options = {\n title: imgs.length > 1,\n footerToolbar,\n };\n\n const viewer = new PhotoViewer(imgs, options);\n }\n}\n","<span *ngIf=\"summary; else customCellFormattingTpl\"\r\n [title]=\"_getFormatterTooltip(_formatSummary(data, colDef))\"\r\n [innerHTML]=\"_getText(_formatSummary(data, colDef))\">\r\n</span>\r\n\r\n<!-- Custom formatting -->\r\n<ng-template #customCellFormattingTpl>\r\n <span *ngIf=\"colDef.formatter; else defaultCellFormattingTpl\"\r\n [title]=\"_getFormatterTooltip(colDef.formatter(rowData, colDef))\"\r\n [innerHTML]=\"_getText(colDef.formatter(rowData, colDef))\">\r\n </span>\r\n</ng-template>\r\n\r\n<!-- Default formatting -->\r\n<ng-template #defaultCellFormattingTpl>\r\n <ng-container [ngSwitch]=\"colDef.type\">\r\n <!-- Tag -->\r\n <ng-container *ngSwitchCase=\"'tag'\">\r\n <mat-chip-list *ngIf=\"colDef.tag && colDef.tag[_colValue]; else tagEmptyTpl\">\r\n <mat-chip color=\"primary\" [ngClass]=\"['bg-' + colDef.tag[_colValue].color]\">\r\n {{colDef.tag[_colValue].text}}\r\n </mat-chip>\r\n </mat-chip-list>\r\n <ng-template #tagEmptyTpl>{{_colValue}}</ng-template>\r\n </ng-container>\r\n <!-- Buttons -->\r\n <ng-container *ngSwitchCase=\"'button'\">\r\n <ng-container *ngFor=\"let btn of colDef.buttons;\">\r\n <ng-container *ngIf=\"!btn.iif || btn.iif(rowData)\">\r\n <ng-container *ngIf=\"btn.pop; else btnDefaultTpl\">\r\n <button [ngClass]=\"['mtx-grid-action-button', btn.class||'']\"\r\n *ngIf=\"btn.type==='basic'\"\r\n mat-button\r\n [color]=\"btn.color || 'primary'\"\r\n [disabled]=\"btn.disabled\"\r\n [matTooltip]=\"btn.tooltip | toObservable | async\"\r\n (click)=\"_handleActionConfirm($event, btn.popTitle!, btn.popDescription,\r\n btn.popOkColor, btn.popOkText,\r\n btn.popCloseColor, btn.popCloseText,\r\n btn.click, rowData)\">\r\n <mat-icon *ngIf=\"btn.icon\">{{btn.icon}}</mat-icon>\r\n <span>{{btn.text | toObservable | async}}</span>\r\n </button>\r\n <button [ngClass]=\"['mtx-grid-action-button', btn.class||'']\"\r\n *ngIf=\"!btn.type || btn.type==='icon'\"\r\n mat-icon-button\r\n [color]=\"btn.color || 'primary'\"\r\n [disabled]=\"btn.disabled\"\r\n [matTooltip]=\"btn.tooltip | toObservable | async\"\r\n (click)=\"_handleActionConfirm($event, btn.popTitle!, btn.popDescription,\r\n btn.popOkColor, btn.popOkText,\r\n btn.popCloseColor, btn.popCloseText,\r\n btn.click, rowData)\">\r\n <mat-icon>{{btn.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <ng-template #btnDefaultTpl>\r\n <button [ngClass]=\"['mtx-grid-action-button', btn.class||'']\"\r\n *ngIf=\"btn.type==='basic'\"\r\n mat-button\r\n [color]=\"btn.color || 'primary'\"\r\n [disabled]=\"btn.disabled\"\r\n [matTooltip]=\"btn.tooltip | toObservable | async\"\r\n (click)=\"_handleActionClick($event, btn, rowData)\">\r\n <mat-icon *ngIf=\"btn.icon\">{{btn.icon}}</mat-icon>\r\n <span>{{btn.text | toObservable | async}}</span>\r\n </button>\r\n <button [ngClass]=\"['mtx-grid-action-button', btn.class||'']\"\r\n *ngIf=\"!btn.type || btn.type==='icon'\"\r\n mat-icon-button\r\n [color]=\"btn.color || 'primary'\"\r\n [disabled]=\"btn.disabled\"\r\n [matTooltip]=\"btn.tooltip | toObservable | async\"\r\n (click)=\"_handleActionClick($event, btn, rowData)\">\r\n <mat-icon>{{btn.icon}}</mat-icon>\r\n </button>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <!-- Link -->\r\n <ng-container *ngSwitchCase=\"'link'\">\r\n <a [href]=\"_colValue\" target=\"_blank\">{{_colValue}}</a>\r\n </ng-container>\r\n <!-- Image -->\r\n <ng-container *ngSwitchCase=\"'image'\">\r\n <img class=\"mtx-grid-img\" [src]=\"_colValue\" (click)=\"_onPreview(_colValue)\">\r\n </ng-container>\r\n <!-- Boolean -->\r\n <ng-container *ngSwitchCase=\"'boolean'\">\r\n <span [title]=\"_getTooltip(_colValue)\">{{_getText(_colValue)}}</span>\r\n </ng-container>\r\n <!-- Number -->\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <span [title]=\"_getTooltip(_colValue | number: colDef.typeParameter?.digitsInfo : colDef.typeParameter?.locale)\">\r\n {{_getText(_colValue | number: colDef.typeParameter?.digitsInfo : colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Currency -->\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <span [title]=\"_getTooltip(_colValue | currency: colDef.typeParameter?.currencyCode : colDef.typeParameter?.display : colDef.typeParameter?.digitsInfo : colDef.typeParameter?.locale)\">\r\n {{_getText(_colValue | currency: colDef.typeParameter?.currencyCode : colDef.typeParameter?.display : colDef.typeParameter?.digitsInfo : colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Percent -->\r\n <ng-container *ngSwitchCase=\"'percent'\">\r\n <span [title]=\"_getTooltip(_colValue | percent: colDef.typeParameter?.digitsInfo : colDef.typeParameter?.locale)\">\r\n {{_getText(_colValue | percent: colDef.typeParameter?.digitsInfo : colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <span [title]=\"_getTooltip(_colValue | date: colDef.typeParameter?.format : colDef.typeParameter?.timezone : colDef.typeParameter?.locale)\">\r\n {{_getText(_colValue | date: colDef.typeParameter?.format : colDef.typeParameter?.timezone : colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Default -->\r\n <ng-container *ngSwitchDefault>\r\n <span [title]=\"_getTooltip(_colValue)\">{{_getText(_colValue)}}</span>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n","import {\n Directive,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n TemplateRef,\n} from '@angular/core';\n\n@Directive({\n selector: '[mtx-grid-expansion-toggle]',\n})\nexport class MtxGridExpansionToggleDirective {\n private _opened = false;\n private _row: any;\n private _tplRef!: TemplateRef<any>;\n\n @Input()\n get opened() {\n return this._opened;\n }\n set opened(newValue: boolean) {\n this._opened = newValue;\n this.openedChange.emit(newValue);\n }\n @Output() openedChange = new EventEmitter<boolean>();\n\n @HostBinding('class.expanded')\n get expanded(): boolean {\n return this._opened;\n }\n\n @Input()\n set expandableRow(value: any) {\n if (value !== this._row) {\n this._row = value;\n }\n }\n\n @Input('expansionRowTpl')\n set template(value: TemplateRef<any>) {\n if (value !== this._tplRef) {\n this._tplRef = value;\n }\n }\n\n @Output() toggleChange = new EventEmitter<MtxGridExpansionToggleDirective>();\n\n constructor() {}\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.toggle();\n }\n\n toggle(): void {\n this.opened = !this.opened;\n this.toggleChange.emit(this);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { Inject, Injectable, Provider } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { CdkTable, _CoalescedStyleScheduler, _COALESCED_STYLE_SCHEDULER } from '@angular/cdk/table';\n\nimport {\n ColumnResize,\n ResizeStrategy,\n CdkFlexTableResizeStrategy,\n TABLE_LAYOUT_FIXED_RESIZE_STRATEGY_PROVIDER,\n} from '@ng-matero/extensions/column-resize';\n\nexport { TABLE_LAYOUT_FIXED_RESIZE_STRATEGY_PROVIDER };\n\n/**\n * Overrides CdkFlexTableResizeStrategy to match mat-column elements.\n */\n@Injectable()\nexport class MatFlexTableResizeStrategy extends CdkFlexTableResizeStrategy {\n constructor(\n columnResize: ColumnResize,\n @Inject(_COALESCED_STYLE_SCHEDULER) styleScheduler: _CoalescedStyleScheduler,\n table: CdkTable<unknown>,\n @Inject(DOCUMENT) document: any\n ) {\n super(columnResize, styleScheduler, table, document);\n }\n\n protected getColumnCssClass(cssFriendlyColumnName: string): string {\n return `mat-column-${cssFriendlyColumnName}`;\n }\n}\n\nexport const FLEX_RESIZE_STRATEGY_PROVIDER: Provider = {\n provide: ResizeStrategy,\n useClass: MatFlexTableResizeStrategy,\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { Provider } from '@angular/core';\n\nimport {\n ColumnResize,\n ColumnResizeNotifier,\n ColumnResizeNotifierSource,\n HeaderRowEventDispatcher,\n} from '@ng-matero/extensions/column-resize';\n\nimport {\n TABLE_LAYOUT_FIXED_RESIZE_STRATEGY_PROVIDER,\n FLEX_RESIZE_STRATEGY_PROVIDER,\n} from '../resize-strategy';\n\nconst PROVIDERS: Provider[] = [\n ColumnResizeNotifier,\n HeaderRowEventDispatcher,\n ColumnResizeNotifierSource,\n];\nexport const TABLE_PROVIDERS: Provider[] = [\n ...PROVIDERS,\n TABLE_LAYOUT_FIXED_RESIZE_STRATEGY_PROVIDER,\n];\nexport const FLEX_PROVIDERS: Provider[] = [...PROVIDERS, FLEX_RESIZE_STRATEGY_PROVIDER];\n\nexport const TABLE_HOST_BINDINGS = {\n class: 'mat-column-resize-table',\n};\nexport const FLEX_HOST_BINDINGS = {\n class: 'mat-column-resize-flex',\n};\n\nexport abstract class AbstractMatColumnResize extends ColumnResize {\n getTableHeight() {\n const table = this.elementRef.nativeElement;\n const tableParent = table!.parentNode as HTMLElement;\n const isTableContainer = tableParent!.classList.contains('mat-table-container');\n return isTableContainer ? tableParent!.offsetHeight : table!.offsetHeight;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { Directive, ElementRef, NgZone } from '@angular/core';\nimport {\n ColumnResize,\n ColumnResizeNotifier,\n ColumnResizeNotifierSource,\n HeaderRowEventDispatcher,\n} from '@ng-matero/extensions/column-resize';\n\nimport { AbstractMatColumnResize, TABLE_HOST_BINDINGS, TABLE_PROVIDERS } from './common';\n\n/**\n * Explicitly enables column resizing for a table-based mat-table.\n * Individual columns must be annotated specifically.\n */\n@Directive({\n selector: 'table[mat-table][columnResize]',\n host: TABLE_HOST_BINDINGS,\n providers: [...TABLE_PROVIDERS, { provide: ColumnResize, useExisting: MatColumnResize }],\n})\nexport class MatColumnResize extends AbstractMatColumnResize {\n constructor(\n readonly columnResizeNotifier: ColumnResizeNotifier,\n readonly elementRef: ElementRef<HTMLElement>,\n protected readonly eventDispatcher: HeaderRowEventDispatcher,\n protected readonly ngZone: NgZone,\n protected readonly notifier: ColumnResizeNotifierSource\n ) {\n super();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n NgZone,\n ViewEncapsulation,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport {\n CdkColumnDef,\n _CoalescedStyleScheduler,\n _COALESCED_STYLE_SCHEDULER,\n} from '@angular/cdk/table';\nimport { Directionality } from '@angular/cdk/bidi';\nimport {\n ColumnResize,\n ColumnResizeNotifierSource,\n HeaderRowEventDispatcher,\n ResizeOverlayHandle,\n ResizeRef,\n} from '@ng-matero/extensions/column-resize';\n\nimport { AbstractMatColumnResize } from './column-resize-directives/common';\n\n/**\n * Component shown over the edge of a resizable column that is responsible\n * for handling column resize mouse events and displaying a vertical line along the column edge.\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'mat-column-resize-overlay-thumb' },\n template: '',\n})\nexport class MatColumnResizeOverlayHandle extends ResizeOverlayHandle {\n protected readonly document: Document;\n\n constructor(\n protected readonly columnDef: CdkColumnDef,\n protected readonly columnResize: ColumnResize,\n protected readonly directionality: Directionality,\n protected readonly elementRef: ElementRef,\n protected readonly eventDispatcher: HeaderRowEventDispatcher,\n protected readonly ngZone: NgZone,\n protected readonly resizeNotifier: ColumnResizeNotifierSource,\n protected readonly resizeRef: ResizeRef,\n @Inject(_COALESCED_STYLE_SCHEDULER)\n protected readonly styleScheduler: _CoalescedStyleScheduler,\n @Inject(DOCUMENT) document: any\n ) {\n super();\n this.document = document;\n }\n\n protected updateResizeActive(active: boolean): void {\n super.updateResizeActive(active);\n\n this.resizeRef.overlayRef.updateSize({\n height: active\n ? (this.columnResize as AbstractMatColumnResize).getTableHeight()\n : this.resizeRef.origin.nativeElement!.offsetHeight,\n });\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { Type } from '@angular/core';\nimport { Resizable } from '@ng-matero/extensions/column-resize';\nimport { MatColumnResizeOverlayHandle } from '../overlay-handle';\n\nexport abstract class AbstractMatResizable extends Resizable<MatColumnResizeOverlayHandle> {\n minWidthPxInternal = 32;\n\n protected getInlineHandleCssClassName(): string {\n return 'mat-resizable-handle';\n }\n\n protected getOverlayHandleComponentType(): Type<MatColumnResizeOverlayHandle> {\n return MatColumnResizeOverlayHandle;\n }\n}\n\nexport const RESIZABLE_HOST_BINDINGS = {\n class: 'mat-resizable',\n};\n\nexport const RESIZABLE_INPUTS = [\n 'minWidthPx: matResizableMinWidthPx',\n 'maxWidthPx: matResizableMaxWidthPx',\n];\n","import {\n Directive,\n ElementRef,\n Inject,\n Injector,\n NgZone,\n ViewContainerRef,\n ChangeDetectorRef,\n Input,\n HostBinding,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { Overlay } from '@angular/cdk/overlay';\nimport {\n CdkColumnDef,\n _CoalescedStyleScheduler,\n _COALESCED_STYLE_SCHEDULER,\n} from '@angular/cdk/table';\nimport {\n ColumnResize,\n ColumnResizeNotifierSource,\n HeaderRowEventDispatcher,\n ResizeStrategy,\n} from '@ng-matero/extensions/column-resize';\n\nimport { AbstractMatResizable, RESIZABLE_HOST_BINDINGS, RESIZABLE_INPUTS } from './common';\n\n/**\n * Explicitly enables column resizing for a mat-header-cell.\n */\n@Directive({\n selector: 'mat-header-cell[resizable], th[mat-header-cell][resizable]',\n inputs: RESIZABLE_INPUTS,\n})\nexport class MatResizable extends AbstractMatResizable {\n isResizable = true;\n\n @HostBinding('class') get hasResizableClass() {\n return this.isResizable ? RESIZABLE_HOST_BINDINGS.class : '';\n }\n\n @Input()\n get resizable() {\n return this.isResizable;\n }\n set resizable(newValue: any) {\n this.isResizable = newValue == null || newValue === '' || newValue;\n }\n\n protected readonly document: Document;\n\n constructor(\n protected readonly columnDef: CdkColumnDef,\n protected readonly columnResize: ColumnResize,\n protected readonly directionality: Directionality,\n @Inject(DOCUMENT) document: any,\n protected readonly elementRef: ElementRef,\n protected readonly eventDispatcher: HeaderRowEventDispatcher,\n protected readonly injector: Injector,\n protected readonly ngZone: NgZone,\n protected readonly overlay: Overlay,\n protected readonly resizeNotifier: ColumnResizeNotifierSource,\n protected readonly resizeStrategy: ResizeStrategy,\n @Inject(_COALESCED_STYLE_SCHEDULER)\n protected readonly styleScheduler: _CoalescedStyleScheduler,\n protected readonly viewContainerRef: ViewContainerRef,\n protected readonly changeDetectorRef: ChangeDetectorRef\n ) {\n super();\n this.document = document;\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ViewChild,\n OnChanges,\n TemplateRef,\n TrackByFunction,\n OnDestroy,\n AfterViewInit,\n ChangeDetectorRef,\n ElementRef,\n SimpleChanges,\n QueryList,\n ContentChildren,\n Directive,\n HostBinding,\n HostListener,\n} from '@angular/core';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n MatFooterRow,\n MatFooterRowDef,\n MatHeaderRowDef,\n MatRowDef,\n MatTable,\n MatTableDataSource,\n} from '@angular/material/table';\nimport { MatPaginator, PageEvent } from '@angular/material/paginator';\nimport { Sort, MatSort, SortDirection } from '@angular/material/sort';\nimport { ThemePalette } from '@angular/material/core';\n\nimport {\n MtxGridColumn,\n MtxGridColumnSelectionItem,\n MtxGridCellTemplate,\n MtxGridRowSelectionFormatter,\n MtxGridRowClassFormatter,\n MtxGridColumnMenu,\n MtxGridButtonType,\n} from './grid.interface';\nimport { MtxGridExpansionToggleDirective } from './expansion-toggle.directive';\nimport { MtxGridService } from './grid.service';\n\n@Component({\n selector: 'mtx-grid',\n exportAs: 'mtxGrid',\n templateUrl: './grid.component.html',\n styleUrls: ['./grid.component.scss'],\n host: {\n class: 'mtx-grid',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('expansion', [\n state('collapsed', style({ height: '0', minHeight: '0', visibility: 'hidden' })),\n state('expanded', style({ height: '*', visibility: 'visible' })),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ],\n})\nexport class MtxGridComponent implements OnChanges, AfterViewInit, OnDestroy {\n @ViewChild(MatTable) table!: MatTable<any>;\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n @ViewChild(MatSort) sort!: MatSort;\n @ContentChildren(MatRowDef) rowDefs!: QueryList<MatRowDef<any>>;\n @ContentChildren(MatHeaderRowDef) headerRowDefs!: QueryList<MatHeaderRowDef>;\n @ContentChildren(MatFooterRow) footerRowDefs!: QueryList<MatFooterRowDef>;\n @ViewChild('columnMenu') columnMenu!: MtxGridColumnMenu;\n @ViewChild('tableContainer') tableContainer!: ElementRef<HTMLDivElement>;\n\n dataSource = new MatTableDataSource();\n\n @Input() displayedColumns!: string[];\n @Input() columns: MtxGridColumn[] = [];\n @Input() data: any[] = [];\n @Input() length = 0;\n @Input() loading = false;\n\n @Input() trackBy!: TrackByFunction<any>;\n\n @Input() columnResizable = false;\n\n // ===== Page =====\n\n @Input() pageOnFront = true;\n @Input() showPaginator = true;\n @Input() pageDisabled = false;\n @Input() showFirstLastButtons = true;\n @Input() pageIndex = 0;\n @Input() pageSize = 10;\n @Input() pageSizeOptions = [10, 50, 100];\n @Input() hidePageSize = false;\n @Output() page = new EventEmitter<PageEvent>();\n\n @Input() paginationTemplate!: TemplateRef<any>;\n\n // ===== Sort =====\n\n @Input() sortOnFront = true;\n @Input() sortActive!: string;\n @Input() sortDirection!: SortDirection;\n @Input() sortDisableClear: boolean = false;\n @Input() sortDisabled: boolean = false;\n @Input() sortStart: 'asc' | 'desc' = 'asc';\n @Output() sortChange = new EventEmitter<Sort>();\n\n // ===== Row =====\n\n @Input() rowHover = false;\n @Input() rowStriped = false;\n @Output() rowClick = new EventEmitter<any>();\n\n // ===== Expandable Row =====\n\n expansionRowStates: any[] = [];\n\n @Input() expandable = false;\n @Input() expansionTemplate!: TemplateRef<any>;\n @Output() expansionChange = new EventEmitter<any>();\n\n // ===== Row Selection =====\n\n /** Whether support multiple row/cell selection. */\n @Input() multiSelectable = true;\n\n @Input() multiSelectionWithClick = false;\n\n rowSelection: SelectionModel<any> = new SelectionModel<any>(true, []);\n\n @Input() rowSelected: any[] = [];\n @Input() rowSelectable = false;\n @Input() hideRowSelectionCheckbox = false;\n @Input() rowSelectionFormatter: MtxGridRowSelectionFormatter = {};\n @Input() rowClassFormatter!: MtxGridRowClassFormatter;\n @Output() rowSelectionChange = new EventEmitter<any[]>();\n\n // ===== Cell Selection =====\n\n cellSelection: any[] = [];\n\n @Input() cellSelectable = true;\n @Output() cellSelectionChange = new EventEmitter<any[]>();\n\n private _selectedCell: MtxGridCellSelectionDirective | undefined;\n\n // ===== Toolbar =====\n\n @Input() showToolbar = false;\n @Input() toolbarTitle = '';\n @Input() toolbarTemplate!: TemplateRef<any>;\n\n // ===== Column Menu =====\n\n columnMenuData: MtxGridColumnSelectionItem[] = [];\n\n @Input() showColumnMenuButton = true;\n @Input() columnMenuButtonText = '';\n @Input() columnMenuButtonType: MtxGridButtonType = 'stroked';\n @Input() columnMenuButtonColor: ThemePalette;\n @Input() columnMenuButtonClass = '';\n @Input() columnMenuButtonIcon = '';\n\n @Input() columnHideable = true;\n @Input() columnHideableChecked: 'show' | 'hide' = 'show';\n @Input() columnMovable = true;\n @Input() columnPinnable = true;\n @Output() columnChange = new EventEmitter<MtxGridColumnSelectionItem[]>();\n\n @Input() showColumnMenuHeader = false;\n @Input() columnMenuHeaderText = 'Columns Header';\n @Input() columnMenuHeaderTemplate!: TemplateRef<any>;\n @Input() showColumnMenuFooter = false;\n @Input() columnMenuFooterText = 'Columns Footer';\n @Input() columnMenuFooterTemplate!: TemplateRef<any>;\n\n // ===== No Result =====\n\n @Input() noResultText = 'No records found';\n @Input() noResultTemplate!: TemplateRef<any>;\n\n get _hasNoResult() {\n return (!this.data || this.data.length === 0) && !this.loading;\n }\n\n // ===== Cell Templates =====\n\n @Input() headerTemplate: TemplateRef<any> | MtxGridCellTemplate | any;\n @Input() headerExtraTemplate: TemplateRef<any> | MtxGridCellTemplate | any;\n @Input() cellTemplate: TemplateRef<any> | MtxGridCellTemplate | any;\n\n // ===== Row Templates =====\n\n @Input() useContentRowTemplate = false;\n // TODO: It can't use together with `useContentRowTemplate`\n @Input() useContentHeaderRowTemplate = false;\n // TODO: It's not working\n @Input() useContentFooterRowTemplate = false;\n\n // ===== Summary =====\n\n @Input() showSummary = false;\n @Input() summaryTemplate: TemplateRef<any> | MtxGridCellTemplate | any;\n\n // TODO: Summary display conditions\n get _whetherShowSummary() {\n return this.showSummary;\n }\n\n // ===== Side Bar =====\n\n @Input() showSidebar = false;\n @Input() sidebarTemplate!: TemplateRef<any>;\n\n // ===== Status Bar =====\n\n @Input() showStatusbar = false;\n @Input() statusbarTemplate!: TemplateRef<any>;\n\n constructor(\n private _dataGridSrv: MtxGridService,\n private _changeDetectorRef: ChangeDetectorRef\n ) {}\n\n detectChanges() {\n this._changeDetectorRef.detectChanges();\n }\n\n _isTemplateRef(obj: any) {\n return obj instanceof TemplateRef;\n }\n\n _getColData(data: any[], colDef: MtxGridColumn) {\n return this._dataGridSrv.getColData(data, colDef);\n }\n\n _getRowClassList(rowData: any, index: number) {\n const classList: any = {\n 'selected': this.rowSelection.isSelected(rowData),\n 'mat-row-odd': index % 2,\n };\n if (this.rowClassFormatter) {\n for (const key of Object.keys(this.rowClassFormatter)) {\n classList[key] = this.rowClassFormatter[key](rowData, index);\n }\n }\n return classList;\n }\n\n // Waiting for async data\n ngOnChanges(changes: SimpleChanges) {\n this._countPinnedPosition();\n\n this.displayedColumns = this.columns.filter(item => !item.hide).map(item => item.field);\n\n if (this.showColumnMenuButton) {\n this.columnMenuData = (this.columns as any[]).map(item => {\n const newItem: MtxGridColumnSelectionItem = {\n label: item.header,\n field: item.field,\n disabled: item.disabled,\n };\n if (this.columnHideableChecked === 'show') {\n newItem.show = !item.hide;\n } else {\n newItem.hide = item.hide;\n }\n return newItem;\n });\n }\n\n if (this.rowSelectable && !this.hideRowSelectionCheckbox) {\n this.displayedColumns.unshift('MtxGridCheckboxColumnDef');\n }\n\n // We should copy each item of data for expansion data\n if (this.expandable) {\n this.expansionRowStates = []; // reset\n\n this.data?.forEach(_ => {\n this.expansionRowStates.push({ expanded: false });\n });\n }\n\n if (this.rowSelectable) {\n this.rowSelection = new SelectionModel<any>(this.multiSelectable, this.rowSelected);\n }\n\n this.dataSource = new MatTableDataSource(this.data);\n\n this.dataSource.paginator = this.pageOnFront ? this.paginator : null;\n this.dataSource.sort = this.sortOnFront ? this.sort : null;\n\n // Only scroll top with data change\n if (changes.data) {\n this.scrollTop(0);\n }\n }\n\n ngAfterViewInit() {\n if (this.pageOnFront) {\n this.dataSource.paginator = this.paginator;\n }\n\n if (this.sortOnFront) {\n this.dataSource.sort = this.sort;\n }\n\n if (this.rowDefs?.length > 0 && this.useContentRowTemplate) {\n this.rowDefs.forEach(rowDef => this.table.addRowDef(rowDef));\n }\n if (this.headerRowDefs?.length > 0 && this.useContentHeaderRowTemplate) {\n this.headerRowDefs.forEach(headerRowDef => this.table.addHeaderRowDef(headerRowDef));\n }\n if (this.footerRowDefs?.length > 0 && this.useContentFooterRowTemplate) {\n this.footerRowDefs.forEach(footerRowDef => this.table.addFooterRowDef(footerRowDef));\n }\n }\n\n ngOnDestroy() {}\n\n _countPinnedPosition() {\n const count = (acc: number, cur: MtxGridColumn) => acc + parseFloat(cur.width || '80px');\n\n const pinnedLeftCols = this.columns.filter(col => col.pinned && col.pinned === 'left');\n pinnedLeftCols.forEach((item, idx) => {\n item.left = pinnedLeftCols.slice(0, idx).reduce(count, 0) + 'px';\n });\n\n const pinnedRightCols = this.columns\n .filter(col => col.pinned && col.pinned === 'right')\n .reverse();\n pinnedRightCols.forEach((item, idx) => {\n item.right = pinnedRightCols.slice(0, idx).reduce(count, 0) + 'px';\n });\n }\n\n _getIndex(index: number, dataIndex: number) {\n return typeof index === 'undefined' ? dataIndex : index;\n }\n\n _handleSortChange(sort: Sort) {\n this.sortChange.emit(sort);\n }\n\n /** Expansion change event */\n _handleExpansionChange(\n expansionRef: MtxGridExpansionToggleDirective,\n rowData: any,\n column: any,\n index: number\n ) {\n this.expansionChange.emit({ expanded: expansionRef.expanded, data: rowData, index, column });\n }\n\n /** Cell select event */\n _selectCell(cellRef: MtxGridCellSelectionDirective, rowData: any, colDef: any): void {\n // If not the same cell\n if (this._selectedCell !== cellRef) {\n const colValue = this._dataGridSrv.getCellValue(rowData, colDef);\n this.cellSelection = []; // reset\n this.cellSelection.push({ cellData: colValue, rowData, colDef });\n\n this.cellSelectionChange.emit(this.cellSelection);\n\n if (this._selectedCell) {\n this._selectedCell.deselect(); // the selectedCell will be undefined\n }\n }\n\n this._selectedCell = cellRef.selected ? cellRef : undefined;\n }\n\n /** Row select event */\n _selectRow(event: MouseEvent, rowData: any, index: number) {\n if (\n this.rowSelectable &&\n !this.rowSelectionFormatter.disabled?.(rowData, index) &&\n !this.rowSelectionFormatter.hideCheckbox?.(rowData, index)\n ) {\n // metaKey -> command key\n if (!this.multiSelectionWithClick && !event.ctrlKey && !event.metaKey) {\n this.rowSelection.clear();\n }\n\n this._toggleNormalCheckbox(rowData);\n }\n\n this.rowClick.emit({ rowData, index });\n }\n\n /** Whether the number of selected elements matches the total number of rows. */\n _isAllSelected() {\n const numSelected = this.rowSelection.selected.length;\n const numRows = this.dataSource.data.filter(\n (row, index) => !this.rowSelectionFormatter.disabled?.(row, index)\n ).length;\n return numSelected === numRows;\n }\n\n /** Select all rows if they are not all selected; otherwise clear selection. */\n _toggleMasterCheckbox() {\n this._isAllSelected()\n ? this.rowSelection.clear()\n : this.dataSource.data.forEach((row, index) => {\n if (!this.rowSelectionFormatter.disabled?.(row, index)) {\n this.rowSelection.select(row);\n }\n });\n this.rowSelectionChange.emit(this.rowSelection.selected);\n }\n\n /** Select normal row */\n _toggleNormalCheckbox(row: any) {\n this.rowSelection.toggle(row);\n this.rowSelectionChange.emit(this.rowSelection.selected);\n }\n\n /** Column change event */\n _handleColumnChange(columns: any[]) {\n this.columnChange.emit(columns);\n\n this.displayedColumns = Object.assign([], this.getDisplayedColumnFields(columns));\n\n if (this.rowSelectable && !this.hideRowSelectionCheckbox) {\n this.displayedColumns.unshift('MtxGridCheckboxColumnDef');\n }\n }\n\n getDisplayedColumnFields(columns: any[]): string[] {\n const fields = columns\n .filter((item: MtxGridColumnSelectionItem) =>\n this.columnHideableChecked === 'show' ? item.show : !item.hide\n )\n .map((item: MtxGridColumnSelectionItem) => item.field);\n return fields;\n }\n\n /** Customize expansion event */\n toggleExpansion(index: number) {\n if (!this.expandable) {\n throw new Error('The `expandable` should be set true.');\n }\n this.expansionRowStates[index].expanded = !this.expansionRowStates[index].expanded;\n return this.expansionRowStates[index].expanded;\n }\n\n /** Scroll to top when turn to the next page. */\n _handlePage(e: PageEvent) {\n if (this.pageOnFront) {\n this.scrollTop(0);\n }\n this.page.emit(e);\n }\n\n scrollTop(value?: number): number | void {\n if (value == null) {\n return this.tableContainer?.nativeElement.scrollTop;\n }\n if (this.tableContainer && !this.loading) {\n this.tableContainer.nativeElement.scrollTop = value;\n }\n }\n\n scrollLeft(value?: number): number | void {\n if (value == null) {\n return this.tableContainer?.nativeElement.scrollLeft;\n }\n if (this.tableContainer && !this.loading) {\n this.tableContainer.nativeElement.scrollLeft = value;\n }\n }\n}\n\n@Directive({\n selector: '[mtx-grid-selectable-cell]',\n})\nexport class MtxGridCellSelectionDirective {\n private _selected = false;\n private _rowData: any;\n\n ctrlKeyPressed = false;\n shiftKeyPressed = false;\n\n @HostBinding('class.selected')\n get selected(): boolean {\n return this._selected;\n }\n\n @Input()\n set mtxSelectableRowData(value: any) {\n if (value !== this._rowData) {\n this._rowData = value;\n }\n }\n\n @Output() cellSelectionChange = new EventEmitter<MtxGridCellSelectionDirective>();\n\n constructor(private _dataGrid: MtxGridComponent) {}\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n this.ctrlKeyPressed = event.ctrlKey;\n this.shiftKeyPressed = event.shiftKey;\n\n if (this._dataGrid.cellSelectable) {\n this.select();\n }\n }\n\n select(): void {\n this._selected = true;\n this.cellSelectionChange.emit(this);\n }\n\n deselect(): void {\n this._selected = false;\n this.cellSelectionChange.emit(this);\n }\n\n toggle(): void {\n this._selected = !this._selected;\n this.cellSelectionChange.emit(this);\n }\n}\n","<!-- Progress bar-->\r\n<div class=\"mtx-grid-progress\" *ngIf=\"loading\">\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n</div>\r\n\r\n<!-- Toolbar -->\r\n<div class=\"mtx-grid-toolbar\" *ngIf=\"showToolbar\">\r\n <div class=\"mtx-grid-toolbar-content\">\r\n <ng-template [ngIf]=\"_isTemplateRef(toolbarTemplate)\" [ngIfElse]=\"defaultToolbarTemplate\">\r\n <ng-template [ngTemplateOutlet]=\"toolbarTemplate\"></ng-template>\r\n </ng-template>\r\n <ng-template #defaultToolbarTemplate>\r\n <div class=\"mtx-grid-toolbar-title\" *ngIf=\"toolbarTitle\">{{toolbarTitle}}</div>\r\n </ng-template>\r\n </div>\r\n <div class=\"mtx-grid-toolbar-actions\">\r\n <mtx-grid-column-menu *ngIf=\"showColumnMenuButton\" #columnMenu\r\n [columns]=\"columnMenuData\"\r\n [buttonText]=\"columnMenuButtonText\"\r\n [buttonType]=\"columnMenuButtonType\"\r\n [buttonColor]=\"columnMenuButtonColor\"\r\n [buttonClass]=\"columnMenuButtonClass\"\r\n [buttonIcon]=\"columnMenuButtonIcon\"\r\n [selectable]=\"columnHideable\"\r\n [selectableChecked]=\"columnHideableChecked\"\r\n [sortable]=\"columnMovable\"\r\n (selectionChange)=\"_handleColumnChange($event)\"\r\n (sortChange)=\"_handleColumnChange($event)\"\r\n [showHeader]=\"showColumnMenuHeader\"\r\n [headerText]=\"columnMenuHeaderText\"\r\n [headerTemplate]=\"columnMenuHeaderTemplate\"\r\n [showFooter]=\"showColumnMenuFooter\"\r\n [footerText]=\"columnMenuFooterText\"\r\n [footerTemplate]=\"columnMenuFooterTemplate\">\r\n </mtx-grid-column-menu>\r\n </div>\r\n</div>\r\n\r\n<div class=\"mtx-grid-main mtx-grid-layout\">\r\n <!-- Table content -->\r\n <div class=\"mtx-grid-content mtx-grid-layout\">\r\n <div #tableContainer class=\"mat-table-container\"\r\n [ngClass]=\"{'mat-table-with-data': !_hasNoResult}\">\r\n <table mat-table *ngIf=\"!columnResizable\"\r\n [ngClass]=\"{'mat-table-hover': rowHover, 'mat-table-striped': rowStriped, 'mat-table-expandable': expandable}\"\r\n [dataSource]=\"dataSource\" [multiTemplateDataRows]=\"expandable\"\r\n matSort\r\n [matSortActive]=\"sortActive\"\r\n [matSortDirection]=\"sortDirection\"\r\n [matSortDisableClear]=\"sortDisableClear\"\r\n [matSortDisabled]=\"sortDisabled\"\r\n [matSortStart]=\"sortStart\"\r\n (matSortChange)=\"_handleSortChange($event)\"\r\n [trackBy]=\"trackBy\">\r\n\r\n <ng-container *ngIf=\"rowSelectable && !hideRowSelectionCheckbox\"\r\n matColumnDef=\"MtxGridCheckboxColumnDef\">\r\n <th mat-header-cell *matHeaderCellDef class=\"mtx-grid-checkbox-cell\">\r\n <mat-checkbox *ngIf=\"multiSelectable\"\r\n [checked]=\"rowSelection.hasValue() && _isAllSelected()\"\r\n [indeterminate]=\"rowSelection.hasValue() && !_isAllSelected()\"\r\n (change)=\"$event ? _toggleMasterCheckbox() : null\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\"\r\n class=\"mtx-grid-checkbox-cell\">\r\n <mat-checkbox *ngIf=\"!(rowSelectionFormatter.hideCheckbox && rowSelectionFormatter.hideCheckbox(row, _getIndex(index, dataIndex)))\"\r\n [disabled]=\"rowSelectionFormatter.disabled && rowSelectionFormatter.disabled(row, _getIndex(index, dataIndex))\"\r\n [checked]=\"rowSelection.isSelected(row)\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? _toggleNormalCheckbox(row) : null\">\r\n </mat-checkbox>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef class=\"mtx-grid-checkbox-cell\"></td>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let col of columns;\">\r\n <ng-container [matColumnDef]=\"col.field\"\r\n [sticky]=\"col.pinned==='left'\" [stickyEnd]=\"col.pinned==='right'\">\r\n <th mat-header-cell *matHeaderCellDef\r\n [class]=\"col.class!\"\r\n [ngClass]=\"{'mat-table-sticky-left': col.pinned === 'left', 'mat-table-sticky-right': col.pinned === 'right'}\"\r\n [ngStyle]=\"{'width': col.width, 'min-width': col.width, 'left': col.left, 'right': col.right}\">\r\n <div class=\"mat-header-cell-inner\">\r\n <ng-template [ngIf]=\"_isTemplateRef(headerTemplate)\" [ngIfElse]=\"headerTpl\">\r\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col, colDef: col }\">\r\n </ng-template>\r\n </ng-template>\r\n <ng-template #headerTpl>\r\n <ng-template [ngIf]=\"headerTemplate && _isTemplateRef(headerTemplate[col.field])\"\r\n [ngIfElse]=\"defaultHeaderTpl\">\r\n <ng-template [ngTemplateOutlet]=\"headerTemplate[col.field]\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col, colDef: col }\">\r\n </ng-template>\r\n </ng-template>\r\n </ng-template>\r\n <ng-template #defaultHeaderTpl>\r\n <div [mat-sort-header]=\"col.sortProp?.id || col.field\"\r\n [disabled]=\"!col.sortable\"\r\n [arrowPosition]=\"col.sortProp?.arrowPosition!\"\r\n [disableClear]=\"col.sortProp?.disableClear\"\r\n [start]=\"col.sortProp?.start!\">\r\n <span class=\"mtx-grid-expansion-placeholder\" *ngIf=\"col.showExpand\"></span>\r\n <span>{{col.header | toObservable | async}}</span>\r\n <mat-icon class=\"mat-sort-header-icon\" *ngIf=\"col.sortable\">sort</mat-icon>\r\n </div>\r\n <ng-template [ngTemplateOutlet]=\"headerExtraTplBase\"\r\n [ngTemplateOutletContext]=\"{ $implicit: headerExtraTemplate, colDef: col }\">\r\n </ng-template>\r\n </ng-template>\r\n </div>\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\"\r\n [class]=\"col.class!\"\r\n [ngClass]=\"{'mat-table-sticky-left': col.pinned === 'left', 'mat-table-sticky-right': col.pinned === 'right'}\"\r\n [ngStyle]=\"{'width': col.width, 'min-width': col.width, 'left': col.left, 'right': col.right}\"\r\n mtx-grid-selectable-cell (cellSelectionChange)=\"_selectCell($event, row, col)\">\r\n <ng-template [ngIf]=\"_isTemplateRef(cellTemplate)\" [ngIfElse]=\"cellTpl\">\r\n <ng-template [ngTemplateOutlet]=\"cellTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: _getIndex(index, dataIndex), colDef: col }\">\r\n </ng-template>\r\n </ng-template>\r\n <ng-template #cellTpl>\r\n <ng-template [ngIf]=\"cellTemplate && _isTemplateRef(cellTemplate[col.field])\"\r\n [ngIfElse]=\"colDefCellTpl\">\r\n <ng-template [ngTemplateOutlet]=\"cellTemplate[col.field]\"\r\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: _getIndex(index, dataIndex), colDef: col }\">\r\n </ng-template>\r\n </ng-template>\r\n </ng-template>\r\n <ng-template #colDefCellTpl>\r\n <ng-template [ngIf]=\"col.cellTemplate\" [ngIfElse]=\"defaultCellTpl\"\r\n [ngTemplateOutlet]=\"col.cellTemplate!\"\r\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: _getIndex(index, dataIndex), colDef: col }\">\r\n </ng-template>\r\n </ng-template>\r\n <ng-template #defaultCellTpl>\r\n <button *ngIf=\"col.showExpand\" mat-icon-button mtx-grid-expansion-toggle\r\n [(opened)]=\"expansionRowStates[dataIndex].expanded\"\r\n (toggleChange)=\"_handleExpansionChange($event, row, col, dataIndex);\">\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n\r\n <mtx-grid-cell [rowData]=\"row\" [colDef]=\"col\"></mtx-grid-cell>\r\n </ng-template>\r\n </td>\r\n\r\n <td mat-footer-cell *matFooterCellDef\r\n [ngClass]=\"{'mat-table-sticky-left': col.pinned === 'left', 'mat-table-sticky-right': col.pinned === 'right'}\"\r\n [ngStyle]=\"{'width': col.width, 'min-width': col.width, 'left': col.left, 'right': col.right}\">\r\n <span class=\"mtx-grid-expansion-placeholder\" *ngIf=\"col.showExpand\"></span>\r\n\r\n <ng-template [ngIf]=\"_isTemplateRef(summaryTemplate)\" [ngIfElse]=\"summaryTpl\">\r\n <ng-template [ngTemplateOutlet]=\"summaryTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col, colDef: col, data: data }\">\r\n </ng-template>\r\n </ng-template>\r\n <ng-template #summaryTpl>\r\n <ng-template [ngIf]=\"summaryTemplate && _isTemplateRef(summaryTemplate[col.field])\"\r\n [ngIfElse]=\"defaultSummaryTpl\">\r\n <ng-template [ngTemplateOutlet]=\"summaryTemplate[col.field]\"\r\n [ngTemplateOutletContext]=\"{ $implicit: _getColData(data, col), colData: _getColData(data, col), colDef: col }\">\r\n </ng-template>\r\n </ng-template>\r\n </ng-template>\r\n <ng-template #defaultSummaryTpl>\r\n <mtx-grid-cell [summary]=\"true\" [data]=\"data\" [colDef]=\"col\">\r\n </mtx-grid-cell>\r\n </ng-template>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template [ngIf]=\"useContentHeaderRowTemplate\" [ngIfElse]=\"defaultHeaderRowTpl\">\r\n </ng-template>\r\n <ng-template #defaultHeaderRowTpl>\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\r\n </ng-template>\r\n\r\n <ng-template [ngIf]=\"useContentRowTemplate\" [ngIfElse]=\"defaultRowTpl\"></ng-template>\r\n <ng-template #defaultRowTpl>\r\n <tr mat-row\r\n *matRowDef=\"let row; let index = index; let dataIndex = dataIndex; columns: displayedColumns;\"\r\n [ngClass]=\"_getRowClassList(row, _getIndex(index, dataIndex))\"\r\n (click)=\"_selectRow($event, row, _getIndex(index, dataIndex))\">\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template [ngIf]=\"_whetherShowSummary\">\r\n <tr mat-footer-row *matFooterRowDef=\"displayedColumns; sticky: true\"></tr>\r\n </ng-template>\r\n <ng-template [ngIf]=\"useContentFooterRowTemplate\"></ng-template>\r\n\r\n <ng-container *ngIf=\"expandable\">\r\n <!-- Expanded Content Column - The expandable row is made up of this one column that spans across all columns -->\r\n <ng-container matColumnDef=\"MtxGridExpansionColumnDef\">\r\n <td mat-cell *matCellDef=\"let row; let dataIndex = dataIndex\"\r\n [attr.colspan]=\"displayedColumns.length\">\r\n <div class=\"mtx-grid-expansion-detail\"\r\n [@expansion]=\"expansionRowStates[dataIndex].expanded ? 'expanded' : 'collapsed'\">\r\n <ng-template [ngTemplateOutlet]=\"expansionTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: dataIndex, expanded: expansionRowStates[dataIndex].expanded }\">\r\n </ng-template>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-row\r\n *matRowDef=\"let row; columns: ['MtxGridExpansionColumnDef']; let dataIndex = dataIndex\"\r\n [ngClass]=\"['mtx-grid-expansion', expansionRowStates[dataIndex].expanded ? 'expanded' : 'collapsed']\">\r\n </tr>\r\n </ng-container>\r\n </table>\r\n\r\n <!-- TODO: Use flexbox-based mat-table -->\r\n <table mat-table *ngIf=\"columnResizable\"\r\n columnResize\r\n [ngClass]=\"{'mat-table-hover': rowHover, 'mat-table-striped': rowStriped, 'mat-table-expandable': expandable}\"\r\n [dataSource]=\"dataSource\" [multiTemplateDataRows]=\"expandable\"\r\n matSort\r\n [matSortActive]=\"sortActive\"\r\n [matSortDirection]=\"sortDirection\"\r\n [matSortDisableClear]=\"sortDisableClear\"\r\n [matSortDisabled]=\"sortDisabled\"\r\n [matSortStart]=\"sortStart\"\r\n (matSortChange)=\"_handleSortChange($event)\"\r\n [trackBy]=\"trackBy\">\r\n\r\n <ng-container *ngIf=\"rowSelectable && !hideRowSelectionCheckbox\"\r\n matColumnDef=\"MtxGridCheckboxColumnDef\">\r\n <th mat-header-cell *matHeaderCellDef class=\"mtx-grid-checkbox-cell\">\r\n <mat-checkbox *ngIf=\"multiSelectable\"\r\n [checked]=\"rowSelection.hasValue() && _isAllSelected()\"\r\n [indeterminate]=\"rowSelection.hasValue() && !_isAllSelected()\"\r\n (change)=\"$event ? _toggleMasterCheckbox() : null\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\"\r\n class=\"mtx-grid-checkbox-cell\">\r\n <mat-checkbox *ngIf=\"!(rowSelectionFormatter.hideCheckbox && rowSelectionFormatter.hideCheckbox(row, _getIndex(index, dataIndex)))\"\r\n [disabled]=\"rowSelectionFormatter.disabled && rowSelectionFormatter.disabled(row, _getIndex(index, dataIndex))\"\r\n [checked]=\"rowSelection.isSelected(row)\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? _toggleNormalCheckbox(row) : null\">\r\n </mat-checkbox>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef class=\"mtx-grid-checkbox-cell\"></td>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let col of columns;\">\r\n <ng-container [matColumnDef]=\"col.field\"\r\n [sticky]=\"col.pinned==='left'\" [stickyEnd]=\"col.pinned==='right'\">\r\n <th mat-header-cell *matHeaderCellDef\r\n [class]=\"col.class!\"\r\n [ngClass]=\"{'mat-table-sticky-left': col.pinned === 'left', 'mat-table-sticky-right': col.pinned === 'right'}\"\r\n [ngStyle]=\"{'width': col.width, 'left': col.left, 'right': col.right}\"\r\n [resizable]=\"col.resizable\"\r\n [matResizableMinWidthPx]=\"col.minWidth\" [matResizableMaxWidthPx]=\"col.maxWidth\">\r\n <div class=\"mat-header-cell-inner\">\r\n <ng-template [ngIf]=\"_isTemplateRef(headerTemplate)\" [ngIfElse]=\"headerTpl\">\r\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col, colDef: col }\">\r\n </ng-template>\r\n </ng-template>\r\n <ng-template #headerTpl>\r\n <ng-template [ngIf]=\"headerTemplate && _isTemplateRef(headerTemplate[col.field])\"\r\n [ngIfElse]=\"defaultHeaderTpl\">\r\n <ng-template [ngTemplateOutlet]=\"headerTemplate[col.field]\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col, colDef: col }\">\r\n </ng-template>\r\n </ng-template>\r\n </ng-template>\r\n <ng-template #defaultHeaderTpl>\r\n <div [mat-sort-header]=\"col.sortProp?.id || col.field\"\r\n [disabled]=\"!col.sortable\"\r\n [arrowPosition]=\"col.sortProp?.arrowPosition!\"\r\n [disableClear]=\"col.sortProp?.disableClear\"\r\n [start]=\"col.sortProp?.start!\">\r\n <span class=\"mtx-grid-expansion-placeholder\" *ngIf=\"col.showExpand\"></span>\r\n <span>{{col.header | toObservable | async}}</span>\r\n <mat-icon class=\"mat-sort-header-icon\" *ngIf=\"col.sortable\">sort</mat-icon>\r\n </div>\r\n <ng-template [ngTemplateOutlet]=\"headerExtraTplBase\"\r\n [ngTemplateOutletContext]=\"{ $implicit: headerExtraTemplate, colDef: col }\">\r\n </ng-template>\r\n </ng-template>\r\n </div>\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\"\r\n [class]=\"col.class!\"\r\n [ngClass]=\"{'mat-table-sticky-left': col.pinned === 'left', 'mat-table-sticky-right': col.pinned === 'right'}\"\r\n [ngStyle]=\"{'width': col.width, 'left': col.left, 'right': col.right}\"\r\n mtx-grid-selectable-cell (cellSelectionChange)=\"_selectCell($event, row, col)\">\r\n <ng-template [ngIf]=\"_isTemplateRef(cellTemplate)\" [ngIfElse]=\"cellTpl\">\r\n <ng-template [ngTemplateOutlet]=\"cellTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: _getIndex(index, dataIndex), colDef: col }\">\r\n </ng-template>\r\n </ng-template>\r\n <ng-template #cellTpl>\r\n <ng-template [ngIf]=\"cellTemplate && _isTemplateRef(cellTemplate[col.field])\"\r\n [ngIfElse]=\"colDefCellTpl\">\r\n <ng-template [ngTemplateOutlet]=\"cellTemplate[col.field]\"\r\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: _getIndex(index, dataIndex), colDef: col }\">\r\n </ng-template>\r\n </ng-template>\r\n </ng-template>\r\n <ng-template #colDefCellTpl>\r\n <ng-template [ngIf]=\"col.cellTemplate\" [ngIfElse]=\"defaultCellTpl\"\r\n [ngTemplateOutlet]=\"col.cellTemplate!\"\r\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: _getIndex(index, dataIndex), colDef: col }\">\r\n </ng-template>\r\n </ng-template>\r\n <ng-template #defaultCellTpl>\r\n <button *ngIf=\"col.showExpand\" mat-icon-button mtx-grid-expansion-toggle\r\n [(opened)]=\"expansionRowStates[dataIndex].expanded\"\r\n (toggleChange)=\"_handleExpansionChange($event, row, col, dataIndex);\">\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n\r\n <mtx-grid-cell [rowData]=\"row\" [colDef]=\"col\"></mtx-grid-cell>\r\n </ng-template>\r\n </td>\r\n\r\n <td mat-footer-cell *matFooterCellDef\r\n [ngClass]=\"{'mat-table-sticky-left': col.pinned === 'left', 'mat-table-sticky-right': col.pinned === 'right'}\"\r\n [ngStyle]=\"{'width': col.width, 'left': col.left, 'right': col.right}\">\r\n <span class=\"mtx-grid-expansion-placeholder\" *ngIf=\"col.showExpand\"></span>\r\n\r\n <ng-template [ngIf]=\"_isTemplateRef(summaryTemplate)\" [ngIfElse]=\"summaryTpl\">\r\n <ng-template [ngTemplateOutlet]=\"summaryTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col, colDef: col, data: data }\">\r\n </ng-template>\r\n </ng-template>\r\n <ng-template #summaryTpl>\r\n <ng-template [ngIf]=\"summaryTemplate && _isTemplateRef(summaryTemplate[col.field])\"\r\n [ngIfElse]=\"defaultSummaryTpl\">\r\n <ng-template [ngTemplateOutlet]=\"summaryTemplate[col.field]\"\r\n [ngTemplateOutletContext]=\"{ $implicit: _getColData(data, col), colData: _getColData(data, col), colDef: col }\">\r\n </ng-template>\r\n </ng-template>\r\n </ng-template>\r\n <ng-template #defaultSummaryTpl>\r\n <mtx-grid-cell [summary]=\"true\" [data]=\"data\" [colDef]=\"col\">\r\n </mtx-grid-cell>\r\n </ng-template>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template [ngIf]=\"useContentHeaderRowTemplate\" [ngIfElse]=\"defaultHeaderRowTpl\">\r\n </ng-template>\r\n <ng-template #defaultHeaderRowTpl>\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\r\n </ng-template>\r\n\r\n <ng-template [ngIf]=\"useContentRowTemplate\" [ngIfElse]=\"defaultRowTpl\"></ng-template>\r\n <ng-template #defaultRowTpl>\r\n <tr mat-row\r\n *matRowDef=\"let row; let index = index; let dataIndex = dataIndex; columns: displayedColumns;\"\r\n [ngClass]=\"_getRowClassList(row, _getIndex(index, dataIndex))\"\r\n (click)=\"_selectRow($event, row, _getIndex(index, dataIndex))\">\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template [ngIf]=\"_whetherShowSummary\">\r\n <tr mat-footer-row *matFooterRowDef=\"displayedColumns; sticky: true\"></tr>\r\n </ng-template>\r\n <ng-template [ngIf]=\"useContentFooterRowTemplate\"></ng-template>\r\n\r\n <ng-container *ngIf=\"expandable\">\r\n <!-- Expanded Content Column - The expandable row is made up of this one column that spans across all columns -->\r\n <ng-container matColumnDef=\"MtxGridExpansionColumnDef\">\r\n <td mat-cell *matCellDef=\"let row; let dataIndex = dataIndex\"\r\n [attr.colspan]=\"displayedColumns.length\">\r\n <div class=\"mtx-grid-expansion-detail\"\r\n [@expansion]=\"expansionRowStates[dataIndex].expanded ? 'expanded' : 'collapsed'\">\r\n <ng-template [ngTemplateOutlet]=\"expansionTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: dataIndex, expanded: expansionRowStates[dataIndex].expanded }\">\r\n </ng-template>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-row\r\n *matRowDef=\"let row; columns: ['MtxGridExpansionColumnDef']; let dataIndex = dataIndex\"\r\n [ngClass]=\"['mtx-grid-expansion', expansionRowStates[dataIndex].expanded ? 'expanded' : 'collapsed']\">\r\n </tr>\r\n </ng-container>\r\n </table>\r\n </div>\r\n\r\n <!-- No result -->\r\n <div class=\"mtx-grid-no-result\" *ngIf=\"_hasNoResult\">\r\n <ng-template [ngIf]=\"_isTemplateRef(noResultTemplate)\" [ngIfElse]=\"defaultNoResultTpl\">\r\n <ng-template [ngTemplateOutlet]=\"noResultTemplate\"></ng-template>\r\n </ng-template>\r\n <ng-template #defaultNoResultTpl>{{noResultText}}</ng-template>\r\n </div>\r\n </div>\r\n\r\n <!-- Tool sidebar -->\r\n <div class=\"mtx-grid-sidebar\" *ngIf=\"showSidebar\">\r\n <ng-template [ngIf]=\"_isTemplateRef(sidebarTemplate)\">\r\n <ng-template [ngTemplateOutlet]=\"sidebarTemplate\"></ng-template>\r\n </ng-template>\r\n </div>\r\n</div>\r\n\r\n<div class=\"mtx-grid-footer\">\r\n <!-- Status Bar -->\r\n <div class=\"mtx-grid-statusbar\" *ngIf=\"showStatusbar\">\r\n <ng-template [ngIf]=\"_isTemplateRef(statusbarTemplate)\">\r\n <ng-template [ngTemplateOutlet]=\"statusbarTemplate\"></ng-template>\r\n </ng-template>\r\n </div>\r\n\r\n <!-- Pagination -->\r\n <div class=\"mtx-grid-pagination\">\r\n <ng-template [ngIf]=\"_isTemplateRef(paginationTemplate)\" [ngIfElse]=\"defaultPaginationTemplate\">\r\n <ng-template [ngTemplateOutlet]=\"paginationTemplate\"></ng-template>\r\n </ng-template>\r\n <ng-template #defaultPaginationTemplate>\r\n <mat-paginator [class.mat-paginator-hidden]=\"!showPaginator || _hasNoResult\"\r\n [showFirstLastButtons]=\"showFirstLastButtons\"\r\n [length]=\"length\"\r\n [pageIndex]=\"pageIndex\"\r\n [pageSize]=\"pageSize\"\r\n [pageSizeOptions]=\"pageSizeOptions\"\r\n [hidePageSize]=\"hidePageSize\"\r\n (page)=\"_handlePage($event)\"\r\n [disabled]=\"pageDisabled\">\r\n </mat-paginator>\r\n </ng-template>\r\n </div>\r\n</div>\r\n\r\n<!-- Header template for extra content -->\r\n<ng-template #headerExtraTplBase let-headerExtraTemplate let-col=\"colDef\">\r\n <ng-template [ngIf]=\"_isTemplateRef(headerExtraTemplate)\" [ngIfElse]=\"headerExtraTpl\">\r\n <ng-template [ngTemplateOutlet]=\"headerExtraTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col, colDef: col }\">\r\n </ng-template>\r\n </ng-template>\r\n <ng-template #headerExtraTpl>\r\n <ng-template [ngIf]=\"headerExtraTemplate && _isTemplateRef(headerExtraTemplate[col.field])\">\r\n <ng-template [ngTemplateOutlet]=\"headerExtraTemplate[col.field]\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col, colDef: col }\">\r\n </ng-template>\r\n </ng-template>\r\n </ng-template>\r\n</ng-template>\r\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { Directive, ElementRef, NgZone } from '@angular/core';\nimport {\n ColumnResize,\n ColumnResizeNotifier,\n ColumnResizeNotifierSource,\n HeaderRowEventDispatcher,\n} from '@ng-matero/extensions/column-resize';\n\nimport { AbstractMatColumnResize, FLEX_HOST_BINDINGS, FLEX_PROVIDERS } from './common';\n\n/**\n * Explicitly enables column resizing for a flexbox-based mat-table.\n * Individual columns must be annotated specifically.\n */\n@Directive({\n selector: 'mat-table[columnResize]',\n host: FLEX_HOST_BINDINGS,\n providers: [...FLEX_PROVIDERS, { provide: ColumnResize, useExisting: MatColumnResizeFlex }],\n})\nexport class MatColumnResizeFlex extends AbstractMatColumnResize {\n constructor(\n readonly columnResizeNotifier: ColumnResizeNotifier,\n readonly elementRef: ElementRef<HTMLElement>,\n protected readonly eventDispatcher: HeaderRowEventDispatcher,\n protected readonly ngZone: NgZone,\n protected readonly notifier: ColumnResizeNotifierSource\n ) {\n super();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { NgModule } from '@angular/core';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\nimport { MatColumnResize } from './column-resize-directives/column-resize';\nimport { MatColumnResizeFlex } from './column-resize-directives/column-resize-flex';\nimport { MatResizable } from './resizable-directives/resizable';\nimport { MatColumnResizeOverlayHandle } from './overlay-handle';\n\nconst ENTRY_COMMON_COMPONENTS = [MatColumnResizeOverlayHandle];\n\n@NgModule({\n declarations: ENTRY_COMMON_COMPONENTS,\n exports: ENTRY_COMMON_COMPONENTS,\n})\nexport class MatColumnResizeCommonModule {}\n\nconst IMPORTS = [OverlayModule, MatColumnResizeCommonModule];\n\n@NgModule({\n imports: IMPORTS,\n declarations: [MatColumnResize, MatColumnResizeFlex, MatResizable],\n exports: [MatColumnResize, MatColumnResizeFlex, MatResizable],\n})\nexport class MatColumnResizeModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\nimport { MtxPipesModule } from '@ng-matero/extensions/core';\nimport { MtxDialogModule } from '@ng-matero/extensions/dialog';\nimport { MtxGridCellSelectionDirective, MtxGridComponent } from './grid.component';\nimport { MtxGridCellComponent } from './cell.component';\nimport { MtxGridColumnMenuComponent } from './column-menu.component';\nimport { MtxGridExpansionToggleDirective } from './expansion-toggle.directive';\nimport { MtxGridService } from './grid.service';\nimport { MatColumnResizeModule } from './column-resize/column-resize-module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatTableModule,\n MatSortModule,\n MatPaginatorModule,\n MatCheckboxModule,\n MatButtonModule,\n MatProgressBarModule,\n MatChipsModule,\n MatTooltipModule,\n MatIconModule,\n MatSelectModule,\n MatFormFieldModule,\n MatMenuModule,\n DragDropModule,\n MtxDialogModule,\n MtxPipesModule,\n MatColumnResizeModule,\n ],\n exports: [\n MtxGridComponent,\n MtxGridCellComponent,\n MtxGridColumnMenuComponent,\n MtxGridExpansionToggleDirective,\n MtxGridCellSelectionDirective,\n MatColumnResizeModule,\n ],\n declarations: [\n MtxGridComponent,\n MtxGridCellComponent,\n MtxGridColumnMenuComponent,\n MtxGridExpansionToggleDirective,\n MtxGridCellSelectionDirective,\n ],\n providers: [MtxGridService],\n})\nexport class MtxGridModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';
|
|
3
|
+
import * as i3 from '@angular/common';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import * as i2 from '@angular/material/progress-bar';
|
|
6
|
+
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
7
|
+
import * as i1 from '@angular/material/progress-spinner';
|
|
8
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
9
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
10
|
+
|
|
11
|
+
class MtxLoaderComponent {
|
|
12
|
+
constructor(_changeDetectorRef) {
|
|
13
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
14
|
+
this.type = 'spinner';
|
|
15
|
+
this.color = 'primary';
|
|
16
|
+
this.mode = 'indeterminate';
|
|
17
|
+
/** Only support `spinner` type */
|
|
18
|
+
this.strokeWidth = 4;
|
|
19
|
+
/** Only support `spinner` type */
|
|
20
|
+
this.diameter = 48;
|
|
21
|
+
/** Only support `progresbar` type */
|
|
22
|
+
this.bufferValue = 0;
|
|
23
|
+
this.value = 0;
|
|
24
|
+
this._loading = true;
|
|
25
|
+
this._hasBackdrop = true;
|
|
26
|
+
}
|
|
27
|
+
get loading() {
|
|
28
|
+
return this._loading;
|
|
29
|
+
}
|
|
30
|
+
set loading(value) {
|
|
31
|
+
this._loading = coerceBooleanProperty(value);
|
|
32
|
+
}
|
|
33
|
+
get hasBackdrop() {
|
|
34
|
+
return this._hasBackdrop;
|
|
35
|
+
}
|
|
36
|
+
set hasBackdrop(value) {
|
|
37
|
+
this._hasBackdrop = coerceBooleanProperty(value);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/** @nocollapse */ /** @nocollapse */ MtxLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: MtxLoaderComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
41
|
+
/** @nocollapse */ /** @nocollapse */ MtxLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: MtxLoaderComponent, selector: "mtx-loader", inputs: { type: "type", color: "color", mode: "mode", strokeWidth: "strokeWidth", diameter: "diameter", bufferValue: "bufferValue", value: "value", loading: "loading", hasBackdrop: "hasBackdrop" }, host: { properties: { "class.mtx-loader-loading": "loading" }, classAttribute: "mtx-loader" }, exportAs: ["mtxLoader"], ngImport: i0, template: "<div class=\"mtx-loader-backdrop\" *ngIf=\"loading && hasBackdrop\"></div>\r\n<div class=\"mtx-loader-main\" *ngIf=\"loading\">\r\n <mat-spinner *ngIf=\"type==='spinner'\"\r\n [color]=\"color\"\r\n [strokeWidth]=\"strokeWidth\"\r\n [diameter]=\"diameter\"\r\n [mode]=\"$any(mode)\"\r\n [value]=\"value\">\r\n </mat-spinner>\r\n\r\n <mat-progress-bar *ngIf=\"type==='progressbar'\"\r\n [color]=\"color\"\r\n [mode]=\"$any(mode)\"\r\n [value]=\"value\"\r\n [bufferValue]=\"bufferValue\">\r\n </mat-progress-bar>\r\n</div>\r\n<ng-content></ng-content>\r\n", styles: [".mtx-loader{position:relative;display:block;width:100%;height:100%}.mtx-loader-main{position:absolute;top:0;left:0;z-index:2;display:flex;justify-content:center;align-items:center;width:100%;height:100%}.mtx-loader-main .mat-spinner{position:relative}.mtx-loader-main .mat-progress-bar{position:absolute;top:0;left:0;width:100%}.mtx-loader-backdrop{display:block;position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;content:\"\"}\n"], components: [{ type: i1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: i2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: MtxLoaderComponent, decorators: [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{ selector: 'mtx-loader', exportAs: 'mtxLoader', host: {
|
|
45
|
+
'class': 'mtx-loader',
|
|
46
|
+
'[class.mtx-loader-loading]': 'loading',
|
|
47
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mtx-loader-backdrop\" *ngIf=\"loading && hasBackdrop\"></div>\r\n<div class=\"mtx-loader-main\" *ngIf=\"loading\">\r\n <mat-spinner *ngIf=\"type==='spinner'\"\r\n [color]=\"color\"\r\n [strokeWidth]=\"strokeWidth\"\r\n [diameter]=\"diameter\"\r\n [mode]=\"$any(mode)\"\r\n [value]=\"value\">\r\n </mat-spinner>\r\n\r\n <mat-progress-bar *ngIf=\"type==='progressbar'\"\r\n [color]=\"color\"\r\n [mode]=\"$any(mode)\"\r\n [value]=\"value\"\r\n [bufferValue]=\"bufferValue\">\r\n </mat-progress-bar>\r\n</div>\r\n<ng-content></ng-content>\r\n", styles: [".mtx-loader{position:relative;display:block;width:100%;height:100%}.mtx-loader-main{position:absolute;top:0;left:0;z-index:2;display:flex;justify-content:center;align-items:center;width:100%;height:100%}.mtx-loader-main .mat-spinner{position:relative}.mtx-loader-main .mat-progress-bar{position:absolute;top:0;left:0;width:100%}.mtx-loader-backdrop{display:block;position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;content:\"\"}\n"] }]
|
|
48
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { type: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}], color: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], mode: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], strokeWidth: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}], diameter: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], bufferValue: [{
|
|
59
|
+
type: Input
|
|
60
|
+
}], value: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], loading: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], hasBackdrop: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}] } });
|
|
67
|
+
|
|
68
|
+
class MtxLoaderModule {
|
|
69
|
+
}
|
|
70
|
+
/** @nocollapse */ /** @nocollapse */ MtxLoaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: MtxLoaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
71
|
+
/** @nocollapse */ /** @nocollapse */ MtxLoaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: MtxLoaderModule, declarations: [MtxLoaderComponent], imports: [CommonModule, MatProgressSpinnerModule, MatProgressBarModule], exports: [MtxLoaderComponent] });
|
|
72
|
+
/** @nocollapse */ /** @nocollapse */ MtxLoaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: MtxLoaderModule, imports: [[CommonModule, MatProgressSpinnerModule, MatProgressBarModule]] });
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: MtxLoaderModule, decorators: [{
|
|
74
|
+
type: NgModule,
|
|
75
|
+
args: [{
|
|
76
|
+
imports: [CommonModule, MatProgressSpinnerModule, MatProgressBarModule],
|
|
77
|
+
exports: [MtxLoaderComponent],
|
|
78
|
+
declarations: [MtxLoaderComponent],
|
|
79
|
+
}]
|
|
80
|
+
}] });
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Generated bundle index. Do not edit.
|
|
84
|
+
*/
|
|
85
|
+
|
|
86
|
+
export { MtxLoaderComponent, MtxLoaderModule };
|
|
87
|
+
//# sourceMappingURL=mtxLoader.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mtxLoader.mjs","sources":["../../../projects/extensions/loader/loader.component.ts","../../../projects/extensions/loader/loader.component.html","../../../projects/extensions/loader/loader.module.ts","../../../projects/extensions/loader/mtxLoader.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\n\nexport type MtxLoaderType = 'spinner' | 'progressbar';\n\n@Component({\n selector: 'mtx-loader',\n exportAs: 'mtxLoader',\n host: {\n 'class': 'mtx-loader',\n '[class.mtx-loader-loading]': 'loading',\n },\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtxLoaderComponent {\n @Input() type: MtxLoaderType = 'spinner';\n\n @Input() color: ThemePalette = 'primary';\n\n @Input() mode: ProgressSpinnerMode | ProgressBarMode = 'indeterminate';\n\n /** Only support `spinner` type */\n @Input() strokeWidth = 4;\n\n /** Only support `spinner` type */\n @Input() diameter = 48;\n\n /** Only support `progresbar` type */\n @Input() bufferValue = 0;\n\n @Input() value = 0;\n\n @Input()\n get loading(): boolean {\n return this._loading;\n }\n set loading(value: boolean) {\n this._loading = coerceBooleanProperty(value);\n }\n private _loading = true;\n\n @Input()\n get hasBackdrop(): boolean {\n return this._hasBackdrop;\n }\n set hasBackdrop(value: boolean) {\n this._hasBackdrop = coerceBooleanProperty(value);\n }\n private _hasBackdrop = true;\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n static ngAcceptInputType_loading: BooleanInput;\n static ngAcceptInputType_hasBackdrop: BooleanInput;\n}\n","<div class=\"mtx-loader-backdrop\" *ngIf=\"loading && hasBackdrop\"></div>\r\n<div class=\"mtx-loader-main\" *ngIf=\"loading\">\r\n <mat-spinner *ngIf=\"type==='spinner'\"\r\n [color]=\"color\"\r\n [strokeWidth]=\"strokeWidth\"\r\n [diameter]=\"diameter\"\r\n [mode]=\"$any(mode)\"\r\n [value]=\"value\">\r\n </mat-spinner>\r\n\r\n <mat-progress-bar *ngIf=\"type==='progressbar'\"\r\n [color]=\"color\"\r\n [mode]=\"$any(mode)\"\r\n [value]=\"value\"\r\n [bufferValue]=\"bufferValue\">\r\n </mat-progress-bar>\r\n</div>\r\n<ng-content></ng-content>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\nimport { MtxLoaderComponent } from './loader.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, MatProgressSpinnerModule, MatProgressBarModule],\r\n exports: [MtxLoaderComponent],\r\n declarations: [MtxLoaderComponent],\r\n})\r\nexport class MtxLoaderModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;MA0Ba,kBAAkB;IAoC7B,YAAoB,kBAAqC;QAArC,uBAAkB,GAAlB,kBAAkB,CAAmB;QAnChD,SAAI,GAAkB,SAAS,CAAC;QAEhC,UAAK,GAAiB,SAAS,CAAC;QAEhC,SAAI,GAA0C,eAAe,CAAC;;QAG9D,gBAAW,GAAG,CAAC,CAAC;;QAGhB,aAAQ,GAAG,EAAE,CAAC;;QAGd,gBAAW,GAAG,CAAC,CAAC;QAEhB,UAAK,GAAG,CAAC,CAAC;QASX,aAAQ,GAAG,IAAI,CAAC;QAShB,iBAAY,GAAG,IAAI,CAAC;KAEiC;IAlB7D,IACI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;IACD,IAAI,OAAO,CAAC,KAAc;QACxB,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC9C;IAGD,IACI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;IACD,IAAI,WAAW,CAAC,KAAc;QAC5B,IAAI,CAAC,YAAY,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAClD;;qJAjCU,kBAAkB;yIAAlB,kBAAkB,gXC1B/B,gsBAkBA;2FDQa,kBAAkB;kBAZ9B,SAAS;+BACE,YAAY,YACZ,WAAW,QACf;wBACJ,OAAO,EAAE,YAAY;wBACrB,4BAA4B,EAAE,SAAS;qBACxC,iBAGc,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM;wGAGtC,IAAI;sBAAZ,KAAK;gBAEG,KAAK;sBAAb,KAAK;gBAEG,IAAI;sBAAZ,KAAK;gBAGG,WAAW;sBAAnB,KAAK;gBAGG,QAAQ;sBAAhB,KAAK;gBAGG,WAAW;sBAAnB,KAAK;gBAEG,KAAK;sBAAb,KAAK;gBAGF,OAAO;sBADV,KAAK;gBAUF,WAAW;sBADd,KAAK;;;MEzCK,eAAe;;kJAAf,eAAe;mJAAf,eAAe,iBAFX,kBAAkB,aAFvB,YAAY,EAAE,wBAAwB,EAAE,oBAAoB,aAC5D,kBAAkB;mJAGjB,eAAe,YAJjB,CAAC,YAAY,EAAE,wBAAwB,EAAE,oBAAoB,CAAC;2FAI5D,eAAe;kBAL3B,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,YAAY,EAAE,wBAAwB,EAAE,oBAAoB,CAAC;oBACvE,OAAO,EAAE,CAAC,kBAAkB,CAAC;oBAC7B,YAAY,EAAE,CAAC,kBAAkB,CAAC;iBACnC;;;ACXD;;;;;;"}
|