diff --git a/angular-agility/angular-agility-tests.ts b/angular-agility/angular-agility-tests.ts new file mode 100644 index 0000000000..1e8eea478b --- /dev/null +++ b/angular-agility/angular-agility-tests.ts @@ -0,0 +1,78 @@ +/// +/// + +var validIconStrategy:aa.IValidIconStrategy = {}; +validIconStrategy.validIcon = ""; +validIconStrategy.invalidIcon = ""; +validIconStrategy.getContainer({}); + +var provider:aa.IFormExtensionsProvider = {}; +provider.defaultLabelStrategy = ""; +provider.defaultFieldGroupStrategy = ""; +provider.defaultValMsgPlacementStrategy = ""; +provider.validIconStrategy = validIconStrategy; +provider.defaultSpinnerClickStrategy = ""; +provider.defaultNotifyTarget = ""; +provider.defaultOnNavigateAwayStrategy = ""; +provider.validationMessages['testName'] = 'testMessages'; +provider.valMsgForTemplate = ""; +provider.confirmResetStrategy = ():boolean=>{ return false; }; +provider.globalSettings['testSetting'] = 'test'; +provider.labelStrategies['testLabelStratgey'] = (element:ng.IAugmentedJQueryStatic, labelText:string, isRequired:boolean):void=>{}; +provider.fieldGroupStrategies['testFieldGroupStratgey'] = (element:ng.IAugmentedJQueryStatic):void=>{}; +provider.valMsgPlacementStrategies['testValMsgPlacementStrategy'] = (formFieldElement:ng.IAugmentedJQueryStatic, formName:string, formFieldName:string):void=>{}; +provider.spinnerClickStrategies['testSpinnerClickStratgey'] = (element:ng.IAugmentedJQueryStatic):void=>{}; +provider.onNavigateAwayStrategies['testOnNavigateAwayStrategy'] = (rootFormScope:ng.IScope, rootForm:ng.IAugmentedJQueryStatic, $injector:ng.auto.IInjectorService)=>{}; + +var defaults:aa.INotifyDefaults = {}; +defaults.success = (message:string, options:any, notifier:any):any=>{}; +defaults.info = (message:string, options:any, notifier:any):any=>{}; +defaults.warning = (message:string, options:any, notifier:any):any=>{}; +defaults.danger = (message:string, options:any, notifier:any):any=>{}; +defaults.error = (message:string, options:any, notifier:any):any=>{}; + +var configWithoutTemplate:aa.INotifyConfig = { + name: "", + options: {}, + namedDefaults: {} +} + +var configWithTemplate:aa.INotifyConfig = { + name: "", + template: "", + templateName: "", + options: {}, + namedDefaults: {} +} + +var notifyOptionsWithoutCssClasses:aa.INotifyOptions = { + messageType: "", + allowHtml: true, + message: "" +} + +var notifyOptionsWithCssClasses:aa.INotifyOptions = { + cssClasses: "", + messageType: "", + allowHtml: true, + message: "" +} + +var notifyConfigProvider:aa.INotifyConfigProvider = {}; +notifyConfigProvider.notifyConfigs = {}; +notifyConfigProvider.defaultTargetContainerName = ""; +notifyConfigProvider.defaultNotifyConfig = ""; +notifyConfigProvider.addOrUpdateNotifyConfig("", configWithTemplate); +notifyConfigProvider.optionsTransformer(notifyOptionsWithCssClasses, {}); + +var fullExternalConfig:aa.IExternalFormValidationConfig = { + validations: "", + ignore: "", + globals: "", + resolve: "", + resolveFn: (modelValue:string):string=>{ return "" } +} + +var minimalExternalConfig:aa.IExternalFormValidationConfig = { + validations: "" +} diff --git a/angular-agility/angular-agility.d.ts b/angular-agility/angular-agility.d.ts new file mode 100644 index 0000000000..c11aff0b07 --- /dev/null +++ b/angular-agility/angular-agility.d.ts @@ -0,0 +1,106 @@ +// Type definitions for AngularAgility +// Project: https://github.com/AngularAgility/AngularAgility +// Definitions by: Roland Zwaga +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module aa { + + export interface ILabelStrategies { + [strategyName: string]: (element:ng.IAugmentedJQueryStatic, labelText:string, isRequired:boolean)=>void; + } + + export interface IFieldGroupStrategies { + [strategyName: string]: (element:ng.IAugmentedJQueryStatic)=>void; + } + + export interface IValMsgPlacementStrategies { + [strategyName: string]: (formFieldElement:ng.IAugmentedJQueryStatic, formName:string, formFieldName:string)=>void; + } + + export interface IValidIconStrategy { + validIcon:string; + invalidIcon:string; + getContainer(element:ng.IAugmentedJQueryStatic):void; + } + + export interface ISpinnerClickStrategies { + [strategyName: string]: (element:ng.IAugmentedJQueryStatic)=>void; + } + + export interface IOnNavigateAwayStrategies { + [strategyName: string]: (rootFormScope:ng.IScope, rootForm:ng.IAugmentedJQueryStatic, $injector:ng.auto.IInjectorService)=>void; + } + + export interface IValidationMessages { + [validationKey: string]: string; + } + + export interface IGlobalSettings { + [settingName: string]: any; + } + + export interface IFormExtensionsProvider extends ng.auto.IProvider { + defaultLabelStrategy:string; + defaultFieldGroupStrategy:string; + defaultValMsgPlacementStrategy:string; + validIconStrategy:IValidIconStrategy; + defaultSpinnerClickStrategy:string; + defaultNotifyTarget:string; + defaultOnNavigateAwayStrategy:string; + validationMessages:IValidationMessages; + valMsgForTemplate:string; + confirmResetStrategy:()=>boolean; + globalSettings:IGlobalSettings; + + labelStrategies:ILabelStrategies; + fieldGroupStrategies:IFieldGroupStrategies; + valMsgPlacementStrategies:IValMsgPlacementStrategies; + spinnerClickStrategies:ISpinnerClickStrategies; + onNavigateAwayStrategies:IOnNavigateAwayStrategies; + } + + export interface INotifyPredicate { + (message:string, options:any, notifier:any):any; + } + + export interface INotifyDefaults { + success: INotifyPredicate; + info: INotifyPredicate; + warning: INotifyPredicate; + danger: INotifyPredicate; + error: INotifyPredicate; + } + + export interface INotifyConfig { + name:string; + template?:string; + templateName?:string; + options:INotifyOptions; + namedDefaults:INotifyDefaults; + } + + export interface INotifyOptions { + cssClasses?:string; + messageType:string; + allowHtml:boolean; + message:string; + } + + export interface INotifyConfigProvider extends ng.auto.IProvider { + notifyConfigs:any; + defaultTargetContainerName:string; + defaultNotifyConfig:string; + addOrUpdateNotifyConfig(name:string, opts:INotifyConfig):void; + optionsTransformer(options:INotifyOptions, $sce:ng.ISCEService):void; + } + + export interface IExternalFormValidationConfig { + validations:any; + ignore?:any; + globals?:any; + resolve?:any; + resolveFn?:(modelValue:string)=>string; + } +} \ No newline at end of file