From e15f62a9c40b66d276267bef35bd27dd3761e4d8 Mon Sep 17 00:00:00 2001 From: Matt Carroll Date: Fri, 8 May 2026 14:07:55 +1000 Subject: [PATCH] AP-8425 # Added required properties to lookupButton form element --- CHANGELOG.md | 4 +++ package-lock.json | 8 +++--- .../elements/LookupButtonElement.ts | 2 ++ tests/forms-schema/forms-schema.test.ts | 25 +++++++++++++++++++ 4 files changed, 35 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ee0f2c1..67e8b1ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added + +- required properties to lookupButton form element + ## [13.1.4] - 2026-05-07 ### Added diff --git a/package-lock.json b/package-lock.json index 4a303f61..b37255e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2067,7 +2067,7 @@ }, "node_modules/@oneblink/types": { "version": "1.0.0", - "resolved": "git+ssh://git@github.com/oneblink/types.git#30ac0ffdaa301d826a488ad528a773f717f800ad", + "resolved": "git+ssh://git@github.com/oneblink/types.git#010587c817b2fc3bfe9b64b47684148de5e925cb", "dev": true, "license": "GPL-3.0-only", "dependencies": { @@ -8433,9 +8433,9 @@ } }, "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "version": "8.5.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz", + "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==", "dev": true, "funding": [ { diff --git a/src/lib/forms-schema/elements/LookupButtonElement.ts b/src/lib/forms-schema/elements/LookupButtonElement.ts index 0c77515e..458e34d3 100644 --- a/src/lib/forms-schema/elements/LookupButtonElement.ts +++ b/src/lib/forms-schema/elements/LookupButtonElement.ts @@ -4,6 +4,7 @@ import { name, label, hint, + requiredSchemas, conditionallyShowSchemas, lookupSchemas, customCssClasses, @@ -32,6 +33,7 @@ export default Joi.object({ label, hint, hintPosition, + ...requiredSchemas, ...conditionallyShowSchemas, ...lookupSchemas, customCssClasses, diff --git a/tests/forms-schema/forms-schema.test.ts b/tests/forms-schema/forms-schema.test.ts index 3789a327..87f0953d 100644 --- a/tests/forms-schema/forms-schema.test.ts +++ b/tests/forms-schema/forms-schema.test.ts @@ -7672,6 +7672,7 @@ describe('lookupButton form element', () => { conditionallyShow: false, isElementLookup: false, elementDependencies: [], + required: false, }) }) @@ -7766,6 +7767,7 @@ describe('lookupButton form element', () => { dataLookupId: 1, isElementLookup: false, conditionallyShow: false, + required: false, elementDependencies: [ { elementId: '3A1916B9-B05A-46B5-A128-93639DE2D8ED', @@ -7823,6 +7825,7 @@ describe('lookupButton form element', () => { dataLookupId: 1, isElementLookup: false, conditionallyShow: false, + required: false, elementDependencies: [ { elementId: '3A1916B9-B05A-46B5-A128-93639DE2D8ED', @@ -7884,6 +7887,7 @@ describe('lookupButton form element', () => { dataLookupId: 1, isElementLookup: false, conditionallyShow: false, + required: false, elementDependencies: [ { elementId: '3A1916B9-B05A-46B5-A128-93639DE2D8ED', @@ -7901,6 +7905,27 @@ describe('lookupButton form element', () => { }, ]) }) + + test('should accept "required" and "requiredMessage"', () => { + const result = validateFormThrowError({ + ...form, + elements: [ + { + ...lookupButtonElement, + required: true, + requiredMessage: 'Run the lookup before continuing', + }, + ], + }) + expect(result.elements[0]).toEqual({ + ...lookupButtonElement, + conditionallyShow: false, + isElementLookup: false, + elementDependencies: [], + required: true, + requiredMessage: 'Run the lookup before continuing', + }) + }) }) describe('ArcGISWebMapElement', () => {