argumentFieldIds.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // Role-prefixed IDs keep related elements from colliding when argument names
  2. // contain another argument's name plus a former suffix (e.g. "foo" vs "foo-choices").
  3. const ARGUMENT_ID_NAMESPACE = 'arg-'
  4. export const ARGUMENT_FIELD_ID_PREFIX = `${ARGUMENT_ID_NAMESPACE}field-`
  5. export function argumentFieldId (argumentName) {
  6. return `${ARGUMENT_FIELD_ID_PREFIX}${argumentName}`
  7. }
  8. export function argumentFieldChoicesId (argumentName) {
  9. return `${ARGUMENT_ID_NAMESPACE}choices-${argumentName}`
  10. }
  11. export function argumentFieldValueId (argumentName) {
  12. return `${ARGUMENT_ID_NAMESPACE}value-${argumentName}`
  13. }
  14. export function argumentFieldWrapperId (argumentName) {
  15. return `${ARGUMENT_ID_NAMESPACE}wrapper-${argumentName}`
  16. }
  17. export function argumentFieldOptionId (argumentName, index) {
  18. return `${ARGUMENT_ID_NAMESPACE}option-${argumentName}-${index}`
  19. }
  20. export function argumentFieldListboxId (argumentName) {
  21. return `${ARGUMENT_ID_NAMESPACE}listbox-${argumentName}`
  22. }
  23. export function argumentFieldListboxOptionId (argumentName, index) {
  24. return `${ARGUMENT_ID_NAMESPACE}listbox-option-${argumentName}-${index}`
  25. }
  26. export function argumentFieldValidationElementId (argument) {
  27. if (argument.type === 'checklist') {
  28. return argumentFieldValueId(argument.name)
  29. }
  30. return argumentFieldId(argument.name)
  31. }