@tailng-ui/primitives 0.54.0 → 0.56.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.
Files changed (63) hide show
  1. package/package.json +2 -2
  2. package/src/lib/form/date-range-picker/__tests__/tng-date-range-picker.test-helpers.d.ts +25 -0
  3. package/src/lib/form/date-range-picker/__tests__/tng-date-range-picker.test-helpers.d.ts.map +1 -0
  4. package/src/lib/form/date-range-picker/__tests__/tng-date-range-picker.test-helpers.js +109 -0
  5. package/src/lib/form/date-range-picker/__tests__/tng-date-range-picker.test-helpers.js.map +1 -0
  6. package/src/lib/form/date-range-picker/date-range-picker.adapters.d.ts +5 -0
  7. package/src/lib/form/date-range-picker/date-range-picker.adapters.d.ts.map +1 -0
  8. package/src/lib/form/date-range-picker/date-range-picker.adapters.js +9 -0
  9. package/src/lib/form/date-range-picker/date-range-picker.adapters.js.map +1 -0
  10. package/src/lib/form/date-range-picker/date-range-picker.state.d.ts +10 -0
  11. package/src/lib/form/date-range-picker/date-range-picker.state.d.ts.map +1 -0
  12. package/src/lib/form/date-range-picker/date-range-picker.state.js +35 -0
  13. package/src/lib/form/date-range-picker/date-range-picker.state.js.map +1 -0
  14. package/src/lib/form/date-range-picker/date-range-picker.types.d.ts +280 -0
  15. package/src/lib/form/date-range-picker/date-range-picker.types.d.ts.map +1 -0
  16. package/src/lib/form/date-range-picker/date-range-picker.types.js +1 -0
  17. package/src/lib/form/date-range-picker/date-range-picker.types.js.map +1 -0
  18. package/src/lib/form/date-range-picker/date-range-picker.utils.d.ts +54 -0
  19. package/src/lib/form/date-range-picker/date-range-picker.utils.d.ts.map +1 -0
  20. package/src/lib/form/date-range-picker/date-range-picker.utils.js +37 -0
  21. package/src/lib/form/date-range-picker/date-range-picker.utils.js.map +1 -0
  22. package/src/lib/form/date-range-picker/index.d.ts +7 -0
  23. package/src/lib/form/date-range-picker/index.d.ts.map +1 -0
  24. package/src/lib/form/date-range-picker/index.js +7 -0
  25. package/src/lib/form/date-range-picker/index.js.map +1 -0
  26. package/src/lib/form/date-range-picker/tng-date-range-picker.d.ts +5 -0
  27. package/src/lib/form/date-range-picker/tng-date-range-picker.d.ts.map +1 -0
  28. package/src/lib/form/date-range-picker/tng-date-range-picker.js +1970 -0
  29. package/src/lib/form/date-range-picker/tng-date-range-picker.js.map +1 -0
  30. package/src/lib/form/date-range-picker/tng-date-range-picker.overlay.d.ts +87 -0
  31. package/src/lib/form/date-range-picker/tng-date-range-picker.overlay.d.ts.map +1 -0
  32. package/src/lib/form/date-range-picker/tng-date-range-picker.overlay.js +447 -0
  33. package/src/lib/form/date-range-picker/tng-date-range-picker.overlay.js.map +1 -0
  34. package/src/lib/form/date-range-picker/tng-date-range-picker.parts.d.ts +3155 -0
  35. package/src/lib/form/date-range-picker/tng-date-range-picker.parts.d.ts.map +1 -0
  36. package/src/lib/form/date-range-picker/tng-date-range-picker.parts.js +940 -0
  37. package/src/lib/form/date-range-picker/tng-date-range-picker.parts.js.map +1 -0
  38. package/src/lib/form/datepicker/datepicker.adapters.d.ts.map +1 -1
  39. package/src/lib/form/datepicker/datepicker.adapters.js +4 -189
  40. package/src/lib/form/datepicker/datepicker.adapters.js.map +1 -1
  41. package/src/lib/form/datepicker/datepicker.state.d.ts.map +1 -1
  42. package/src/lib/form/datepicker/datepicker.state.js +7 -86
  43. package/src/lib/form/datepicker/datepicker.state.js.map +1 -1
  44. package/src/lib/form/datepicker/datepicker.utils.d.ts +6 -28
  45. package/src/lib/form/datepicker/datepicker.utils.d.ts.map +1 -1
  46. package/src/lib/form/datepicker/datepicker.utils.js +14 -228
  47. package/src/lib/form/datepicker/datepicker.utils.js.map +1 -1
  48. package/src/lib/form/index.d.ts +2 -0
  49. package/src/lib/form/index.d.ts.map +1 -1
  50. package/src/lib/form/index.js +2 -0
  51. package/src/lib/form/index.js.map +1 -1
  52. package/src/lib/form/number-range/index.d.ts +3 -0
  53. package/src/lib/form/number-range/index.d.ts.map +1 -0
  54. package/src/lib/form/number-range/index.js +3 -0
  55. package/src/lib/form/number-range/index.js.map +1 -0
  56. package/src/lib/form/number-range/tng-number-range.d.ts +26 -0
  57. package/src/lib/form/number-range/tng-number-range.d.ts.map +1 -0
  58. package/src/lib/form/number-range/tng-number-range.js +49 -0
  59. package/src/lib/form/number-range/tng-number-range.js.map +1 -0
  60. package/src/lib/form/number-range/tng-number-range.types.d.ts +12 -0
  61. package/src/lib/form/number-range/tng-number-range.types.d.ts.map +1 -0
  62. package/src/lib/form/number-range/tng-number-range.types.js +1 -0
  63. package/src/lib/form/number-range/tng-number-range.types.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-date-range-picker.parts.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/date-range-picker/tng-date-range-picker.parts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,GAGP,MAAM,eAAe,CAAC;;AAgBvB,MAAM,UAAU,oCAAoC,CAClD,UAA+C,EAC/C,OAAyC;IAEzC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;QAC1E,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACrD,OAAO,GAAG,SAAS,MAAM,OAAO,EAAE,CAAC;QACrC,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,OAAO,CAAC,cAAc,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,UAA+C;IAE/C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,mDAAC,CAAC;IAC1B,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE;QAC5C,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAE1C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE;QAC5B,OAAO,EAAE,CAAC;QACV,OAAO,UAAU,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC,mDAAC,CAAC;IAEH,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,oCAAoC,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,uDAAC,CAAC;IAEhG,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,2BAA2B,CAAC,OAA2C;IAC9E,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3B,MAAM,cAAc,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;QACnD,IAAI,cAAc,CAAC,uBAAuB,CAAC,KAAK,SAAS,EAAE,CAAC;YAC1D,OAAO,cAAc,CAAC,EAAE,IAAI,IAAI,CAAC;QACnC,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC;IAC/D,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC;IAC1E,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC;IACzE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oCAAoC,CAAC,GAAW;IACvD,OAAO,CACL,GAAG,KAAK,SAAS;QACjB,GAAG,KAAK,WAAW;QACnB,GAAG,KAAK,WAAW;QACnB,GAAG,KAAK,YAAY;QACpB,GAAG,KAAK,MAAM;QACd,GAAG,KAAK,KAAK;QACb,GAAG,KAAK,QAAQ;QAChB,GAAG,KAAK,UAAU;QAClB,GAAG,KAAK,OAAO;QACf,GAAG,KAAK,GAAG;QACX,GAAG,KAAK,QAAQ,CACjB,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAW;IACxC,OAAO,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,GAAG,CAAC;AACxC,CAAC;AAED,SAAS,oCAAoC,CAC3C,UAA4C,EAC5C,aAA8B;IAE9B,MAAM,cAAc,GAAG,aAAa,IAAI,QAAQ,CAAC;IAEjD,cAAc,CAAC,GAAG,EAAE;QAClB,MAAM,WAAW,GAAG,GAAS,EAAE;YAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAClB,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACvD,IAAI,CAAC,CAAC,MAAM,YAAY,WAAW,CAAC,EAAE,CAAC;gBACrC,OAAO;YACT,CAAC;YAED,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC;QAEF,IAAI,OAAO,qBAAqB,KAAK,UAAU,EAAE,CAAC;YAChD,qBAAqB,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,UAAU,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,UAA0C,EAAE,GAAW;IAC/E,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC;AAED,MACe,gCAAgC;IAC1B,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5B,aAAa,GAC9B,MAAM,CAAC,CAAA,UAAuB,CAAA,CAAC,CAAC,aAAa,CAAC,aAAa,IAAI,IAAI,CAAC;IACnD,aAAa,GAAG,MAAM,CAAC,CAAC,yDAAC,CAAC;IAGtC,QAAQ;QACb,MAAM,CACJ,CAAC,SAAS,EAAE,EAAE;YACZ,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE;gBAC5C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YAEH,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACjC,CAAC,EACD,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAC5B,CAAC;IACJ,CAAC;IAES,gBAAgB;QACxB,oCAAoC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9E,CAAC;uGAvBY,gCAAgC;2FAAhC,gCAAgC;;2FAAhC,gCAAgC;kBAD9C,SAAS;;AAgCV,MAAM,OAAO,sBAAuB,SAAQ,gCAAgC;IAC1D,UAAU,GAAG,KAAK,CAAC,QAAQ,sDACzC,KAAK,EAAE,wBAAwB,GAC/B,CAAC;IAEc,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE;QAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,iBAAiB,EAAE,CAAC;IAC5D,CAAC,sDAAC,CAAC;IAEH,IACc,eAAe;QAC3B,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,kBAAkB,CAAC,CAAC;IACjE,CAAC;IAED,IACc,SAAS;QACrB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,YAAY,CAAC,CAAC;IAC3D,CAAC;IAED,IACc,cAAc;QAC1B,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAChE,CAAC;IAED,IACc,YAAY;QACxB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,IACc,QAAQ;QACpB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;IAED,IACc,QAAQ;QACpB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;IAED,IACc,QAAQ;QACpB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;IAED,IACc,GAAG;QACf,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,IACc,IAAI;QAChB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;uGArDU,sBAAsB;2FAAtB,sBAAsB;;2FAAtB,sBAAsB;kBALlC,SAAS;mBAAC;oBACT,QAAQ,EAAE,0BAA0B;oBACpC,QAAQ,EAAE,wBAAwB;oBAClC,UAAU,EAAE,IAAI;iBACjB;;sBAWE,WAAW;uBAAC,uBAAuB;;sBAKnC,WAAW;uBAAC,iBAAiB;;sBAK7B,WAAW;uBAAC,sBAAsB;;sBAKlC,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,gBAAgB;;sBAK5B,WAAW;uBAAC,gBAAgB;;sBAK5B,WAAW;uBAAC,gBAAgB;;sBAK5B,WAAW;uBAAC,UAAU;;sBAKtB,WAAW;uBAAC,WAAW;;AAW1B,MAAM,OAAO,uBAAwB,SAAQ,gCAAgC;IAC1D,YAAY,GAAG,MAAM,CAA+B,UAAU,CAAC,CAAC;IACjE,UAAU,GAAG,KAAK,CAAC,QAAQ,sDACzC,KAAK,EAAE,yBAAyB,GAChC,CAAC;IAGgB,QAAQ,GAAG,yBAAkC,CAAC;IAEjE,IACc,SAAS;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC;IAClD,CAAC;IAED,IACc,WAAW;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACjF,CAAC;IAGS,MAAM;QACd,IAAI,CAAC,UAAU,EAAE,CAAC,eAAe,EAAE,CAAC;IACtC,CAAC;IAGS,OAAO;QACf,IAAI,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACxE,CAAC;IAGS,OAAO;QACf,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;YACxC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAGS,SAAS,CAAC,KAAoB;QACtC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YAC1B,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;gBACzC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;gBACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,UAAU,EAAE,CAAC,eAAe,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;YACtE,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;uGA5DU,uBAAuB;2FAAvB,uBAAuB;;2FAAvB,uBAAuB;kBALnC,SAAS;mBAAC;oBACT,QAAQ,EAAE,gCAAgC;oBAC1C,QAAQ,EAAE,yBAAyB;oBACnC,UAAU,EAAE,IAAI;iBACjB;;sBAOE,WAAW;uBAAC,gBAAgB;;sBAG5B,WAAW;uBAAC,OAAO;;sBAMnB,WAAW;uBAAC,mBAAmB;;sBAM/B,YAAY;uBAAC,MAAM;;sBAKnB,YAAY;uBAAC,OAAO;;sBAKpB,YAAY;uBAAC,OAAO;;sBAUpB,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;AA2BrC,MAAM,OAAO,yBAA0B,SAAQ,gCAAgC;IAC5D,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC,CAAC;IAC1D,UAAU,GAAG,KAAK,CAAC,QAAQ,sDACzC,KAAK,EAAE,2BAA2B,GAClC,CAAC;IAEa,QAAQ;QACtB,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEjB,MAAM,CACJ,CAAC,SAAS,EAAE,EAAE;YACZ,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YAC9C,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAEpC,SAAS,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,CAAC,EACD,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAC5B,CAAC;IACJ,CAAC;IAGkB,QAAQ,GAAG,2BAAoC,CAAC;IAEnE,IACc,YAAY;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,oBAAoB,EAAE,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC;IACxF,CAAC;IAED,IACc,YAAY;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,oBAAoB,EAAE,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC;IACxF,CAAC;IAED,IACc,YAAY;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,oBAAoB,EAAE,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC;IACxF,CAAC;IAED,IACc,YAAY;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,oBAAoB,EAAE,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC;IACxF,CAAC;IAED,IACc,YAAY;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,oBAAoB,EAAE,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC;IACxF,CAAC;IAED,IACc,QAAQ;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,oBAAoB,EAAE,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC;IACtF,CAAC;IAED,IACc,QAAQ;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,oBAAoB,EAAE,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;IACpF,CAAC;IAGS,OAAO;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC;QACpD,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;YACpD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAGS,SAAS,CAAC,KAAoB;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC;QACpD,IAAI,CAAC,UAAU,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;YACpD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;uGAlFU,yBAAyB;2FAAzB,yBAAyB;;2FAAzB,yBAAyB;kBALrC,SAAS;mBAAC;oBACT,QAAQ,EAAE,mCAAmC;oBAC7C,QAAQ,EAAE,2BAA2B;oBACrC,UAAU,EAAE,IAAI;iBACjB;;sBAsBE,WAAW;uBAAC,gBAAgB;;sBAG5B,WAAW;uBAAC,oBAAoB;;sBAMhC,WAAW;uBAAC,oBAAoB;;sBAMhC,WAAW;uBAAC,oBAAoB;;sBAMhC,WAAW;uBAAC,oBAAoB;;sBAMhC,WAAW;uBAAC,oBAAoB;;sBAMhC,WAAW;uBAAC,UAAU;;sBAMtB,WAAW;uBAAC,gBAAgB;;sBAM5B,YAAY;uBAAC,OAAO;;sBASpB,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;AAerC,MAAM,OAAO,4BAA6B,SAAQ,gCAAgC;IAChE,UAAU,GAAG,KAAK,CAAC,QAAQ,sDACzC,KAAK,EAAE,8BAA8B,GACrC,CAAC;IAGgB,QAAQ,GAAG,8BAAuC,CAAC;IAG5D,OAAO;QACf,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAClD,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;uGAjBU,4BAA4B;2FAA5B,4BAA4B;;2FAA5B,4BAA4B;kBALxC,SAAS;mBAAC;oBACT,QAAQ,EAAE,sCAAsC;oBAChD,QAAQ,EAAE,8BAA8B;oBACxC,UAAU,EAAE,IAAI;iBACjB;;sBAME,WAAW;uBAAC,gBAAgB;;sBAG5B,YAAY;uBAAC,OAAO;;AAiBvB,MAAM,OAAO,4BAA6B,SAAQ,gCAAgC;IAChE,UAAU,GAAG,KAAK,CAAC,QAAQ,sDACzC,KAAK,EAAE,8BAA8B,GACrC,CAAC;IAGgB,QAAQ,GAAG,8BAAuC,CAAC;IAG5D,OAAO;QACf,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAClD,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;uGAjBU,4BAA4B;2FAA5B,4BAA4B;;2FAA5B,4BAA4B;kBALxC,SAAS;mBAAC;oBACT,QAAQ,EAAE,sCAAsC;oBAChD,QAAQ,EAAE,8BAA8B;oBACxC,UAAU,EAAE,IAAI;iBACjB;;sBAME,WAAW;uBAAC,gBAAgB;;sBAG5B,YAAY;uBAAC,OAAO;;AAiBvB,MAAM,OAAO,8BAA+B,SAAQ,gCAAgC;IAClE,UAAU,GAAG,KAAK,CAAC,QAAQ,sDACzC,KAAK,EAAE,gCAAgC,GACvC,CAAC;IAGgB,QAAQ,GAAG,iCAA0C,CAAC;IAEzE,IACc,eAAe;QAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,CAAC;IAGS,OAAO;QACf,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACnD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;uGAtBU,8BAA8B;2FAA9B,8BAA8B;;2FAA9B,8BAA8B;kBAL1C,SAAS;mBAAC;oBACT,QAAQ,EAAE,wCAAwC;oBAClD,QAAQ,EAAE,gCAAgC;oBAC1C,UAAU,EAAE,IAAI;iBACjB;;sBAME,WAAW;uBAAC,gBAAgB;;sBAG5B,WAAW;uBAAC,uBAAuB;;sBAMnC,YAAY;uBAAC,OAAO;;AAgBvB,MAAM,OAAO,yBAA0B,SAAQ,gCAAgC;IAC7D,UAAU,GAAG,KAAK,CAAC,QAAQ,sDACzC,KAAK,EAAE,2BAA2B,GAClC,CAAC;IACH,IACc,QAAQ;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,CACL,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,iBAAiB,EAAE,CAAC,WAAW,CAAC,IAAI,wBAAwB,CAC5F,CAAC;IACJ,CAAC;IAED,IACc,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC;IACvE,CAAC;IAED,IACc,IAAI;QAChB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAC5E,CAAC;IAED,IACc,oBAAoB;QAChC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,iBAAiB,EAAE,CAAC,uBAAuB,CAAC,IAAI,IAAI,CAAC;IAC7F,CAAC;IAED,IACc,cAAc;QAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC;IACvF,CAAC;IAGS,SAAS,CAAC,KAAoB;QACtC,IAAI,CAAC,UAAU,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,oCAAoC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;uGA1CU,yBAAyB;2FAAzB,yBAAyB;;2FAAzB,yBAAyB;kBALrC,SAAS;mBAAC;oBACT,QAAQ,EAAE,6BAA6B;oBACvC,QAAQ,EAAE,2BAA2B;oBACrC,UAAU,EAAE,IAAI;iBACjB;;sBAKE,WAAW;uBAAC,gBAAgB;;sBAQ5B,WAAW;uBAAC,SAAS;;sBAMrB,WAAW;uBAAC,WAAW;;sBAMvB,WAAW;uBAAC,4BAA4B;;sBAMxC,WAAW;uBAAC,sBAAsB;;sBAMlC,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;AAcrC,MAAM,OAAO,yBAA0B,SAAQ,gCAAgC;IAC5D,OAAO,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAC7C,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,sDAAC,CAAC;IACvD,IAAI,GAAG,KAAK,CAAC,QAAQ,gDACnC,KAAK,EAAE,2BAA2B,GAClC,CAAC;IAEc,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE;QAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC,sDAAC,CAAC;IAEH,IACc,EAAE;QACd,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC;IACtC,CAAC;IAED,IACc,IAAI;QAChB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,IACc,QAAQ;QACpB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAED,IACc,QAAQ;QACpB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,IACc,WAAW;QACvB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;IAED,IACc,YAAY;QACxB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,IACc,SAAS;QACrB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,YAAY,CAAC,CAAC;IAC3D,CAAC;IAED,IACc,YAAY;QACxB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,IACc,UAAU;QACtB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,CAAC,CAAC;IAC5D,CAAC;IAED,IACc,YAAY;QACxB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,IACc,WAAW;QACvB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;IAED,IACc,gBAAgB;QAC5B,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,oBAAoB,CAAC,CAAC;IACnE,CAAC;IAED,IACc,UAAU;QACtB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,CAAC,CAAC;IAC5D,CAAC;IAED,IACc,WAAW;QACvB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,IACc,WAAW;QACvB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,IACc,gBAAgB;QAC5B,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,oBAAoB,CAAC,CAAC;IACnE,CAAC;IAED,IACc,cAAc;QAC1B,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,kBAAkB,CAAC,CAAC;IACjE,CAAC;IAED,IACc,gBAAgB;QAC5B,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,oBAAoB,CAAC,CAAC;IACnE,CAAC;IAED,IACc,YAAY;QACxB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAC/D,CAAC;IAED,IACc,cAAc;QAC1B,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,kBAAkB,CAAC,CAAC;IACjE,CAAC;IAED,IACc,YAAY;QACxB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,IACc,QAAQ;QACpB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;IAED,IACc,SAAS;QACrB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,YAAY,CAAC,CAAC;IAC3D,CAAC;IAGS,OAAO,CAAC,KAAiB;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAGS,cAAc;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;uGAlJU,yBAAyB;2FAAzB,yBAAyB;;2FAAzB,yBAAyB;kBALrC,SAAS;mBAAC;oBACT,QAAQ,EAAE,mCAAmC;oBAC7C,QAAQ,EAAE,2BAA2B;oBACrC,UAAU,EAAE,IAAI;iBACjB;;sBAaE,WAAW;uBAAC,SAAS;;sBAKrB,WAAW;uBAAC,WAAW;;sBAKvB,WAAW;uBAAC,eAAe;;sBAK3B,WAAW;uBAAC,UAAU;;sBAKtB,WAAW;uBAAC,mBAAmB;;sBAK/B,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,iBAAiB;;sBAK7B,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,kBAAkB;;sBAK9B,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,mBAAmB;;sBAK/B,WAAW;uBAAC,yBAAyB;;sBAKrC,WAAW;uBAAC,kBAAkB;;sBAK9B,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,yBAAyB;;sBAKrC,WAAW;uBAAC,uBAAuB;;sBAKnC,WAAW;uBAAC,yBAAyB;;sBAKrC,WAAW;uBAAC,qBAAqB;;sBAKjC,WAAW;uBAAC,uBAAuB;;sBAKnC,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,gBAAgB;;sBAK5B,WAAW;uBAAC,iBAAiB;;sBAK7B,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;sBAWhC,YAAY;uBAAC,cAAc;;AAgB9B,MAAM,OAAO,2BAA4B,SAAQ,gCAAgC;IAC/D,UAAU,GAAG,KAAK,CAAC,QAAQ,sDACzC,KAAK,EAAE,6BAA6B,GACpC,CAAC;IAEgB,QAAQ,GAAG,wBAAiC,CAAC;IAG7C,IAAI,GAAG,MAAe,CAAC;IAGhC,SAAS,CAAC,KAAoB;QACtC,IAAI,CAAC,UAAU,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,oCAAoC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;uGAnBU,2BAA2B;2FAA3B,2BAA2B;;2FAA3B,2BAA2B;kBALvC,SAAS;mBAAC;oBACT,QAAQ,EAAE,+BAA+B;oBACzC,QAAQ,EAAE,6BAA6B;oBACvC,UAAU,EAAE,IAAI;iBACjB;;sBAKE,WAAW;uBAAC,gBAAgB;;sBAG5B,WAAW;uBAAC,WAAW;;sBAGvB,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;AAiBrC,MAAM,OAAO,6BAA8B,SAAQ,gCAAgC;IAChE,SAAS,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;IACjD,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,sDAAC,CAAC;IACzD,MAAM,GAAG,KAAK,CAAC,QAAQ,kDACrC,KAAK,EAAE,+BAA+B,GACtC,CAAC;IAEc,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE;QAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC,sDAAC,CAAC;IAEH,IACc,EAAE;QACd,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC;IACtC,CAAC;IAED,IACc,IAAI;QAChB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,IACc,QAAQ;QACpB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAED,IACc,QAAQ;QACpB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,IACc,YAAY;QACxB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,IACc,YAAY;QACxB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,IACc,UAAU;QACtB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,CAAC,CAAC;IAC5D,CAAC;IAED,IACc,YAAY;QACxB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,IACc,gBAAgB;QAC5B,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,oBAAoB,CAAC,CAAC;IACnE,CAAC;IAED,IACc,YAAY;QACxB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,IACc,QAAQ;QACpB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;IAGS,OAAO;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;uGA7EU,6BAA6B;2FAA7B,6BAA6B;;2FAA7B,6BAA6B;kBALzC,SAAS;mBAAC;oBACT,QAAQ,EAAE,uCAAuC;oBACjD,QAAQ,EAAE,+BAA+B;oBACzC,UAAU,EAAE,IAAI;iBACjB;;sBAaE,WAAW;uBAAC,SAAS;;sBAKrB,WAAW;uBAAC,WAAW;;sBAKvB,WAAW;uBAAC,eAAe;;sBAK3B,WAAW;uBAAC,UAAU;;sBAKtB,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,kBAAkB;;sBAK9B,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,yBAAyB;;sBAKrC,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,gBAAgB;;sBAK5B,YAAY;uBAAC,OAAO;;AAkBvB,MAAM,OAAO,0BAA2B,SAAQ,gCAAgC;IAC9D,UAAU,GAAG,KAAK,CAAC,QAAQ,sDACzC,KAAK,EAAE,4BAA4B,GACnC,CAAC;IAEgB,QAAQ,GAAG,wBAAiC,CAAC;IAG7C,IAAI,GAAG,MAAe,CAAC;IAGhC,SAAS,CAAC,KAAoB;QACtC,IAAI,CAAC,UAAU,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,UAAU,EAAE,CAAC,eAAe,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,oCAAoC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;uGAnBU,0BAA0B;2FAA1B,0BAA0B;;2FAA1B,0BAA0B;kBALtC,SAAS;mBAAC;oBACT,QAAQ,EAAE,8BAA8B;oBACxC,QAAQ,EAAE,4BAA4B;oBACtC,UAAU,EAAE,IAAI;iBACjB;;sBAKE,WAAW;uBAAC,gBAAgB;;sBAG5B,WAAW;uBAAC,WAAW;;sBAGvB,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;AAiBrC,MAAM,OAAO,4BAA6B,SAAQ,gCAAgC;IAC/D,QAAQ,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAC/C,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,sDAAC,CAAC;IACxD,MAAM,GAAG,KAAK,CAAC,QAAQ,kDACrC,KAAK,EAAE,8BAA8B,GACrC,CAAC;IAEc,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE;QAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC,sDAAC,CAAC;IAEH,IACc,EAAE;QACd,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC;IACtC,CAAC;IAED,IACc,IAAI;QAChB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,IACc,QAAQ;QACpB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAED,IACc,QAAQ;QACpB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,IACc,YAAY;QACxB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,IACc,YAAY;QACxB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,IACc,UAAU;QACtB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,CAAC,CAAC;IAC5D,CAAC;IAED,IACc,YAAY;QACxB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,IACc,gBAAgB;QAC5B,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,oBAAoB,CAAC,CAAC;IACnE,CAAC;IAED,IACc,YAAY;QACxB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,IACc,QAAQ;QACpB,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;IAGS,OAAO;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC,eAAe,EAAE,CAAC;QACpC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;uGA7EU,4BAA4B;2FAA5B,4BAA4B;;2FAA5B,4BAA4B;kBALxC,SAAS;mBAAC;oBACT,QAAQ,EAAE,sCAAsC;oBAChD,QAAQ,EAAE,8BAA8B;oBACxC,UAAU,EAAE,IAAI;iBACjB;;sBAaE,WAAW;uBAAC,SAAS;;sBAKrB,WAAW;uBAAC,WAAW;;sBAKvB,WAAW;uBAAC,eAAe;;sBAK3B,WAAW;uBAAC,UAAU;;sBAKtB,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,kBAAkB;;sBAK9B,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,yBAAyB;;sBAKrC,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,gBAAgB;;sBAK5B,YAAY;uBAAC,OAAO","sourcesContent":["import {\n DestroyRef,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Injector,\n computed,\n effect,\n inject,\n input,\n signal,\n type OnInit,\n type Signal,\n} from '@angular/core';\nimport type {\n TngDateCell,\n TngDateRangePickerAttributeMap,\n TngDateRangePickerController,\n TngDateRangePickerOutputs,\n TngMonthOption,\n TngYearOption,\n} from './date-range-picker.types';\n\ntype TngDateRangePickerControllerLike = TngDateRangePickerController<any>;\nexport type TngBoundDateRangePicker<TDate> = Readonly<{\n outputs: Signal<TngDateRangePickerOutputs<TDate>>;\n periodLabel: Signal<string>;\n}>;\n\nexport function resolveTngDateRangePickerPeriodLabel<TDate>(\n controller: TngDateRangePickerController<TDate>,\n outputs: TngDateRangePickerOutputs<TDate>,\n): string {\n if (outputs.view === 'year') {\n const startYear = outputs.yearOptions[0]?.year;\n const endYear = outputs.yearOptions[outputs.yearOptions.length - 1]?.year;\n if (startYear !== undefined && endYear !== undefined) {\n return `${startYear} - ${endYear}`;\n }\n }\n\n if (outputs.view === 'month') {\n return controller.formatDate(outputs.visibleMonth, 'year-label');\n }\n\n return outputs.labelMonthYear;\n}\n\nexport function bindTngDateRangePicker<TDate>(\n controller: TngDateRangePickerController<TDate>,\n): TngBoundDateRangePicker<TDate> {\n const destroyRef = inject(DestroyRef);\n const version = signal(0);\n const unsubscribe = controller.subscribe(() => {\n version.update((value) => value + 1);\n });\n\n destroyRef.onDestroy(() => unsubscribe());\n\n const outputs = computed(() => {\n version();\n return controller.getOutputs();\n });\n\n const periodLabel = computed(() => resolveTngDateRangePickerPeriodLabel(controller, outputs()));\n\n return Object.freeze({ outputs, periodLabel });\n}\n\nfunction resolveCurrentFocusTargetId(outputs: TngDateRangePickerOutputs<unknown>): string | null {\n if (outputs.view === 'day') {\n const gridAttributes = outputs.getGridAttributes();\n if (gridAttributes['aria-activedescendant'] !== undefined) {\n return gridAttributes.id ?? null;\n }\n\n return outputs.cells.find((cell) => cell.active)?.id ?? null;\n }\n\n if (outputs.view === 'month') {\n return outputs.monthOptions.find((option) => option.active)?.id ?? null;\n }\n\n if (outputs.view === 'year') {\n return outputs.yearOptions.find((option) => option.active)?.id ?? null;\n }\n\n return null;\n}\n\nfunction shouldSyncOverlayFocusAfterPickerKey(key: string): boolean {\n return (\n key === 'ArrowUp' ||\n key === 'ArrowDown' ||\n key === 'ArrowLeft' ||\n key === 'ArrowRight' ||\n key === 'Home' ||\n key === 'End' ||\n key === 'PageUp' ||\n key === 'PageDown' ||\n key === 'Enter' ||\n key === ' ' ||\n key === 'Escape'\n );\n}\n\nfunction isPickerActivationKey(key: string): boolean {\n return key === 'Enter' || key === ' ';\n}\n\nfunction queueDateRangePickerOverlayFocusSync(\n controller: TngDateRangePickerControllerLike,\n ownerDocument: Document | null,\n): void {\n const targetDocument = ownerDocument ?? document;\n\n queueMicrotask(() => {\n const focusTarget = (): void => {\n const outputs = controller.getOutputs();\n if (!outputs.open) {\n return;\n }\n\n const targetId = resolveCurrentFocusTargetId(outputs);\n if (targetId === null) {\n return;\n }\n\n const target = targetDocument.getElementById(targetId);\n if (!(target instanceof HTMLElement)) {\n return;\n }\n\n target.focus();\n };\n\n if (typeof requestAnimationFrame === 'function') {\n requestAnimationFrame(() => focusTarget());\n return;\n }\n\n setTimeout(() => focusTarget(), 0);\n });\n}\n\nfunction resolveAttribute(attributes: TngDateRangePickerAttributeMap, key: string): string | null {\n return attributes[key] ?? null;\n}\n\n@Directive()\nabstract class TngDateRangePickerControllerPart implements OnInit {\n protected readonly injector = inject(Injector);\n protected readonly ownerDocument =\n inject(ElementRef<HTMLElement>).nativeElement.ownerDocument ?? null;\n protected readonly renderVersion = signal(0);\n public abstract readonly controller: Signal<TngDateRangePickerControllerLike>;\n\n public ngOnInit(): void {\n effect(\n (onCleanup) => {\n const controller = this.controller();\n const unsubscribe = controller.subscribe(() => {\n this.renderVersion.update((value) => value + 1);\n });\n\n onCleanup(() => unsubscribe());\n },\n { injector: this.injector },\n );\n }\n\n protected syncOverlayFocus(): void {\n queueDateRangePickerOverlayFocusSync(this.controller(), this.ownerDocument);\n }\n}\n\n@Directive({\n selector: '[tngDateRangePickerHost]',\n exportAs: 'tngDateRangePickerHost',\n standalone: true,\n})\nexport class TngDateRangePickerHost extends TngDateRangePickerControllerPart {\n public readonly controller = input.required<TngDateRangePickerControllerLike>({\n alias: 'tngDateRangePickerHost',\n });\n\n private readonly attributes = computed(() => {\n this.renderVersion();\n return this.controller().getOutputs().getHostAttributes();\n });\n\n @HostBinding('attr.aria-describedby')\n protected get ariaDescribedby(): string | null {\n return resolveAttribute(this.attributes(), 'aria-describedby');\n }\n\n @HostBinding('attr.aria-label')\n protected get ariaLabel(): string | null {\n return resolveAttribute(this.attributes(), 'aria-label');\n }\n\n @HostBinding('attr.aria-labelledby')\n protected get ariaLabelledby(): string | null {\n return resolveAttribute(this.attributes(), 'aria-labelledby');\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): string | null {\n return resolveAttribute(this.attributes(), 'data-disabled');\n }\n\n @HostBinding('attr.data-open')\n protected get dataOpen(): string | null {\n return resolveAttribute(this.attributes(), 'data-open');\n }\n\n @HostBinding('attr.data-slot')\n protected get dataSlot(): string | null {\n return resolveAttribute(this.attributes(), 'data-slot');\n }\n\n @HostBinding('attr.data-view')\n protected get dataView(): string | null {\n return resolveAttribute(this.attributes(), 'data-view');\n }\n\n @HostBinding('attr.dir')\n protected get dir(): string | null {\n return resolveAttribute(this.attributes(), 'dir');\n }\n\n @HostBinding('attr.role')\n protected get role(): string | null {\n return resolveAttribute(this.attributes(), 'role');\n }\n}\n\n@Directive({\n selector: 'input[tngDateRangePickerInput]',\n exportAs: 'tngDateRangePickerInput',\n standalone: true,\n})\nexport class TngDateRangePickerInput extends TngDateRangePickerControllerPart {\n private readonly inputElement = inject<ElementRef<HTMLInputElement>>(ElementRef);\n public readonly controller = input.required<TngDateRangePickerControllerLike>({\n alias: 'tngDateRangePickerInput',\n });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'date-range-picker-input' as const;\n\n @HostBinding('value')\n protected get valueProp(): string {\n this.renderVersion();\n return this.controller().getOutputs().inputText;\n }\n\n @HostBinding('attr.aria-invalid')\n protected get ariaInvalid(): 'true' | null {\n this.renderVersion();\n return this.controller().getOutputs().validationError !== null ? 'true' : null;\n }\n\n @HostListener('blur')\n protected onBlur(): void {\n this.controller().commitInputText();\n }\n\n @HostListener('input')\n protected onInput(): void {\n this.controller().setInputText(this.inputElement.nativeElement.value);\n }\n\n @HostListener('click')\n protected onClick(): void {\n if (this.controller().getOutputs().open) {\n return;\n }\n\n this.controller().open();\n this.syncOverlayFocus();\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n if (event.key === 'Enter') {\n event.preventDefault();\n if (!this.controller().getOutputs().open) {\n this.controller().open();\n this.syncOverlayFocus();\n return;\n }\n\n this.controller().commitInputText();\n return;\n }\n\n if (event.key === 'ArrowDown' && !this.controller().getOutputs().open) {\n event.preventDefault();\n this.controller().open();\n this.syncOverlayFocus();\n }\n }\n}\n\n@Directive({\n selector: 'button[tngDateRangePickerTrigger]',\n exportAs: 'tngDateRangePickerTrigger',\n standalone: true,\n})\nexport class TngDateRangePickerTrigger extends TngDateRangePickerControllerPart {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n public readonly controller = input.required<TngDateRangePickerControllerLike>({\n alias: 'tngDateRangePickerTrigger',\n });\n\n public override ngOnInit(): void {\n super.ngOnInit();\n\n effect(\n (onCleanup) => {\n const controller = this.controller();\n const element = this.elementRef.nativeElement;\n controller.registerTrigger(element);\n\n onCleanup(() => controller.registerTrigger(null));\n },\n { injector: this.injector },\n );\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'date-range-picker-trigger' as const;\n\n @HostBinding('attr.aria-haspopup')\n protected get ariaHaspopup(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getTriggerAttributes()['aria-haspopup'] ?? null;\n }\n\n @HostBinding('attr.aria-expanded')\n protected get ariaExpanded(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getTriggerAttributes()['aria-expanded'] ?? null;\n }\n\n @HostBinding('attr.aria-controls')\n protected get ariaControls(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getTriggerAttributes()['aria-controls'] ?? null;\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabled(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getTriggerAttributes()['aria-disabled'] ?? null;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getTriggerAttributes()['data-disabled'] ?? null;\n }\n\n @HostBinding('disabled')\n protected get disabled(): boolean {\n this.renderVersion();\n return this.controller().getOutputs().getTriggerAttributes()['disabled'] === 'true';\n }\n\n @HostBinding('attr.data-open')\n protected get dataOpen(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getTriggerAttributes()['data-open'] ?? null;\n }\n\n @HostListener('click')\n protected onClick(): void {\n const wasOpen = this.controller().getOutputs().open;\n this.controller().toggleOpen();\n if (!wasOpen && this.controller().getOutputs().open) {\n this.syncOverlayFocus();\n }\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n const wasOpen = this.controller().getOutputs().open;\n this.controller().handleTriggerKeyDown(event);\n if (!wasOpen && this.controller().getOutputs().open) {\n this.syncOverlayFocus();\n }\n }\n}\n\n@Directive({\n selector: 'button[tngDateRangePickerPrevButton]',\n exportAs: 'tngDateRangePickerPrevButton',\n standalone: true,\n})\nexport class TngDateRangePickerPrevButton extends TngDateRangePickerControllerPart {\n public readonly controller = input.required<TngDateRangePickerControllerLike>({\n alias: 'tngDateRangePickerPrevButton',\n });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'date-range-picker-nav-button' as const;\n\n @HostListener('click')\n protected onClick(): void {\n if (this.controller().getOutputs().view === 'day') {\n this.controller().prevMonth();\n } else {\n this.controller().prevYear();\n }\n\n this.syncOverlayFocus();\n }\n}\n\n@Directive({\n selector: 'button[tngDateRangePickerNextButton]',\n exportAs: 'tngDateRangePickerNextButton',\n standalone: true,\n})\nexport class TngDateRangePickerNextButton extends TngDateRangePickerControllerPart {\n public readonly controller = input.required<TngDateRangePickerControllerLike>({\n alias: 'tngDateRangePickerNextButton',\n });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'date-range-picker-nav-button' as const;\n\n @HostListener('click')\n protected onClick(): void {\n if (this.controller().getOutputs().view === 'day') {\n this.controller().nextMonth();\n } else {\n this.controller().nextYear();\n }\n\n this.syncOverlayFocus();\n }\n}\n\n@Directive({\n selector: 'button[tngDateRangePickerPeriodButton]',\n exportAs: 'tngDateRangePickerPeriodButton',\n standalone: true,\n})\nexport class TngDateRangePickerPeriodButton extends TngDateRangePickerControllerPart {\n public readonly controller = input.required<TngDateRangePickerControllerLike>({\n alias: 'tngDateRangePickerPeriodButton',\n });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'date-range-picker-period-button' as const;\n\n @HostBinding('attr.data-interactive')\n protected get dataInteractive(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().view !== 'year' ? 'true' : null;\n }\n\n @HostListener('click')\n protected onClick(): void {\n if (this.controller().getOutputs().view === 'year') {\n return;\n }\n\n this.controller().showYearsPanel();\n this.syncOverlayFocus();\n }\n}\n\n@Directive({\n selector: '[tngDateRangePickerDayGrid]',\n exportAs: 'tngDateRangePickerDayGrid',\n standalone: true,\n})\nexport class TngDateRangePickerDayGrid extends TngDateRangePickerControllerPart {\n public readonly controller = input.required<TngDateRangePickerControllerLike>({\n alias: 'tngDateRangePickerDayGrid',\n });\n @HostBinding('attr.data-slot')\n protected get dataSlot(): string | null {\n this.renderVersion();\n return (\n this.controller().getOutputs().getGridAttributes()['data-slot'] ?? 'date-range-picker-grid'\n );\n }\n\n @HostBinding('attr.id')\n protected get id(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getGridAttributes().id ?? null;\n }\n\n @HostBinding('attr.role')\n protected get role(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getGridAttributes()['role'] ?? null;\n }\n\n @HostBinding('attr.aria-activedescendant')\n protected get ariaActiveDescendant(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getGridAttributes()['aria-activedescendant'] ?? null;\n }\n\n @HostBinding('attr.aria-labelledby')\n protected get ariaLabelledby(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getGridAttributes()['aria-labelledby'] ?? null;\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n this.controller().handleGridKeyDown(event);\n if (shouldSyncOverlayFocusAfterPickerKey(event.key)) {\n this.syncOverlayFocus();\n }\n }\n}\n\n@Directive({\n selector: 'button[tngDateRangePickerDayCell]',\n exportAs: 'tngDateRangePickerDayCell',\n standalone: true,\n})\nexport class TngDateRangePickerDayCell extends TngDateRangePickerControllerPart {\n private readonly dayGrid = inject(TngDateRangePickerDayGrid);\n public readonly controller = computed(() => this.dayGrid.controller());\n public readonly cell = input.required<Readonly<TngDateCell<any>>>({\n alias: 'tngDateRangePickerDayCell',\n });\n\n private readonly attributes = computed(() => {\n this.renderVersion();\n return this.controller().getOutputs().getCellAttributes(this.cell());\n });\n\n @HostBinding('attr.id')\n protected get id(): string | null {\n return this.attributes().id ?? null;\n }\n\n @HostBinding('attr.role')\n protected get role(): string | null {\n return resolveAttribute(this.attributes(), 'role');\n }\n\n @HostBinding('attr.tabindex')\n protected get tabindex(): string | null {\n return resolveAttribute(this.attributes(), 'tabindex');\n }\n\n @HostBinding('disabled')\n protected get disabled(): boolean {\n return this.cell().disabled;\n }\n\n @HostBinding('attr.aria-current')\n protected get ariaCurrent(): string | null {\n return resolveAttribute(this.attributes(), 'aria-current');\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabled(): string | null {\n return resolveAttribute(this.attributes(), 'aria-disabled');\n }\n\n @HostBinding('attr.aria-label')\n protected get ariaLabel(): string | null {\n return resolveAttribute(this.attributes(), 'aria-label');\n }\n\n @HostBinding('attr.aria-selected')\n protected get ariaSelected(): string | null {\n return resolveAttribute(this.attributes(), 'aria-selected');\n }\n\n @HostBinding('attr.data-active')\n protected get dataActive(): string | null {\n return resolveAttribute(this.attributes(), 'data-active');\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): string | null {\n return resolveAttribute(this.attributes(), 'data-disabled');\n }\n\n @HostBinding('attr.data-focused')\n protected get dataFocused(): string | null {\n return resolveAttribute(this.attributes(), 'data-focused');\n }\n\n @HostBinding('attr.data-focus-visible')\n protected get dataFocusVisible(): string | null {\n return resolveAttribute(this.attributes(), 'data-focus-visible');\n }\n\n @HostBinding('attr.data-hidden')\n protected get dataHidden(): string | null {\n return resolveAttribute(this.attributes(), 'data-hidden');\n }\n\n @HostBinding('attr.data-in-month')\n protected get dataInMonth(): string | null {\n return resolveAttribute(this.attributes(), 'data-in-month');\n }\n\n @HostBinding('attr.data-in-range')\n protected get dataInRange(): string | null {\n return resolveAttribute(this.attributes(), 'data-in-range');\n }\n\n @HostBinding('attr.data-outside-month')\n protected get dataOutsideMonth(): string | null {\n return resolveAttribute(this.attributes(), 'data-outside-month');\n }\n\n @HostBinding('attr.data-preview-end')\n protected get dataPreviewEnd(): string | null {\n return resolveAttribute(this.attributes(), 'data-preview-end');\n }\n\n @HostBinding('attr.data-preview-range')\n protected get dataPreviewRange(): string | null {\n return resolveAttribute(this.attributes(), 'data-preview-range');\n }\n\n @HostBinding('attr.data-range-end')\n protected get dataRangeEnd(): string | null {\n return resolveAttribute(this.attributes(), 'data-range-end');\n }\n\n @HostBinding('attr.data-range-start')\n protected get dataRangeStart(): string | null {\n return resolveAttribute(this.attributes(), 'data-range-start');\n }\n\n @HostBinding('attr.data-selected')\n protected get dataSelected(): string | null {\n return resolveAttribute(this.attributes(), 'data-selected');\n }\n\n @HostBinding('attr.data-slot')\n protected get dataSlot(): string | null {\n return resolveAttribute(this.attributes(), 'data-slot');\n }\n\n @HostBinding('attr.data-today')\n protected get dataToday(): string | null {\n return resolveAttribute(this.attributes(), 'data-today');\n }\n\n @HostListener('click', ['$event'])\n protected onClick(event: MouseEvent): void {\n const cell = this.cell();\n if (cell.disabled || cell.hidden) {\n return;\n }\n\n this.controller().handleCellClick(cell.date, { shiftKey: event.shiftKey });\n this.syncOverlayFocus();\n }\n\n @HostListener('pointerenter')\n protected onPointerEnter(): void {\n const cell = this.cell();\n if (cell.disabled || cell.hidden) {\n return;\n }\n\n this.controller().handleCellPointerEnter(cell.date);\n }\n}\n\n@Directive({\n selector: '[tngDateRangePickerMonthGrid]',\n exportAs: 'tngDateRangePickerMonthGrid',\n standalone: true,\n})\nexport class TngDateRangePickerMonthGrid extends TngDateRangePickerControllerPart {\n public readonly controller = input.required<TngDateRangePickerControllerLike>({\n alias: 'tngDateRangePickerMonthGrid',\n });\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'date-range-picker-grid' as const;\n\n @HostBinding('attr.role')\n protected readonly role = 'grid' as const;\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n this.controller().handleMonthGridKeyDown(event);\n if (isPickerActivationKey(event.key)) {\n this.controller().showDaysPanel();\n }\n if (shouldSyncOverlayFocusAfterPickerKey(event.key)) {\n this.syncOverlayFocus();\n }\n }\n}\n\n@Directive({\n selector: 'button[tngDateRangePickerMonthOption]',\n exportAs: 'tngDateRangePickerMonthOption',\n standalone: true,\n})\nexport class TngDateRangePickerMonthOption extends TngDateRangePickerControllerPart {\n private readonly monthGrid = inject(TngDateRangePickerMonthGrid);\n public readonly controller = computed(() => this.monthGrid.controller());\n public readonly option = input.required<Readonly<TngMonthOption<any>>>({\n alias: 'tngDateRangePickerMonthOption',\n });\n\n private readonly attributes = computed(() => {\n this.renderVersion();\n return this.controller().getOutputs().getMonthAttributes(this.option());\n });\n\n @HostBinding('attr.id')\n protected get id(): string | null {\n return this.attributes().id ?? null;\n }\n\n @HostBinding('attr.role')\n protected get role(): string | null {\n return resolveAttribute(this.attributes(), 'role');\n }\n\n @HostBinding('attr.tabindex')\n protected get tabindex(): string | null {\n return resolveAttribute(this.attributes(), 'tabindex');\n }\n\n @HostBinding('disabled')\n protected get disabled(): boolean {\n return this.option().disabled;\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabled(): string | null {\n return resolveAttribute(this.attributes(), 'aria-disabled');\n }\n\n @HostBinding('attr.aria-selected')\n protected get ariaSelected(): string | null {\n return resolveAttribute(this.attributes(), 'aria-selected');\n }\n\n @HostBinding('attr.data-active')\n protected get dataActive(): string | null {\n return resolveAttribute(this.attributes(), 'data-active');\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): string | null {\n return resolveAttribute(this.attributes(), 'data-disabled');\n }\n\n @HostBinding('attr.data-focus-visible')\n protected get dataFocusVisible(): string | null {\n return resolveAttribute(this.attributes(), 'data-focus-visible');\n }\n\n @HostBinding('attr.data-selected')\n protected get dataSelected(): string | null {\n return resolveAttribute(this.attributes(), 'data-selected');\n }\n\n @HostBinding('attr.data-slot')\n protected get dataSlot(): string | null {\n return resolveAttribute(this.attributes(), 'data-slot');\n }\n\n @HostListener('click')\n protected onClick(): void {\n const option = this.option();\n if (option.disabled) {\n return;\n }\n\n this.controller().selectMonth(option.index);\n this.controller().showDaysPanel();\n this.syncOverlayFocus();\n }\n}\n\n@Directive({\n selector: '[tngDateRangePickerYearGrid]',\n exportAs: 'tngDateRangePickerYearGrid',\n standalone: true,\n})\nexport class TngDateRangePickerYearGrid extends TngDateRangePickerControllerPart {\n public readonly controller = input.required<TngDateRangePickerControllerLike>({\n alias: 'tngDateRangePickerYearGrid',\n });\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'date-range-picker-grid' as const;\n\n @HostBinding('attr.role')\n protected readonly role = 'grid' as const;\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n this.controller().handleYearGridKeyDown(event);\n if (isPickerActivationKey(event.key)) {\n this.controller().showMonthsPanel();\n }\n if (shouldSyncOverlayFocusAfterPickerKey(event.key)) {\n this.syncOverlayFocus();\n }\n }\n}\n\n@Directive({\n selector: 'button[tngDateRangePickerYearOption]',\n exportAs: 'tngDateRangePickerYearOption',\n standalone: true,\n})\nexport class TngDateRangePickerYearOption extends TngDateRangePickerControllerPart {\n private readonly yearGrid = inject(TngDateRangePickerYearGrid);\n public readonly controller = computed(() => this.yearGrid.controller());\n public readonly option = input.required<Readonly<TngYearOption<any>>>({\n alias: 'tngDateRangePickerYearOption',\n });\n\n private readonly attributes = computed(() => {\n this.renderVersion();\n return this.controller().getOutputs().getYearAttributes(this.option());\n });\n\n @HostBinding('attr.id')\n protected get id(): string | null {\n return this.attributes().id ?? null;\n }\n\n @HostBinding('attr.role')\n protected get role(): string | null {\n return resolveAttribute(this.attributes(), 'role');\n }\n\n @HostBinding('attr.tabindex')\n protected get tabindex(): string | null {\n return resolveAttribute(this.attributes(), 'tabindex');\n }\n\n @HostBinding('disabled')\n protected get disabled(): boolean {\n return this.option().disabled;\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabled(): string | null {\n return resolveAttribute(this.attributes(), 'aria-disabled');\n }\n\n @HostBinding('attr.aria-selected')\n protected get ariaSelected(): string | null {\n return resolveAttribute(this.attributes(), 'aria-selected');\n }\n\n @HostBinding('attr.data-active')\n protected get dataActive(): string | null {\n return resolveAttribute(this.attributes(), 'data-active');\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): string | null {\n return resolveAttribute(this.attributes(), 'data-disabled');\n }\n\n @HostBinding('attr.data-focus-visible')\n protected get dataFocusVisible(): string | null {\n return resolveAttribute(this.attributes(), 'data-focus-visible');\n }\n\n @HostBinding('attr.data-selected')\n protected get dataSelected(): string | null {\n return resolveAttribute(this.attributes(), 'data-selected');\n }\n\n @HostBinding('attr.data-slot')\n protected get dataSlot(): string | null {\n return resolveAttribute(this.attributes(), 'data-slot');\n }\n\n @HostListener('click')\n protected onClick(): void {\n const option = this.option();\n if (option.disabled) {\n return;\n }\n\n this.controller().selectYear(option.year);\n this.controller().showMonthsPanel();\n this.syncOverlayFocus();\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker.adapters.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/datepicker/datepicker.adapters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAEd,iBAAiB,EACjB,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAiH5B,eAAO,MAAM,4BAA4B,EAAE,cAAc,CAAC,IAAI,CAsF5D,CAAC;AAEH,wBAAgB,kBAAkB,CAAC,KAAK,EACtC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACxC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAC/B,MAAM,CAAC,EAAE,MAAM,GACd,KAAK,GAAG,IAAI,CA0Bd;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAIjE"}
1
+ {"version":3,"file":"datepicker.adapters.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/datepicker/datepicker.adapters.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE7F,eAAO,MAAM,4BAA4B,EAAE,cAAc,CAAC,IAAI,CAAyB,CAAC;AAExF,wBAAgB,kBAAkB,CAAC,KAAK,EACtC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACxC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAC/B,MAAM,CAAC,EAAE,MAAM,GACd,KAAK,GAAG,IAAI,CAEd;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEjE"}
@@ -1,194 +1,9 @@
1
- function createLocalDate(year, month, day) {
2
- return new Date(year, month, day, 12, 0, 0, 0);
3
- }
4
- function normalizeDateInstance(date) {
5
- return createLocalDate(date.getFullYear(), date.getMonth(), date.getDate());
6
- }
7
- function toComparableNumber(date) {
8
- return Number(`${date.getFullYear().toString().padStart(4, '0')}${(date.getMonth() + 1)
9
- .toString()
10
- .padStart(2, '0')}${date.getDate().toString().padStart(2, '0')}`);
11
- }
12
- function parseIsoDateOnly(value) {
13
- const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(value.trim());
14
- if (match === null) {
15
- return null;
16
- }
17
- const year = Number(match[1]);
18
- const month = Number(match[2]) - 1;
19
- const day = Number(match[3]);
20
- const date = createLocalDate(year, month, day);
21
- if (date.getFullYear() !== year || date.getMonth() !== month || date.getDate() !== day) {
22
- return null;
23
- }
24
- return date;
25
- }
26
- function parseMonthDayYearDateOnly(value) {
27
- const match = /^(\d{2})-(\d{2})-(\d{4})$/.exec(value.trim());
28
- if (match === null) {
29
- return null;
30
- }
31
- const month = Number(match[1]) - 1;
32
- const day = Number(match[2]);
33
- const year = Number(match[3]);
34
- const date = createLocalDate(year, month, day);
35
- if (date.getFullYear() !== year || date.getMonth() !== month || date.getDate() !== day) {
36
- return null;
37
- }
38
- return date;
39
- }
40
- function createFormatter(locale, options) {
41
- return new Intl.DateTimeFormat(locale ?? 'en-US', options);
42
- }
43
- function resolveDateFormatter(date, format, locale) {
44
- if (format === 'input') {
45
- const month = (date.getMonth() + 1).toString().padStart(2, '0');
46
- const day = date.getDate().toString().padStart(2, '0');
47
- const year = date.getFullYear().toString().padStart(4, '0');
48
- return `${month}-${day}-${year}`;
49
- }
50
- if (format === 'month-year') {
51
- return createFormatter(locale, {
52
- month: 'long',
53
- year: 'numeric',
54
- }).format(date);
55
- }
56
- if (format === 'month-long') {
57
- return createFormatter(locale, { month: 'long' }).format(date);
58
- }
59
- if (format === 'month-short') {
60
- return createFormatter(locale, { month: 'short' }).format(date);
61
- }
62
- if (format === 'weekday-short') {
63
- return createFormatter(locale, { weekday: 'short' }).format(date);
64
- }
65
- if (format === 'weekday-narrow') {
66
- return createFormatter(locale, { weekday: 'narrow' }).format(date);
67
- }
68
- if (format === 'day-number') {
69
- return createFormatter(locale, { day: 'numeric' }).format(date);
70
- }
71
- if (format === 'year-label') {
72
- return createFormatter(locale, { year: 'numeric' }).format(date);
73
- }
74
- if (format === 'label') {
75
- return createFormatter(locale, {
76
- day: 'numeric',
77
- month: 'long',
78
- year: 'numeric',
79
- }).format(date);
80
- }
81
- return createFormatter(locale, {
82
- day: 'numeric',
83
- month: 'long',
84
- year: 'numeric',
85
- }).format(date);
86
- }
87
- export const defaultDatepickerDateAdapter = Object.freeze({
88
- addDays: (date, amount) => {
89
- const next = createLocalDate(date.getFullYear(), date.getMonth(), date.getDate() + amount);
90
- return next;
91
- },
92
- addMonths: (date, amount) => {
93
- const targetMonth = date.getMonth() + amount;
94
- const result = createLocalDate(date.getFullYear(), targetMonth, 1);
95
- const lastDay = createLocalDate(result.getFullYear(), result.getMonth() + 1, 0).getDate();
96
- return createLocalDate(result.getFullYear(), result.getMonth(), Math.min(date.getDate(), lastDay));
97
- },
98
- addYears: (date, amount) => {
99
- const result = createLocalDate(date.getFullYear() + amount, date.getMonth(), 1);
100
- const lastDay = createLocalDate(result.getFullYear(), result.getMonth() + 1, 0).getDate();
101
- return createLocalDate(result.getFullYear(), result.getMonth(), Math.min(date.getDate(), lastDay));
102
- },
103
- compare: (left, right) => {
104
- const leftValue = toComparableNumber(left);
105
- const rightValue = toComparableNumber(right);
106
- if (leftValue < rightValue)
107
- return -1;
108
- if (leftValue > rightValue)
109
- return 1;
110
- return 0;
111
- },
112
- createDate: (year, month, day) => createLocalDate(year, month, day),
113
- deserialize: (value) => {
114
- if (value === null || value === undefined) {
115
- return null;
116
- }
117
- if (value instanceof Date) {
118
- return Number.isNaN(value.getTime()) ? null : normalizeDateInstance(value);
119
- }
120
- if (typeof value === 'string') {
121
- const monthDayYearDate = parseMonthDayYearDateOnly(value);
122
- if (monthDayYearDate !== null) {
123
- return monthDayYearDate;
124
- }
125
- const isoDate = parseIsoDateOnly(value);
126
- if (isoDate !== null) {
127
- return isoDate;
128
- }
129
- const parsed = new Date(value);
130
- return Number.isNaN(parsed.getTime()) ? null : normalizeDateInstance(parsed);
131
- }
132
- return null;
133
- },
134
- endOfMonth: (date) => createLocalDate(date.getFullYear(), date.getMonth() + 1, 0),
135
- format: (date, format, locale) => resolveDateFormatter(date, format, locale),
136
- getDate: (date) => date.getDate(),
137
- getDay: (date) => date.getDay(),
138
- getMonth: (date) => date.getMonth(),
139
- getYear: (date) => date.getFullYear(),
140
- isValid: (date) => Number.isFinite(date.getTime()),
141
- parse: (text, locale) => {
142
- const monthDayYearDate = parseMonthDayYearDateOnly(text);
143
- if (monthDayYearDate !== null) {
144
- return monthDayYearDate;
145
- }
146
- const isoDate = parseIsoDateOnly(text);
147
- if (isoDate !== null) {
148
- return isoDate;
149
- }
150
- const parsed = new Date(text);
151
- if (Number.isNaN(parsed.getTime())) {
152
- return null;
153
- }
154
- const formatted = resolveDateFormatter(parsed, 'label', locale);
155
- if (formatted.trim().length === 0) {
156
- return null;
157
- }
158
- return normalizeDateInstance(parsed);
159
- },
160
- startOfMonth: (date) => createLocalDate(date.getFullYear(), date.getMonth(), 1),
161
- startOfWeek: (date, weekStartsOn) => {
162
- const diff = (date.getDay() - weekStartsOn + 7) % 7;
163
- return createLocalDate(date.getFullYear(), date.getMonth(), date.getDate() - diff);
164
- },
165
- today: () => normalizeDateInstance(new Date()),
166
- });
1
+ import { coerceTngWeekStartsOn, defaultTngDateAdapter, normalizeTngDateInput, } from '@tailng-ui/cdk';
2
+ export const defaultDatepickerDateAdapter = defaultTngDateAdapter;
167
3
  export function normalizeDateInput(adapter, value, locale) {
168
- if (value === null || value === undefined) {
169
- return null;
170
- }
171
- if (adapter.deserialize !== undefined) {
172
- const normalized = adapter.deserialize(value, locale);
173
- if (normalized !== null && adapter.isValid(normalized)) {
174
- return normalized;
175
- }
176
- }
177
- if (typeof value === 'string') {
178
- const parsed = adapter.parse(value, locale);
179
- return parsed !== null && adapter.isValid(parsed) ? parsed : null;
180
- }
181
- if (value instanceof Date && adapter.isValid(value)) {
182
- return value;
183
- }
184
- if (adapter.isValid(value)) {
185
- return value;
186
- }
187
- return null;
4
+ return normalizeTngDateInput(adapter, value, locale);
188
5
  }
189
6
  export function coerceWeekStartsOn(value) {
190
- const normalized = Number.isFinite(value) ? Math.trunc(value) : 0;
191
- const wrapped = ((normalized % 7) + 7) % 7;
192
- return wrapped;
7
+ return coerceTngWeekStartsOn(value);
193
8
  }
194
9
  //# sourceMappingURL=datepicker.adapters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker.adapters.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/datepicker/datepicker.adapters.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n TngDateAdapter,\n TngDateFormatToken,\n TngDateInputValue,\n TngWeekdayIndex,\n} from './datepicker.types';\n\nfunction createLocalDate(year: number, month: number, day: number): Date {\n return new Date(year, month, day, 12, 0, 0, 0);\n}\n\nfunction normalizeDateInstance(date: Date): Date {\n return createLocalDate(date.getFullYear(), date.getMonth(), date.getDate());\n}\n\nfunction toComparableNumber(date: Date): number {\n return Number(\n `${date.getFullYear().toString().padStart(4, '0')}${(date.getMonth() + 1)\n .toString()\n .padStart(2, '0')}${date.getDate().toString().padStart(2, '0')}`,\n );\n}\n\nfunction parseIsoDateOnly(value: string): Date | null {\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(value.trim());\n if (match === null) {\n return null;\n }\n\n const year = Number(match[1]);\n const month = Number(match[2]) - 1;\n const day = Number(match[3]);\n const date = createLocalDate(year, month, day);\n if (date.getFullYear() !== year || date.getMonth() !== month || date.getDate() !== day) {\n return null;\n }\n\n return date;\n}\n\nfunction parseMonthDayYearDateOnly(value: string): Date | null {\n const match = /^(\\d{2})-(\\d{2})-(\\d{4})$/.exec(value.trim());\n if (match === null) {\n return null;\n }\n\n const month = Number(match[1]) - 1;\n const day = Number(match[2]);\n const year = Number(match[3]);\n const date = createLocalDate(year, month, day);\n if (date.getFullYear() !== year || date.getMonth() !== month || date.getDate() !== day) {\n return null;\n }\n\n return date;\n}\n\nfunction createFormatter(\n locale: string | undefined,\n options: Readonly<Intl.DateTimeFormatOptions>,\n): Intl.DateTimeFormat {\n return new Intl.DateTimeFormat(locale ?? 'en-US', options);\n}\n\nfunction resolveDateFormatter(date: Date, format: TngDateFormatToken | string, locale?: string): string {\n if (format === 'input') {\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\n const day = date.getDate().toString().padStart(2, '0');\n const year = date.getFullYear().toString().padStart(4, '0');\n return `${month}-${day}-${year}`;\n }\n\n if (format === 'month-year') {\n return createFormatter(locale, {\n month: 'long',\n year: 'numeric',\n }).format(date);\n }\n\n if (format === 'month-long') {\n return createFormatter(locale, { month: 'long' }).format(date);\n }\n\n if (format === 'month-short') {\n return createFormatter(locale, { month: 'short' }).format(date);\n }\n\n if (format === 'weekday-short') {\n return createFormatter(locale, { weekday: 'short' }).format(date);\n }\n\n if (format === 'weekday-narrow') {\n return createFormatter(locale, { weekday: 'narrow' }).format(date);\n }\n\n if (format === 'day-number') {\n return createFormatter(locale, { day: 'numeric' }).format(date);\n }\n\n if (format === 'year-label') {\n return createFormatter(locale, { year: 'numeric' }).format(date);\n }\n\n if (format === 'label') {\n return createFormatter(locale, {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n }).format(date);\n }\n\n return createFormatter(locale, {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n }).format(date);\n}\n\nexport const defaultDatepickerDateAdapter: TngDateAdapter<Date> = Object.freeze({\n addDays: (date, amount) => {\n const next = createLocalDate(date.getFullYear(), date.getMonth(), date.getDate() + amount);\n return next;\n },\n addMonths: (date, amount) => {\n const targetMonth = date.getMonth() + amount;\n const result = createLocalDate(date.getFullYear(), targetMonth, 1);\n const lastDay = createLocalDate(result.getFullYear(), result.getMonth() + 1, 0).getDate();\n return createLocalDate(result.getFullYear(), result.getMonth(), Math.min(date.getDate(), lastDay));\n },\n addYears: (date, amount) => {\n const result = createLocalDate(date.getFullYear() + amount, date.getMonth(), 1);\n const lastDay = createLocalDate(result.getFullYear(), result.getMonth() + 1, 0).getDate();\n return createLocalDate(result.getFullYear(), result.getMonth(), Math.min(date.getDate(), lastDay));\n },\n compare: (left, right) => {\n const leftValue = toComparableNumber(left);\n const rightValue = toComparableNumber(right);\n if (leftValue < rightValue) return -1;\n if (leftValue > rightValue) return 1;\n return 0;\n },\n createDate: (year, month, day) => createLocalDate(year, month, day),\n deserialize: (value) => {\n if (value === null || value === undefined) {\n return null;\n }\n\n if (value instanceof Date) {\n return Number.isNaN(value.getTime()) ? null : normalizeDateInstance(value);\n }\n\n if (typeof value === 'string') {\n const monthDayYearDate = parseMonthDayYearDateOnly(value);\n if (monthDayYearDate !== null) {\n return monthDayYearDate;\n }\n\n const isoDate = parseIsoDateOnly(value);\n if (isoDate !== null) {\n return isoDate;\n }\n\n const parsed = new Date(value);\n return Number.isNaN(parsed.getTime()) ? null : normalizeDateInstance(parsed);\n }\n\n return null;\n },\n endOfMonth: (date) => createLocalDate(date.getFullYear(), date.getMonth() + 1, 0),\n format: (date, format, locale) => resolveDateFormatter(date, format, locale),\n getDate: (date) => date.getDate(),\n getDay: (date) => date.getDay(),\n getMonth: (date) => date.getMonth(),\n getYear: (date) => date.getFullYear(),\n isValid: (date) => Number.isFinite(date.getTime()),\n parse: (text, locale) => {\n const monthDayYearDate = parseMonthDayYearDateOnly(text);\n if (monthDayYearDate !== null) {\n return monthDayYearDate;\n }\n\n const isoDate = parseIsoDateOnly(text);\n if (isoDate !== null) {\n return isoDate;\n }\n\n const parsed = new Date(text);\n if (Number.isNaN(parsed.getTime())) {\n return null;\n }\n\n const formatted = resolveDateFormatter(parsed, 'label', locale);\n if (formatted.trim().length === 0) {\n return null;\n }\n\n return normalizeDateInstance(parsed);\n },\n startOfMonth: (date) => createLocalDate(date.getFullYear(), date.getMonth(), 1),\n startOfWeek: (date, weekStartsOn) => {\n const diff = (date.getDay() - weekStartsOn + 7) % 7;\n return createLocalDate(date.getFullYear(), date.getMonth(), date.getDate() - diff);\n },\n today: () => normalizeDateInstance(new Date()),\n});\n\nexport function normalizeDateInput<TDate>(\n adapter: Readonly<TngDateAdapter<TDate>>,\n value: TngDateInputValue<TDate>,\n locale?: string,\n): TDate | null {\n if (value === null || value === undefined) {\n return null;\n }\n\n if (adapter.deserialize !== undefined) {\n const normalized = adapter.deserialize(value, locale);\n if (normalized !== null && adapter.isValid(normalized)) {\n return normalized;\n }\n }\n\n if (typeof value === 'string') {\n const parsed = adapter.parse(value, locale);\n return parsed !== null && adapter.isValid(parsed) ? parsed : null;\n }\n\n if (value instanceof Date && adapter.isValid(value as TDate)) {\n return value as TDate;\n }\n\n if (adapter.isValid(value as TDate)) {\n return value as TDate;\n }\n\n return null;\n}\n\nexport function coerceWeekStartsOn(value: number): TngWeekdayIndex {\n const normalized = Number.isFinite(value) ? Math.trunc(value) : 0;\n const wrapped = ((normalized % 7) + 7) % 7;\n return wrapped as TngWeekdayIndex;\n}\n"]}
1
+ {"version":3,"file":"datepicker.adapters.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/datepicker/datepicker.adapters.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,MAAM,CAAC,MAAM,4BAA4B,GAAyB,qBAAqB,CAAC;AAExF,MAAM,UAAU,kBAAkB,CAChC,OAAwC,EACxC,KAA+B,EAC/B,MAAe;IAEf,OAAO,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC","sourcesContent":["import {\n coerceTngWeekStartsOn,\n defaultTngDateAdapter,\n normalizeTngDateInput,\n} from '@tailng-ui/cdk';\nimport type { TngDateAdapter, TngDateInputValue, TngWeekdayIndex } from './datepicker.types';\n\nexport const defaultDatepickerDateAdapter: TngDateAdapter<Date> = defaultTngDateAdapter;\n\nexport function normalizeDateInput<TDate>(\n adapter: Readonly<TngDateAdapter<TDate>>,\n value: TngDateInputValue<TDate>,\n locale?: string,\n): TDate | null {\n return normalizeTngDateInput(adapter, value, locale);\n}\n\nexport function coerceWeekStartsOn(value: number): TngWeekdayIndex {\n return coerceTngWeekStartsOn(value);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker.state.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/datepicker/datepicker.state.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,cAAc,EAId,qBAAqB,EACrB,YAAY,EACZ,0BAA0B,EAC3B,MAAM,oBAAoB,CAAC;AAY5B,wBAAgB,uBAAuB,CAAC,KAAK,EAC3C,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACxC,aAAa,EAAE,0BAA0B,EACzC,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC,EACnC,MAAM,CAAC,EAAE,MAAM,GACd,QAAQ,CAAC;IACV,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;CAC5B,CAAC,CAuDD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EACxC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACxC,aAAa,EAAE,0BAA0B,EACzC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,EACzB,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,GACzB,OAAO,CA6BT;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EACzC,aAAa,EAAE,0BAA0B,GACxC,YAAY,CAAC,KAAK,CAAC,CAUrB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EACrC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACxC,aAAa,EAAE,0BAA0B,EACzC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAC1B,IAAI,EAAE,KAAK,GACV,OAAO,CAET;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EACrC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACxC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAC1B,IAAI,EAAE,KAAK,GACV,OAAO,CAET"}
1
+ {"version":3,"file":"datepicker.state.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/datepicker/datepicker.state.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,0BAA0B,EAC3B,MAAM,oBAAoB,CAAC;AAE5B,wBAAgB,uBAAuB,CAAC,KAAK,EAC3C,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACxC,aAAa,EAAE,0BAA0B,EACzC,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC,EACnC,MAAM,CAAC,EAAE,MAAM,GACd,QAAQ,CAAC;IACV,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;CAC5B,CAAC,CAED;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EACxC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACxC,aAAa,EAAE,0BAA0B,EACzC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,EACzB,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,GACzB,OAAO,CAET;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EACzC,aAAa,EAAE,0BAA0B,GACxC,YAAY,CAAC,KAAK,CAAC,CAErB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EACrC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACxC,aAAa,EAAE,0BAA0B,EACzC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAC1B,IAAI,EAAE,KAAK,GACV,OAAO,CAET;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EACrC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACxC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAC1B,IAAI,EAAE,KAAK,GACV,OAAO,CAET"}
@@ -1,97 +1,18 @@
1
- import { normalizeDateInput } from './datepicker.adapters';
2
- import { datesEqual, isDateInRange, isValueSelected, normalizeRangeOrder, sortAndUniqueDates, } from './datepicker.utils';
3
- function isRangeInput(value) {
4
- return typeof value === 'object' && value !== null && !Array.isArray(value) && 'start' in value && 'end' in value;
5
- }
6
- function isRangeValue(value) {
7
- return typeof value === 'object' && value !== null && !Array.isArray(value) && 'start' in value && 'end' in value;
8
- }
1
+ /* eslint-disable max-params -- Datepicker state helpers keep the established positional API. */
2
+ import { clearDateSelectionForMode, dateSelectionValuesEqual, isDateInRange, isValueSelected, normalizeDateSelectionInput, } from '@tailng-ui/cdk';
9
3
  export function normalizeSelectionInput(adapter, selectionMode, value, locale) {
10
- if (value === null || value === undefined) {
11
- return Object.freeze({ validationError: null, value: null });
12
- }
13
- if (selectionMode === 'range') {
14
- if (!isRangeInput(value)) {
15
- const singleDate = normalizeDateInput(adapter, value, locale);
16
- if (singleDate === null) {
17
- return Object.freeze({ validationError: 'invalid-value', value: null });
18
- }
19
- return Object.freeze({
20
- validationError: null,
21
- value: Object.freeze({ end: null, start: singleDate }),
22
- });
23
- }
24
- const start = normalizeDateInput(adapter, value.start, locale);
25
- const end = normalizeDateInput(adapter, value.end, locale);
26
- if (value.start !== null && value.start !== undefined && start === null) {
27
- return Object.freeze({ validationError: 'invalid-value', value: null });
28
- }
29
- if (value.end !== null && value.end !== undefined && end === null) {
30
- return Object.freeze({ validationError: 'invalid-value', value: null });
31
- }
32
- return Object.freeze({
33
- validationError: null,
34
- value: normalizeRangeOrder(adapter, Object.freeze({ end, start })),
35
- });
36
- }
37
- if (selectionMode === 'multiple') {
38
- const list = Array.isArray(value) ? value : [value];
39
- const normalized = list
40
- .map((item) => normalizeDateInput(adapter, item, locale))
41
- .filter((item) => item !== null);
42
- if (normalized.length !== list.length) {
43
- return Object.freeze({
44
- validationError: 'invalid-value',
45
- value: Object.freeze(sortAndUniqueDates(adapter, normalized)),
46
- });
47
- }
48
- return Object.freeze({
49
- validationError: null,
50
- value: Object.freeze(sortAndUniqueDates(adapter, normalized)),
51
- });
52
- }
53
- const date = normalizeDateInput(adapter, value, locale);
54
- return Object.freeze({
55
- validationError: date === null ? 'invalid-value' : null,
56
- value: date,
57
- });
4
+ return normalizeDateSelectionInput({ adapter, locale, selectionMode, value });
58
5
  }
59
6
  export function selectionValuesEqual(adapter, selectionMode, left, right) {
60
- if (left === right) {
61
- return true;
62
- }
63
- if (left === null || right === null) {
64
- return left === right;
65
- }
66
- if (selectionMode === 'single') {
67
- return datesEqual(adapter, left, right);
68
- }
69
- if (selectionMode === 'multiple') {
70
- const leftDates = left;
71
- const rightDates = right;
72
- if (leftDates.length !== rightDates.length) {
73
- return false;
74
- }
75
- return leftDates.every((date, index) => datesEqual(adapter, date, rightDates[index] ?? null));
76
- }
77
- const leftRange = left;
78
- const rightRange = right;
79
- return (datesEqual(adapter, leftRange.start, rightRange.start) &&
80
- datesEqual(adapter, leftRange.end, rightRange.end));
7
+ return dateSelectionValuesEqual({ adapter, left, right, selectionMode });
81
8
  }
82
9
  export function clearSelectionForMode(selectionMode) {
83
- if (selectionMode === 'range') {
84
- return Object.freeze({ end: null, start: null });
85
- }
86
- if (selectionMode === 'multiple') {
87
- return Object.freeze([]);
88
- }
89
- return null;
10
+ return clearDateSelectionForMode(selectionMode);
90
11
  }
91
12
  export function valueIncludesDate(adapter, selectionMode, value, date) {
92
- return isValueSelected(adapter, selectionMode, value, date);
13
+ return isValueSelected({ adapter, date, selectionMode, value });
93
14
  }
94
15
  export function rangeIncludesDate(adapter, value, date) {
95
- return isDateInRange(adapter, value, date);
16
+ return isDateInRange({ adapter, date, value });
96
17
  }
97
18
  //# sourceMappingURL=datepicker.state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker.state.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/datepicker/datepicker.state.ts"],"names":[],"mappings":"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","sourcesContent":["import { normalizeDateInput } from './datepicker.adapters';\nimport {\n datesEqual,\n isDateInRange,\n isValueSelected,\n normalizeRangeOrder,\n sortAndUniqueDates,\n} from './datepicker.utils';\nimport type {\n TngDateAdapter,\n TngDateInputValue,\n TngDateRange,\n TngDateRangeInput,\n TngDateSelectionInput,\n TngDateValue,\n TngDatepickerSelectionMode,\n} from './datepicker.types';\n\nfunction isRangeInput<TDate>(\n value: TngDateSelectionInput<TDate>,\n): value is Readonly<TngDateRangeInput<TDate>> {\n return typeof value === 'object' && value !== null && !Array.isArray(value) && 'start' in value && 'end' in value;\n}\n\nfunction isRangeValue<TDate>(value: TngDateValue<TDate>): value is TngDateRange<TDate> {\n return typeof value === 'object' && value !== null && !Array.isArray(value) && 'start' in value && 'end' in value;\n}\n\nexport function normalizeSelectionInput<TDate>(\n adapter: Readonly<TngDateAdapter<TDate>>,\n selectionMode: TngDatepickerSelectionMode,\n value: TngDateSelectionInput<TDate>,\n locale?: string,\n): Readonly<{\n validationError: string | null;\n value: TngDateValue<TDate>;\n}> {\n if (value === null || value === undefined) {\n return Object.freeze({ validationError: null, value: null });\n }\n\n if (selectionMode === 'range') {\n if (!isRangeInput(value)) {\n const singleDate = normalizeDateInput(adapter, value as TngDateInputValue<TDate>, locale);\n if (singleDate === null) {\n return Object.freeze({ validationError: 'invalid-value', value: null });\n }\n return Object.freeze({\n validationError: null,\n value: Object.freeze({ end: null, start: singleDate }),\n });\n }\n\n const start = normalizeDateInput(adapter, value.start, locale);\n const end = normalizeDateInput(adapter, value.end, locale);\n if (value.start !== null && value.start !== undefined && start === null) {\n return Object.freeze({ validationError: 'invalid-value', value: null });\n }\n if (value.end !== null && value.end !== undefined && end === null) {\n return Object.freeze({ validationError: 'invalid-value', value: null });\n }\n\n return Object.freeze({\n validationError: null,\n value: normalizeRangeOrder(adapter, Object.freeze({ end, start })),\n });\n }\n\n if (selectionMode === 'multiple') {\n const list = Array.isArray(value) ? value : [value];\n const normalized = list\n .map((item) => normalizeDateInput(adapter, item as TngDateInputValue<TDate>, locale))\n .filter((item): item is TDate => item !== null);\n if (normalized.length !== list.length) {\n return Object.freeze({\n validationError: 'invalid-value',\n value: Object.freeze(sortAndUniqueDates(adapter, normalized)),\n });\n }\n\n return Object.freeze({\n validationError: null,\n value: Object.freeze(sortAndUniqueDates(adapter, normalized)),\n });\n }\n\n const date = normalizeDateInput(adapter, value as TngDateInputValue<TDate>, locale);\n return Object.freeze({\n validationError: date === null ? 'invalid-value' : null,\n value: date,\n });\n}\n\nexport function selectionValuesEqual<TDate>(\n adapter: Readonly<TngDateAdapter<TDate>>,\n selectionMode: TngDatepickerSelectionMode,\n left: TngDateValue<TDate>,\n right: TngDateValue<TDate>,\n): boolean {\n if (left === right) {\n return true;\n }\n\n if (left === null || right === null) {\n return left === right;\n }\n\n if (selectionMode === 'single') {\n return datesEqual(adapter, left as TDate, right as TDate);\n }\n\n if (selectionMode === 'multiple') {\n const leftDates = left as readonly TDate[];\n const rightDates = right as readonly TDate[];\n if (leftDates.length !== rightDates.length) {\n return false;\n }\n\n return leftDates.every((date, index) => datesEqual(adapter, date, rightDates[index] ?? null));\n }\n\n const leftRange = left as TngDateRange<TDate>;\n const rightRange = right as TngDateRange<TDate>;\n return (\n datesEqual(adapter, leftRange.start, rightRange.start) &&\n datesEqual(adapter, leftRange.end, rightRange.end)\n );\n}\n\nexport function clearSelectionForMode<TDate>(\n selectionMode: TngDatepickerSelectionMode,\n): TngDateValue<TDate> {\n if (selectionMode === 'range') {\n return Object.freeze({ end: null, start: null });\n }\n\n if (selectionMode === 'multiple') {\n return Object.freeze([]);\n }\n\n return null;\n}\n\nexport function valueIncludesDate<TDate>(\n adapter: Readonly<TngDateAdapter<TDate>>,\n selectionMode: TngDatepickerSelectionMode,\n value: TngDateValue<TDate>,\n date: TDate,\n): boolean {\n return isValueSelected(adapter, selectionMode, value, date);\n}\n\nexport function rangeIncludesDate<TDate>(\n adapter: Readonly<TngDateAdapter<TDate>>,\n value: TngDateValue<TDate>,\n date: TDate,\n): boolean {\n return isDateInRange(adapter, value, date);\n}\n"]}
1
+ {"version":3,"file":"datepicker.state.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/datepicker/datepicker.state.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,EACb,eAAe,EACf,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AAQxB,MAAM,UAAU,uBAAuB,CACrC,OAAwC,EACxC,aAAyC,EACzC,KAAmC,EACnC,MAAe;IAKf,OAAO,2BAA2B,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAwC,EACxC,aAAyC,EACzC,IAAyB,EACzB,KAA0B;IAE1B,OAAO,wBAAwB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,aAAyC;IAEzC,OAAO,yBAAyB,CAAC,aAAa,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAwC,EACxC,aAAyC,EACzC,KAA0B,EAC1B,IAAW;IAEX,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAwC,EACxC,KAA0B,EAC1B,IAAW;IAEX,OAAO,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACjD,CAAC","sourcesContent":["/* eslint-disable max-params -- Datepicker state helpers keep the established positional API. */\nimport {\n clearDateSelectionForMode,\n dateSelectionValuesEqual,\n isDateInRange,\n isValueSelected,\n normalizeDateSelectionInput,\n} from '@tailng-ui/cdk';\nimport type {\n TngDateAdapter,\n TngDateSelectionInput,\n TngDateValue,\n TngDatepickerSelectionMode,\n} from './datepicker.types';\n\nexport function normalizeSelectionInput<TDate>(\n adapter: Readonly<TngDateAdapter<TDate>>,\n selectionMode: TngDatepickerSelectionMode,\n value: TngDateSelectionInput<TDate>,\n locale?: string,\n): Readonly<{\n validationError: string | null;\n value: TngDateValue<TDate>;\n}> {\n return normalizeDateSelectionInput({ adapter, locale, selectionMode, value });\n}\n\nexport function selectionValuesEqual<TDate>(\n adapter: Readonly<TngDateAdapter<TDate>>,\n selectionMode: TngDatepickerSelectionMode,\n left: TngDateValue<TDate>,\n right: TngDateValue<TDate>,\n): boolean {\n return dateSelectionValuesEqual({ adapter, left, right, selectionMode });\n}\n\nexport function clearSelectionForMode<TDate>(\n selectionMode: TngDatepickerSelectionMode,\n): TngDateValue<TDate> {\n return clearDateSelectionForMode(selectionMode);\n}\n\nexport function valueIncludesDate<TDate>(\n adapter: Readonly<TngDateAdapter<TDate>>,\n selectionMode: TngDatepickerSelectionMode,\n value: TngDateValue<TDate>,\n date: TDate,\n): boolean {\n return isValueSelected({ adapter, date, selectionMode, value });\n}\n\nexport function rangeIncludesDate<TDate>(\n adapter: Readonly<TngDateAdapter<TDate>>,\n value: TngDateValue<TDate>,\n date: TDate,\n): boolean {\n return isDateInRange({ adapter, date, value });\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { TngCalendarView, TngDateAdapter, TngDateCell, TngDateRange, TngDateValue, TngMonthOption, TngWeekdayIndex, TngYearOption } from './datepicker.types';
1
+ import type { TngDateAdapter, TngDateCell, TngDateValue, TngDatepickerSelectionMode, TngMonthOption, TngWeekdayIndex, TngYearOption } from './datepicker.types';
2
2
  type TngMonthGridOptions<TDate> = Readonly<{
3
3
  activeDate: TDate;
4
4
  adapter: Readonly<TngDateAdapter<TDate>>;
@@ -41,35 +41,13 @@ type TngYearOptionsConfig<TDate> = Readonly<{
41
41
  totalYears: number;
42
42
  visibleMonth: TDate;
43
43
  }>;
44
- type TngMoveDateOptions<TDate> = Readonly<{
45
- adapter: Readonly<TngDateAdapter<TDate>>;
46
- allowCrossView?: boolean;
47
- delta: number;
48
- isDisabled: (date: TDate) => boolean;
49
- start: TDate;
50
- }>;
44
+ export { clampDateToMonth, compareMonthIdentity, compareYearIdentity, datesEqual, findFirstEnabledDateInMonth, hasSelectableDateInMonth, includesView, isDateValueInMonth, moveDateSkippingDisabled, normalizeRangeOrder, resolveInitialFocusedSection, resolveLocaleWeekStartsOn, resolveViewForEscape, sortAndUniqueDates, toDateKey, } from '@tailng-ui/cdk';
51
45
  type TngWeekBoundary = 'end' | 'start';
52
- export declare function resolveLocaleWeekStartsOn(locale?: string): TngWeekdayIndex;
53
- export declare function toDateKey<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, date: TDate): string;
54
- export declare function datesEqual<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, left: TDate | null, right: TDate | null): boolean;
55
- export declare function compareMonthIdentity<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, left: TDate, right: TDate): number;
56
- export declare function compareYearIdentity<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, left: TDate, right: TDate): number;
57
- export declare function normalizeRangeOrder<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, range: Readonly<TngDateRange<TDate>>): TngDateRange<TDate>;
58
- export declare function sortAndUniqueDates<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, dates: readonly TDate[]): readonly TDate[];
59
- export declare function isDateValueInMonth<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, value: TDate, visibleMonth: TDate): boolean;
60
- export declare function clampDateToMonth<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, date: TDate, monthDate: TDate): TDate;
61
- export declare function moveDateSkippingDisabled<TDate>(options: Readonly<TngMoveDateOptions<TDate>>): TDate;
62
- export declare function resolveWeekBoundaryDate<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, date: TDate, weekStartsOn: TngWeekdayIndex, boundary: TngWeekBoundary): TDate;
63
- export declare function isValueSelected<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, selectionMode: 'multiple' | 'range' | 'single', value: Readonly<TngDateValue<TDate>>, date: TDate): boolean;
64
- export declare function isDateInRange<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, value: Readonly<TngDateValue<TDate>>, date: TDate): boolean;
65
- export declare function hasSelectableDateInMonth<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, monthDate: TDate, isDisabled: (date: TDate) => boolean): boolean;
66
- export declare function hasSelectableDateInYear<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, year: number, currentMonth: TDate, isDisabled: (date: TDate) => boolean): boolean;
67
- export declare function findFirstEnabledDateInMonth<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, monthDate: TDate, isDisabled: (date: TDate) => boolean): TDate | null;
68
46
  export declare function buildMonthGrid<TDate>(options: Readonly<TngMonthGridOptions<TDate>>): readonly TngDateCell<TDate>[];
