Skip to content

Commit 2b94617

Browse files
authored
Merge pull request microsoft#64 from microsoft/version_1.6.0
Release 1.6.0
2 parents f82deb1 + de137c7 commit 2b94617

File tree

4 files changed

+61
-2
lines changed

4 files changed

+61
-2
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "powerbi-models",
3-
"version": "1.5.0",
3+
"version": "1.6.0",
44
"description": "Contains JavaScript & TypeScript object models for Microsoft Power BI JavaScript SDK. For each model there is a TypeScript interface, and a validation function to ensure and object is valid.",
55
"main": "dist/models.js",
66
"typings": "dist/models.d.ts",

src/models.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,6 +1035,10 @@ export interface IReportBookmark {
10351035
children?: IReportBookmark[];
10361036
}
10371037

1038+
export interface ICaptureBookmarkOptions {
1039+
personalizeVisuals?: boolean;
1040+
}
1041+
10381042
export interface IPlayBookmarkRequest {
10391043
playMode: BookmarksPlayMode;
10401044
}
@@ -1055,6 +1059,10 @@ export interface IApplyBookmarkByNameRequest {
10551059
name: string;
10561060
}
10571061

1062+
export interface ICaptureBookmarkRequest {
1063+
options: ICaptureBookmarkOptions;
1064+
}
1065+
10581066
export interface IExportDataRequest {
10591067
rows?: number;
10601068
exportDataType?: ExportDataType;
@@ -1396,6 +1404,11 @@ export function validateApplyBookmarkStateRequest(input: any): IError[] {
13961404
return errors ? errors.map(normalizeError) : undefined;
13971405
}
13981406

1407+
export function validateCaptureBookmarkRequest(input: any): IError[] {
1408+
let errors: any[] = Validators.captureBookmarkRequestValidator.validate(input);
1409+
return errors ? errors.map(normalizeError) : undefined;
1410+
}
1411+
13991412
export function validateSettings(input: any): IError[] {
14001413
let errors: any[] = Validators.settingsValidator.validate(input);
14011414
return errors ? errors.map(normalizeError) : undefined;

src/validators/core/validator.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { BooleanValidator, ArrayValidator, StringValidator, EnumValidator, NumberValidator, StringArrayValidator, BooleanArrayValidator, NumberArrayValidator } from './typeValidator';
22
import { ExtensionValidator, CommandExtensionValidator, ExtensionPointsValidator, MenuExtensionValidator } from '../models/extensionsValidator';
33
import { SettingsValidator } from '../models/settingsValidator';
4-
import { PlayBookmarkRequestValidator, AddBookmarkRequestValidator, ApplyBookmarkByNameRequestValidator, ApplyBookmarkStateRequestValidator } from '../models/bookmarkValidator';
4+
import { PlayBookmarkRequestValidator, AddBookmarkRequestValidator, ApplyBookmarkByNameRequestValidator, ApplyBookmarkStateRequestValidator, CaptureBookmarkOptionsValidator, CaptureBookmarkRequestValidator } from '../models/bookmarkValidator';
55
import {
66
FilterColumnTargetValidator,
77
FilterKeyColumnsTargetValidator,
@@ -75,6 +75,8 @@ export const Validators = {
7575
booleanArrayValidator: new BooleanArrayValidator(),
7676
booleanValidator: new BooleanValidator(),
7777
bookmarksPaneValidator: new BookmarksPaneValidator(),
78+
captureBookmarkOptionsValidator: new CaptureBookmarkOptionsValidator(),
79+
captureBookmarkRequestValidator: new CaptureBookmarkRequestValidator(),
7880
commandDisplayOptionValidator: new EnumValidator([0, 1, 2]),
7981
commandExtensionSelectorValidator: new AnyOfValidator([new VisualSelectorValidator(), new VisualTypeSelectorValidator()]),
8082
commandExtensionValidator: new CommandExtensionValidator(),

src/validators/models/bookmarkValidator.ts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,3 +97,47 @@ export class ApplyBookmarkStateRequestValidator extends ObjectValidator {
9797
return multipleFieldsValidator.validate(input, path, field);
9898
}
9999
}
100+
101+
export class CaptureBookmarkOptionsValidator extends ObjectValidator {
102+
public validate(input: any, path?: string, field?: string): IValidationError[] {
103+
if (input == null) {
104+
return null;
105+
}
106+
const errors = super.validate(input, path, field);
107+
if (errors) {
108+
return errors;
109+
}
110+
111+
const fields: IFieldValidatorsPair[] = [
112+
{
113+
field: "personalizeVisuals",
114+
validators: [Validators.booleanValidator]
115+
}
116+
];
117+
118+
const multipleFieldsValidator = new MultipleFieldsValidator(fields);
119+
return multipleFieldsValidator.validate(input, path, field);
120+
}
121+
}
122+
123+
export class CaptureBookmarkRequestValidator extends ObjectValidator {
124+
public validate(input: any, path?: string, field?: string): IValidationError[] {
125+
if (input == null) {
126+
return null;
127+
}
128+
const errors = super.validate(input, path, field);
129+
if (errors) {
130+
return errors;
131+
}
132+
133+
const fields: IFieldValidatorsPair[] = [
134+
{
135+
field: "options",
136+
validators: [Validators.fieldRequiredValidator, Validators.captureBookmarkOptionsValidator]
137+
}
138+
];
139+
140+
const multipleFieldsValidator = new MultipleFieldsValidator(fields);
141+
return multipleFieldsValidator.validate(input, path, field);
142+
}
143+
}

0 commit comments

Comments
 (0)