@loadspark/core 0.0.1
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/LICENSE.md +71 -0
- package/README.md +628 -0
- package/dist/access/accessors.d.ts +22 -0
- package/dist/access/accessors.d.ts.map +1 -0
- package/dist/access/accessors.js +20 -0
- package/dist/access/accessors.js.map +1 -0
- package/dist/access/builders.d.ts +4 -0
- package/dist/access/builders.d.ts.map +1 -0
- package/dist/access/builders.js +26 -0
- package/dist/access/builders.js.map +1 -0
- package/dist/access/index.d.ts +4 -0
- package/dist/access/index.d.ts.map +1 -0
- package/dist/access/index.js +5 -0
- package/dist/access/index.js.map +1 -0
- package/dist/access/roles.d.ts +38 -0
- package/dist/access/roles.d.ts.map +1 -0
- package/dist/access/roles.js +33 -0
- package/dist/access/roles.js.map +1 -0
- package/dist/collections/users/access.d.ts +30 -0
- package/dist/collections/users/access.d.ts.map +1 -0
- package/dist/collections/users/access.js +96 -0
- package/dist/collections/users/access.js.map +1 -0
- package/dist/collections/users/config.d.ts +9 -0
- package/dist/collections/users/config.d.ts.map +1 -0
- package/dist/collections/users/config.js +55 -0
- package/dist/collections/users/config.js.map +1 -0
- package/dist/collections/users/fields.d.ts +4 -0
- package/dist/collections/users/fields.d.ts.map +1 -0
- package/dist/collections/users/fields.js +97 -0
- package/dist/collections/users/fields.js.map +1 -0
- package/dist/collections/users/hooks.d.ts +25 -0
- package/dist/collections/users/hooks.d.ts.map +1 -0
- package/dist/collections/users/hooks.js +50 -0
- package/dist/collections/users/hooks.js.map +1 -0
- package/dist/collections/users/types.d.ts +18 -0
- package/dist/collections/users/types.d.ts.map +1 -0
- package/dist/collections/users/types.js +8 -0
- package/dist/collections/users/types.js.map +1 -0
- package/dist/constants.d.ts +45 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +46 -0
- package/dist/constants.js.map +1 -0
- package/dist/exports/access/index.d.ts +2 -0
- package/dist/exports/access/index.d.ts.map +1 -0
- package/dist/exports/access/index.js +3 -0
- package/dist/exports/access/index.js.map +1 -0
- package/dist/exports/fields/AlertBox/client.d.ts +2 -0
- package/dist/exports/fields/AlertBox/client.d.ts.map +1 -0
- package/dist/exports/fields/AlertBox/client.js +3 -0
- package/dist/exports/fields/AlertBox/client.js.map +1 -0
- package/dist/exports/fields/AlertBox/index.d.ts +2 -0
- package/dist/exports/fields/AlertBox/index.d.ts.map +1 -0
- package/dist/exports/fields/AlertBox/index.js +3 -0
- package/dist/exports/fields/AlertBox/index.js.map +1 -0
- package/dist/exports/fields/ColourText/client.d.ts +2 -0
- package/dist/exports/fields/ColourText/client.d.ts.map +1 -0
- package/dist/exports/fields/ColourText/client.js +3 -0
- package/dist/exports/fields/ColourText/client.js.map +1 -0
- package/dist/exports/fields/ColourText/index.d.ts +2 -0
- package/dist/exports/fields/ColourText/index.d.ts.map +1 -0
- package/dist/exports/fields/ColourText/index.js +3 -0
- package/dist/exports/fields/ColourText/index.js.map +1 -0
- package/dist/exports/fields/Combo/client.d.ts +2 -0
- package/dist/exports/fields/Combo/client.d.ts.map +1 -0
- package/dist/exports/fields/Combo/client.js +3 -0
- package/dist/exports/fields/Combo/client.js.map +1 -0
- package/dist/exports/fields/Combo/index.d.ts +2 -0
- package/dist/exports/fields/Combo/index.d.ts.map +1 -0
- package/dist/exports/fields/Combo/index.js +3 -0
- package/dist/exports/fields/Combo/index.js.map +1 -0
- package/dist/exports/fields/Countries/index.d.ts +2 -0
- package/dist/exports/fields/Countries/index.d.ts.map +1 -0
- package/dist/exports/fields/Countries/index.js +3 -0
- package/dist/exports/fields/Countries/index.js.map +1 -0
- package/dist/exports/fields/Number/client.d.ts +2 -0
- package/dist/exports/fields/Number/client.d.ts.map +1 -0
- package/dist/exports/fields/Number/client.js +3 -0
- package/dist/exports/fields/Number/client.js.map +1 -0
- package/dist/exports/fields/Number/index.d.ts +2 -0
- package/dist/exports/fields/Number/index.d.ts.map +1 -0
- package/dist/exports/fields/Number/index.js +3 -0
- package/dist/exports/fields/Number/index.js.map +1 -0
- package/dist/exports/fields/OpeningHours/client.d.ts +2 -0
- package/dist/exports/fields/OpeningHours/client.d.ts.map +1 -0
- package/dist/exports/fields/OpeningHours/client.js +3 -0
- package/dist/exports/fields/OpeningHours/client.js.map +1 -0
- package/dist/exports/fields/OpeningHours/index.d.ts +2 -0
- package/dist/exports/fields/OpeningHours/index.d.ts.map +1 -0
- package/dist/exports/fields/OpeningHours/index.js +3 -0
- package/dist/exports/fields/OpeningHours/index.js.map +1 -0
- package/dist/exports/fields/Pattern/client.d.ts +2 -0
- package/dist/exports/fields/Pattern/client.d.ts.map +1 -0
- package/dist/exports/fields/Pattern/client.js +3 -0
- package/dist/exports/fields/Pattern/client.js.map +1 -0
- package/dist/exports/fields/Pattern/index.d.ts +2 -0
- package/dist/exports/fields/Pattern/index.d.ts.map +1 -0
- package/dist/exports/fields/Pattern/index.js +3 -0
- package/dist/exports/fields/Pattern/index.js.map +1 -0
- package/dist/exports/fields/Range/client.d.ts +2 -0
- package/dist/exports/fields/Range/client.d.ts.map +1 -0
- package/dist/exports/fields/Range/client.js +3 -0
- package/dist/exports/fields/Range/client.js.map +1 -0
- package/dist/exports/fields/Range/index.d.ts +2 -0
- package/dist/exports/fields/Range/index.d.ts.map +1 -0
- package/dist/exports/fields/Range/index.js +3 -0
- package/dist/exports/fields/Range/index.js.map +1 -0
- package/dist/exports/fields/Telephone/client.d.ts +2 -0
- package/dist/exports/fields/Telephone/client.d.ts.map +1 -0
- package/dist/exports/fields/Telephone/client.js +3 -0
- package/dist/exports/fields/Telephone/client.js.map +1 -0
- package/dist/exports/fields/Telephone/index.d.ts +2 -0
- package/dist/exports/fields/Telephone/index.d.ts.map +1 -0
- package/dist/exports/fields/Telephone/index.js +3 -0
- package/dist/exports/fields/Telephone/index.js.map +1 -0
- package/dist/exports/fields/client.d.ts +2 -0
- package/dist/exports/fields/client.d.ts.map +1 -0
- package/dist/exports/fields/client.js +2 -0
- package/dist/exports/fields/client.js.map +1 -0
- package/dist/exports/fields/index.d.ts +10 -0
- package/dist/exports/fields/index.d.ts.map +1 -0
- package/dist/exports/fields/index.js +11 -0
- package/dist/exports/fields/index.js.map +1 -0
- package/dist/exports/translations/index.d.ts +2 -0
- package/dist/exports/translations/index.d.ts.map +1 -0
- package/dist/exports/translations/index.js +3 -0
- package/dist/exports/translations/index.js.map +1 -0
- package/dist/exports/users/index.d.ts +4 -0
- package/dist/exports/users/index.d.ts.map +1 -0
- package/dist/exports/users/index.js +5 -0
- package/dist/exports/users/index.js.map +1 -0
- package/dist/exports/validations/index.d.ts +4 -0
- package/dist/exports/validations/index.d.ts.map +1 -0
- package/dist/exports/validations/index.js +5 -0
- package/dist/exports/validations/index.js.map +1 -0
- package/dist/fields/AlertBox/Component.d.ts +14 -0
- package/dist/fields/AlertBox/Component.d.ts.map +1 -0
- package/dist/fields/AlertBox/Component.js +32 -0
- package/dist/fields/AlertBox/Component.js.map +1 -0
- package/dist/fields/AlertBox/icons/AlertIcon.d.ts +3 -0
- package/dist/fields/AlertBox/icons/AlertIcon.d.ts.map +1 -0
- package/dist/fields/AlertBox/icons/AlertIcon.js +27 -0
- package/dist/fields/AlertBox/icons/AlertIcon.js.map +1 -0
- package/dist/fields/AlertBox/icons/ErrorIcon.d.ts +3 -0
- package/dist/fields/AlertBox/icons/ErrorIcon.d.ts.map +1 -0
- package/dist/fields/AlertBox/icons/ErrorIcon.js +35 -0
- package/dist/fields/AlertBox/icons/ErrorIcon.js.map +1 -0
- package/dist/fields/AlertBox/icons/InfoIcon.d.ts +3 -0
- package/dist/fields/AlertBox/icons/InfoIcon.d.ts.map +1 -0
- package/dist/fields/AlertBox/icons/InfoIcon.js +29 -0
- package/dist/fields/AlertBox/icons/InfoIcon.js.map +1 -0
- package/dist/fields/AlertBox/index.d.ts +76 -0
- package/dist/fields/AlertBox/index.d.ts.map +1 -0
- package/dist/fields/AlertBox/index.js +64 -0
- package/dist/fields/AlertBox/index.js.map +1 -0
- package/dist/fields/AlertBox/styles.css +42 -0
- package/dist/fields/ColourText/Component.d.ts +8 -0
- package/dist/fields/ColourText/Component.d.ts.map +1 -0
- package/dist/fields/ColourText/Component.js +102 -0
- package/dist/fields/ColourText/Component.js.map +1 -0
- package/dist/fields/ColourText/index.d.ts +35 -0
- package/dist/fields/ColourText/index.d.ts.map +1 -0
- package/dist/fields/ColourText/index.js +41 -0
- package/dist/fields/ColourText/index.js.map +1 -0
- package/dist/fields/ColourText/styles.css +21 -0
- package/dist/fields/ColourText/validate.d.ts +3 -0
- package/dist/fields/ColourText/validate.d.ts.map +1 -0
- package/dist/fields/ColourText/validate.js +30 -0
- package/dist/fields/ColourText/validate.js.map +1 -0
- package/dist/fields/Combo/Component.d.ts +16 -0
- package/dist/fields/Combo/Component.d.ts.map +1 -0
- package/dist/fields/Combo/Component.js +105 -0
- package/dist/fields/Combo/Component.js.map +1 -0
- package/dist/fields/Combo/beforeValidate.d.ts +4 -0
- package/dist/fields/Combo/beforeValidate.d.ts.map +1 -0
- package/dist/fields/Combo/beforeValidate.js +30 -0
- package/dist/fields/Combo/beforeValidate.js.map +1 -0
- package/dist/fields/Combo/index.d.ts +58 -0
- package/dist/fields/Combo/index.d.ts.map +1 -0
- package/dist/fields/Combo/index.js +74 -0
- package/dist/fields/Combo/index.js.map +1 -0
- package/dist/fields/Countries/index.d.ts +49 -0
- package/dist/fields/Countries/index.d.ts.map +1 -0
- package/dist/fields/Countries/index.js +59 -0
- package/dist/fields/Countries/index.js.map +1 -0
- package/dist/fields/Number/Component.d.ts +14 -0
- package/dist/fields/Number/Component.d.ts.map +1 -0
- package/dist/fields/Number/Component.js +108 -0
- package/dist/fields/Number/Component.js.map +1 -0
- package/dist/fields/Number/index.d.ts +64 -0
- package/dist/fields/Number/index.d.ts.map +1 -0
- package/dist/fields/Number/index.js +66 -0
- package/dist/fields/Number/index.js.map +1 -0
- package/dist/fields/Number/styles.css +0 -0
- package/dist/fields/OpeningHours/Component.d.ts +7 -0
- package/dist/fields/OpeningHours/Component.d.ts.map +1 -0
- package/dist/fields/OpeningHours/Component.js +161 -0
- package/dist/fields/OpeningHours/Component.js.map +1 -0
- package/dist/fields/OpeningHours/index.d.ts +51 -0
- package/dist/fields/OpeningHours/index.d.ts.map +1 -0
- package/dist/fields/OpeningHours/index.js +49 -0
- package/dist/fields/OpeningHours/index.js.map +1 -0
- package/dist/fields/OpeningHours/styles.css +124 -0
- package/dist/fields/OpeningHours/validate.d.ts +3 -0
- package/dist/fields/OpeningHours/validate.d.ts.map +1 -0
- package/dist/fields/OpeningHours/validate.js +39 -0
- package/dist/fields/OpeningHours/validate.js.map +1 -0
- package/dist/fields/Pattern/Component.d.ts +14 -0
- package/dist/fields/Pattern/Component.d.ts.map +1 -0
- package/dist/fields/Pattern/Component.js +88 -0
- package/dist/fields/Pattern/Component.js.map +1 -0
- package/dist/fields/Pattern/index.d.ts +59 -0
- package/dist/fields/Pattern/index.d.ts.map +1 -0
- package/dist/fields/Pattern/index.js +55 -0
- package/dist/fields/Pattern/index.js.map +1 -0
- package/dist/fields/Pattern/styles.css +34 -0
- package/dist/fields/Range/Component.d.ts +13 -0
- package/dist/fields/Range/Component.d.ts.map +1 -0
- package/dist/fields/Range/Component.js +138 -0
- package/dist/fields/Range/Component.js.map +1 -0
- package/dist/fields/Range/index.d.ts +82 -0
- package/dist/fields/Range/index.d.ts.map +1 -0
- package/dist/fields/Range/index.js +63 -0
- package/dist/fields/Range/index.js.map +1 -0
- package/dist/fields/Range/range.scss +138 -0
- package/dist/fields/Range/types.d.ts +5 -0
- package/dist/fields/Range/types.d.ts.map +1 -0
- package/dist/fields/Range/types.js +3 -0
- package/dist/fields/Range/types.js.map +1 -0
- package/dist/fields/Telephone/Component.d.ts +13 -0
- package/dist/fields/Telephone/Component.d.ts.map +1 -0
- package/dist/fields/Telephone/Component.js +92 -0
- package/dist/fields/Telephone/Component.js.map +1 -0
- package/dist/fields/Telephone/index.d.ts +99 -0
- package/dist/fields/Telephone/index.d.ts.map +1 -0
- package/dist/fields/Telephone/index.js +59 -0
- package/dist/fields/Telephone/index.js.map +1 -0
- package/dist/fields/Telephone/validate.d.ts +3 -0
- package/dist/fields/Telephone/validate.d.ts.map +1 -0
- package/dist/fields/Telephone/validate.js +13 -0
- package/dist/fields/Telephone/validate.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/translations/index.d.ts +6 -0
- package/dist/translations/index.d.ts.map +1 -0
- package/dist/translations/index.js +92 -0
- package/dist/translations/index.js.map +1 -0
- package/dist/translations/languages/ar.d.ts +576 -0
- package/dist/translations/languages/ar.d.ts.map +1 -0
- package/dist/translations/languages/ar.js +329 -0
- package/dist/translations/languages/ar.js.map +1 -0
- package/dist/translations/languages/az.d.ts +576 -0
- package/dist/translations/languages/az.d.ts.map +1 -0
- package/dist/translations/languages/az.js +329 -0
- package/dist/translations/languages/az.js.map +1 -0
- package/dist/translations/languages/bg.d.ts +576 -0
- package/dist/translations/languages/bg.d.ts.map +1 -0
- package/dist/translations/languages/bg.js +329 -0
- package/dist/translations/languages/bg.js.map +1 -0
- package/dist/translations/languages/bnBd.d.ts +576 -0
- package/dist/translations/languages/bnBd.d.ts.map +1 -0
- package/dist/translations/languages/bnBd.js +329 -0
- package/dist/translations/languages/bnBd.js.map +1 -0
- package/dist/translations/languages/bnIn.d.ts +576 -0
- package/dist/translations/languages/bnIn.d.ts.map +1 -0
- package/dist/translations/languages/bnIn.js +329 -0
- package/dist/translations/languages/bnIn.js.map +1 -0
- package/dist/translations/languages/ca.d.ts +576 -0
- package/dist/translations/languages/ca.d.ts.map +1 -0
- package/dist/translations/languages/ca.js +329 -0
- package/dist/translations/languages/ca.js.map +1 -0
- package/dist/translations/languages/cs.d.ts +576 -0
- package/dist/translations/languages/cs.d.ts.map +1 -0
- package/dist/translations/languages/cs.js +329 -0
- package/dist/translations/languages/cs.js.map +1 -0
- package/dist/translations/languages/da.d.ts +576 -0
- package/dist/translations/languages/da.d.ts.map +1 -0
- package/dist/translations/languages/da.js +329 -0
- package/dist/translations/languages/da.js.map +1 -0
- package/dist/translations/languages/de.d.ts +576 -0
- package/dist/translations/languages/de.d.ts.map +1 -0
- package/dist/translations/languages/de.js +329 -0
- package/dist/translations/languages/de.js.map +1 -0
- package/dist/translations/languages/en.d.ts +576 -0
- package/dist/translations/languages/en.d.ts.map +1 -0
- package/dist/translations/languages/en.js +329 -0
- package/dist/translations/languages/en.js.map +1 -0
- package/dist/translations/languages/es.d.ts +576 -0
- package/dist/translations/languages/es.d.ts.map +1 -0
- package/dist/translations/languages/es.js +329 -0
- package/dist/translations/languages/es.js.map +1 -0
- package/dist/translations/languages/et.d.ts +576 -0
- package/dist/translations/languages/et.d.ts.map +1 -0
- package/dist/translations/languages/et.js +329 -0
- package/dist/translations/languages/et.js.map +1 -0
- package/dist/translations/languages/fa.d.ts +576 -0
- package/dist/translations/languages/fa.d.ts.map +1 -0
- package/dist/translations/languages/fa.js +329 -0
- package/dist/translations/languages/fa.js.map +1 -0
- package/dist/translations/languages/fr.d.ts +576 -0
- package/dist/translations/languages/fr.d.ts.map +1 -0
- package/dist/translations/languages/fr.js +329 -0
- package/dist/translations/languages/fr.js.map +1 -0
- package/dist/translations/languages/he.d.ts +576 -0
- package/dist/translations/languages/he.d.ts.map +1 -0
- package/dist/translations/languages/he.js +329 -0
- package/dist/translations/languages/he.js.map +1 -0
- package/dist/translations/languages/hr.d.ts +576 -0
- package/dist/translations/languages/hr.d.ts.map +1 -0
- package/dist/translations/languages/hr.js +329 -0
- package/dist/translations/languages/hr.js.map +1 -0
- package/dist/translations/languages/hu.d.ts +576 -0
- package/dist/translations/languages/hu.d.ts.map +1 -0
- package/dist/translations/languages/hu.js +329 -0
- package/dist/translations/languages/hu.js.map +1 -0
- package/dist/translations/languages/hy.d.ts +576 -0
- package/dist/translations/languages/hy.d.ts.map +1 -0
- package/dist/translations/languages/hy.js +329 -0
- package/dist/translations/languages/hy.js.map +1 -0
- package/dist/translations/languages/id.d.ts +576 -0
- package/dist/translations/languages/id.d.ts.map +1 -0
- package/dist/translations/languages/id.js +329 -0
- package/dist/translations/languages/id.js.map +1 -0
- package/dist/translations/languages/is.d.ts +576 -0
- package/dist/translations/languages/is.d.ts.map +1 -0
- package/dist/translations/languages/is.js +329 -0
- package/dist/translations/languages/is.js.map +1 -0
- package/dist/translations/languages/it.d.ts +576 -0
- package/dist/translations/languages/it.d.ts.map +1 -0
- package/dist/translations/languages/it.js +329 -0
- package/dist/translations/languages/it.js.map +1 -0
- package/dist/translations/languages/ja.d.ts +576 -0
- package/dist/translations/languages/ja.d.ts.map +1 -0
- package/dist/translations/languages/ja.js +329 -0
- package/dist/translations/languages/ja.js.map +1 -0
- package/dist/translations/languages/ko.d.ts +576 -0
- package/dist/translations/languages/ko.d.ts.map +1 -0
- package/dist/translations/languages/ko.js +329 -0
- package/dist/translations/languages/ko.js.map +1 -0
- package/dist/translations/languages/lt.d.ts +576 -0
- package/dist/translations/languages/lt.d.ts.map +1 -0
- package/dist/translations/languages/lt.js +329 -0
- package/dist/translations/languages/lt.js.map +1 -0
- package/dist/translations/languages/lv.d.ts +576 -0
- package/dist/translations/languages/lv.d.ts.map +1 -0
- package/dist/translations/languages/lv.js +329 -0
- package/dist/translations/languages/lv.js.map +1 -0
- package/dist/translations/languages/my.d.ts +576 -0
- package/dist/translations/languages/my.d.ts.map +1 -0
- package/dist/translations/languages/my.js +329 -0
- package/dist/translations/languages/my.js.map +1 -0
- package/dist/translations/languages/nb.d.ts +576 -0
- package/dist/translations/languages/nb.d.ts.map +1 -0
- package/dist/translations/languages/nb.js +329 -0
- package/dist/translations/languages/nb.js.map +1 -0
- package/dist/translations/languages/nl.d.ts +576 -0
- package/dist/translations/languages/nl.d.ts.map +1 -0
- package/dist/translations/languages/nl.js +329 -0
- package/dist/translations/languages/nl.js.map +1 -0
- package/dist/translations/languages/pl.d.ts +576 -0
- package/dist/translations/languages/pl.d.ts.map +1 -0
- package/dist/translations/languages/pl.js +329 -0
- package/dist/translations/languages/pl.js.map +1 -0
- package/dist/translations/languages/pt.d.ts +576 -0
- package/dist/translations/languages/pt.d.ts.map +1 -0
- package/dist/translations/languages/pt.js +329 -0
- package/dist/translations/languages/pt.js.map +1 -0
- package/dist/translations/languages/ro.d.ts +576 -0
- package/dist/translations/languages/ro.d.ts.map +1 -0
- package/dist/translations/languages/ro.js +329 -0
- package/dist/translations/languages/ro.js.map +1 -0
- package/dist/translations/languages/rs.d.ts +576 -0
- package/dist/translations/languages/rs.d.ts.map +1 -0
- package/dist/translations/languages/rs.js +329 -0
- package/dist/translations/languages/rs.js.map +1 -0
- package/dist/translations/languages/rsLatin.d.ts +576 -0
- package/dist/translations/languages/rsLatin.d.ts.map +1 -0
- package/dist/translations/languages/rsLatin.js +329 -0
- package/dist/translations/languages/rsLatin.js.map +1 -0
- package/dist/translations/languages/ru.d.ts +576 -0
- package/dist/translations/languages/ru.d.ts.map +1 -0
- package/dist/translations/languages/ru.js +329 -0
- package/dist/translations/languages/ru.js.map +1 -0
- package/dist/translations/languages/sk.d.ts +576 -0
- package/dist/translations/languages/sk.d.ts.map +1 -0
- package/dist/translations/languages/sk.js +329 -0
- package/dist/translations/languages/sk.js.map +1 -0
- package/dist/translations/languages/sl.d.ts +576 -0
- package/dist/translations/languages/sl.d.ts.map +1 -0
- package/dist/translations/languages/sl.js +329 -0
- package/dist/translations/languages/sl.js.map +1 -0
- package/dist/translations/languages/sv.d.ts +576 -0
- package/dist/translations/languages/sv.d.ts.map +1 -0
- package/dist/translations/languages/sv.js +329 -0
- package/dist/translations/languages/sv.js.map +1 -0
- package/dist/translations/languages/ta.d.ts +576 -0
- package/dist/translations/languages/ta.d.ts.map +1 -0
- package/dist/translations/languages/ta.js +329 -0
- package/dist/translations/languages/ta.js.map +1 -0
- package/dist/translations/languages/th.d.ts +576 -0
- package/dist/translations/languages/th.d.ts.map +1 -0
- package/dist/translations/languages/th.js +329 -0
- package/dist/translations/languages/th.js.map +1 -0
- package/dist/translations/languages/tr.d.ts +576 -0
- package/dist/translations/languages/tr.d.ts.map +1 -0
- package/dist/translations/languages/tr.js +329 -0
- package/dist/translations/languages/tr.js.map +1 -0
- package/dist/translations/languages/uk.d.ts +576 -0
- package/dist/translations/languages/uk.d.ts.map +1 -0
- package/dist/translations/languages/uk.js +329 -0
- package/dist/translations/languages/uk.js.map +1 -0
- package/dist/translations/languages/vi.d.ts +576 -0
- package/dist/translations/languages/vi.d.ts.map +1 -0
- package/dist/translations/languages/vi.js +329 -0
- package/dist/translations/languages/vi.js.map +1 -0
- package/dist/translations/languages/zh.d.ts +576 -0
- package/dist/translations/languages/zh.d.ts.map +1 -0
- package/dist/translations/languages/zh.js +329 -0
- package/dist/translations/languages/zh.js.map +1 -0
- package/dist/translations/languages/zhTw.d.ts +576 -0
- package/dist/translations/languages/zhTw.d.ts.map +1 -0
- package/dist/translations/languages/zhTw.js +329 -0
- package/dist/translations/languages/zhTw.js.map +1 -0
- package/dist/types.d.ts +269 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +257 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +32 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +82 -0
- package/dist/utils.js.map +1 -0
- package/dist/validations/dates.d.ts +230 -0
- package/dist/validations/dates.d.ts.map +1 -0
- package/dist/validations/dates.js +254 -0
- package/dist/validations/dates.js.map +1 -0
- package/dist/validations/numbers.d.ts +118 -0
- package/dist/validations/numbers.d.ts.map +1 -0
- package/dist/validations/numbers.js +151 -0
- package/dist/validations/numbers.js.map +1 -0
- package/dist/validations/relationLinkedUser.d.ts +43 -0
- package/dist/validations/relationLinkedUser.d.ts.map +1 -0
- package/dist/validations/relationLinkedUser.js +54 -0
- package/dist/validations/relationLinkedUser.js.map +1 -0
- package/package.json +228 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { NumberFieldClientProps, TextFieldClientProps } from 'payload';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import type { Config } from './index.js';
|
|
4
|
+
import './styles.css';
|
|
5
|
+
type Props = {
|
|
6
|
+
className?: string;
|
|
7
|
+
config: Config;
|
|
8
|
+
path: string;
|
|
9
|
+
placeholder?: string;
|
|
10
|
+
readOnly?: boolean;
|
|
11
|
+
} & (NumberFieldClientProps | TextFieldClientProps);
|
|
12
|
+
export declare const PatternComponent: React.FC<Props>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=Component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component.d.ts","sourceRoot":"","sources":["../../../src/fields/Pattern/Component.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAS3E,OAAO,KAAsB,MAAM,OAAO,CAAA;AAG1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,cAAc,CAAA;AAErB,KAAK,KAAK,GAAG;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,CAAC,sBAAsB,GAAG,oBAAoB,CAAC,CAAA;AAEnD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA4F5C,CAAA"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */ 'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { FieldError as Error, FieldDescription, FieldLabel, RenderCustomComponent, useField } from '@payloadcms/ui';
|
|
4
|
+
import React, { useCallback } from 'react';
|
|
5
|
+
import { PatternFormat } from 'react-number-format';
|
|
6
|
+
import './styles.css';
|
|
7
|
+
export const PatternComponent = (props)=>{
|
|
8
|
+
const { config, field, path, readOnly, validate } = props;
|
|
9
|
+
const { type, admin: { className, description, placeholder, readOnly: adminReadOnly } = {}, label, required } = field;
|
|
10
|
+
const memoizedValidate = useCallback((value, options)=>{
|
|
11
|
+
if (typeof validate === 'function') {
|
|
12
|
+
return validate(value, {
|
|
13
|
+
...options,
|
|
14
|
+
required
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
return true;
|
|
18
|
+
}, [
|
|
19
|
+
validate,
|
|
20
|
+
required
|
|
21
|
+
]);
|
|
22
|
+
const { customComponents: { AfterInput, BeforeInput, Description, Label } = {}, errorMessage, setValue, showError, value } = useField({
|
|
23
|
+
path,
|
|
24
|
+
validate: memoizedValidate
|
|
25
|
+
});
|
|
26
|
+
const classes = [
|
|
27
|
+
'field-type',
|
|
28
|
+
'text',
|
|
29
|
+
className,
|
|
30
|
+
showError && 'error',
|
|
31
|
+
readOnly && 'read-only',
|
|
32
|
+
'container'
|
|
33
|
+
].filter(Boolean).join(' ');
|
|
34
|
+
const valueString = value ?? '';
|
|
35
|
+
const isReadonly = readOnly || adminReadOnly;
|
|
36
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
37
|
+
className: `bfPatternFieldWrapper field-type`,
|
|
38
|
+
children: [
|
|
39
|
+
/*#__PURE__*/ _jsx(RenderCustomComponent, {
|
|
40
|
+
CustomComponent: Label,
|
|
41
|
+
Fallback: /*#__PURE__*/ _jsx(FieldLabel, {
|
|
42
|
+
label: label,
|
|
43
|
+
path: path,
|
|
44
|
+
required: required
|
|
45
|
+
})
|
|
46
|
+
}),
|
|
47
|
+
BeforeInput,
|
|
48
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
49
|
+
className: classes,
|
|
50
|
+
children: [
|
|
51
|
+
/*#__PURE__*/ _jsx(PatternFormat, {
|
|
52
|
+
className: "patternInput",
|
|
53
|
+
id: `field-${path.replace(/\./g, '__')}`,
|
|
54
|
+
name: path,
|
|
55
|
+
onValueChange: ({ value: raw })=>{
|
|
56
|
+
if (type === 'number') {
|
|
57
|
+
const nextNum = raw === '' ? null : Number(raw);
|
|
58
|
+
setValue(nextNum === null || Number.isNaN(nextNum) ? null : nextNum);
|
|
59
|
+
} else {
|
|
60
|
+
setValue(raw);
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
placeholder: typeof placeholder === 'string' ? placeholder : '',
|
|
64
|
+
readOnly: isReadonly,
|
|
65
|
+
required: config.required,
|
|
66
|
+
value: String(valueString),
|
|
67
|
+
...config
|
|
68
|
+
}),
|
|
69
|
+
/*#__PURE__*/ _jsx(Error, {
|
|
70
|
+
message: errorMessage ?? '',
|
|
71
|
+
showError: showError
|
|
72
|
+
})
|
|
73
|
+
]
|
|
74
|
+
}),
|
|
75
|
+
/*#__PURE__*/ _jsx(RenderCustomComponent, {
|
|
76
|
+
CustomComponent: Description,
|
|
77
|
+
Fallback: /*#__PURE__*/ _jsx(FieldDescription, {
|
|
78
|
+
className: `field-description-${path.replace(/\./g, '__')}`,
|
|
79
|
+
description: description ?? '',
|
|
80
|
+
path: path
|
|
81
|
+
})
|
|
82
|
+
}),
|
|
83
|
+
AfterInput
|
|
84
|
+
]
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
//# sourceMappingURL=Component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Pattern/Component.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n'use client'\nimport type { NumberFieldClientProps, TextFieldClientProps } from 'payload'\n\nimport {\n FieldError as Error,\n FieldDescription,\n FieldLabel,\n RenderCustomComponent,\n useField,\n} from '@payloadcms/ui'\nimport React, { useCallback } from 'react'\nimport { PatternFormat } from 'react-number-format'\n\nimport type { Config } from './index.js'\n\nimport './styles.css'\n\ntype Props = {\n className?: string\n config: Config\n path: string\n placeholder?: string\n readOnly?: boolean\n} & (NumberFieldClientProps | TextFieldClientProps)\n\nexport const PatternComponent: React.FC<Props> = (props) => {\n const { config, field, path, readOnly, validate } = props\n\n const {\n type,\n admin: { className, description, placeholder, readOnly: adminReadOnly } = {},\n label,\n required,\n } = field\n\n const memoizedValidate = useCallback(\n (value: any, options: any) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n return true\n },\n [validate, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Label } = {},\n errorMessage,\n setValue,\n showError,\n value,\n } = useField<null | number | string>({\n path,\n validate: memoizedValidate,\n })\n\n const classes = [\n 'field-type',\n 'text',\n className,\n showError && 'error',\n readOnly && 'read-only',\n 'container',\n ]\n .filter(Boolean)\n .join(' ')\n\n const valueString = value ?? ''\n\n const isReadonly = readOnly || adminReadOnly\n\n return (\n <div className={`bfPatternFieldWrapper field-type`}>\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={<FieldLabel label={label} path={path} required={required} />}\n />\n\n {BeforeInput}\n\n <div className={classes}>\n <PatternFormat\n className=\"patternInput\"\n id={`field-${path.replace(/\\./g, '__')}`}\n name={path}\n onValueChange={({ value: raw }) => {\n if (type === 'number') {\n const nextNum = raw === '' ? null : Number(raw)\n setValue(nextNum === null || Number.isNaN(nextNum) ? null : nextNum)\n } else {\n setValue(raw)\n }\n }}\n placeholder={typeof placeholder === 'string' ? placeholder : ''}\n readOnly={isReadonly}\n required={config.required}\n value={String(valueString)}\n {...config}\n />\n\n <Error message={errorMessage ?? ''} showError={showError} />\n </div>\n\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={\n <FieldDescription\n className={`field-description-${path.replace(/\\./g, '__')}`}\n description={description ?? ''}\n path={path}\n />\n }\n />\n\n {AfterInput}\n </div>\n )\n}\n"],"names":["FieldError","Error","FieldDescription","FieldLabel","RenderCustomComponent","useField","React","useCallback","PatternFormat","PatternComponent","props","config","field","path","readOnly","validate","type","admin","className","description","placeholder","adminReadOnly","label","required","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Label","errorMessage","setValue","showError","classes","filter","Boolean","join","valueString","isReadonly","div","CustomComponent","Fallback","id","replace","name","onValueChange","raw","nextNum","Number","isNaN","String","message"],"mappings":"AAAA,qDAAqD,GACrD;;AAGA,SACEA,cAAcC,KAAK,EACnBC,gBAAgB,EAChBC,UAAU,EACVC,qBAAqB,EACrBC,QAAQ,QACH,iBAAgB;AACvB,OAAOC,SAASC,WAAW,QAAQ,QAAO;AAC1C,SAASC,aAAa,QAAQ,sBAAqB;AAInD,OAAO,eAAc;AAUrB,OAAO,MAAMC,mBAAoC,CAACC;IAChD,MAAM,EAAEC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,GAAGL;IAEpD,MAAM,EACJM,IAAI,EACJC,OAAO,EAAEC,SAAS,EAAEC,WAAW,EAAEC,WAAW,EAAEN,UAAUO,aAAa,EAAE,GAAG,CAAC,CAAC,EAC5EC,KAAK,EACLC,QAAQ,EACT,GAAGX;IAEJ,MAAMY,mBAAmBjB,YACvB,CAACkB,OAAYC;QACX,IAAI,OAAOX,aAAa,YAAY;YAClC,OAAOA,SAASU,OAAO;gBAAE,GAAGC,OAAO;gBAAEH;YAAS;QAChD;QACA,OAAO;IACT,GACA;QAACR;QAAUQ;KAAS;IAGtB,MAAM,EACJI,kBAAkB,EAAEC,UAAU,EAAEC,WAAW,EAAEC,WAAW,EAAEC,KAAK,EAAE,GAAG,CAAC,CAAC,EACtEC,YAAY,EACZC,QAAQ,EACRC,SAAS,EACTT,KAAK,EACN,GAAGpB,SAAiC;QACnCQ;QACAE,UAAUS;IACZ;IAEA,MAAMW,UAAU;QACd;QACA;QACAjB;QACAgB,aAAa;QACbpB,YAAY;QACZ;KACD,CACEsB,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,MAAMC,cAAcd,SAAS;IAE7B,MAAMe,aAAa1B,YAAYO;IAE/B,qBACE,MAACoB;QAAIvB,WAAW,CAAC,gCAAgC,CAAC;;0BAChD,KAACd;gBACCsC,iBAAiBX;gBACjBY,wBAAU,KAACxC;oBAAWmB,OAAOA;oBAAOT,MAAMA;oBAAMU,UAAUA;;;YAG3DM;0BAED,MAACY;gBAAIvB,WAAWiB;;kCACd,KAAC3B;wBACCU,WAAU;wBACV0B,IAAI,CAAC,MAAM,EAAE/B,KAAKgC,OAAO,CAAC,OAAO,OAAO;wBACxCC,MAAMjC;wBACNkC,eAAe,CAAC,EAAEtB,OAAOuB,GAAG,EAAE;4BAC5B,IAAIhC,SAAS,UAAU;gCACrB,MAAMiC,UAAUD,QAAQ,KAAK,OAAOE,OAAOF;gCAC3Cf,SAASgB,YAAY,QAAQC,OAAOC,KAAK,CAACF,WAAW,OAAOA;4BAC9D,OAAO;gCACLhB,SAASe;4BACX;wBACF;wBACA5B,aAAa,OAAOA,gBAAgB,WAAWA,cAAc;wBAC7DN,UAAU0B;wBACVjB,UAAUZ,OAAOY,QAAQ;wBACzBE,OAAO2B,OAAOb;wBACb,GAAG5B,MAAM;;kCAGZ,KAACV;wBAAMoD,SAASrB,gBAAgB;wBAAIE,WAAWA;;;;0BAGjD,KAAC9B;gBACCsC,iBAAiBZ;gBACjBa,wBACE,KAACzC;oBACCgB,WAAW,CAAC,kBAAkB,EAAEL,KAAKgC,OAAO,CAAC,OAAO,OAAO;oBAC3D1B,aAAaA,eAAe;oBAC5BN,MAAMA;;;YAKXe;;;AAGP,EAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { Field, TextField as TextFieldType } from 'payload';
|
|
2
|
+
import type { PatternFormatProps } from 'react-number-format';
|
|
3
|
+
type FieldTypes = TextFieldType;
|
|
4
|
+
export interface PatternConfig extends PatternFormatProps {
|
|
5
|
+
}
|
|
6
|
+
export type Config = {} & PatternConfig;
|
|
7
|
+
/**
|
|
8
|
+
* Factory function type for creating a Pattern field.
|
|
9
|
+
*
|
|
10
|
+
* @param overrides - Any Payload TextField properties to override
|
|
11
|
+
* @param config - Pattern format configuration (see react-number-format docs)
|
|
12
|
+
*
|
|
13
|
+
* @returns A Payload Field configuration
|
|
14
|
+
*/
|
|
15
|
+
export type Pattern = (
|
|
16
|
+
/**
|
|
17
|
+
* Field overrides
|
|
18
|
+
*/
|
|
19
|
+
overrides: FieldTypes,
|
|
20
|
+
/**
|
|
21
|
+
* Config mapping to Numeric or Pattern formats from https://s-yadav.github.io/react-number-format/docs/numeric_format
|
|
22
|
+
*/
|
|
23
|
+
config: Config) => Field;
|
|
24
|
+
/**
|
|
25
|
+
* Creates a Pattern field with regex-based input formatting and validation.
|
|
26
|
+
*
|
|
27
|
+
* This field provides pattern-based input formatting using react-number-format:
|
|
28
|
+
* - Custom input masks (e.g., phone numbers, credit cards, dates)
|
|
29
|
+
* - Format as you type
|
|
30
|
+
* - Pattern validation
|
|
31
|
+
* - Read-only mode support
|
|
32
|
+
*
|
|
33
|
+
* See https://s-yadav.github.io/react-number-format/docs/pattern_format for all configuration options.
|
|
34
|
+
*
|
|
35
|
+
* @param overrides - Any Payload TextField properties to override (name, label, required, etc.)
|
|
36
|
+
* @param config - Pattern format configuration from react-number-format
|
|
37
|
+
* @param config.format - Pattern string (e.g., '####-####-####-####' for credit card)
|
|
38
|
+
* @param config.mask - Character to use for unfilled positions (defaults to ' ')
|
|
39
|
+
* @param config.readOnly - Make the field read-only
|
|
40
|
+
*
|
|
41
|
+
* @returns A Payload Field configuration
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* PatternField(
|
|
46
|
+
* {
|
|
47
|
+
* name: 'creditCard',
|
|
48
|
+
* label: { en: 'Credit Card', de: 'Kreditkarte' }
|
|
49
|
+
* },
|
|
50
|
+
* {
|
|
51
|
+
* format: '####-####-####-####',
|
|
52
|
+
* mask: '_'
|
|
53
|
+
* }
|
|
54
|
+
* )
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export declare const PatternField: Pattern;
|
|
58
|
+
export {};
|
|
59
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Pattern/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAA;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAI7D,KAAK,UAAU,GAAG,aAAa,CAAA;AAG/B,MAAM,WAAW,aAAc,SAAQ,kBAAkB;CAAG;AAE5D,MAAM,MAAM,MAAM,GAAG,EAAE,GAAG,aAAa,CAAA;AAEvC;;;;;;;GAOG;AACH,MAAM,MAAM,OAAO,GAAG;AACpB;;GAEG;AACH,SAAS,EAAE,UAAU;AACrB;;GAEG;AACH,MAAM,EAAE,MAAM,KACX,KAAK,CAAA;AAEV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,YAAY,EAAE,OAuB1B,CAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { deepMerge } from 'payload';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a Pattern field with regex-based input formatting and validation.
|
|
4
|
+
*
|
|
5
|
+
* This field provides pattern-based input formatting using react-number-format:
|
|
6
|
+
* - Custom input masks (e.g., phone numbers, credit cards, dates)
|
|
7
|
+
* - Format as you type
|
|
8
|
+
* - Pattern validation
|
|
9
|
+
* - Read-only mode support
|
|
10
|
+
*
|
|
11
|
+
* See https://s-yadav.github.io/react-number-format/docs/pattern_format for all configuration options.
|
|
12
|
+
*
|
|
13
|
+
* @param overrides - Any Payload TextField properties to override (name, label, required, etc.)
|
|
14
|
+
* @param config - Pattern format configuration from react-number-format
|
|
15
|
+
* @param config.format - Pattern string (e.g., '####-####-####-####' for credit card)
|
|
16
|
+
* @param config.mask - Character to use for unfilled positions (defaults to ' ')
|
|
17
|
+
* @param config.readOnly - Make the field read-only
|
|
18
|
+
*
|
|
19
|
+
* @returns A Payload Field configuration
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* PatternField(
|
|
24
|
+
* {
|
|
25
|
+
* name: 'creditCard',
|
|
26
|
+
* label: { en: 'Credit Card', de: 'Kreditkarte' }
|
|
27
|
+
* },
|
|
28
|
+
* {
|
|
29
|
+
* format: '####-####-####-####',
|
|
30
|
+
* mask: '_'
|
|
31
|
+
* }
|
|
32
|
+
* )
|
|
33
|
+
* ```
|
|
34
|
+
*/ export const PatternField = (overrides, config)=>{
|
|
35
|
+
const patternField = deepMerge({
|
|
36
|
+
name: 'pattern',
|
|
37
|
+
type: 'text',
|
|
38
|
+
admin: {
|
|
39
|
+
components: {
|
|
40
|
+
// Field: PatternComponent,
|
|
41
|
+
Field: {
|
|
42
|
+
clientProps: {
|
|
43
|
+
config
|
|
44
|
+
},
|
|
45
|
+
path: '@loadspark/core/fields/Pattern/client#PatternComponent'
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
readOnly: config.readOnly
|
|
49
|
+
},
|
|
50
|
+
required: config.required
|
|
51
|
+
}, overrides);
|
|
52
|
+
return patternField;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Pattern/index.ts"],"sourcesContent":["import type { Field, TextField as TextFieldType } from 'payload'\nimport type { PatternFormatProps } from 'react-number-format'\n\nimport { deepMerge } from 'payload'\n\ntype FieldTypes = TextFieldType\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface PatternConfig extends PatternFormatProps {}\n\nexport type Config = {} & PatternConfig\n\n/**\n * Factory function type for creating a Pattern field.\n *\n * @param overrides - Any Payload TextField properties to override\n * @param config - Pattern format configuration (see react-number-format docs)\n *\n * @returns A Payload Field configuration\n */\nexport type Pattern = (\n /**\n * Field overrides\n */\n overrides: FieldTypes,\n /**\n * Config mapping to Numeric or Pattern formats from https://s-yadav.github.io/react-number-format/docs/numeric_format\n */\n config: Config,\n) => Field\n\n/**\n * Creates a Pattern field with regex-based input formatting and validation.\n *\n * This field provides pattern-based input formatting using react-number-format:\n * - Custom input masks (e.g., phone numbers, credit cards, dates)\n * - Format as you type\n * - Pattern validation\n * - Read-only mode support\n *\n * See https://s-yadav.github.io/react-number-format/docs/pattern_format for all configuration options.\n *\n * @param overrides - Any Payload TextField properties to override (name, label, required, etc.)\n * @param config - Pattern format configuration from react-number-format\n * @param config.format - Pattern string (e.g., '####-####-####-####' for credit card)\n * @param config.mask - Character to use for unfilled positions (defaults to ' ')\n * @param config.readOnly - Make the field read-only\n *\n * @returns A Payload Field configuration\n *\n * @example\n * ```ts\n * PatternField(\n * {\n * name: 'creditCard',\n * label: { en: 'Credit Card', de: 'Kreditkarte' }\n * },\n * {\n * format: '####-####-####-####',\n * mask: '_'\n * }\n * )\n * ```\n */\nexport const PatternField: Pattern = (overrides, config) => {\n const patternField = deepMerge<FieldTypes, FieldTypes>(\n {\n name: 'pattern',\n type: 'text',\n admin: {\n components: {\n // Field: PatternComponent,\n Field: {\n clientProps: {\n config,\n },\n path: '@loadspark/core/fields/Pattern/client#PatternComponent',\n },\n },\n readOnly: config.readOnly,\n },\n required: config.required,\n },\n overrides,\n )\n\n return patternField\n}\n"],"names":["deepMerge","PatternField","overrides","config","patternField","name","type","admin","components","Field","clientProps","path","readOnly","required"],"mappings":"AAGA,SAASA,SAAS,QAAQ,UAAS;AA4BnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCC,GACD,OAAO,MAAMC,eAAwB,CAACC,WAAWC;IAC/C,MAAMC,eAAeJ,UACnB;QACEK,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,YAAY;gBACV,2BAA2B;gBAC3BC,OAAO;oBACLC,aAAa;wBACXP;oBACF;oBACAQ,MAAM;gBACR;YACF;YACAC,UAAUT,OAAOS,QAAQ;QAC3B;QACAC,UAAUV,OAAOU,QAAQ;IAC3B,GACAX;IAGF,OAAOE;AACT,EAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
.bfSlugFieldWrapper {
|
|
2
|
+
position: relative;
|
|
3
|
+
|
|
4
|
+
.container {
|
|
5
|
+
display: flex;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.slugInput {
|
|
9
|
+
flex-grow: 2;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.srOnly {
|
|
13
|
+
border: 0 !important;
|
|
14
|
+
clip: rect(1px, 1px, 1px, 1px) !important;
|
|
15
|
+
-webkit-clip-path: inset(50%) !important;
|
|
16
|
+
clip-path: inset(50%) !important;
|
|
17
|
+
height: 1px !important;
|
|
18
|
+
margin: -1px !important;
|
|
19
|
+
overflow: hidden !important;
|
|
20
|
+
padding: 0 !important;
|
|
21
|
+
position: absolute !important;
|
|
22
|
+
width: 1px !important;
|
|
23
|
+
white-space: nowrap !important;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.checkbox {
|
|
27
|
+
position: absolute;
|
|
28
|
+
top: calc(50% - 1rem);
|
|
29
|
+
right: 1rem;
|
|
30
|
+
display: flex;
|
|
31
|
+
align-items: center;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { NumberFieldClientProps } from 'payload';
|
|
2
|
+
import type { Config } from './index.js';
|
|
3
|
+
import './range.scss';
|
|
4
|
+
type Props = {
|
|
5
|
+
className?: string;
|
|
6
|
+
config?: Config;
|
|
7
|
+
path: string;
|
|
8
|
+
placeholder?: string;
|
|
9
|
+
readOnly?: boolean;
|
|
10
|
+
} & NumberFieldClientProps;
|
|
11
|
+
export declare const RangeComponent: React.FC<Props>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=Component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component.d.ts","sourceRoot":"","sources":["../../../src/fields/Range/Component.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAWrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,cAAc,CAAA;AAErB,KAAK,KAAK,GAAG;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,sBAAsB,CAAA;AAE1B,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA4I1C,CAAA"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { FieldError as Error, FieldDescription, FieldLabel, RenderCustomComponent, useField } from '@payloadcms/ui';
|
|
4
|
+
import { useCallback } from 'react';
|
|
5
|
+
import './range.scss';
|
|
6
|
+
export const RangeComponent = (props)=>{
|
|
7
|
+
const { config, field, path, readOnly, validate } = props;
|
|
8
|
+
const { admin: { className, description, placeholder, readOnly: adminReadOnly } = {}, label, required } = field;
|
|
9
|
+
const memoizedValidate = useCallback(// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
|
+
(value, options)=>{
|
|
11
|
+
if (typeof validate === 'function') {
|
|
12
|
+
return validate(value, {
|
|
13
|
+
...options || {},
|
|
14
|
+
required
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}, [
|
|
18
|
+
validate,
|
|
19
|
+
required
|
|
20
|
+
]);
|
|
21
|
+
const { customComponents: { AfterInput, BeforeInput, Description, Label } = {}, errorMessage, setValue, showError, value } = useField({
|
|
22
|
+
path,
|
|
23
|
+
// @ts-expect-error - memoizedValidate is not typed
|
|
24
|
+
validate: memoizedValidate
|
|
25
|
+
});
|
|
26
|
+
const step = config?.step ?? 1;
|
|
27
|
+
const usedMin = field.min ?? 1;
|
|
28
|
+
const usedMax = field.max ?? 100;
|
|
29
|
+
const rangeValue = usedMax - usedMin;
|
|
30
|
+
const markers = config?.markers ?? [];
|
|
31
|
+
const getPosition = useCallback((value)=>{
|
|
32
|
+
const remainder = value - usedMin;
|
|
33
|
+
if (remainder === 0) {
|
|
34
|
+
return 0;
|
|
35
|
+
}
|
|
36
|
+
return remainder / rangeValue * 100;
|
|
37
|
+
}, [
|
|
38
|
+
rangeValue,
|
|
39
|
+
usedMin
|
|
40
|
+
]);
|
|
41
|
+
const classes = [
|
|
42
|
+
'',
|
|
43
|
+
className,
|
|
44
|
+
showError && 'error',
|
|
45
|
+
readOnly && 'read-only',
|
|
46
|
+
'container'
|
|
47
|
+
].filter(Boolean).join(' ');
|
|
48
|
+
const isReadonly = Boolean(readOnly) || Boolean(adminReadOnly);
|
|
49
|
+
const handleReset = (e)=>{
|
|
50
|
+
e.preventDefault();
|
|
51
|
+
setValue(null);
|
|
52
|
+
};
|
|
53
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
54
|
+
className: `bfRangeFieldWrapper field-type`,
|
|
55
|
+
children: [
|
|
56
|
+
/*#__PURE__*/ _jsx(RenderCustomComponent, {
|
|
57
|
+
CustomComponent: Label,
|
|
58
|
+
Fallback: /*#__PURE__*/ _jsx(FieldLabel, {
|
|
59
|
+
label: label,
|
|
60
|
+
path: path,
|
|
61
|
+
required: required
|
|
62
|
+
})
|
|
63
|
+
}),
|
|
64
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
65
|
+
className: "containerWrapper",
|
|
66
|
+
children: [
|
|
67
|
+
config?.showPreview && /*#__PURE__*/ _jsx(_Fragment, {
|
|
68
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
69
|
+
className: "valuePreview",
|
|
70
|
+
children: value ? value : '/'
|
|
71
|
+
})
|
|
72
|
+
}),
|
|
73
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
74
|
+
className: classes,
|
|
75
|
+
children: [
|
|
76
|
+
BeforeInput,
|
|
77
|
+
/*#__PURE__*/ _jsx("input", {
|
|
78
|
+
className: "rangeInput",
|
|
79
|
+
id: `field-${path.replace(/\./g, '__')}`,
|
|
80
|
+
max: usedMax,
|
|
81
|
+
min: usedMin,
|
|
82
|
+
name: path,
|
|
83
|
+
onChange: (e)=>{
|
|
84
|
+
const next = Number(e.target.value);
|
|
85
|
+
setValue(Number.isNaN(next) ? null : next);
|
|
86
|
+
},
|
|
87
|
+
placeholder: typeof placeholder === 'string' ? placeholder : '',
|
|
88
|
+
readOnly: isReadonly,
|
|
89
|
+
required: required,
|
|
90
|
+
step: step,
|
|
91
|
+
type: "range",
|
|
92
|
+
value: value ?? 0,
|
|
93
|
+
...markers?.length && markers.length > 0 ? {
|
|
94
|
+
list: `field-markers-${path.replace(/\./g, '__')}`
|
|
95
|
+
} : {}
|
|
96
|
+
}),
|
|
97
|
+
/*#__PURE__*/ _jsx("datalist", {
|
|
98
|
+
className: "markersList",
|
|
99
|
+
id: `field-markers-${path.replace(/\./g, '__')}`,
|
|
100
|
+
children: markers.map((marker, index)=>{
|
|
101
|
+
return /*#__PURE__*/ _jsx("option", {
|
|
102
|
+
"data-test": getPosition(marker.value),
|
|
103
|
+
style: {
|
|
104
|
+
left: `${getPosition(marker.value)}%`
|
|
105
|
+
},
|
|
106
|
+
value: marker.value,
|
|
107
|
+
children: marker.label
|
|
108
|
+
}, index);
|
|
109
|
+
})
|
|
110
|
+
})
|
|
111
|
+
]
|
|
112
|
+
}),
|
|
113
|
+
/*#__PURE__*/ _jsx(Error, {
|
|
114
|
+
message: errorMessage ?? '',
|
|
115
|
+
showError: showError
|
|
116
|
+
})
|
|
117
|
+
]
|
|
118
|
+
}),
|
|
119
|
+
!required && Boolean(value) && /*#__PURE__*/ _jsx("button", {
|
|
120
|
+
className: "btn--size-small btn btn--style-secondary resetButton",
|
|
121
|
+
onClick: handleReset,
|
|
122
|
+
type: "button",
|
|
123
|
+
children: "Reset"
|
|
124
|
+
}),
|
|
125
|
+
/*#__PURE__*/ _jsx(RenderCustomComponent, {
|
|
126
|
+
CustomComponent: Description,
|
|
127
|
+
Fallback: /*#__PURE__*/ _jsx(FieldDescription, {
|
|
128
|
+
className: `field-description-${path.replace(/\./g, '__')}`,
|
|
129
|
+
description: description ?? '',
|
|
130
|
+
path: path
|
|
131
|
+
})
|
|
132
|
+
}),
|
|
133
|
+
AfterInput
|
|
134
|
+
]
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
//# sourceMappingURL=Component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Range/Component.tsx"],"sourcesContent":["'use client'\nimport type { NumberFieldClientProps } from 'payload'\n\nimport {\n FieldError as Error,\n FieldDescription,\n FieldLabel,\n RenderCustomComponent,\n useField,\n} from '@payloadcms/ui'\nimport { type MouseEventHandler, useCallback } from 'react'\n\nimport type { Config } from './index.js'\n\nimport './range.scss'\n\ntype Props = {\n className?: string\n config?: Config\n path: string\n placeholder?: string\n readOnly?: boolean\n} & NumberFieldClientProps\n\nexport const RangeComponent: React.FC<Props> = (props) => {\n const { config, field, path, readOnly, validate } = props\n const {\n admin: { className, description, placeholder, readOnly: adminReadOnly } = {},\n label,\n required,\n } = field\n\n const memoizedValidate = useCallback(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (value: null | number | undefined, options: any) => {\n if (typeof validate === 'function') {\n return validate(value, { ...(options || {}), required })\n }\n },\n [validate, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Label } = {},\n errorMessage,\n setValue,\n showError,\n value,\n } = useField<null | number>({\n path,\n // @ts-expect-error - memoizedValidate is not typed\n validate: memoizedValidate,\n })\n\n const step = config?.step ?? 1\n const usedMin = field.min ?? 1\n const usedMax = field.max ?? 100\n const rangeValue = usedMax - usedMin\n const markers = config?.markers ?? []\n\n const getPosition = useCallback(\n (value: number) => {\n const remainder = value - usedMin\n if (remainder === 0) {\n return 0\n }\n return (remainder / rangeValue) * 100\n },\n [rangeValue, usedMin],\n )\n\n const classes = ['', className, showError && 'error', readOnly && 'read-only', 'container']\n .filter(Boolean)\n .join(' ')\n\n const isReadonly = Boolean(readOnly) || Boolean(adminReadOnly)\n\n const handleReset: MouseEventHandler = (e) => {\n e.preventDefault()\n setValue(null)\n }\n\n return (\n <div className={`bfRangeFieldWrapper field-type`}>\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={<FieldLabel label={label} path={path} required={required} />}\n />\n\n <div className=\"containerWrapper\">\n {config?.showPreview && (\n <>\n <div className=\"valuePreview\">{value ? value : '/'}</div>\n </>\n )}\n <div className={classes}>\n {BeforeInput}\n\n <input\n className=\"rangeInput\"\n id={`field-${path.replace(/\\./g, '__')}`}\n max={usedMax}\n min={usedMin}\n name={path}\n onChange={(e) => {\n const next = Number(e.target.value)\n setValue(Number.isNaN(next) ? null : next)\n }}\n placeholder={typeof placeholder === 'string' ? placeholder : ''}\n readOnly={isReadonly}\n required={required}\n step={step}\n type=\"range\"\n value={value ?? 0}\n {...(markers?.length && markers.length > 0\n ? { list: `field-markers-${path.replace(/\\./g, '__')}` }\n : {})}\n />\n\n <datalist className=\"markersList\" id={`field-markers-${path.replace(/\\./g, '__')}`}>\n {markers.map((marker, index) => {\n return (\n <option\n data-test={getPosition(marker.value)}\n key={index}\n style={{\n left: `${getPosition(marker.value)}%`,\n }}\n value={marker.value}\n >\n {marker.label}\n </option>\n )\n })}\n </datalist>\n </div>\n\n <Error message={errorMessage ?? ''} showError={showError} />\n </div>\n\n {!required && Boolean(value) && (\n <button\n className=\"btn--size-small btn btn--style-secondary resetButton\"\n onClick={handleReset}\n type=\"button\"\n >\n Reset\n </button>\n )}\n\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={\n <FieldDescription\n className={`field-description-${path.replace(/\\./g, '__')}`}\n description={description ?? ''}\n path={path}\n />\n }\n />\n\n {AfterInput}\n </div>\n )\n}\n"],"names":["FieldError","Error","FieldDescription","FieldLabel","RenderCustomComponent","useField","useCallback","RangeComponent","props","config","field","path","readOnly","validate","admin","className","description","placeholder","adminReadOnly","label","required","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Label","errorMessage","setValue","showError","step","usedMin","min","usedMax","max","rangeValue","markers","getPosition","remainder","classes","filter","Boolean","join","isReadonly","handleReset","e","preventDefault","div","CustomComponent","Fallback","showPreview","input","id","replace","name","onChange","next","Number","target","isNaN","type","length","list","datalist","map","marker","index","option","data-test","style","left","message","button","onClick"],"mappings":"AAAA;;AAGA,SACEA,cAAcC,KAAK,EACnBC,gBAAgB,EAChBC,UAAU,EACVC,qBAAqB,EACrBC,QAAQ,QACH,iBAAgB;AACvB,SAAiCC,WAAW,QAAQ,QAAO;AAI3D,OAAO,eAAc;AAUrB,OAAO,MAAMC,iBAAkC,CAACC;IAC9C,MAAM,EAAEC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,GAAGL;IACpD,MAAM,EACJM,OAAO,EAAEC,SAAS,EAAEC,WAAW,EAAEC,WAAW,EAAEL,UAAUM,aAAa,EAAE,GAAG,CAAC,CAAC,EAC5EC,KAAK,EACLC,QAAQ,EACT,GAAGV;IAEJ,MAAMW,mBAAmBf,YACvB,8DAA8D;IAC9D,CAACgB,OAAkCC;QACjC,IAAI,OAAOV,aAAa,YAAY;YAClC,OAAOA,SAASS,OAAO;gBAAE,GAAIC,WAAW,CAAC,CAAC;gBAAGH;YAAS;QACxD;IACF,GACA;QAACP;QAAUO;KAAS;IAGtB,MAAM,EACJI,kBAAkB,EAAEC,UAAU,EAAEC,WAAW,EAAEC,WAAW,EAAEC,KAAK,EAAE,GAAG,CAAC,CAAC,EACtEC,YAAY,EACZC,QAAQ,EACRC,SAAS,EACTT,KAAK,EACN,GAAGjB,SAAwB;QAC1BM;QACA,mDAAmD;QACnDE,UAAUQ;IACZ;IAEA,MAAMW,OAAOvB,QAAQuB,QAAQ;IAC7B,MAAMC,UAAUvB,MAAMwB,GAAG,IAAI;IAC7B,MAAMC,UAAUzB,MAAM0B,GAAG,IAAI;IAC7B,MAAMC,aAAaF,UAAUF;IAC7B,MAAMK,UAAU7B,QAAQ6B,WAAW,EAAE;IAErC,MAAMC,cAAcjC,YAClB,CAACgB;QACC,MAAMkB,YAAYlB,QAAQW;QAC1B,IAAIO,cAAc,GAAG;YACnB,OAAO;QACT;QACA,OAAO,AAACA,YAAYH,aAAc;IACpC,GACA;QAACA;QAAYJ;KAAQ;IAGvB,MAAMQ,UAAU;QAAC;QAAI1B;QAAWgB,aAAa;QAASnB,YAAY;QAAa;KAAY,CACxF8B,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,MAAMC,aAAaF,QAAQ/B,aAAa+B,QAAQzB;IAEhD,MAAM4B,cAAiC,CAACC;QACtCA,EAAEC,cAAc;QAChBlB,SAAS;IACX;IAEA,qBACE,MAACmB;QAAIlC,WAAW,CAAC,8BAA8B,CAAC;;0BAC9C,KAACX;gBACC8C,iBAAiBtB;gBACjBuB,wBAAU,KAAChD;oBAAWgB,OAAOA;oBAAOR,MAAMA;oBAAMS,UAAUA;;;0BAG5D,MAAC6B;gBAAIlC,WAAU;;oBACZN,QAAQ2C,6BACP;kCACE,cAAA,KAACH;4BAAIlC,WAAU;sCAAgBO,QAAQA,QAAQ;;;kCAGnD,MAAC2B;wBAAIlC,WAAW0B;;4BACbf;0CAED,KAAC2B;gCACCtC,WAAU;gCACVuC,IAAI,CAAC,MAAM,EAAE3C,KAAK4C,OAAO,CAAC,OAAO,OAAO;gCACxCnB,KAAKD;gCACLD,KAAKD;gCACLuB,MAAM7C;gCACN8C,UAAU,CAACV;oCACT,MAAMW,OAAOC,OAAOZ,EAAEa,MAAM,CAACtC,KAAK;oCAClCQ,SAAS6B,OAAOE,KAAK,CAACH,QAAQ,OAAOA;gCACvC;gCACAzC,aAAa,OAAOA,gBAAgB,WAAWA,cAAc;gCAC7DL,UAAUiC;gCACVzB,UAAUA;gCACVY,MAAMA;gCACN8B,MAAK;gCACLxC,OAAOA,SAAS;gCACf,GAAIgB,SAASyB,UAAUzB,QAAQyB,MAAM,GAAG,IACrC;oCAAEC,MAAM,CAAC,cAAc,EAAErD,KAAK4C,OAAO,CAAC,OAAO,OAAO;gCAAC,IACrD,CAAC,CAAC;;0CAGR,KAACU;gCAASlD,WAAU;gCAAcuC,IAAI,CAAC,cAAc,EAAE3C,KAAK4C,OAAO,CAAC,OAAO,OAAO;0CAC/EjB,QAAQ4B,GAAG,CAAC,CAACC,QAAQC;oCACpB,qBACE,KAACC;wCACCC,aAAW/B,YAAY4B,OAAO7C,KAAK;wCAEnCiD,OAAO;4CACLC,MAAM,GAAGjC,YAAY4B,OAAO7C,KAAK,EAAE,CAAC,CAAC;wCACvC;wCACAA,OAAO6C,OAAO7C,KAAK;kDAElB6C,OAAOhD,KAAK;uCANRiD;gCASX;;;;kCAIJ,KAACnE;wBAAMwE,SAAS5C,gBAAgB;wBAAIE,WAAWA;;;;YAGhD,CAACX,YAAYuB,QAAQrB,wBACpB,KAACoD;gBACC3D,WAAU;gBACV4D,SAAS7B;gBACTgB,MAAK;0BACN;;0BAKH,KAAC1D;gBACC8C,iBAAiBvB;gBACjBwB,wBACE,KAACjD;oBACCa,WAAW,CAAC,kBAAkB,EAAEJ,KAAK4C,OAAO,CAAC,OAAO,OAAO;oBAC3DvC,aAAaA,eAAe;oBAC5BL,MAAMA;;;YAKXc;;;AAGP,EAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { Field, NumberField as NumberFieldType } from 'payload';
|
|
2
|
+
import type { NumberMarkerItem } from './types.js';
|
|
3
|
+
type FieldTypes = NumberFieldType;
|
|
4
|
+
/**
|
|
5
|
+
* Additional config unique to the range input
|
|
6
|
+
*/
|
|
7
|
+
export type Config = {
|
|
8
|
+
/**
|
|
9
|
+
* You can provide an array of markers https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#adding_tick_marks
|
|
10
|
+
*/
|
|
11
|
+
markers?: NumberMarkerItem[];
|
|
12
|
+
/**
|
|
13
|
+
* @default 100
|
|
14
|
+
*/
|
|
15
|
+
max?: number;
|
|
16
|
+
/**
|
|
17
|
+
* @default 1
|
|
18
|
+
*/
|
|
19
|
+
min?: number;
|
|
20
|
+
/**
|
|
21
|
+
* Shows the value previewed next to the field
|
|
22
|
+
*/
|
|
23
|
+
showPreview?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* @default 1
|
|
26
|
+
*/
|
|
27
|
+
step?: 'any' | number;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Factory function type for creating a Range field.
|
|
31
|
+
*
|
|
32
|
+
* @param overrides - Any Payload NumberField properties to override (except type)
|
|
33
|
+
* @param config - Range slider configuration
|
|
34
|
+
*
|
|
35
|
+
* @returns A Payload Field configuration
|
|
36
|
+
*/
|
|
37
|
+
export type Range = (
|
|
38
|
+
/**
|
|
39
|
+
* Field overrides
|
|
40
|
+
*/
|
|
41
|
+
overrides: Omit<FieldTypes, 'type'>, config: Config) => Field;
|
|
42
|
+
/**
|
|
43
|
+
* Creates a Range field with a slider-based number input.
|
|
44
|
+
*
|
|
45
|
+
* This field provides a visual range slider for number input with:
|
|
46
|
+
* - Customizable min/max values
|
|
47
|
+
* - Step control
|
|
48
|
+
* - Optional tick marks/markers
|
|
49
|
+
* - Value preview display
|
|
50
|
+
*
|
|
51
|
+
* Built on top of HTML5 range input with enhanced UI.
|
|
52
|
+
*
|
|
53
|
+
* @param overrides - Any Payload NumberField properties to override (name, label, required, etc.)
|
|
54
|
+
* @param config - Range slider configuration
|
|
55
|
+
* @param config.min - Minimum value (defaults to 1)
|
|
56
|
+
* @param config.max - Maximum value (defaults to 100)
|
|
57
|
+
* @param config.step - Step increment ('any' or number, defaults to 1)
|
|
58
|
+
* @param config.markers - Array of marker positions for tick marks
|
|
59
|
+
* @param config.showPreview - Show the current value next to the slider (defaults to false)
|
|
60
|
+
*
|
|
61
|
+
* @returns A Payload Field configuration
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```ts
|
|
65
|
+
* RangeField(
|
|
66
|
+
* {
|
|
67
|
+
* name: 'rating',
|
|
68
|
+
* label: { en: 'Rating', de: 'Bewertung' }
|
|
69
|
+
* },
|
|
70
|
+
* {
|
|
71
|
+
* min: 0,
|
|
72
|
+
* max: 10,
|
|
73
|
+
* step: 1,
|
|
74
|
+
* showPreview: true,
|
|
75
|
+
* markers: [0, 5, 10]
|
|
76
|
+
* }
|
|
77
|
+
* )
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
export declare const RangeField: Range;
|
|
81
|
+
export {};
|
|
82
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Range/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,SAAS,CAAA;AAIpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,KAAK,UAAU,GAAG,eAAe,CAAA;AAEjC;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CACtB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,GAAG;AAClB;;GAEG;AACH,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,EACnC,MAAM,EAAE,MAAM,KACX,KAAK,CAAA;AAEV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,UAAU,EAAE,KA8BxB,CAAA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { deepMerge } from 'payload';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a Range field with a slider-based number input.
|
|
4
|
+
*
|
|
5
|
+
* This field provides a visual range slider for number input with:
|
|
6
|
+
* - Customizable min/max values
|
|
7
|
+
* - Step control
|
|
8
|
+
* - Optional tick marks/markers
|
|
9
|
+
* - Value preview display
|
|
10
|
+
*
|
|
11
|
+
* Built on top of HTML5 range input with enhanced UI.
|
|
12
|
+
*
|
|
13
|
+
* @param overrides - Any Payload NumberField properties to override (name, label, required, etc.)
|
|
14
|
+
* @param config - Range slider configuration
|
|
15
|
+
* @param config.min - Minimum value (defaults to 1)
|
|
16
|
+
* @param config.max - Maximum value (defaults to 100)
|
|
17
|
+
* @param config.step - Step increment ('any' or number, defaults to 1)
|
|
18
|
+
* @param config.markers - Array of marker positions for tick marks
|
|
19
|
+
* @param config.showPreview - Show the current value next to the slider (defaults to false)
|
|
20
|
+
*
|
|
21
|
+
* @returns A Payload Field configuration
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* RangeField(
|
|
26
|
+
* {
|
|
27
|
+
* name: 'rating',
|
|
28
|
+
* label: { en: 'Rating', de: 'Bewertung' }
|
|
29
|
+
* },
|
|
30
|
+
* {
|
|
31
|
+
* min: 0,
|
|
32
|
+
* max: 10,
|
|
33
|
+
* step: 1,
|
|
34
|
+
* showPreview: true,
|
|
35
|
+
* markers: [0, 5, 10]
|
|
36
|
+
* }
|
|
37
|
+
* )
|
|
38
|
+
* ```
|
|
39
|
+
*/ export const RangeField = (overrides, config = {})=>{
|
|
40
|
+
const rangeField = deepMerge({
|
|
41
|
+
name: 'range',
|
|
42
|
+
type: 'number',
|
|
43
|
+
admin: {
|
|
44
|
+
components: {
|
|
45
|
+
Field: {
|
|
46
|
+
clientProps: {
|
|
47
|
+
config
|
|
48
|
+
},
|
|
49
|
+
path: '@loadspark/core/fields/Range/client#RangeComponent'
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
...config?.min ? {
|
|
54
|
+
min: config.min
|
|
55
|
+
} : {},
|
|
56
|
+
...config?.max ? {
|
|
57
|
+
max: config.max
|
|
58
|
+
} : {}
|
|
59
|
+
}, overrides);
|
|
60
|
+
return rangeField;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Range/index.ts"],"sourcesContent":["import type { Field, NumberField as NumberFieldType } from 'payload'\n\nimport { deepMerge } from 'payload'\n\nimport type { NumberMarkerItem } from './types.js'\n\ntype FieldTypes = NumberFieldType\n\n/**\n * Additional config unique to the range input\n */\nexport type Config = {\n /**\n * You can provide an array of markers https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#adding_tick_marks\n */\n markers?: NumberMarkerItem[]\n /**\n * @default 100\n */\n max?: number\n /**\n * @default 1\n */\n min?: number\n /**\n * Shows the value previewed next to the field\n */\n showPreview?: boolean\n /**\n * @default 1\n */\n step?: 'any' | number\n}\n\n/**\n * Factory function type for creating a Range field.\n *\n * @param overrides - Any Payload NumberField properties to override (except type)\n * @param config - Range slider configuration\n *\n * @returns A Payload Field configuration\n */\nexport type Range = (\n /**\n * Field overrides\n */\n overrides: Omit<FieldTypes, 'type'>,\n config: Config,\n) => Field\n\n/**\n * Creates a Range field with a slider-based number input.\n *\n * This field provides a visual range slider for number input with:\n * - Customizable min/max values\n * - Step control\n * - Optional tick marks/markers\n * - Value preview display\n *\n * Built on top of HTML5 range input with enhanced UI.\n *\n * @param overrides - Any Payload NumberField properties to override (name, label, required, etc.)\n * @param config - Range slider configuration\n * @param config.min - Minimum value (defaults to 1)\n * @param config.max - Maximum value (defaults to 100)\n * @param config.step - Step increment ('any' or number, defaults to 1)\n * @param config.markers - Array of marker positions for tick marks\n * @param config.showPreview - Show the current value next to the slider (defaults to false)\n *\n * @returns A Payload Field configuration\n *\n * @example\n * ```ts\n * RangeField(\n * {\n * name: 'rating',\n * label: { en: 'Rating', de: 'Bewertung' }\n * },\n * {\n * min: 0,\n * max: 10,\n * step: 1,\n * showPreview: true,\n * markers: [0, 5, 10]\n * }\n * )\n * ```\n */\nexport const RangeField: Range = (overrides, config = {}) => {\n const rangeField = deepMerge<FieldTypes, Omit<FieldTypes, 'type'>>(\n {\n name: 'range',\n type: 'number',\n admin: {\n components: {\n Field: {\n clientProps: {\n config,\n },\n path: '@loadspark/core/fields/Range/client#RangeComponent',\n },\n },\n },\n ...(config?.min\n ? {\n min: config.min,\n }\n : {}),\n ...(config?.max\n ? {\n max: config.max,\n }\n : {}),\n },\n overrides,\n )\n\n return rangeField\n}\n"],"names":["deepMerge","RangeField","overrides","config","rangeField","name","type","admin","components","Field","clientProps","path","min","max"],"mappings":"AAEA,SAASA,SAAS,QAAQ,UAAS;AAgDnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCC,GACD,OAAO,MAAMC,aAAoB,CAACC,WAAWC,SAAS,CAAC,CAAC;IACtD,MAAMC,aAAaJ,UACjB;QACEK,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,YAAY;gBACVC,OAAO;oBACLC,aAAa;wBACXP;oBACF;oBACAQ,MAAM;gBACR;YACF;QACF;QACA,GAAIR,QAAQS,MACR;YACEA,KAAKT,OAAOS,GAAG;QACjB,IACA,CAAC,CAAC;QACN,GAAIT,QAAQU,MACR;YACEA,KAAKV,OAAOU,GAAG;QACjB,IACA,CAAC,CAAC;IACR,GACAX;IAGF,OAAOE;AACT,EAAC"}
|