diff --git a/schemas/pa-yaml/v3.0/pa.schema.yaml b/schemas/pa-yaml/v3.0/pa.schema.yaml
index d81680c5..55aafbc2 100644
--- a/schemas/pa-yaml/v3.0/pa.schema.yaml
+++ b/schemas/pa-yaml/v3.0/pa.schema.yaml
@@ -212,6 +212,8 @@ definitions:
Layout:
type: string
minLength: 1
+ IsLocked:
+ type: boolean
Group: true
Properties: true
Children: { $ref: "#/definitions/Children-Control-instance-sequence" }
diff --git a/src/PAModel/Microsoft.PowerPlatform.Formulas.Tools.csproj b/src/PAModel/Microsoft.PowerPlatform.Formulas.Tools.csproj
index 213c4f39..e3aeb9a5 100644
--- a/src/PAModel/Microsoft.PowerPlatform.Formulas.Tools.csproj
+++ b/src/PAModel/Microsoft.PowerPlatform.Formulas.Tools.csproj
@@ -54,8 +54,8 @@
-
-
+
+
diff --git a/src/PAModel/packages.lock.json b/src/PAModel/packages.lock.json
index 7d21cb1c..c42046cf 100644
--- a/src/PAModel/packages.lock.json
+++ b/src/PAModel/packages.lock.json
@@ -19,27 +19,27 @@
},
"System.Text.Encodings.Web": {
"type": "Direct",
- "requested": "[6.0.0, )",
- "resolved": "6.0.0",
- "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==",
+ "requested": "[9.0.0, )",
+ "resolved": "9.0.0",
+ "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==",
"dependencies": {
"System.Buffers": "4.5.1",
- "System.Memory": "4.5.4",
+ "System.Memory": "4.5.5",
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
}
},
"System.Text.Json": {
"type": "Direct",
- "requested": "[6.0.0, )",
- "resolved": "6.0.0",
- "contentHash": "zaJsHfESQvJ11vbXnNlkrR46IaMULk/gHxYsJphzSF+07kTjPHv+Oc14w6QEOfo3Q4hqLJgStUaYB9DBl0TmWg==",
+ "requested": "[9.0.0, )",
+ "resolved": "9.0.0",
+ "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==",
"dependencies": {
- "Microsoft.Bcl.AsyncInterfaces": "6.0.0",
+ "Microsoft.Bcl.AsyncInterfaces": "9.0.0",
"System.Buffers": "4.5.1",
- "System.Memory": "4.5.4",
- "System.Numerics.Vectors": "4.5.0",
+ "System.IO.Pipelines": "9.0.0",
+ "System.Memory": "4.5.5",
"System.Runtime.CompilerServices.Unsafe": "6.0.0",
- "System.Text.Encodings.Web": "6.0.0",
+ "System.Text.Encodings.Web": "9.0.0",
"System.Threading.Tasks.Extensions": "4.5.4"
}
},
@@ -51,8 +51,8 @@
},
"Microsoft.Bcl.AsyncInterfaces": {
"type": "Transitive",
- "resolved": "6.0.0",
- "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==",
+ "resolved": "9.0.0",
+ "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==",
"dependencies": {
"System.Threading.Tasks.Extensions": "4.5.4"
}
@@ -67,10 +67,20 @@
"resolved": "4.5.1",
"contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg=="
},
+ "System.IO.Pipelines": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==",
+ "dependencies": {
+ "System.Buffers": "4.5.1",
+ "System.Memory": "4.5.5",
+ "System.Threading.Tasks.Extensions": "4.5.4"
+ }
+ },
"System.Memory": {
"type": "Transitive",
- "resolved": "4.5.4",
- "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==",
+ "resolved": "4.5.5",
+ "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==",
"dependencies": {
"System.Buffers": "4.5.1",
"System.Numerics.Vectors": "4.4.0",
@@ -79,8 +89,8 @@
},
"System.Numerics.Vectors": {
"type": "Transitive",
- "resolved": "4.5.0",
- "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ=="
+ "resolved": "4.4.0",
+ "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ=="
},
"System.Runtime.CompilerServices.Unsafe": {
"type": "Transitive",
@@ -105,21 +115,18 @@
},
"System.Text.Encodings.Web": {
"type": "Direct",
- "requested": "[6.0.0, )",
- "resolved": "6.0.0",
- "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==",
- "dependencies": {
- "System.Runtime.CompilerServices.Unsafe": "6.0.0"
- }
+ "requested": "[9.0.0, )",
+ "resolved": "9.0.0",
+ "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw=="
},
"System.Text.Json": {
"type": "Direct",
- "requested": "[6.0.0, )",
- "resolved": "6.0.0",
- "contentHash": "zaJsHfESQvJ11vbXnNlkrR46IaMULk/gHxYsJphzSF+07kTjPHv+Oc14w6QEOfo3Q4hqLJgStUaYB9DBl0TmWg==",
+ "requested": "[9.0.0, )",
+ "resolved": "9.0.0",
+ "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==",
"dependencies": {
- "System.Runtime.CompilerServices.Unsafe": "6.0.0",
- "System.Text.Encodings.Web": "6.0.0"
+ "System.IO.Pipelines": "9.0.0",
+ "System.Text.Encodings.Web": "9.0.0"
}
},
"YamlDotNet": {
@@ -128,10 +135,10 @@
"resolved": "15.1.6",
"contentHash": "T/cQEK/KHK96Q8kytJ4iUGDXg1/fj2Qtk6rCQeIlHYU1zTeyGVHW0QNZgREQyxZpygGMDMmrXNWt0sj5TsQnjA=="
},
- "System.Runtime.CompilerServices.Unsafe": {
+ "System.IO.Pipelines": {
"type": "Transitive",
- "resolved": "6.0.0",
- "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg=="
+ "resolved": "9.0.0",
+ "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw=="
}
}
}
diff --git a/src/Persistence/PaYaml/Models/SchemaV3/ControlInstance.cs b/src/Persistence/PaYaml/Models/SchemaV3/ControlInstance.cs
index f08da803..919e3162 100644
--- a/src/Persistence/PaYaml/Models/SchemaV3/ControlInstance.cs
+++ b/src/Persistence/PaYaml/Models/SchemaV3/ControlInstance.cs
@@ -28,6 +28,8 @@ public ControlInstance(string controlType)
public string? Layout { get; init; }
+ public bool? IsLocked { get; init; }
+
///
/// The name of the group of controls that this control should be grouped with.
/// This does not impact the visual layout of the control or behavior, but is used to group controls together for organizational purposes from within the Studio.
diff --git a/src/schemas-tests/pa-yaml/v3.0/Examples/Src/Screens/FormsScreen2.pa.yaml b/src/schemas-tests/pa-yaml/v3.0/Examples/Src/Screens/FormsScreen2.pa.yaml
index 6bc881bb..5079bd2c 100644
--- a/src/schemas-tests/pa-yaml/v3.0/Examples/Src/Screens/FormsScreen2.pa.yaml
+++ b/src/schemas-tests/pa-yaml/v3.0/Examples/Src/Screens/FormsScreen2.pa.yaml
@@ -47,6 +47,7 @@ Screens:
- "First Name_DataCard1":
Control: TypedDataCard
Variant: textualEditCard
+ IsLocked: true
Properties:
BorderStyle: =BorderStyle.Solid
DataField: ="firstname"
@@ -122,6 +123,7 @@ Screens:
- "Last Name_DataCard1":
Control: TypedDataCard
Variant: textualEditCard
+ IsLocked: true
Properties:
BorderStyle: =BorderStyle.Solid
DataField: ="lastname"
@@ -197,6 +199,7 @@ Screens:
- "Company Name_DataCard1":
Control: TypedDataCard
Variant: blankPolymorphicEditCard
+ IsLocked: true
Properties:
BorderStyle: =BorderStyle.Solid
DataField: ="_parentcustomerid_value"
@@ -213,6 +216,7 @@ Screens:
- "Job Title_DataCard1":
Control: TypedDataCard
Variant: textualEditCard
+ IsLocked: true
Properties:
BorderStyle: =BorderStyle.Solid
DataField: ="jobtitle"
@@ -288,6 +292,7 @@ Screens:
- "Mobile Phone_DataCard1":
Control: TypedDataCard
Variant: textualEditCard
+ IsLocked: true
Properties:
BorderStyle: =BorderStyle.Solid
DataField: ="mobilephone"
@@ -363,6 +368,7 @@ Screens:
- "User Name_DataCard1":
Control: TypedDataCard
Variant: textualEditCard
+ IsLocked: true
Properties:
BorderStyle: =BorderStyle.Solid
DataField: ="adx_identity_username"
@@ -438,6 +444,7 @@ Screens:
- "Address 1_DataCard1":
Control: TypedDataCard
Variant: textualViewCard
+ IsLocked: true
Properties:
BorderStyle: =BorderStyle.Solid
DataField: ="address1_composite"
@@ -480,6 +487,7 @@ Screens:
- Website_DataCard1:
Control: TypedDataCard
Variant: urlEditCard
+ IsLocked: true
Properties:
BorderStyle: =BorderStyle.Solid
DataField: ="websiteurl"
@@ -553,6 +561,7 @@ Screens:
- Birthday_DataCard1:
Control: TypedDataCard
Variant: dateEditCard
+ IsLocked: true
Properties:
BorderStyle: =BorderStyle.Solid
DataField: ="birthdate"
@@ -625,6 +634,7 @@ Screens:
- Description_DataCard1:
Control: TypedDataCard
Variant: textualMultiLineEditCard
+ IsLocked: true
Properties:
BorderStyle: =BorderStyle.Solid
DataField: ="description"
@@ -700,6 +710,7 @@ Screens:
- "Full Name_DataCard1":
Control: TypedDataCard
Variant: textualViewCard
+ IsLocked: true
Properties:
BorderStyle: =BorderStyle.Solid
DataField: ="fullname"
@@ -742,6 +753,7 @@ Screens:
- Email_DataCard1:
Control: TypedDataCard
Variant: textualEditCard
+ IsLocked: true
Properties:
BorderStyle: =BorderStyle.Solid
DataField: ="emailaddress1"
@@ -817,6 +829,7 @@ Screens:
- "Business Phone_DataCard1":
Control: TypedDataCard
Variant: textualEditCard
+ IsLocked: true
Properties:
BorderStyle: =BorderStyle.Solid
DataField: ="telephone1"
diff --git a/src/schemas/pa-yaml/v3.0/pa.schema.yaml b/src/schemas/pa-yaml/v3.0/pa.schema.yaml
index f5de31de..6880af06 100644
--- a/src/schemas/pa-yaml/v3.0/pa.schema.yaml
+++ b/src/schemas/pa-yaml/v3.0/pa.schema.yaml
@@ -233,6 +233,8 @@ definitions:
Layout:
type: string
minLength: 1
+ IsLocked:
+ type: boolean
Group: true
Properties: true
Children: { $ref: "#/definitions/Children-Control-instance-sequence" }