diff --git a/lib/builders/dataTypes/index.ts b/lib/builders/dataTypes/index.ts index c31df76..dbf7d90 100644 --- a/lib/builders/dataTypes/index.ts +++ b/lib/builders/dataTypes/index.ts @@ -25,4 +25,5 @@ export {TiptapDataTypeBuilder} from './tiptapDataTypeBuilder'; export {UploadFieldDataTypeBuilder} from './uploadFieldDataTypeBuilder'; export {LabelDataTypeBuilder} from './labelDataTypeBuilder'; export {MultiUrlPickerDataTypeBuilder} from './multiUrlPickerDataTypeBuilder'; -export {TagsDataTypeBuilder} from './tagsDataTypeBuilder'; \ No newline at end of file +export {TagsDataTypeBuilder} from './tagsDataTypeBuilder'; +export {MultiNodeTreePickerDataTypeBuilder} from './multiNodeTreePickerDataTypeBuilder'; \ No newline at end of file diff --git a/lib/builders/dataTypes/multiNodeTreePickerDataTypeBuilder.ts b/lib/builders/dataTypes/multiNodeTreePickerDataTypeBuilder.ts new file mode 100644 index 0000000..26b773e --- /dev/null +++ b/lib/builders/dataTypes/multiNodeTreePickerDataTypeBuilder.ts @@ -0,0 +1,79 @@ +import {DataTypeBuilder} from "./dataTypeBuilder"; + +export class MultiNodeTreePickerDataTypeBuilder extends DataTypeBuilder { + minNumber: number; + maxNumber: number; + ignoreUserStartNodes: boolean; + filterIds: string; + startNode: string; + + constructor() { + super(); + this.editorAlias = "Umbraco.MultiNodeTreePicker"; + this.editorUiAlias = "Umb.PropertyEditorUi.ContentPicker"; + } + + withMinNumber(minNumber: number) { + this.minNumber = minNumber; + return this; + } + + withMaxNumber(maxNumber: number) { + this.maxNumber = maxNumber; + return this; + } + + withIgnoreUserStartNodes(ignoreUserStartNodes: boolean) { + this.ignoreUserStartNodes = ignoreUserStartNodes; + return this; + } + + withFilterIds(filterIds: string) { + this.filterIds = filterIds; + return this; + } + + withStartNode(startNode: string) { + this.startNode = startNode; + return this; + } + + getValues() { + let values: any[] = []; + + values.push({ + alias: "minNumber", + value: this.minNumber !== undefined ? this.minNumber : 0 + }); + + values.push({ + alias: "maxNumber", + value: this.maxNumber !== undefined ? this.maxNumber : 0 + }); + + if (this.ignoreUserStartNodes !== undefined) { + values.push({ + alias: "ignoreUserStartNodes", + value: this.ignoreUserStartNodes + }); + } + + if (this.filterIds !== undefined) { + values.push({ + alias: "filter", + value: this.filterIds + }); + } + + if (this.startNode !== undefined) { + values.push({ + alias: "startNode", + value: { + type: this.startNode + } + }); + } + + return values; + } +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 3199287..09751db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@umbraco/json-models-builders", - "version": "2.0.37", + "version": "2.0.38", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@umbraco/json-models-builders", - "version": "2.0.37", + "version": "2.0.38", "license": "MIT", "dependencies": { "camelize": "^1.0.1" diff --git a/package.json b/package.json index e3edd45..e7ddef2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@umbraco/json-models-builders", - "version": "2.0.37", + "version": "2.0.38", "description": "Builders and models for Umbraco Sites", "main": "dist/lib/index.js", "types": "dist/lib/index.d.ts",