69
47
  export declare function buildMonthOptions<TDate>(options: Readonly<TngMonthOptionsConfig<TDate>>): readonly TngMonthOption<TDate>[];
70
48
  export declare function buildYearOptions<TDate>(options: Readonly<TngYearOptionsConfig<TDate>>): readonly TngYearOption<TDate>[];
71
- export declare function resolveInitialFocusedSection(view: TngCalendarView): TngCalendarView;
72
- export declare function resolveViewForEscape(currentView: TngCalendarView): TngCalendarView | null;
73
- export declare function includesView(views: readonly TngCalendarView[], view: TngCalendarView): boolean;
74
- export {};
49
+ export declare function resolveWeekBoundaryDate<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, date: TDate, weekStartsOn: TngWeekdayIndex, boundary: TngWeekBoundary): TDate;
50
+ export declare function isValueSelected<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, selectionMode: TngDatepickerSelectionMode, value: Readonly<TngDateValue<TDate>>, date: TDate): boolean;
51
+ export declare function isDateInRange<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, value: Readonly<TngDateValue<TDate>>, date: TDate): boolean;
52
+ export declare function hasSelectableDateInYear<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, year: number, _currentMonth: TDate, isDisabled: (date: TDate) => boolean): boolean;
75
53
  //# sourceMappingURL=datepicker.utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker.utils.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/datepicker/datepicker.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datepicker.utils.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/datepicker/datepicker.utils.ts"],"names":[],"mappings":"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"}