{
  "version": 3,
  "sources": ["../../src/field-types/array.tsx"],
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tDataViewRenderFieldProps,\n\tNormalizedField,\n\tSortDirection,\n} from '../types';\nimport type { FieldType } from '../types/private';\nimport {\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_NOT_ALL,\n} from '../constants';\nimport isValidRequiredForArray from './utils/is-valid-required-for-array';\nimport isValidElements from './utils/is-valid-elements';\n\nfunction getValueFormatted< Item >( {\n\titem,\n\tfield,\n}: {\n\titem: Item;\n\tfield: NormalizedField< Item >;\n} ): string {\n\tconst value = field.getValue( { item } );\n\tconst arr = Array.isArray( value ) ? value : [];\n\treturn arr.join( ', ' );\n}\n\nfunction render( { item, field }: DataViewRenderFieldProps< any > ) {\n\treturn getValueFormatted( { item, field } );\n}\n\nfunction isValidCustom< Item >( item: Item, field: NormalizedField< Item > ) {\n\tconst value = field.getValue( { item } );\n\n\tif (\n\t\t! [ undefined, '', null ].includes( value ) &&\n\t\t! Array.isArray( value )\n\t) {\n\t\treturn __( 'Value must be an array.' );\n\t}\n\n\t// Only allow strings for now. Can be extended to other types in the future.\n\tif ( ! value.every( ( v: any ) => typeof v === 'string' ) ) {\n\t\treturn __( 'Every value must be a string.' );\n\t}\n\n\treturn null;\n}\n\nconst sort = ( a: any, b: any, direction: SortDirection ) => {\n\t// Sort arrays by length, then alphabetically by joined string\n\tconst arrA = Array.isArray( a ) ? a : [];\n\tconst arrB = Array.isArray( b ) ? b : [];\n\tif ( arrA.length !== arrB.length ) {\n\t\treturn direction === 'asc'\n\t\t\t? arrA.length - arrB.length\n\t\t\t: arrB.length - arrA.length;\n\t}\n\n\tconst joinedA = arrA.join( ',' );\n\tconst joinedB = arrB.join( ',' );\n\treturn direction === 'asc'\n\t\t? joinedA.localeCompare( joinedB )\n\t\t: joinedB.localeCompare( joinedA );\n};\n\nexport default {\n\ttype: 'array',\n\trender,\n\tEdit: 'array',\n\tsort,\n\tenableSorting: true,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [ OPERATOR_IS_ANY, OPERATOR_IS_NONE ],\n\tvalidOperators: [\n\t\tOPERATOR_IS_ANY,\n\t\tOPERATOR_IS_NONE,\n\t\tOPERATOR_IS_ALL,\n\t\tOPERATOR_IS_NOT_ALL,\n\t],\n\tformat: {},\n\tgetValueFormatted,\n\tvalidate: {\n\t\trequired: isValidRequiredForArray,\n\t\telements: isValidElements,\n\t\tcustom: isValidCustom,\n\t},\n} satisfies FieldType< any >;\n"],
  "mappings": ";AAGA,SAAS,UAAU;AAWnB;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,OAAO,6BAA6B;AACpC,OAAO,qBAAqB;AAE5B,SAAS,kBAA2B;AAAA,EACnC;AAAA,EACA;AACD,GAGY;AACX,QAAM,QAAQ,MAAM,SAAU,EAAE,KAAK,CAAE;AACvC,QAAM,MAAM,MAAM,QAAS,KAAM,IAAI,QAAQ,CAAC;AAC9C,SAAO,IAAI,KAAM,IAAK;AACvB;AAEA,SAAS,OAAQ,EAAE,MAAM,MAAM,GAAqC;AACnE,SAAO,kBAAmB,EAAE,MAAM,MAAM,CAAE;AAC3C;AAEA,SAAS,cAAuB,MAAY,OAAiC;AAC5E,QAAM,QAAQ,MAAM,SAAU,EAAE,KAAK,CAAE;AAEvC,MACC,CAAE,CAAE,QAAW,IAAI,IAAK,EAAE,SAAU,KAAM,KAC1C,CAAE,MAAM,QAAS,KAAM,GACtB;AACD,WAAO,GAAI,yBAA0B;AAAA,EACtC;AAGA,MAAK,CAAE,MAAM,MAAO,CAAE,MAAY,OAAO,MAAM,QAAS,GAAI;AAC3D,WAAO,GAAI,+BAAgC;AAAA,EAC5C;AAEA,SAAO;AACR;AAEA,IAAM,OAAO,CAAE,GAAQ,GAAQ,cAA8B;AAE5D,QAAM,OAAO,MAAM,QAAS,CAAE,IAAI,IAAI,CAAC;AACvC,QAAM,OAAO,MAAM,QAAS,CAAE,IAAI,IAAI,CAAC;AACvC,MAAK,KAAK,WAAW,KAAK,QAAS;AAClC,WAAO,cAAc,QAClB,KAAK,SAAS,KAAK,SACnB,KAAK,SAAS,KAAK;AAAA,EACvB;AAEA,QAAM,UAAU,KAAK,KAAM,GAAI;AAC/B,QAAM,UAAU,KAAK,KAAM,GAAI;AAC/B,SAAO,cAAc,QAClB,QAAQ,cAAe,OAAQ,IAC/B,QAAQ,cAAe,OAAQ;AACnC;AAEA,IAAO,gBAAQ;AAAA,EACd,MAAM;AAAA,EACN;AAAA,EACA,MAAM;AAAA,EACN;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB,CAAE,iBAAiB,gBAAiB;AAAA,EACtD,gBAAgB;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,QAAQ,CAAC;AAAA,EACT;AAAA,EACA,UAAU;AAAA,IACT,UAAU;AAAA,IACV,UAAU;AAAA,IACV,QAAQ;AAAA,EACT;AACD;",
  "names": []
}
