yangzhang75 opened a new pull request, #8436:
URL: https://github.com/apache/texera/pull/8436

   ### What changes were proposed in this PR?
   
   Field-type infrastructure the Form View reader will build on (parent issue 
#8011). Frontend only, and there is **no visible change** in this PR -- it is a 
behaviour-preserving refactor of the operator property panel plus one 
exposability rule.
   
   * Extract the operator property panel's custom-widget decisions -- scattered 
inline through the field map (file picker, model picker, HuggingFace 
image/audio uploaders, dataset selector, code box, Projection's drag-reorder 
list) -- into one pure helper, `customFormlyFieldType`, and have the panel call 
it. Same widget for every property as before; the mapping is now a single 
source of truth a later view (the Form View) can share, so a selectable or 
uploadable property never silently degrades to a plain text box there.
   * Add the companion rule `NON_FORM_FIELD_TYPES` (the code editor): a 
property whose control cannot be a form field is not offered for exposure, 
since writing code is not "filling in a value". A drag-reorder property (e.g. 
Projection's columns) stays exposable -- it just renders without the drag in 
the form.
   
   Sub-field addressing (`childPath` / `arrayItemOf`) is intentionally not 
here: it lives on the form component and lands with the render PR that consumes 
it.
   
   ### Any related issues, documentation, discussions?
   
   Closes #8021. Part of the Form View feature (parent issue #8011); builds on 
the merged panel/choose work.
   
   ### How was this PR tested?
   
   Unit tests (vitest). `custom-formly-type.spec.ts` covers the helper at 100% 
(statements and branches) -- every widget rule, each guarded negative, and the 
default. The shared `operator-property-edit-frame.component.spec.ts` (250 
tests) is green, confirming the extraction leaves the panel's behaviour 
unchanged, plus a new test that a code-editor property is not offered for 
exposure while an ordinary one is. Every line added to the panel is covered. 
`ng build` is clean. No screenshot: there is no visible change.
   
   ### Was this PR authored or co-authored using generative AI tooling?
   
   Yes. Co-authored with Claude (Anthropic), reviewed line by line by the 
author before submission.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to