[angular-material] - Added $mdDialogProvider definition (#24733)

* [angular-material] - Added $mdDialogProvider definition

Docs: https://material.angularjs.org/latest/api/service/$mdDialog#custom-presets

* [angular-material] - Added "methods" property to "addPreset()" options parameter
This commit is contained in:
Dona278
2018-04-09 21:54:49 +02:00
committed by Mohamed Hegazy
parent 9075daa897
commit 06d09706a6
2 changed files with 34 additions and 2 deletions

View File

@@ -8,7 +8,8 @@ myApp.config((
$mdAriaProvider: ng.material.IAriaProvider,
$mdThemingProvider: ng.material.IThemingProvider,
$mdIconProvider: ng.material.IIconProvider,
$mdProgressCircularProvider: ng.material.IProgressCircularProvider) => {
$mdProgressCircularProvider: ng.material.IProgressCircularProvider,
$mdDialogProvider: ng.material.IDialogProvider) => {
$mdThemingProvider.alwaysWatchTheme(true);
const neonRedMap: ng.material.IPalette = $mdThemingProvider.extendPalette('red', {
500: 'ff0000'
@@ -56,6 +57,23 @@ myApp.config((
// Globally disables all ARIA warnings.
$mdAriaProvider.disableWarnings();
// Add custom dialog preset
$mdDialogProvider.addPreset('testPreset', {
methods: ['entityName'],
options: () => {
return {
template:
'<md-dialog>' +
'This is a custom preset' +
'</md-dialog>',
controllerAs: 'dialog',
bindToController: true,
clickOutsideToClose: true,
escapeToClose: true
};
}
});
});
myApp.controller('BottomSheetController', ($scope: TestScope, $mdBottomSheet: ng.material.IBottomSheetService, $q: ng.IQService) => {
@@ -192,6 +210,11 @@ myApp.controller('DialogController', ($scope: TestScope, $mdDialog: ng.material.
onComplete: (scope, element) => { },
onRemoving: (element, removePromise) => { },
});
// Show custom dialog preset
$mdDialog.show(
$mdDialog['testPreset']().entityName('Product #6')
);
});
class IconDirective implements ng.IDirective {

View File

@@ -125,6 +125,11 @@ declare module 'angular' {
}
interface IDialogService {
// indexer used to call preset dialog created with $mdDialogProvider
// see: https://material.angularjs.org/latest/api/service/$mdDialog#custom-presets
// tslint:disable-next-line:ban-types
[presetName: string]: Function;
show(dialog: IDialogOptions | IAlertDialog | IConfirmDialog | IPromptDialog): IPromise<any>;
confirm(): IConfirmDialog;
alert(): IAlertDialog;
@@ -133,6 +138,10 @@ declare module 'angular' {
cancel(response?: any): void;
}
interface IDialogProvider {
addPreset(presetName: string, presetOptions: { methods?: ReadonlyArray<string>, options: () => IDialogOptions }): IDialogProvider;
}
type IIcon = (id: string) => IPromise<Element>; // id is a unique ID or URL
interface IIconProvider {
@@ -223,7 +232,7 @@ declare module 'angular' {
contrastDefaultColor?: string;
contrastDarkColors?: string | string[];
contrastLightColors?: string | string[];
contrastStrongLightColors?: string|string[];
contrastStrongLightColors?: string | string[];
}
interface IThemeHues {