@wordpress/dataviews 11.0.0 → 11.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/README.md +140 -93
- package/build/components/dataviews-filters/filter.js +25 -267
- package/build/components/dataviews-filters/filter.js.map +2 -2
- package/build/components/dataviews-filters/input-widget.js +1 -4
- package/build/components/dataviews-filters/input-widget.js.map +2 -2
- package/build/components/dataviews-filters/use-filters.js +3 -3
- package/build/components/dataviews-filters/use-filters.js.map +2 -2
- package/build/constants.js +5 -142
- package/build/constants.js.map +2 -2
- package/build/dataform-controls/number.js +2 -1
- package/build/dataform-controls/number.js.map +2 -2
- package/build/dataform-controls/textarea.js +3 -1
- package/build/dataform-controls/textarea.js.map +2 -2
- package/build/dataform-controls/utils/get-custom-validity.js +8 -0
- package/build/dataform-controls/utils/get-custom-validity.js.map +2 -2
- package/build/dataform-controls/utils/validated-input.js +4 -2
- package/build/dataform-controls/utils/validated-input.js.map +2 -2
- package/build/dataform-controls/utils/validated-number.js +4 -2
- package/build/dataform-controls/utils/validated-number.js.map +2 -2
- package/build/dataform-layouts/panel/modal.js +14 -5
- package/build/dataform-layouts/panel/modal.js.map +2 -2
- package/build/dataviews-layouts/grid/composite-grid.js +39 -37
- package/build/dataviews-layouts/grid/composite-grid.js.map +3 -3
- package/build/dataviews-layouts/table/index.js +8 -3
- package/build/dataviews-layouts/table/index.js.map +2 -2
- package/build/field-types/array.js +27 -14
- package/build/field-types/array.js.map +3 -3
- package/build/field-types/boolean.js +13 -10
- package/build/field-types/boolean.js.map +3 -3
- package/build/field-types/color.js +14 -11
- package/build/field-types/color.js.map +3 -3
- package/build/field-types/date.js +11 -8
- package/build/field-types/date.js.map +3 -3
- package/build/field-types/datetime.js +7 -5
- package/build/field-types/datetime.js.map +3 -3
- package/build/field-types/email.js +20 -11
- package/build/field-types/email.js.map +3 -3
- package/build/field-types/index.js +12 -14
- package/build/field-types/index.js.map +3 -3
- package/build/field-types/integer.js +63 -14
- package/build/field-types/integer.js.map +3 -3
- package/build/field-types/media.js +5 -5
- package/build/field-types/media.js.map +2 -2
- package/build/field-types/no-type.js +9 -6
- package/build/field-types/no-type.js.map +3 -3
- package/build/field-types/number.js +51 -15
- package/build/field-types/number.js.map +3 -3
- package/build/field-types/password.js +13 -5
- package/build/field-types/password.js.map +3 -3
- package/build/field-types/telephone.js +13 -5
- package/build/field-types/telephone.js.map +3 -3
- package/build/field-types/text.js +13 -5
- package/build/field-types/text.js.map +3 -3
- package/build/field-types/url.js +13 -5
- package/build/field-types/url.js.map +3 -3
- package/build/field-types/utils/get-is-valid.js +89 -0
- package/build/field-types/utils/get-is-valid.js.map +7 -0
- package/build/field-types/utils/is-valid-elements.js +35 -0
- package/build/field-types/utils/is-valid-elements.js.map +7 -0
- package/build/field-types/utils/is-valid-max-length.js +36 -0
- package/build/field-types/utils/is-valid-max-length.js.map +7 -0
- package/build/field-types/utils/is-valid-max.js +36 -0
- package/build/field-types/utils/is-valid-max.js.map +7 -0
- package/build/field-types/utils/is-valid-min-length.js +36 -0
- package/build/field-types/utils/is-valid-min-length.js.map +7 -0
- package/build/field-types/utils/is-valid-min.js +36 -0
- package/build/field-types/utils/is-valid-min.js.map +7 -0
- package/build/field-types/utils/is-valid-pattern.js +41 -0
- package/build/field-types/utils/is-valid-pattern.js.map +7 -0
- package/build/field-types/utils/is-valid-required-for-array.js +32 -0
- package/build/field-types/utils/is-valid-required-for-array.js.map +7 -0
- package/build/field-types/utils/is-valid-required-for-bool.js +30 -0
- package/build/field-types/utils/is-valid-required-for-bool.js.map +7 -0
- package/build/field-types/utils/is-valid-required.js +30 -0
- package/build/field-types/utils/is-valid-required.js.map +7 -0
- package/build/hooks/use-form-validity.js +52 -102
- package/build/hooks/use-form-validity.js.map +2 -2
- package/build/types/field-api.js.map +1 -1
- package/build/types/private.js.map +1 -1
- package/build/utils/filter-sort-and-paginate.js +5 -0
- package/build/utils/filter-sort-and-paginate.js.map +3 -3
- package/build/utils/operators.js +399 -0
- package/build/utils/operators.js.map +7 -0
- package/build-module/components/dataviews-filters/filter.js +26 -292
- package/build-module/components/dataviews-filters/filter.js.map +2 -2
- package/build-module/components/dataviews-filters/input-widget.js +1 -4
- package/build-module/components/dataviews-filters/input-widget.js.map +2 -2
- package/build-module/components/dataviews-filters/use-filters.js +6 -3
- package/build-module/components/dataviews-filters/use-filters.js.map +2 -2
- package/build-module/constants.js +5 -139
- package/build-module/constants.js.map +2 -2
- package/build-module/dataform-controls/number.js +2 -1
- package/build-module/dataform-controls/number.js.map +2 -2
- package/build-module/dataform-controls/textarea.js +3 -1
- package/build-module/dataform-controls/textarea.js.map +2 -2
- package/build-module/dataform-controls/utils/get-custom-validity.js +8 -0
- package/build-module/dataform-controls/utils/get-custom-validity.js.map +2 -2
- package/build-module/dataform-controls/utils/validated-input.js +4 -2
- package/build-module/dataform-controls/utils/validated-input.js.map +2 -2
- package/build-module/dataform-controls/utils/validated-number.js +4 -2
- package/build-module/dataform-controls/utils/validated-number.js.map +2 -2
- package/build-module/dataform-layouts/panel/modal.js +14 -5
- package/build-module/dataform-layouts/panel/modal.js.map +2 -2
- package/build-module/dataviews-layouts/grid/composite-grid.js +40 -38
- package/build-module/dataviews-layouts/grid/composite-grid.js.map +3 -3
- package/build-module/dataviews-layouts/table/index.js +8 -3
- package/build-module/dataviews-layouts/table/index.js.map +2 -2
- package/build-module/field-types/array.js +17 -14
- package/build-module/field-types/array.js.map +2 -2
- package/build-module/field-types/boolean.js +13 -10
- package/build-module/field-types/boolean.js.map +2 -2
- package/build-module/field-types/color.js +14 -11
- package/build-module/field-types/color.js.map +2 -2
- package/build-module/field-types/date.js +11 -8
- package/build-module/field-types/date.js.map +2 -2
- package/build-module/field-types/datetime.js +7 -5
- package/build-module/field-types/datetime.js.map +2 -2
- package/build-module/field-types/email.js +20 -11
- package/build-module/field-types/email.js.map +2 -2
- package/build-module/field-types/index.js +12 -14
- package/build-module/field-types/index.js.map +2 -2
- package/build-module/field-types/integer.js +58 -13
- package/build-module/field-types/integer.js.map +2 -2
- package/build-module/field-types/media.js +5 -5
- package/build-module/field-types/media.js.map +2 -2
- package/build-module/field-types/no-type.js +10 -7
- package/build-module/field-types/no-type.js.map +2 -2
- package/build-module/field-types/number.js +47 -15
- package/build-module/field-types/number.js.map +2 -2
- package/build-module/field-types/password.js +13 -5
- package/build-module/field-types/password.js.map +2 -2
- package/build-module/field-types/telephone.js +13 -5
- package/build-module/field-types/telephone.js.map +2 -2
- package/build-module/field-types/text.js +13 -5
- package/build-module/field-types/text.js.map +2 -2
- package/build-module/field-types/url.js +13 -5
- package/build-module/field-types/url.js.map +2 -2
- package/build-module/field-types/utils/get-is-valid.js +68 -0
- package/build-module/field-types/utils/get-is-valid.js.map +7 -0
- package/build-module/field-types/utils/is-valid-elements.js +14 -0
- package/build-module/field-types/utils/is-valid-elements.js.map +7 -0
- package/build-module/field-types/utils/is-valid-max-length.js +15 -0
- package/build-module/field-types/utils/is-valid-max-length.js.map +7 -0
- package/build-module/field-types/utils/is-valid-max.js +15 -0
- package/build-module/field-types/utils/is-valid-max.js.map +7 -0
- package/build-module/field-types/utils/is-valid-min-length.js +15 -0
- package/build-module/field-types/utils/is-valid-min-length.js.map +7 -0
- package/build-module/field-types/utils/is-valid-min.js +15 -0
- package/build-module/field-types/utils/is-valid-min.js.map +7 -0
- package/build-module/field-types/utils/is-valid-pattern.js +20 -0
- package/build-module/field-types/utils/is-valid-pattern.js.map +7 -0
- package/build-module/field-types/utils/is-valid-required-for-array.js +11 -0
- package/build-module/field-types/utils/is-valid-required-for-array.js.map +7 -0
- package/build-module/field-types/utils/is-valid-required-for-bool.js +9 -0
- package/build-module/field-types/utils/is-valid-required-for-bool.js.map +7 -0
- package/build-module/field-types/utils/is-valid-required.js +9 -0
- package/build-module/field-types/utils/is-valid-required.js.map +7 -0
- package/build-module/hooks/use-form-validity.js +52 -102
- package/build-module/hooks/use-form-validity.js.map +2 -2
- package/build-module/utils/filter-sort-and-paginate.js +5 -0
- package/build-module/utils/filter-sort-and-paginate.js.map +2 -2
- package/build-module/utils/operators.js +394 -0
- package/build-module/utils/operators.js.map +7 -0
- package/build-style/style-rtl.css +13 -80
- package/build-style/style.css +13 -80
- package/build-types/components/dataviews-filters/filter.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/input-widget.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/use-filters.d.ts.map +1 -1
- package/build-types/constants.d.ts +6 -12
- package/build-types/constants.d.ts.map +1 -1
- package/build-types/dataform-controls/number.d.ts.map +1 -1
- package/build-types/dataform-controls/textarea.d.ts.map +1 -1
- package/build-types/dataform-controls/utils/get-custom-validity.d.ts +2 -2
- package/build-types/dataform-controls/utils/get-custom-validity.d.ts.map +1 -1
- package/build-types/dataform-controls/utils/validated-input.d.ts.map +1 -1
- package/build-types/dataform-controls/utils/validated-number.d.ts.map +1 -1
- package/build-types/dataform-layouts/panel/modal.d.ts.map +1 -1
- package/build-types/dataviews-layouts/grid/composite-grid.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
- package/build-types/field-types/array.d.ts +9 -2
- package/build-types/field-types/array.d.ts.map +1 -1
- package/build-types/field-types/boolean.d.ts +9 -2
- package/build-types/field-types/boolean.d.ts.map +1 -1
- package/build-types/field-types/color.d.ts +9 -2
- package/build-types/field-types/color.d.ts.map +1 -1
- package/build-types/field-types/date.d.ts +6 -4
- package/build-types/field-types/date.d.ts.map +1 -1
- package/build-types/field-types/datetime.d.ts +6 -4
- package/build-types/field-types/datetime.d.ts.map +1 -1
- package/build-types/field-types/email.d.ts +15 -2
- package/build-types/field-types/email.d.ts.map +1 -1
- package/build-types/field-types/index.d.ts.map +1 -1
- package/build-types/field-types/integer.d.ts +17 -4
- package/build-types/field-types/integer.d.ts.map +1 -1
- package/build-types/field-types/media.d.ts +1 -4
- package/build-types/field-types/media.d.ts.map +1 -1
- package/build-types/field-types/no-type.d.ts +6 -4
- package/build-types/field-types/no-type.d.ts.map +1 -1
- package/build-types/field-types/number.d.ts +17 -4
- package/build-types/field-types/number.d.ts.map +1 -1
- package/build-types/field-types/password.d.ts +12 -4
- package/build-types/field-types/password.d.ts.map +1 -1
- package/build-types/field-types/telephone.d.ts +12 -4
- package/build-types/field-types/telephone.d.ts.map +1 -1
- package/build-types/field-types/text.d.ts +12 -4
- package/build-types/field-types/text.d.ts.map +1 -1
- package/build-types/field-types/url.d.ts +12 -4
- package/build-types/field-types/url.d.ts.map +1 -1
- package/build-types/field-types/utils/get-is-valid.d.ts +7 -0
- package/build-types/field-types/utils/get-is-valid.d.ts.map +1 -0
- package/build-types/field-types/utils/is-valid-elements.d.ts +6 -0
- package/build-types/field-types/utils/is-valid-elements.d.ts.map +1 -0
- package/build-types/field-types/utils/is-valid-max-length.d.ts +6 -0
- package/build-types/field-types/utils/is-valid-max-length.d.ts.map +1 -0
- package/build-types/field-types/utils/is-valid-max.d.ts +6 -0
- package/build-types/field-types/utils/is-valid-max.d.ts.map +1 -0
- package/build-types/field-types/utils/is-valid-min-length.d.ts +6 -0
- package/build-types/field-types/utils/is-valid-min-length.d.ts.map +1 -0
- package/build-types/field-types/utils/is-valid-min.d.ts +6 -0
- package/build-types/field-types/utils/is-valid-min.d.ts.map +1 -0
- package/build-types/field-types/utils/is-valid-pattern.d.ts +6 -0
- package/build-types/field-types/utils/is-valid-pattern.d.ts.map +1 -0
- package/build-types/field-types/utils/is-valid-required-for-array.d.ts +6 -0
- package/build-types/field-types/utils/is-valid-required-for-array.d.ts.map +1 -0
- package/build-types/field-types/utils/is-valid-required-for-bool.d.ts +6 -0
- package/build-types/field-types/utils/is-valid-required-for-bool.d.ts.map +1 -0
- package/build-types/field-types/utils/is-valid-required.d.ts +6 -0
- package/build-types/field-types/utils/is-valid-required.d.ts.map +1 -0
- package/build-types/hooks/use-form-validity.d.ts.map +1 -1
- package/build-types/stories/dataform.story.d.ts +9 -1
- package/build-types/stories/dataform.story.d.ts.map +1 -1
- package/build-types/stories/dataviews-picker.story.d.ts.map +1 -1
- package/build-types/stories/dataviews.story.d.ts +27 -2
- package/build-types/stories/dataviews.story.d.ts.map +1 -1
- package/build-types/stories/field-types.story.d.ts +39 -2
- package/build-types/stories/field-types.story.d.ts.map +1 -1
- package/build-types/types/field-api.d.ts +72 -4
- package/build-types/types/field-api.d.ts.map +1 -1
- package/build-types/types/private.d.ts +13 -3
- package/build-types/types/private.d.ts.map +1 -1
- package/build-types/utils/filter-sort-and-paginate.d.ts.map +1 -1
- package/build-types/utils/operators.d.ts +16 -0
- package/build-types/utils/operators.d.ts.map +1 -0
- package/build-wp/index.js +1548 -1452
- package/package.json +17 -16
- package/src/components/dataviews/style.scss +3 -28
- package/src/components/dataviews-filters/filter.tsx +34 -321
- package/src/components/dataviews-filters/input-widget.tsx +7 -5
- package/src/components/dataviews-filters/use-filters.ts +6 -3
- package/src/components/dataviews-footer/style.scss +1 -7
- package/src/constants.ts +6 -140
- package/src/dataform-controls/number.tsx +3 -3
- package/src/dataform-controls/textarea.tsx +7 -1
- package/src/dataform-controls/utils/get-custom-validity.ts +10 -2
- package/src/dataform-controls/utils/validated-input.tsx +8 -2
- package/src/dataform-controls/utils/validated-number.tsx +3 -1
- package/src/dataform-layouts/panel/modal.tsx +14 -5
- package/src/dataviews-layouts/activity/style.scss +1 -1
- package/src/dataviews-layouts/grid/composite-grid.tsx +64 -57
- package/src/dataviews-layouts/grid/style.scss +3 -12
- package/src/dataviews-layouts/table/index.tsx +9 -3
- package/src/dataviews-layouts/table/style.scss +4 -15
- package/src/dataviews-layouts/utils/grid-items.scss +1 -9
- package/src/field-types/array.tsx +26 -19
- package/src/field-types/boolean.tsx +22 -15
- package/src/field-types/color.tsx +22 -15
- package/src/field-types/date.tsx +14 -11
- package/src/field-types/datetime.tsx +6 -4
- package/src/field-types/email.tsx +24 -15
- package/src/field-types/index.tsx +12 -14
- package/src/field-types/integer.tsx +83 -17
- package/src/field-types/media.tsx +4 -4
- package/src/field-types/no-type.tsx +9 -6
- package/src/field-types/number.tsx +82 -16
- package/src/field-types/password.tsx +12 -4
- package/src/field-types/telephone.tsx +12 -4
- package/src/field-types/text.tsx +12 -4
- package/src/field-types/url.tsx +12 -4
- package/src/field-types/utils/get-is-valid.ts +103 -0
- package/src/field-types/utils/is-valid-elements.ts +20 -0
- package/src/field-types/utils/is-valid-max-length.ts +23 -0
- package/src/field-types/utils/is-valid-max.ts +23 -0
- package/src/field-types/utils/is-valid-min-length.ts +23 -0
- package/src/field-types/utils/is-valid-min.ts +23 -0
- package/src/field-types/utils/is-valid-pattern.ts +29 -0
- package/src/field-types/utils/is-valid-required-for-array.ts +18 -0
- package/src/field-types/utils/is-valid-required-for-bool.ts +13 -0
- package/src/field-types/utils/is-valid-required.ts +13 -0
- package/src/hooks/use-form-validity.ts +78 -156
- package/src/stories/dataform.story.tsx +126 -30
- package/src/stories/dataviews-picker.story.tsx +27 -17
- package/src/stories/dataviews.story.tsx +79 -30
- package/src/stories/field-types.story.tsx +86 -4
- package/src/test/filter-sort-and-paginate.js +2 -1
- package/src/test/normalize-fields.ts +87 -11
- package/src/test/use-form-validity.ts +796 -31
- package/src/types/field-api.ts +90 -4
- package/src/types/private.ts +26 -8
- package/src/utils/filter-sort-and-paginate.ts +5 -0
- package/src/utils/operators.tsx +448 -0
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/field-types/date.tsx"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { dateI18n, getDate, getSettings } from '@wordpress/date';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tDataViewRenderFieldProps,\n\tField,\n\tFormatDate,\n\tSortDirection,\n} from '../types';\nimport type { FieldType } from '../types/private';\nimport RenderFromElements from './utils/render-from-elements';\nimport {\n\tOPERATOR_ON,\n\tOPERATOR_NOT_ON,\n\tOPERATOR_BEFORE,\n\tOPERATOR_AFTER,\n\tOPERATOR_BEFORE_INC,\n\tOPERATOR_AFTER_INC,\n\tOPERATOR_IN_THE_PAST,\n\tOPERATOR_OVER,\n\tOPERATOR_BETWEEN,\n\tDAYS_OF_WEEK,\n} from '../constants';\n\nfunction getFormat< Item >( field: Field< Item > ): Required< FormatDate > {\n\treturn {\n\t\tdate:\n\t\t\
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAA+C;AAY/C,kCAA+B;AAC/B,uBAWO;
|
|
6
|
-
"names": ["RenderFromElements"]
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { dateI18n, getDate, getSettings } from '@wordpress/date';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tDataViewRenderFieldProps,\n\tField,\n\tFormatDate,\n\tSortDirection,\n} from '../types';\nimport type { FieldType } from '../types/private';\nimport RenderFromElements from './utils/render-from-elements';\nimport isValidElements from './utils/is-valid-elements';\nimport {\n\tOPERATOR_ON,\n\tOPERATOR_NOT_ON,\n\tOPERATOR_BEFORE,\n\tOPERATOR_AFTER,\n\tOPERATOR_BEFORE_INC,\n\tOPERATOR_AFTER_INC,\n\tOPERATOR_IN_THE_PAST,\n\tOPERATOR_OVER,\n\tOPERATOR_BETWEEN,\n\tDAYS_OF_WEEK,\n} from '../constants';\nimport isValidRequired from './utils/is-valid-required';\n\nfunction getFormat< Item >( field: Field< Item > ): Required< FormatDate > {\n\tconst fieldFormat = field.format as FormatDate | undefined;\n\treturn {\n\t\tdate:\n\t\t\tfieldFormat?.date !== undefined &&\n\t\t\ttypeof fieldFormat.date === 'string'\n\t\t\t\t? fieldFormat.date\n\t\t\t\t: getSettings().formats.date,\n\t\tweekStartsOn:\n\t\t\tfieldFormat?.weekStartsOn !== undefined &&\n\t\t\tDAYS_OF_WEEK.includes( fieldFormat?.weekStartsOn )\n\t\t\t\t? fieldFormat.weekStartsOn\n\t\t\t\t: getSettings().l10n.startOfWeek,\n\t};\n}\n\nfunction render( { item, field }: DataViewRenderFieldProps< any > ) {\n\tif ( field.hasElements ) {\n\t\treturn <RenderFromElements item={ item } field={ field } />;\n\t}\n\n\tconst value = field.getValue( { item } );\n\tif ( ! value ) {\n\t\treturn '';\n\t}\n\n\t// If the field type is date, we've already normalized the format,\n\t// and so it's safe to tell TypeScript to trust us (\"as Required<Format>\").\n\t//\n\t// There're no runtime paths where this render function is called with a non-date field,\n\t// but TypeScript is unable to infer this, hence the type assertion.\n\tlet format: Required< FormatDate >;\n\tif ( field.type !== 'date' ) {\n\t\tformat = getFormat( {} as Field< any > );\n\t} else {\n\t\tformat = field.format as Required< FormatDate >;\n\t}\n\n\treturn dateI18n( format.date, getDate( value ) );\n}\n\nconst sort = ( a: any, b: any, direction: SortDirection ) => {\n\tconst timeA = new Date( a ).getTime();\n\tconst timeB = new Date( b ).getTime();\n\n\treturn direction === 'asc' ? timeA - timeB : timeB - timeA;\n};\n\nexport default {\n\ttype: 'date',\n\trender,\n\tEdit: 'date',\n\tsort,\n\tenableSorting: true,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [\n\t\tOPERATOR_ON,\n\t\tOPERATOR_NOT_ON,\n\t\tOPERATOR_BEFORE,\n\t\tOPERATOR_AFTER,\n\t\tOPERATOR_BEFORE_INC,\n\t\tOPERATOR_AFTER_INC,\n\t\tOPERATOR_IN_THE_PAST,\n\t\tOPERATOR_OVER,\n\t\tOPERATOR_BETWEEN,\n\t],\n\tvalidOperators: [\n\t\tOPERATOR_ON,\n\t\tOPERATOR_NOT_ON,\n\t\tOPERATOR_BEFORE,\n\t\tOPERATOR_AFTER,\n\t\tOPERATOR_BEFORE_INC,\n\t\tOPERATOR_AFTER_INC,\n\t\tOPERATOR_IN_THE_PAST,\n\t\tOPERATOR_OVER,\n\t\tOPERATOR_BETWEEN,\n\t],\n\tgetFormat,\n\tvalidate: {\n\t\trequired: isValidRequired,\n\t\telements: isValidElements,\n\t},\n} satisfies FieldType< any >;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAA+C;AAY/C,kCAA+B;AAC/B,+BAA4B;AAC5B,uBAWO;AACP,+BAA4B;AAoBnB;AAlBT,SAAS,UAAmB,OAA+C;AAC1E,QAAM,cAAc,MAAM;AAC1B,SAAO;AAAA,IACN,MACC,aAAa,SAAS,UACtB,OAAO,YAAY,SAAS,WACzB,YAAY,WACZ,yBAAY,EAAE,QAAQ;AAAA,IAC1B,cACC,aAAa,iBAAiB,UAC9B,8BAAa,SAAU,aAAa,YAAa,IAC9C,YAAY,mBACZ,yBAAY,EAAE,KAAK;AAAA,EACxB;AACD;AAEA,SAAS,OAAQ,EAAE,MAAM,MAAM,GAAqC;AACnE,MAAK,MAAM,aAAc;AACxB,WAAO,4CAAC,4BAAAA,SAAA,EAAmB,MAAc,OAAgB;AAAA,EAC1D;AAEA,QAAM,QAAQ,MAAM,SAAU,EAAE,KAAK,CAAE;AACvC,MAAK,CAAE,OAAQ;AACd,WAAO;AAAA,EACR;AAOA,MAAI;AACJ,MAAK,MAAM,SAAS,QAAS;AAC5B,aAAS,UAAW,CAAC,CAAkB;AAAA,EACxC,OAAO;AACN,aAAS,MAAM;AAAA,EAChB;AAEA,aAAO,sBAAU,OAAO,UAAM,qBAAS,KAAM,CAAE;AAChD;AAEA,IAAM,OAAO,CAAE,GAAQ,GAAQ,cAA8B;AAC5D,QAAM,QAAQ,IAAI,KAAM,CAAE,EAAE,QAAQ;AACpC,QAAM,QAAQ,IAAI,KAAM,CAAE,EAAE,QAAQ;AAEpC,SAAO,cAAc,QAAQ,QAAQ,QAAQ,QAAQ;AACtD;AAEA,IAAO,eAAQ;AAAA,EACd,MAAM;AAAA,EACN;AAAA,EACA,MAAM;AAAA,EACN;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,gBAAgB;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA;AAAA,EACA,UAAU;AAAA,IACT,UAAU,yBAAAC;AAAA,IACV,UAAU,yBAAAC;AAAA,EACX;AACD;",
|
|
6
|
+
"names": ["RenderFromElements", "isValidRequired", "isValidElements"]
|
|
7
7
|
}
|
|
@@ -35,7 +35,9 @@ __export(datetime_exports, {
|
|
|
35
35
|
module.exports = __toCommonJS(datetime_exports);
|
|
36
36
|
var import_render_from_elements = __toESM(require("./utils/render-from-elements"));
|
|
37
37
|
var import_parse_date_time = __toESM(require("./utils/parse-date-time"));
|
|
38
|
+
var import_is_valid_elements = __toESM(require("./utils/is-valid-elements"));
|
|
38
39
|
var import_constants = require("../constants");
|
|
40
|
+
var import_is_valid_required = __toESM(require("./utils/is-valid-required"));
|
|
39
41
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
40
42
|
function render({ item, field }) {
|
|
41
43
|
if (field.elements) {
|
|
@@ -62,10 +64,6 @@ var datetime_default = {
|
|
|
62
64
|
render,
|
|
63
65
|
Edit: "datetime",
|
|
64
66
|
sort,
|
|
65
|
-
isValid: {
|
|
66
|
-
elements: true,
|
|
67
|
-
custom: () => null
|
|
68
|
-
},
|
|
69
67
|
enableSorting: true,
|
|
70
68
|
enableGlobalSearch: false,
|
|
71
69
|
defaultOperators: [
|
|
@@ -88,6 +86,10 @@ var datetime_default = {
|
|
|
88
86
|
import_constants.OPERATOR_IN_THE_PAST,
|
|
89
87
|
import_constants.OPERATOR_OVER
|
|
90
88
|
],
|
|
91
|
-
getFormat: () => ({})
|
|
89
|
+
getFormat: () => ({}),
|
|
90
|
+
validate: {
|
|
91
|
+
required: import_is_valid_required.default,
|
|
92
|
+
elements: import_is_valid_elements.default
|
|
93
|
+
}
|
|
92
94
|
};
|
|
93
95
|
//# sourceMappingURL=datetime.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/field-types/datetime.tsx"],
|
|
4
|
-
"sourcesContent": ["/**\n * Internal dependencies\n */\nimport type { DataViewRenderFieldProps, SortDirection } from '../types';\nimport type { FieldType } from '../types/private';\nimport RenderFromElements from './utils/render-from-elements';\nimport parseDateTime from './utils/parse-date-time';\nimport {\n\tOPERATOR_ON,\n\tOPERATOR_NOT_ON,\n\tOPERATOR_BEFORE,\n\tOPERATOR_AFTER,\n\tOPERATOR_BEFORE_INC,\n\tOPERATOR_AFTER_INC,\n\tOPERATOR_IN_THE_PAST,\n\tOPERATOR_OVER,\n} from '../constants';\n\nfunction render( { item, field }: DataViewRenderFieldProps< any > ) {\n\tif ( field.elements ) {\n\t\treturn <RenderFromElements item={ item } field={ field } />;\n\t}\n\n\tconst value = field.getValue( { item } );\n\tif ( [ '', undefined, null ].includes( value ) ) {\n\t\treturn null;\n\t}\n\n\ttry {\n\t\tconst dateValue = parseDateTime( value );\n\t\treturn dateValue?.toLocaleString();\n\t} catch ( error ) {\n\t\treturn null;\n\t}\n}\n\nconst sort = ( a: any, b: any, direction: SortDirection ) => {\n\tconst timeA = new Date( a ).getTime();\n\tconst timeB = new Date( b ).getTime();\n\n\treturn direction === 'asc' ? timeA - timeB : timeB - timeA;\n};\n\nexport default {\n\ttype: 'datetime',\n\trender,\n\tEdit: 'datetime',\n\tsort,\n\
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,kCAA+B;AAC/B,6BAA0B;AAC1B,uBASO;
|
|
6
|
-
"names": ["RenderFromElements", "parseDateTime"]
|
|
4
|
+
"sourcesContent": ["/**\n * Internal dependencies\n */\nimport type { DataViewRenderFieldProps, SortDirection } from '../types';\nimport type { FieldType } from '../types/private';\nimport RenderFromElements from './utils/render-from-elements';\nimport parseDateTime from './utils/parse-date-time';\nimport isValidElements from './utils/is-valid-elements';\nimport {\n\tOPERATOR_ON,\n\tOPERATOR_NOT_ON,\n\tOPERATOR_BEFORE,\n\tOPERATOR_AFTER,\n\tOPERATOR_BEFORE_INC,\n\tOPERATOR_AFTER_INC,\n\tOPERATOR_IN_THE_PAST,\n\tOPERATOR_OVER,\n} from '../constants';\nimport isValidRequired from './utils/is-valid-required';\n\nfunction render( { item, field }: DataViewRenderFieldProps< any > ) {\n\tif ( field.elements ) {\n\t\treturn <RenderFromElements item={ item } field={ field } />;\n\t}\n\n\tconst value = field.getValue( { item } );\n\tif ( [ '', undefined, null ].includes( value ) ) {\n\t\treturn null;\n\t}\n\n\ttry {\n\t\tconst dateValue = parseDateTime( value );\n\t\treturn dateValue?.toLocaleString();\n\t} catch ( error ) {\n\t\treturn null;\n\t}\n}\n\nconst sort = ( a: any, b: any, direction: SortDirection ) => {\n\tconst timeA = new Date( a ).getTime();\n\tconst timeB = new Date( b ).getTime();\n\n\treturn direction === 'asc' ? timeA - timeB : timeB - timeA;\n};\n\nexport default {\n\ttype: 'datetime',\n\trender,\n\tEdit: 'datetime',\n\tsort,\n\tenableSorting: true,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [\n\t\tOPERATOR_ON,\n\t\tOPERATOR_NOT_ON,\n\t\tOPERATOR_BEFORE,\n\t\tOPERATOR_AFTER,\n\t\tOPERATOR_BEFORE_INC,\n\t\tOPERATOR_AFTER_INC,\n\t\tOPERATOR_IN_THE_PAST,\n\t\tOPERATOR_OVER,\n\t],\n\tvalidOperators: [\n\t\tOPERATOR_ON,\n\t\tOPERATOR_NOT_ON,\n\t\tOPERATOR_BEFORE,\n\t\tOPERATOR_AFTER,\n\t\tOPERATOR_BEFORE_INC,\n\t\tOPERATOR_AFTER_INC,\n\t\tOPERATOR_IN_THE_PAST,\n\t\tOPERATOR_OVER,\n\t],\n\tgetFormat: () => ( {} ),\n\tvalidate: {\n\t\trequired: isValidRequired,\n\t\telements: isValidElements,\n\t},\n} satisfies FieldType< any >;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,kCAA+B;AAC/B,6BAA0B;AAC1B,+BAA4B;AAC5B,uBASO;AACP,+BAA4B;AAInB;AAFT,SAAS,OAAQ,EAAE,MAAM,MAAM,GAAqC;AACnE,MAAK,MAAM,UAAW;AACrB,WAAO,4CAAC,4BAAAA,SAAA,EAAmB,MAAc,OAAgB;AAAA,EAC1D;AAEA,QAAM,QAAQ,MAAM,SAAU,EAAE,KAAK,CAAE;AACvC,MAAK,CAAE,IAAI,QAAW,IAAK,EAAE,SAAU,KAAM,GAAI;AAChD,WAAO;AAAA,EACR;AAEA,MAAI;AACH,UAAM,gBAAY,uBAAAC,SAAe,KAAM;AACvC,WAAO,WAAW,eAAe;AAAA,EAClC,SAAU,OAAQ;AACjB,WAAO;AAAA,EACR;AACD;AAEA,IAAM,OAAO,CAAE,GAAQ,GAAQ,cAA8B;AAC5D,QAAM,QAAQ,IAAI,KAAM,CAAE,EAAE,QAAQ;AACpC,QAAM,QAAQ,IAAI,KAAM,CAAE,EAAE,QAAQ;AAEpC,SAAO,cAAc,QAAQ,QAAQ,QAAQ,QAAQ;AACtD;AAEA,IAAO,mBAAQ;AAAA,EACd,MAAM;AAAA,EACN;AAAA,EACA,MAAM;AAAA,EACN;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,gBAAgB;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,WAAW,OAAQ,CAAC;AAAA,EACpB,UAAU;AAAA,IACT,UAAU,yBAAAC;AAAA,IACV,UAAU,yBAAAC;AAAA,EACX;AACD;",
|
|
6
|
+
"names": ["RenderFromElements", "parseDateTime", "isValidRequired", "isValidElements"]
|
|
7
7
|
}
|
|
@@ -37,23 +37,24 @@ var import_i18n = require("@wordpress/i18n");
|
|
|
37
37
|
var import_constants = require("../constants");
|
|
38
38
|
var import_render_default = __toESM(require("./utils/render-default"));
|
|
39
39
|
var import_sort_text = __toESM(require("./utils/sort-text"));
|
|
40
|
+
var import_is_valid_required = __toESM(require("./utils/is-valid-required"));
|
|
41
|
+
var import_is_valid_min_length = __toESM(require("./utils/is-valid-min-length"));
|
|
42
|
+
var import_is_valid_max_length = __toESM(require("./utils/is-valid-max-length"));
|
|
43
|
+
var import_is_valid_pattern = __toESM(require("./utils/is-valid-pattern"));
|
|
44
|
+
var import_is_valid_elements = __toESM(require("./utils/is-valid-elements"));
|
|
40
45
|
var emailRegex = /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if (![void 0, "", null].includes(value) && !emailRegex.test(value)) {
|
|
46
|
-
return (0, import_i18n.__)("Value must be a valid email address.");
|
|
47
|
-
}
|
|
48
|
-
return null;
|
|
46
|
+
function isValidCustom(item, field) {
|
|
47
|
+
const value = field.getValue({ item });
|
|
48
|
+
if (![void 0, "", null].includes(value) && !emailRegex.test(value)) {
|
|
49
|
+
return (0, import_i18n.__)("Value must be a valid email address.");
|
|
49
50
|
}
|
|
50
|
-
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
51
53
|
var email_default = {
|
|
52
54
|
type: "email",
|
|
53
55
|
render: import_render_default.default,
|
|
54
56
|
Edit: "email",
|
|
55
57
|
sort: import_sort_text.default,
|
|
56
|
-
isValid,
|
|
57
58
|
enableSorting: true,
|
|
58
59
|
enableGlobalSearch: false,
|
|
59
60
|
defaultOperators: [import_constants.OPERATOR_IS_ANY, import_constants.OPERATOR_IS_NONE],
|
|
@@ -69,6 +70,14 @@ var email_default = {
|
|
|
69
70
|
import_constants.OPERATOR_IS_ALL,
|
|
70
71
|
import_constants.OPERATOR_IS_NOT_ALL
|
|
71
72
|
],
|
|
72
|
-
getFormat: () => ({})
|
|
73
|
+
getFormat: () => ({}),
|
|
74
|
+
validate: {
|
|
75
|
+
required: import_is_valid_required.default,
|
|
76
|
+
pattern: import_is_valid_pattern.default,
|
|
77
|
+
minLength: import_is_valid_min_length.default,
|
|
78
|
+
maxLength: import_is_valid_max_length.default,
|
|
79
|
+
elements: import_is_valid_elements.default,
|
|
80
|
+
custom: isValidCustom
|
|
81
|
+
}
|
|
73
82
|
};
|
|
74
83
|
//# sourceMappingURL=email.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/field-types/email.tsx"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AAOnB,uBAUO;AACP,4BAAmB;AACnB,uBAAiB;
|
|
6
|
-
"names": ["render", "sort"]
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { NormalizedField } from '../types';\nimport type { FieldType } from '../types/private';\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_CONTAINS,\n\tOPERATOR_NOT_CONTAINS,\n\tOPERATOR_STARTS_WITH,\n} from '../constants';\nimport render from './utils/render-default';\nimport sort from './utils/sort-text';\nimport isValidRequired from './utils/is-valid-required';\nimport isValidMinLength from './utils/is-valid-min-length';\nimport isValidMaxLength from './utils/is-valid-max-length';\nimport isValidPattern from './utils/is-valid-pattern';\nimport isValidElements from './utils/is-valid-elements';\n\n// Email validation regex based on HTML5 spec\n// https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address\nconst emailRegex =\n\t/^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\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! emailRegex.test( value )\n\t) {\n\t\treturn __( 'Value must be a valid email address.' );\n\t}\n\n\treturn null;\n}\n\nexport default {\n\ttype: 'email',\n\trender,\n\tEdit: 'email',\n\tsort,\n\tenableSorting: true,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [ OPERATOR_IS_ANY, OPERATOR_IS_NONE ],\n\tvalidOperators: [\n\t\tOPERATOR_IS,\n\t\tOPERATOR_IS_NOT,\n\t\tOPERATOR_CONTAINS,\n\t\tOPERATOR_NOT_CONTAINS,\n\t\tOPERATOR_STARTS_WITH,\n\t\t// Multiple selection\n\t\tOPERATOR_IS_ANY,\n\t\tOPERATOR_IS_NONE,\n\t\tOPERATOR_IS_ALL,\n\t\tOPERATOR_IS_NOT_ALL,\n\t],\n\tgetFormat: () => ( {} ),\n\tvalidate: {\n\t\trequired: isValidRequired,\n\t\tpattern: isValidPattern,\n\t\tminLength: isValidMinLength,\n\t\tmaxLength: isValidMaxLength,\n\t\telements: isValidElements,\n\t\tcustom: isValidCustom,\n\t},\n} satisfies FieldType< any >;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AAOnB,uBAUO;AACP,4BAAmB;AACnB,uBAAiB;AACjB,+BAA4B;AAC5B,iCAA6B;AAC7B,iCAA6B;AAC7B,8BAA2B;AAC3B,+BAA4B;AAI5B,IAAM,aACL;AAED,SAAS,cAAuB,MAAY,OAAiC;AAC5E,QAAM,QAAQ,MAAM,SAAU,EAAE,KAAK,CAAE;AAEvC,MACC,CAAE,CAAE,QAAW,IAAI,IAAK,EAAE,SAAU,KAAM,KAC1C,CAAE,WAAW,KAAM,KAAM,GACxB;AACD,eAAO,gBAAI,sCAAuC;AAAA,EACnD;AAEA,SAAO;AACR;AAEA,IAAO,gBAAQ;AAAA,EACd,MAAM;AAAA,EACN,8BAAAA;AAAA,EACA,MAAM;AAAA,EACN,uBAAAC;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB,CAAE,kCAAiB,iCAAiB;AAAA,EACtD,gBAAgB;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,WAAW,OAAQ,CAAC;AAAA,EACpB,UAAU;AAAA,IACT,UAAU,yBAAAC;AAAA,IACV,SAAS,wBAAAC;AAAA,IACT,WAAW,2BAAAC;AAAA,IACX,WAAW,2BAAAC;AAAA,IACX,UAAU,yBAAAC;AAAA,IACV,QAAQ;AAAA,EACT;AACD;",
|
|
6
|
+
"names": ["render", "sort", "isValidRequired", "isValidPattern", "isValidMinLength", "isValidMaxLength", "isValidElements"]
|
|
7
7
|
}
|
|
@@ -52,6 +52,7 @@ var import_telephone = __toESM(require("./telephone"));
|
|
|
52
52
|
var import_color = __toESM(require("./color"));
|
|
53
53
|
var import_url = __toESM(require("./url"));
|
|
54
54
|
var import_no_type = __toESM(require("./no-type"));
|
|
55
|
+
var import_get_is_valid = __toESM(require("./utils/get-is-valid"));
|
|
55
56
|
function getFieldTypeByName(type) {
|
|
56
57
|
const found = [
|
|
57
58
|
import_email.default,
|
|
@@ -75,12 +76,12 @@ function getFieldTypeByName(type) {
|
|
|
75
76
|
}
|
|
76
77
|
function normalizeFields(fields) {
|
|
77
78
|
return fields.map((field) => {
|
|
78
|
-
const
|
|
79
|
+
const fieldType = getFieldTypeByName(field.type);
|
|
79
80
|
const getValue = field.getValue || (0, import_get_value_from_id.default)(field.id);
|
|
80
81
|
const sort = function(a, b, direction) {
|
|
81
82
|
const aValue = getValue({ item: a });
|
|
82
83
|
const bValue = getValue({ item: b });
|
|
83
|
-
return field.sort ? field.sort(aValue, bValue, direction) :
|
|
84
|
+
return field.sort ? field.sort(aValue, bValue, direction) : fieldType.sort(aValue, bValue, direction);
|
|
84
85
|
};
|
|
85
86
|
return {
|
|
86
87
|
id: field.id,
|
|
@@ -97,22 +98,19 @@ function normalizeFields(fields) {
|
|
|
97
98
|
enableHiding: field.enableHiding ?? true,
|
|
98
99
|
readOnly: field.readOnly ?? false,
|
|
99
100
|
// The type provides defaults for the following props
|
|
100
|
-
type:
|
|
101
|
-
render: field.render ??
|
|
102
|
-
Edit: (0, import_dataform_controls.getControl)(field,
|
|
101
|
+
type: fieldType.type,
|
|
102
|
+
render: field.render ?? fieldType.render,
|
|
103
|
+
Edit: (0, import_dataform_controls.getControl)(field, fieldType.Edit),
|
|
103
104
|
sort,
|
|
104
|
-
enableSorting: field.enableSorting ??
|
|
105
|
-
enableGlobalSearch: field.enableGlobalSearch ??
|
|
106
|
-
isValid:
|
|
107
|
-
...defaultProps.isValid,
|
|
108
|
-
...field.isValid
|
|
109
|
-
},
|
|
105
|
+
enableSorting: field.enableSorting ?? fieldType.enableSorting,
|
|
106
|
+
enableGlobalSearch: field.enableGlobalSearch ?? fieldType.enableGlobalSearch,
|
|
107
|
+
isValid: (0, import_get_is_valid.default)(field, fieldType),
|
|
110
108
|
filterBy: (0, import_get_filter_by.default)(
|
|
111
109
|
field,
|
|
112
|
-
|
|
113
|
-
|
|
110
|
+
fieldType.defaultOperators,
|
|
111
|
+
fieldType.validOperators
|
|
114
112
|
),
|
|
115
|
-
format:
|
|
113
|
+
format: fieldType.getFormat(field)
|
|
116
114
|
};
|
|
117
115
|
});
|
|
118
116
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/field-types/index.tsx"],
|
|
4
|
-
"sourcesContent": ["/**\n * Internal dependencies\n */\nimport type {\n\tField,\n\tFieldTypeName,\n\tNormalizedField,\n\tSortDirection,\n} from '../types';\nimport type { FieldType } from '../types/private';\nimport { getControl } from '../dataform-controls';\nimport getFilterBy from './utils/get-filter-by';\nimport getValueFromId from './utils/get-value-from-id';\nimport hasElements from './utils/has-elements';\nimport setValueFromId from './utils/set-value-from-id';\nimport { default as email } from './email';\nimport { default as integer } from './integer';\nimport { default as number } from './number';\nimport { default as text } from './text';\nimport { default as datetime } from './datetime';\nimport { default as date } from './date';\nimport { default as boolean } from './boolean';\nimport { default as media } from './media';\nimport { default as array } from './array';\nimport { default as password } from './password';\nimport { default as telephone } from './telephone';\nimport { default as color } from './color';\nimport { default as url } from './url';\nimport { default as noType } from './no-type';\n\n/**\n *\n * @param {FieldTypeName} type The field type definition to get.\n *\n * @return A field type definition.\n */\nfunction getFieldTypeByName< Item >( type?: FieldTypeName ): FieldType< Item > {\n\tconst found = [\n\t\temail,\n\t\tinteger,\n\t\tnumber,\n\t\ttext,\n\t\tdatetime,\n\t\tdate,\n\t\tboolean,\n\t\tmedia,\n\t\tarray,\n\t\tpassword,\n\t\ttelephone,\n\t\tcolor,\n\t\turl,\n\t].find( ( fieldType ) => fieldType?.type === type );\n\n\tif ( !! found ) {\n\t\treturn found;\n\t}\n\n\t// This is a fallback for fields that don't provide a type.\n\t// It can be removed when/if the field.type becomes mandatory.\n\treturn noType;\n}\n\n/**\n * Apply default values and normalize the fields config.\n *\n * @param fields Fields config.\n * @return Normalized fields config.\n */\nexport default function normalizeFields< Item >(\n\tfields: Field< Item >[]\n): NormalizedField< Item >[] {\n\treturn fields.map( ( field ) => {\n\t\tconst
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,+BAA2B;AAC3B,2BAAwB;AACxB,+BAA2B;AAC3B,0BAAwB;AACxB,+BAA2B;AAC3B,mBAAiC;AACjC,qBAAmC;AACnC,oBAAkC;AAClC,kBAAgC;AAChC,sBAAoC;AACpC,kBAAgC;AAChC,qBAAmC;AACnC,mBAAiC;AACjC,mBAAiC;AACjC,sBAAoC;AACpC,uBAAqC;AACrC,mBAAiC;AACjC,iBAA+B;AAC/B,qBAAkC;
|
|
6
|
-
"names": ["email", "integer", "number", "text", "datetime", "date", "boolean", "media", "array", "password", "telephone", "color", "url", "noType", "getValueFromId", "setValueFromId", "hasElements", "getFilterBy"]
|
|
4
|
+
"sourcesContent": ["/**\n * Internal dependencies\n */\nimport type {\n\tField,\n\tFieldTypeName,\n\tNormalizedField,\n\tSortDirection,\n} from '../types';\nimport type { FieldType } from '../types/private';\nimport { getControl } from '../dataform-controls';\nimport getFilterBy from './utils/get-filter-by';\nimport getValueFromId from './utils/get-value-from-id';\nimport hasElements from './utils/has-elements';\nimport setValueFromId from './utils/set-value-from-id';\nimport { default as email } from './email';\nimport { default as integer } from './integer';\nimport { default as number } from './number';\nimport { default as text } from './text';\nimport { default as datetime } from './datetime';\nimport { default as date } from './date';\nimport { default as boolean } from './boolean';\nimport { default as media } from './media';\nimport { default as array } from './array';\nimport { default as password } from './password';\nimport { default as telephone } from './telephone';\nimport { default as color } from './color';\nimport { default as url } from './url';\nimport { default as noType } from './no-type';\nimport getIsValid from './utils/get-is-valid';\n\n/**\n *\n * @param {FieldTypeName} type The field type definition to get.\n *\n * @return A field type definition.\n */\nfunction getFieldTypeByName< Item >( type?: FieldTypeName ): FieldType< Item > {\n\tconst found = [\n\t\temail,\n\t\tinteger,\n\t\tnumber,\n\t\ttext,\n\t\tdatetime,\n\t\tdate,\n\t\tboolean,\n\t\tmedia,\n\t\tarray,\n\t\tpassword,\n\t\ttelephone,\n\t\tcolor,\n\t\turl,\n\t].find( ( fieldType ) => fieldType?.type === type );\n\n\tif ( !! found ) {\n\t\treturn found;\n\t}\n\n\t// This is a fallback for fields that don't provide a type.\n\t// It can be removed when/if the field.type becomes mandatory.\n\treturn noType;\n}\n\n/**\n * Apply default values and normalize the fields config.\n *\n * @param fields Fields config.\n * @return Normalized fields config.\n */\nexport default function normalizeFields< Item >(\n\tfields: Field< Item >[]\n): NormalizedField< Item >[] {\n\treturn fields.map( ( field ) => {\n\t\tconst fieldType = getFieldTypeByName< Item >( field.type );\n\n\t\tconst getValue = field.getValue || getValueFromId( field.id );\n\t\tconst sort = function ( a: any, b: any, direction: SortDirection ) {\n\t\t\tconst aValue = getValue( { item: a } );\n\t\t\tconst bValue = getValue( { item: b } );\n\t\t\treturn field.sort\n\t\t\t\t? field.sort( aValue, bValue, direction )\n\t\t\t\t: fieldType.sort( aValue, bValue, direction );\n\t\t};\n\n\t\treturn {\n\t\t\tid: field.id,\n\t\t\tlabel: field.label || field.id,\n\t\t\theader: field.header || field.label || field.id,\n\t\t\tdescription: field.description,\n\t\t\tplaceholder: field.placeholder,\n\t\t\tgetValue,\n\t\t\tsetValue: field.setValue || setValueFromId( field.id ),\n\t\t\telements: field.elements,\n\t\t\tgetElements: field.getElements,\n\t\t\thasElements: hasElements( field ),\n\t\t\tisVisible: field.isVisible,\n\t\t\tenableHiding: field.enableHiding ?? true,\n\t\t\treadOnly: field.readOnly ?? false,\n\t\t\t// The type provides defaults for the following props\n\t\t\ttype: fieldType.type,\n\t\t\trender: field.render ?? fieldType.render,\n\t\t\tEdit: getControl( field, fieldType.Edit ),\n\t\t\tsort,\n\t\t\tenableSorting: field.enableSorting ?? fieldType.enableSorting,\n\t\t\tenableGlobalSearch:\n\t\t\t\tfield.enableGlobalSearch ?? fieldType.enableGlobalSearch,\n\t\t\tisValid: getIsValid( field, fieldType ),\n\t\t\tfilterBy: getFilterBy(\n\t\t\t\tfield,\n\t\t\t\tfieldType.defaultOperators,\n\t\t\t\tfieldType.validOperators\n\t\t\t),\n\t\t\tformat: fieldType.getFormat( field ),\n\t\t};\n\t} );\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,+BAA2B;AAC3B,2BAAwB;AACxB,+BAA2B;AAC3B,0BAAwB;AACxB,+BAA2B;AAC3B,mBAAiC;AACjC,qBAAmC;AACnC,oBAAkC;AAClC,kBAAgC;AAChC,sBAAoC;AACpC,kBAAgC;AAChC,qBAAmC;AACnC,mBAAiC;AACjC,mBAAiC;AACjC,sBAAoC;AACpC,uBAAqC;AACrC,mBAAiC;AACjC,iBAA+B;AAC/B,qBAAkC;AAClC,0BAAuB;AAQvB,SAAS,mBAA4B,MAA0C;AAC9E,QAAM,QAAQ;AAAA,IACb,aAAAA;AAAA,IACA,eAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,aAAAC;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,EACD,EAAE,KAAM,CAAE,cAAe,WAAW,SAAS,IAAK;AAElD,MAAK,CAAC,CAAE,OAAQ;AACf,WAAO;AAAA,EACR;AAIA,SAAO,eAAAC;AACR;AAQe,SAAR,gBACN,QAC4B;AAC5B,SAAO,OAAO,IAAK,CAAE,UAAW;AAC/B,UAAM,YAAY,mBAA4B,MAAM,IAAK;AAEzD,UAAM,WAAW,MAAM,gBAAY,yBAAAC,SAAgB,MAAM,EAAG;AAC5D,UAAM,OAAO,SAAW,GAAQ,GAAQ,WAA2B;AAClE,YAAM,SAAS,SAAU,EAAE,MAAM,EAAE,CAAE;AACrC,YAAM,SAAS,SAAU,EAAE,MAAM,EAAE,CAAE;AACrC,aAAO,MAAM,OACV,MAAM,KAAM,QAAQ,QAAQ,SAAU,IACtC,UAAU,KAAM,QAAQ,QAAQ,SAAU;AAAA,IAC9C;AAEA,WAAO;AAAA,MACN,IAAI,MAAM;AAAA,MACV,OAAO,MAAM,SAAS,MAAM;AAAA,MAC5B,QAAQ,MAAM,UAAU,MAAM,SAAS,MAAM;AAAA,MAC7C,aAAa,MAAM;AAAA,MACnB,aAAa,MAAM;AAAA,MACnB;AAAA,MACA,UAAU,MAAM,gBAAY,yBAAAC,SAAgB,MAAM,EAAG;AAAA,MACrD,UAAU,MAAM;AAAA,MAChB,aAAa,MAAM;AAAA,MACnB,iBAAa,oBAAAC,SAAa,KAAM;AAAA,MAChC,WAAW,MAAM;AAAA,MACjB,cAAc,MAAM,gBAAgB;AAAA,MACpC,UAAU,MAAM,YAAY;AAAA;AAAA,MAE5B,MAAM,UAAU;AAAA,MAChB,QAAQ,MAAM,UAAU,UAAU;AAAA,MAClC,UAAM,qCAAY,OAAO,UAAU,IAAK;AAAA,MACxC;AAAA,MACA,eAAe,MAAM,iBAAiB,UAAU;AAAA,MAChD,oBACC,MAAM,sBAAsB,UAAU;AAAA,MACvC,aAAS,oBAAAC,SAAY,OAAO,SAAU;AAAA,MACtC,cAAU,qBAAAC;AAAA,QACT;AAAA,QACA,UAAU;AAAA,QACV,UAAU;AAAA,MACX;AAAA,MACA,QAAQ,UAAU,UAAW,KAAM;AAAA,IACpC;AAAA,EACD,CAAE;AACH;",
|
|
6
|
+
"names": ["email", "integer", "number", "text", "datetime", "date", "boolean", "media", "array", "password", "telephone", "color", "url", "noType", "getValueFromId", "setValueFromId", "hasElements", "getIsValid", "getFilterBy"]
|
|
7
7
|
}
|
|
@@ -30,29 +30,67 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// packages/dataviews/src/field-types/integer.tsx
|
|
31
31
|
var integer_exports = {};
|
|
32
32
|
__export(integer_exports, {
|
|
33
|
-
default: () => integer_default
|
|
33
|
+
default: () => integer_default,
|
|
34
|
+
formatInteger: () => formatInteger
|
|
34
35
|
});
|
|
35
36
|
module.exports = __toCommonJS(integer_exports);
|
|
36
37
|
var import_i18n = require("@wordpress/i18n");
|
|
37
38
|
var import_constants = require("../constants");
|
|
38
|
-
var
|
|
39
|
+
var import_render_from_elements = __toESM(require("./utils/render-from-elements"));
|
|
39
40
|
var import_sort_number = __toESM(require("./utils/sort-number"));
|
|
40
|
-
var
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
var import_is_valid_required = __toESM(require("./utils/is-valid-required"));
|
|
42
|
+
var import_is_valid_min = __toESM(require("./utils/is-valid-min"));
|
|
43
|
+
var import_is_valid_max = __toESM(require("./utils/is-valid-max"));
|
|
44
|
+
var import_is_valid_elements = __toESM(require("./utils/is-valid-elements"));
|
|
45
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
46
|
+
function getFormat(field) {
|
|
47
|
+
const fieldFormat = field.format;
|
|
48
|
+
return {
|
|
49
|
+
separatorThousand: fieldFormat?.separatorThousand !== void 0 && typeof fieldFormat.separatorThousand === "string" ? fieldFormat.separatorThousand : ","
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function formatInteger(value, format) {
|
|
53
|
+
if (!Number.isFinite(value)) {
|
|
54
|
+
return String(value);
|
|
48
55
|
}
|
|
49
|
-
};
|
|
56
|
+
const { separatorThousand } = format;
|
|
57
|
+
const integerValue = Math.trunc(value);
|
|
58
|
+
if (!separatorThousand) {
|
|
59
|
+
return String(integerValue);
|
|
60
|
+
}
|
|
61
|
+
return String(integerValue).replace(
|
|
62
|
+
/\B(?=(\d{3})+(?!\d))/g,
|
|
63
|
+
separatorThousand
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
function render({ item, field }) {
|
|
67
|
+
if (field.hasElements) {
|
|
68
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_render_from_elements.default, { item, field });
|
|
69
|
+
}
|
|
70
|
+
const value = field.getValue({ item });
|
|
71
|
+
if ([null, void 0].includes(value)) {
|
|
72
|
+
return "";
|
|
73
|
+
}
|
|
74
|
+
let format;
|
|
75
|
+
if (field.type !== "integer") {
|
|
76
|
+
format = getFormat(field);
|
|
77
|
+
} else {
|
|
78
|
+
format = field.format;
|
|
79
|
+
}
|
|
80
|
+
return formatInteger(Number(value), format);
|
|
81
|
+
}
|
|
82
|
+
function isValidCustom(item, field) {
|
|
83
|
+
const value = field.getValue({ item });
|
|
84
|
+
if (![void 0, "", null].includes(value) && !Number.isInteger(value)) {
|
|
85
|
+
return (0, import_i18n.__)("Value must be an integer.");
|
|
86
|
+
}
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
50
89
|
var integer_default = {
|
|
51
90
|
type: "integer",
|
|
52
|
-
render
|
|
91
|
+
render,
|
|
53
92
|
Edit: "integer",
|
|
54
93
|
sort: import_sort_number.default,
|
|
55
|
-
isValid,
|
|
56
94
|
enableSorting: true,
|
|
57
95
|
enableGlobalSearch: false,
|
|
58
96
|
defaultOperators: [
|
|
@@ -79,6 +117,17 @@ var integer_default = {
|
|
|
79
117
|
import_constants.OPERATOR_IS_ALL,
|
|
80
118
|
import_constants.OPERATOR_IS_NOT_ALL
|
|
81
119
|
],
|
|
82
|
-
getFormat
|
|
120
|
+
getFormat,
|
|
121
|
+
validate: {
|
|
122
|
+
required: import_is_valid_required.default,
|
|
123
|
+
min: import_is_valid_min.default,
|
|
124
|
+
max: import_is_valid_max.default,
|
|
125
|
+
elements: import_is_valid_elements.default,
|
|
126
|
+
custom: isValidCustom
|
|
127
|
+
}
|
|
83
128
|
};
|
|
129
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
130
|
+
0 && (module.exports = {
|
|
131
|
+
formatInteger
|
|
132
|
+
});
|
|
84
133
|
//# sourceMappingURL=integer.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/field-types/integer.tsx"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;
|
|
6
|
-
"names": ["
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tDataViewRenderFieldProps,\n\tField,\n\tFormatInteger,\n\tNormalizedField,\n} from '../types';\nimport type { FieldType } from '../types/private';\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_LESS_THAN,\n\tOPERATOR_GREATER_THAN,\n\tOPERATOR_LESS_THAN_OR_EQUAL,\n\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n\tOPERATOR_BETWEEN,\n} from '../constants';\nimport RenderFromElements from './utils/render-from-elements';\nimport sort from './utils/sort-number';\nimport isValidRequired from './utils/is-valid-required';\nimport isValidMin from './utils/is-valid-min';\nimport isValidMax from './utils/is-valid-max';\nimport isValidElements from './utils/is-valid-elements';\n\nfunction getFormat< Item >( field: Field< Item > ): Required< FormatInteger > {\n\tconst fieldFormat = field.format as FormatInteger | undefined;\n\treturn {\n\t\tseparatorThousand:\n\t\t\tfieldFormat?.separatorThousand !== undefined &&\n\t\t\ttypeof fieldFormat.separatorThousand === 'string'\n\t\t\t\t? fieldFormat.separatorThousand\n\t\t\t\t: ',',\n\t};\n}\n\nexport function formatInteger(\n\tvalue: number,\n\tformat: Required< FormatInteger >\n): string {\n\tif ( ! Number.isFinite( value ) ) {\n\t\treturn String( value );\n\t}\n\tconst { separatorThousand } = format;\n\tconst integerValue = Math.trunc( value );\n\tif ( ! separatorThousand ) {\n\t\treturn String( integerValue );\n\t}\n\t// Add thousand separators.\n\treturn String( integerValue ).replace(\n\t\t/\\B(?=(\\d{3})+(?!\\d))/g,\n\t\tseparatorThousand\n\t);\n}\n\nfunction render( { item, field }: DataViewRenderFieldProps< any > ) {\n\tif ( field.hasElements ) {\n\t\treturn <RenderFromElements item={ item } field={ field } />;\n\t}\n\n\tconst value = field.getValue( { item } );\n\tif ( [ null, undefined ].includes( value ) ) {\n\t\treturn '';\n\t}\n\n\t// If the field type is integer, we've already normalized the format,\n\t// and so it's safe to tell TypeScript to trust us (\"as Required<FormatInteger>\").\n\t//\n\t// There're no runtime paths where this render function is called with a non-integer field,\n\t// but TypeScript is unable to infer this, hence the type assertion.\n\tlet format: Required< FormatInteger >;\n\tif ( field.type !== 'integer' ) {\n\t\tformat = getFormat( field as Field< any > );\n\t} else {\n\t\tformat = field.format as Required< FormatInteger >;\n\t}\n\n\treturn formatInteger( Number( value ), format );\n}\n\nfunction isValidCustom< Item >( item: Item, field: NormalizedField< Item > ) {\n\tconst value = field.getValue( { item } );\n\tif (\n\t\t! [ undefined, '', null ].includes( value ) &&\n\t\t! Number.isInteger( value )\n\t) {\n\t\treturn __( 'Value must be an integer.' );\n\t}\n\treturn null;\n}\n\nexport default {\n\ttype: 'integer',\n\trender,\n\tEdit: 'integer',\n\tsort,\n\tenableSorting: true,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [\n\t\tOPERATOR_IS,\n\t\tOPERATOR_IS_NOT,\n\t\tOPERATOR_LESS_THAN,\n\t\tOPERATOR_GREATER_THAN,\n\t\tOPERATOR_LESS_THAN_OR_EQUAL,\n\t\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\t\tOPERATOR_BETWEEN,\n\t],\n\tvalidOperators: [\n\t\t// Single-selection\n\t\tOPERATOR_IS,\n\t\tOPERATOR_IS_NOT,\n\t\tOPERATOR_LESS_THAN,\n\t\tOPERATOR_GREATER_THAN,\n\t\tOPERATOR_LESS_THAN_OR_EQUAL,\n\t\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\t\tOPERATOR_BETWEEN,\n\t\t// Multiple-selection\n\t\tOPERATOR_IS_ANY,\n\t\tOPERATOR_IS_NONE,\n\t\tOPERATOR_IS_ALL,\n\t\tOPERATOR_IS_NOT_ALL,\n\t],\n\tgetFormat,\n\tvalidate: {\n\t\trequired: isValidRequired,\n\t\tmin: isValidMin,\n\t\tmax: isValidMax,\n\t\telements: isValidElements,\n\t\tcustom: isValidCustom,\n\t},\n} satisfies FieldType< any >;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AAYnB,uBAYO;AACP,kCAA+B;AAC/B,yBAAiB;AACjB,+BAA4B;AAC5B,0BAAuB;AACvB,0BAAuB;AACvB,+BAA4B;AAkCnB;AAhCT,SAAS,UAAmB,OAAkD;AAC7E,QAAM,cAAc,MAAM;AAC1B,SAAO;AAAA,IACN,mBACC,aAAa,sBAAsB,UACnC,OAAO,YAAY,sBAAsB,WACtC,YAAY,oBACZ;AAAA,EACL;AACD;AAEO,SAAS,cACf,OACA,QACS;AACT,MAAK,CAAE,OAAO,SAAU,KAAM,GAAI;AACjC,WAAO,OAAQ,KAAM;AAAA,EACtB;AACA,QAAM,EAAE,kBAAkB,IAAI;AAC9B,QAAM,eAAe,KAAK,MAAO,KAAM;AACvC,MAAK,CAAE,mBAAoB;AAC1B,WAAO,OAAQ,YAAa;AAAA,EAC7B;AAEA,SAAO,OAAQ,YAAa,EAAE;AAAA,IAC7B;AAAA,IACA;AAAA,EACD;AACD;AAEA,SAAS,OAAQ,EAAE,MAAM,MAAM,GAAqC;AACnE,MAAK,MAAM,aAAc;AACxB,WAAO,4CAAC,4BAAAA,SAAA,EAAmB,MAAc,OAAgB;AAAA,EAC1D;AAEA,QAAM,QAAQ,MAAM,SAAU,EAAE,KAAK,CAAE;AACvC,MAAK,CAAE,MAAM,MAAU,EAAE,SAAU,KAAM,GAAI;AAC5C,WAAO;AAAA,EACR;AAOA,MAAI;AACJ,MAAK,MAAM,SAAS,WAAY;AAC/B,aAAS,UAAW,KAAsB;AAAA,EAC3C,OAAO;AACN,aAAS,MAAM;AAAA,EAChB;AAEA,SAAO,cAAe,OAAQ,KAAM,GAAG,MAAO;AAC/C;AAEA,SAAS,cAAuB,MAAY,OAAiC;AAC5E,QAAM,QAAQ,MAAM,SAAU,EAAE,KAAK,CAAE;AACvC,MACC,CAAE,CAAE,QAAW,IAAI,IAAK,EAAE,SAAU,KAAM,KAC1C,CAAE,OAAO,UAAW,KAAM,GACzB;AACD,eAAO,gBAAI,2BAA4B;AAAA,EACxC;AACA,SAAO;AACR;AAEA,IAAO,kBAAQ;AAAA,EACd,MAAM;AAAA,EACN;AAAA,EACA,MAAM;AAAA,EACN,yBAAAC;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,gBAAgB;AAAA;AAAA,IAEf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA;AAAA,EACA,UAAU;AAAA,IACT,UAAU,yBAAAC;AAAA,IACV,KAAK,oBAAAC;AAAA,IACL,KAAK,oBAAAC;AAAA,IACL,UAAU,yBAAAC;AAAA,IACV,QAAQ;AAAA,EACT;AACD;",
|
|
6
|
+
"names": ["RenderFromElements", "sort", "isValidRequired", "isValidMin", "isValidMax", "isValidElements"]
|
|
7
7
|
}
|
|
@@ -28,14 +28,14 @@ var media_default = {
|
|
|
28
28
|
render: () => null,
|
|
29
29
|
Edit: null,
|
|
30
30
|
sort: () => 0,
|
|
31
|
-
isValid: {
|
|
32
|
-
elements: true,
|
|
33
|
-
custom: () => null
|
|
34
|
-
},
|
|
35
31
|
enableSorting: false,
|
|
36
32
|
enableGlobalSearch: false,
|
|
37
33
|
defaultOperators: [],
|
|
38
34
|
validOperators: [],
|
|
39
|
-
getFormat: () => ({})
|
|
35
|
+
getFormat: () => ({}),
|
|
36
|
+
// cannot validate any constraint, so
|
|
37
|
+
// the only available validation for the field author
|
|
38
|
+
// would be providing a custom validator.
|
|
39
|
+
validate: {}
|
|
40
40
|
};
|
|
41
41
|
//# sourceMappingURL=media.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/field-types/media.tsx"],
|
|
4
|
-
"sourcesContent": ["/**\n * Internal dependencies\n */\nimport type { FieldType } from '../types/private';\n\nexport default {\n\ttype: 'media',\n\trender: () => null,\n\tEdit: null,\n\tsort: () => 0,\n\
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,IAAO,gBAAQ;AAAA,EACd,MAAM;AAAA,EACN,QAAQ,MAAM;AAAA,EACd,MAAM;AAAA,EACN,MAAM,MAAM;AAAA,EACZ,
|
|
4
|
+
"sourcesContent": ["/**\n * Internal dependencies\n */\nimport type { FieldType } from '../types/private';\n\nexport default {\n\ttype: 'media',\n\trender: () => null,\n\tEdit: null,\n\tsort: () => 0,\n\tenableSorting: false,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [],\n\tvalidOperators: [],\n\tgetFormat: () => ( {} ),\n\t// cannot validate any constraint, so\n\t// the only available validation for the field author\n\t// would be providing a custom validator.\n\tvalidate: {},\n} satisfies FieldType< any >;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,IAAO,gBAAQ;AAAA,EACd,MAAM;AAAA,EACN,QAAQ,MAAM;AAAA,EACd,MAAM;AAAA,EACN,MAAM,MAAM;AAAA,EACZ,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB,CAAC;AAAA,EACnB,gBAAgB,CAAC;AAAA,EACjB,WAAW,OAAQ,CAAC;AAAA;AAAA;AAAA;AAAA,EAIpB,UAAU,CAAC;AACZ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -34,9 +34,12 @@ __export(no_type_exports, {
|
|
|
34
34
|
});
|
|
35
35
|
module.exports = __toCommonJS(no_type_exports);
|
|
36
36
|
var import_constants = require("../constants");
|
|
37
|
+
var import_operators = require("../utils/operators");
|
|
37
38
|
var import_render_default = __toESM(require("./utils/render-default"));
|
|
38
39
|
var import_sort_text = __toESM(require("./utils/sort-text"));
|
|
39
40
|
var import_sort_number = __toESM(require("./utils/sort-number"));
|
|
41
|
+
var import_is_valid_required = __toESM(require("./utils/is-valid-required"));
|
|
42
|
+
var import_is_valid_elements = __toESM(require("./utils/is-valid-elements"));
|
|
40
43
|
var sort = (a, b, direction) => {
|
|
41
44
|
if (typeof a === "number" && typeof b === "number") {
|
|
42
45
|
return (0, import_sort_number.default)(a, b, direction);
|
|
@@ -48,14 +51,14 @@ var no_type_default = {
|
|
|
48
51
|
render: import_render_default.default,
|
|
49
52
|
Edit: null,
|
|
50
53
|
sort,
|
|
51
|
-
isValid: {
|
|
52
|
-
elements: true,
|
|
53
|
-
custom: () => null
|
|
54
|
-
},
|
|
55
54
|
enableSorting: true,
|
|
56
55
|
enableGlobalSearch: false,
|
|
57
56
|
defaultOperators: [import_constants.OPERATOR_IS, import_constants.OPERATOR_IS_NOT],
|
|
58
|
-
validOperators:
|
|
59
|
-
getFormat: () => ({})
|
|
57
|
+
validOperators: (0, import_operators.getAllOperatorNames)(),
|
|
58
|
+
getFormat: () => ({}),
|
|
59
|
+
validate: {
|
|
60
|
+
required: import_is_valid_required.default,
|
|
61
|
+
elements: import_is_valid_elements.default
|
|
62
|
+
}
|
|
60
63
|
};
|
|
61
64
|
//# sourceMappingURL=no-type.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/field-types/no-type.tsx"],
|
|
4
|
-
"sourcesContent": ["/**\n * Internal dependencies\n */\nimport type { SortDirection } from '../types';\nimport type { FieldType } from '../types/private';\nimport {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,
|
|
6
|
-
"names": ["sortNumber", "sortText", "render"]
|
|
4
|
+
"sourcesContent": ["/**\n * Internal dependencies\n */\nimport type { SortDirection } from '../types';\nimport type { FieldType } from '../types/private';\nimport { OPERATOR_IS, OPERATOR_IS_NOT } from '../constants';\nimport { getAllOperatorNames } from '../utils/operators';\nimport render from './utils/render-default';\nimport sortText from './utils/sort-text';\nimport sortNumber from './utils/sort-number';\nimport isValidRequired from './utils/is-valid-required';\nimport isValidElements from './utils/is-valid-elements';\n\nconst sort = ( a: any, b: any, direction: SortDirection ) => {\n\tif ( typeof a === 'number' && typeof b === 'number' ) {\n\t\treturn sortNumber( a, b, direction );\n\t}\n\n\treturn sortText( a, b, direction );\n};\n\nexport default {\n\t// type: no type for this one\n\trender,\n\tEdit: null,\n\tsort,\n\tenableSorting: true,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [ OPERATOR_IS, OPERATOR_IS_NOT ],\n\tvalidOperators: getAllOperatorNames(),\n\tgetFormat: () => ( {} ),\n\tvalidate: {\n\t\trequired: isValidRequired,\n\t\telements: isValidElements,\n\t},\n} satisfies FieldType< any >;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,uBAA6C;AAC7C,uBAAoC;AACpC,4BAAmB;AACnB,uBAAqB;AACrB,yBAAuB;AACvB,+BAA4B;AAC5B,+BAA4B;AAE5B,IAAM,OAAO,CAAE,GAAQ,GAAQ,cAA8B;AAC5D,MAAK,OAAO,MAAM,YAAY,OAAO,MAAM,UAAW;AACrD,eAAO,mBAAAA,SAAY,GAAG,GAAG,SAAU;AAAA,EACpC;AAEA,aAAO,iBAAAC,SAAU,GAAG,GAAG,SAAU;AAClC;AAEA,IAAO,kBAAQ;AAAA;AAAA,EAEd,8BAAAC;AAAA,EACA,MAAM;AAAA,EACN;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB,CAAE,8BAAa,gCAAgB;AAAA,EACjD,oBAAgB,sCAAoB;AAAA,EACpC,WAAW,OAAQ,CAAC;AAAA,EACpB,UAAU;AAAA,IACT,UAAU,yBAAAC;AAAA,IACV,UAAU,yBAAAC;AAAA,EACX;AACD;",
|
|
6
|
+
"names": ["sortNumber", "sortText", "render", "isValidRequired", "isValidElements"]
|
|
7
7
|
}
|
|
@@ -30,14 +30,37 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// packages/dataviews/src/field-types/number.tsx
|
|
31
31
|
var number_exports = {};
|
|
32
32
|
__export(number_exports, {
|
|
33
|
-
default: () => number_default
|
|
33
|
+
default: () => number_default,
|
|
34
|
+
formatNumber: () => formatNumber
|
|
34
35
|
});
|
|
35
36
|
module.exports = __toCommonJS(number_exports);
|
|
36
37
|
var import_i18n = require("@wordpress/i18n");
|
|
37
38
|
var import_constants = require("../constants");
|
|
38
39
|
var import_render_from_elements = __toESM(require("./utils/render-from-elements"));
|
|
39
40
|
var import_sort_number = __toESM(require("./utils/sort-number"));
|
|
41
|
+
var import_is_valid_required = __toESM(require("./utils/is-valid-required"));
|
|
42
|
+
var import_is_valid_min = __toESM(require("./utils/is-valid-min"));
|
|
43
|
+
var import_is_valid_max = __toESM(require("./utils/is-valid-max"));
|
|
44
|
+
var import_is_valid_elements = __toESM(require("./utils/is-valid-elements"));
|
|
40
45
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
46
|
+
function getFormat(field) {
|
|
47
|
+
const fieldFormat = field.format;
|
|
48
|
+
return {
|
|
49
|
+
separatorThousand: fieldFormat?.separatorThousand !== void 0 && typeof fieldFormat.separatorThousand === "string" ? fieldFormat.separatorThousand : ",",
|
|
50
|
+
separatorDecimal: fieldFormat?.separatorDecimal !== void 0 && typeof fieldFormat.separatorDecimal === "string" ? fieldFormat.separatorDecimal : ".",
|
|
51
|
+
decimals: fieldFormat?.decimals !== void 0 && typeof fieldFormat.decimals === "number" && fieldFormat.decimals >= 0 && fieldFormat.decimals <= 100 && Number.isInteger(fieldFormat.decimals) ? fieldFormat.decimals : 2
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function formatNumber(value, format) {
|
|
55
|
+
if (!Number.isFinite(value)) {
|
|
56
|
+
return String(value);
|
|
57
|
+
}
|
|
58
|
+
const { separatorThousand, separatorDecimal, decimals } = format;
|
|
59
|
+
const fixedValue = value.toFixed(decimals);
|
|
60
|
+
const [integerPart, decimalPart] = fixedValue.split(".");
|
|
61
|
+
const formattedInteger = separatorThousand ? integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, separatorThousand) : integerPart;
|
|
62
|
+
return decimals === 0 ? formattedInteger : formattedInteger + separatorDecimal + decimalPart;
|
|
63
|
+
}
|
|
41
64
|
function isEmpty(value) {
|
|
42
65
|
return value === "" || value === void 0 || value === null;
|
|
43
66
|
}
|
|
@@ -46,27 +69,29 @@ function render({ item, field }) {
|
|
|
46
69
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_render_from_elements.default, { item, field });
|
|
47
70
|
}
|
|
48
71
|
const value = field.getValue({ item });
|
|
49
|
-
if (
|
|
50
|
-
return
|
|
72
|
+
if ([null, void 0].includes(value)) {
|
|
73
|
+
return "";
|
|
51
74
|
}
|
|
52
|
-
|
|
75
|
+
let format;
|
|
76
|
+
if (field.type !== "number") {
|
|
77
|
+
format = getFormat(field);
|
|
78
|
+
} else {
|
|
79
|
+
format = field.format;
|
|
80
|
+
}
|
|
81
|
+
return formatNumber(Number(value), format);
|
|
53
82
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
if (!isEmpty(value) && !Number.isFinite(value)) {
|
|
59
|
-
return (0, import_i18n.__)("Value must be a number.");
|
|
60
|
-
}
|
|
61
|
-
return null;
|
|
83
|
+
function isValidCustom(item, field) {
|
|
84
|
+
const value = field.getValue({ item });
|
|
85
|
+
if (!isEmpty(value) && !Number.isFinite(value)) {
|
|
86
|
+
return (0, import_i18n.__)("Value must be a number.");
|
|
62
87
|
}
|
|
63
|
-
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
64
90
|
var number_default = {
|
|
65
91
|
type: "number",
|
|
66
92
|
render,
|
|
67
93
|
Edit: "number",
|
|
68
94
|
sort: import_sort_number.default,
|
|
69
|
-
isValid,
|
|
70
95
|
enableSorting: true,
|
|
71
96
|
enableGlobalSearch: false,
|
|
72
97
|
defaultOperators: [
|
|
@@ -93,6 +118,17 @@ var number_default = {
|
|
|
93
118
|
import_constants.OPERATOR_IS_ALL,
|
|
94
119
|
import_constants.OPERATOR_IS_NOT_ALL
|
|
95
120
|
],
|
|
96
|
-
getFormat
|
|
121
|
+
getFormat,
|
|
122
|
+
validate: {
|
|
123
|
+
required: import_is_valid_required.default,
|
|
124
|
+
min: import_is_valid_min.default,
|
|
125
|
+
max: import_is_valid_max.default,
|
|
126
|
+
elements: import_is_valid_elements.default,
|
|
127
|
+
custom: isValidCustom
|
|
128
|
+
}
|
|
97
129
|
};
|
|
130
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
131
|
+
0 && (module.exports = {
|
|
132
|
+
formatNumber
|
|
133
|
+
});
|
|
98
134
|
//# sourceMappingURL=number.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/field-types/number.tsx"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;
|
|
6
|
-
"names": ["RenderFromElements", "sort"]
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tDataViewRenderFieldProps,\n\tField,\n\tFormatNumber,\n\tNormalizedField,\n} from '../types';\nimport type { FieldType } from '../types/private';\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_LESS_THAN,\n\tOPERATOR_GREATER_THAN,\n\tOPERATOR_LESS_THAN_OR_EQUAL,\n\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n\tOPERATOR_BETWEEN,\n} from '../constants';\nimport RenderFromElements from './utils/render-from-elements';\nimport sort from './utils/sort-number';\nimport isValidRequired from './utils/is-valid-required';\nimport isValidMin from './utils/is-valid-min';\nimport isValidMax from './utils/is-valid-max';\nimport isValidElements from './utils/is-valid-elements';\n\nfunction getFormat< Item >( field: Field< Item > ): Required< FormatNumber > {\n\tconst fieldFormat = field.format as FormatNumber | undefined;\n\treturn {\n\t\tseparatorThousand:\n\t\t\tfieldFormat?.separatorThousand !== undefined &&\n\t\t\ttypeof fieldFormat.separatorThousand === 'string'\n\t\t\t\t? fieldFormat.separatorThousand\n\t\t\t\t: ',',\n\t\tseparatorDecimal:\n\t\t\tfieldFormat?.separatorDecimal !== undefined &&\n\t\t\ttypeof fieldFormat.separatorDecimal === 'string'\n\t\t\t\t? fieldFormat.separatorDecimal\n\t\t\t\t: '.',\n\t\tdecimals:\n\t\t\tfieldFormat?.decimals !== undefined &&\n\t\t\ttypeof fieldFormat.decimals === 'number' &&\n\t\t\tfieldFormat.decimals >= 0 &&\n\t\t\tfieldFormat.decimals <= 100 &&\n\t\t\tNumber.isInteger( fieldFormat.decimals )\n\t\t\t\t? fieldFormat.decimals\n\t\t\t\t: 2,\n\t};\n}\n\nexport function formatNumber(\n\tvalue: number,\n\tformat: Required< FormatNumber >\n): string {\n\tif ( ! Number.isFinite( value ) ) {\n\t\treturn String( value );\n\t}\n\tconst { separatorThousand, separatorDecimal, decimals } = format;\n\tconst fixedValue = value.toFixed( decimals );\n\tconst [ integerPart, decimalPart ] = fixedValue.split( '.' );\n\tconst formattedInteger = separatorThousand\n\t\t? integerPart.replace( /\\B(?=(\\d{3})+(?!\\d))/g, separatorThousand )\n\t\t: integerPart;\n\treturn decimals === 0\n\t\t? formattedInteger\n\t\t: formattedInteger + separatorDecimal + decimalPart;\n}\n\nfunction isEmpty( value: unknown ): value is '' | undefined | null {\n\treturn value === '' || value === undefined || value === null;\n}\n\nfunction render( { item, field }: DataViewRenderFieldProps< any > ) {\n\tif ( field.hasElements ) {\n\t\treturn <RenderFromElements item={ item } field={ field } />;\n\t}\n\n\tconst value = field.getValue( { item } );\n\tif ( [ null, undefined ].includes( value ) ) {\n\t\treturn '';\n\t}\n\n\t// If the field type is number, we've already normalized the format,\n\t// and so it's safe to tell TypeScript to trust us (\"as Required<FormatNumber>\").\n\t//\n\t// There're no runtime paths where this render function is called with a non-number field,\n\t// but TypeScript is unable to infer this, hence the type assertion.\n\tlet format: Required< FormatNumber >;\n\tif ( field.type !== 'number' ) {\n\t\tformat = getFormat( field as Field< any > );\n\t} else {\n\t\tformat = field.format as Required< FormatNumber >;\n\t}\n\n\treturn formatNumber( Number( value ), format );\n}\n\nfunction isValidCustom< Item >( item: Item, field: NormalizedField< Item > ) {\n\tconst value = field.getValue( { item } );\n\n\tif ( ! isEmpty( value ) && ! Number.isFinite( value ) ) {\n\t\treturn __( 'Value must be a number.' );\n\t}\n\n\treturn null;\n}\n\nexport default {\n\ttype: 'number',\n\trender,\n\tEdit: 'number',\n\tsort,\n\tenableSorting: true,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [\n\t\tOPERATOR_IS,\n\t\tOPERATOR_IS_NOT,\n\t\tOPERATOR_LESS_THAN,\n\t\tOPERATOR_GREATER_THAN,\n\t\tOPERATOR_LESS_THAN_OR_EQUAL,\n\t\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\t\tOPERATOR_BETWEEN,\n\t],\n\tvalidOperators: [\n\t\t// Single-selection\n\t\tOPERATOR_IS,\n\t\tOPERATOR_IS_NOT,\n\t\tOPERATOR_LESS_THAN,\n\t\tOPERATOR_GREATER_THAN,\n\t\tOPERATOR_LESS_THAN_OR_EQUAL,\n\t\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\t\tOPERATOR_BETWEEN,\n\t\t// Multiple-selection\n\t\tOPERATOR_IS_ANY,\n\t\tOPERATOR_IS_NONE,\n\t\tOPERATOR_IS_ALL,\n\t\tOPERATOR_IS_NOT_ALL,\n\t],\n\tgetFormat,\n\tvalidate: {\n\t\trequired: isValidRequired,\n\t\tmin: isValidMin,\n\t\tmax: isValidMax,\n\t\telements: isValidElements,\n\t\tcustom: isValidCustom,\n\t},\n} satisfies FieldType< any >;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AAYnB,uBAYO;AACP,kCAA+B;AAC/B,yBAAiB;AACjB,+BAA4B;AAC5B,0BAAuB;AACvB,0BAAuB;AACvB,+BAA4B;AAkDnB;AAhDT,SAAS,UAAmB,OAAiD;AAC5E,QAAM,cAAc,MAAM;AAC1B,SAAO;AAAA,IACN,mBACC,aAAa,sBAAsB,UACnC,OAAO,YAAY,sBAAsB,WACtC,YAAY,oBACZ;AAAA,IACJ,kBACC,aAAa,qBAAqB,UAClC,OAAO,YAAY,qBAAqB,WACrC,YAAY,mBACZ;AAAA,IACJ,UACC,aAAa,aAAa,UAC1B,OAAO,YAAY,aAAa,YAChC,YAAY,YAAY,KACxB,YAAY,YAAY,OACxB,OAAO,UAAW,YAAY,QAAS,IACpC,YAAY,WACZ;AAAA,EACL;AACD;AAEO,SAAS,aACf,OACA,QACS;AACT,MAAK,CAAE,OAAO,SAAU,KAAM,GAAI;AACjC,WAAO,OAAQ,KAAM;AAAA,EACtB;AACA,QAAM,EAAE,mBAAmB,kBAAkB,SAAS,IAAI;AAC1D,QAAM,aAAa,MAAM,QAAS,QAAS;AAC3C,QAAM,CAAE,aAAa,WAAY,IAAI,WAAW,MAAO,GAAI;AAC3D,QAAM,mBAAmB,oBACtB,YAAY,QAAS,yBAAyB,iBAAkB,IAChE;AACH,SAAO,aAAa,IACjB,mBACA,mBAAmB,mBAAmB;AAC1C;AAEA,SAAS,QAAS,OAAiD;AAClE,SAAO,UAAU,MAAM,UAAU,UAAa,UAAU;AACzD;AAEA,SAAS,OAAQ,EAAE,MAAM,MAAM,GAAqC;AACnE,MAAK,MAAM,aAAc;AACxB,WAAO,4CAAC,4BAAAA,SAAA,EAAmB,MAAc,OAAgB;AAAA,EAC1D;AAEA,QAAM,QAAQ,MAAM,SAAU,EAAE,KAAK,CAAE;AACvC,MAAK,CAAE,MAAM,MAAU,EAAE,SAAU,KAAM,GAAI;AAC5C,WAAO;AAAA,EACR;AAOA,MAAI;AACJ,MAAK,MAAM,SAAS,UAAW;AAC9B,aAAS,UAAW,KAAsB;AAAA,EAC3C,OAAO;AACN,aAAS,MAAM;AAAA,EAChB;AAEA,SAAO,aAAc,OAAQ,KAAM,GAAG,MAAO;AAC9C;AAEA,SAAS,cAAuB,MAAY,OAAiC;AAC5E,QAAM,QAAQ,MAAM,SAAU,EAAE,KAAK,CAAE;AAEvC,MAAK,CAAE,QAAS,KAAM,KAAK,CAAE,OAAO,SAAU,KAAM,GAAI;AACvD,eAAO,gBAAI,yBAA0B;AAAA,EACtC;AAEA,SAAO;AACR;AAEA,IAAO,iBAAQ;AAAA,EACd,MAAM;AAAA,EACN;AAAA,EACA,MAAM;AAAA,EACN,yBAAAC;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,gBAAgB;AAAA;AAAA,IAEf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA;AAAA,EACA,UAAU;AAAA,IACT,UAAU,yBAAAC;AAAA,IACV,KAAK,oBAAAC;AAAA,IACL,KAAK,oBAAAC;AAAA,IACL,UAAU,yBAAAC;AAAA,IACV,QAAQ;AAAA,EACT;AACD;",
|
|
6
|
+
"names": ["RenderFromElements", "sort", "isValidRequired", "isValidMin", "isValidMax", "isValidElements"]
|
|
7
7
|
}
|