@7pmlabs/design-system 0.1.7 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -2
- package/dist/design-system.js +1 -1
- package/dist/design-system.mjs +81 -78
- package/dist/design-system.mjs.map +1 -1
- package/dist/design-system10.js +1 -1
- package/dist/design-system10.js.map +1 -1
- package/dist/design-system10.mjs +284 -74
- package/dist/design-system10.mjs.map +1 -1
- package/dist/design-system100.js +1 -1
- package/dist/design-system100.js.map +1 -1
- package/dist/design-system100.mjs +4 -2
- package/dist/design-system100.mjs.map +1 -1
- package/dist/design-system101.js +1 -1
- package/dist/design-system101.js.map +1 -1
- package/dist/design-system101.mjs +10 -3
- package/dist/design-system101.mjs.map +1 -1
- package/dist/design-system102.js +1 -1
- package/dist/design-system102.js.map +1 -1
- package/dist/design-system102.mjs +4 -5
- package/dist/design-system102.mjs.map +1 -1
- package/dist/design-system103.js +1 -1
- package/dist/design-system103.js.map +1 -1
- package/dist/design-system103.mjs +5 -10
- package/dist/design-system103.mjs.map +1 -1
- package/dist/design-system104.js +1 -1
- package/dist/design-system104.js.map +1 -1
- package/dist/design-system104.mjs +4 -5
- package/dist/design-system104.mjs.map +1 -1
- package/dist/design-system105.js +1 -1
- package/dist/design-system105.js.map +1 -1
- package/dist/design-system105.mjs +4 -5
- package/dist/design-system105.mjs.map +1 -1
- package/dist/design-system106.js +1 -1
- package/dist/design-system106.js.map +1 -1
- package/dist/design-system106.mjs +8 -4
- package/dist/design-system106.mjs.map +1 -1
- package/dist/design-system107.js +1 -1
- package/dist/design-system107.js.map +1 -1
- package/dist/design-system107.mjs +4 -3
- package/dist/design-system107.mjs.map +1 -1
- package/dist/design-system108.js +1 -1
- package/dist/design-system108.js.map +1 -1
- package/dist/design-system108.mjs +5 -7
- package/dist/design-system108.mjs.map +1 -1
- package/dist/design-system109.js +1 -1
- package/dist/design-system109.js.map +1 -1
- package/dist/design-system109.mjs +6 -4
- package/dist/design-system109.mjs.map +1 -1
- package/dist/design-system11.js +1 -1
- package/dist/design-system11.js.map +1 -1
- package/dist/design-system11.mjs +98 -134
- package/dist/design-system11.mjs.map +1 -1
- package/dist/design-system110.js +1 -1
- package/dist/design-system110.js.map +1 -1
- package/dist/design-system110.mjs +6 -6
- package/dist/design-system110.mjs.map +1 -1
- package/dist/design-system111.js +1 -1
- package/dist/design-system111.js.map +1 -1
- package/dist/design-system111.mjs +10 -7
- package/dist/design-system111.mjs.map +1 -1
- package/dist/design-system112.js +1 -1
- package/dist/design-system112.js.map +1 -1
- package/dist/design-system112.mjs +6 -6
- package/dist/design-system112.mjs.map +1 -1
- package/dist/design-system113.js +1 -1
- package/dist/design-system113.js.map +1 -1
- package/dist/design-system113.mjs +7 -10
- package/dist/design-system113.mjs.map +1 -1
- package/dist/design-system114.js +1 -1
- package/dist/design-system114.js.map +1 -1
- package/dist/design-system114.mjs +6 -6
- package/dist/design-system114.mjs.map +1 -1
- package/dist/design-system115.js +1 -1
- package/dist/design-system115.js.map +1 -1
- package/dist/design-system115.mjs +9 -6
- package/dist/design-system115.mjs.map +1 -1
- package/dist/design-system116.js +1 -1
- package/dist/design-system116.js.map +1 -1
- package/dist/design-system116.mjs +6 -5
- package/dist/design-system116.mjs.map +1 -1
- package/dist/design-system117.js +1 -1
- package/dist/design-system117.js.map +1 -1
- package/dist/design-system117.mjs +17 -9
- package/dist/design-system117.mjs.map +1 -1
- package/dist/design-system118.js +1 -1
- package/dist/design-system118.js.map +1 -1
- package/dist/design-system118.mjs +9 -4
- package/dist/design-system118.mjs.map +1 -1
- package/dist/design-system119.js +1 -1
- package/dist/design-system119.js.map +1 -1
- package/dist/design-system119.mjs +6 -17
- package/dist/design-system119.mjs.map +1 -1
- package/dist/design-system12.js +1 -1
- package/dist/design-system12.js.map +1 -1
- package/dist/design-system12.mjs +13 -123
- package/dist/design-system12.mjs.map +1 -1
- package/dist/design-system120.js +1 -1
- package/dist/design-system120.js.map +1 -1
- package/dist/design-system120.mjs +10 -9
- package/dist/design-system120.mjs.map +1 -1
- package/dist/design-system121.js +1 -1
- package/dist/design-system121.js.map +1 -1
- package/dist/design-system121.mjs +3 -6
- package/dist/design-system121.mjs.map +1 -1
- package/dist/design-system122.js +1 -1
- package/dist/design-system122.js.map +1 -1
- package/dist/design-system122.mjs +5 -12
- package/dist/design-system122.mjs.map +1 -1
- package/dist/design-system123.js +1 -1
- package/dist/design-system123.js.map +1 -1
- package/dist/design-system123.mjs +3 -3
- package/dist/design-system123.mjs.map +1 -1
- package/dist/design-system124.js +1 -1
- package/dist/design-system124.js.map +1 -1
- package/dist/design-system124.mjs +2 -12
- package/dist/design-system124.mjs.map +1 -1
- package/dist/design-system125.js +1 -1
- package/dist/design-system125.js.map +1 -1
- package/dist/design-system125.mjs +2 -8
- package/dist/design-system125.mjs.map +1 -1
- package/dist/design-system126.js +1 -1
- package/dist/design-system126.js.map +1 -1
- package/dist/design-system126.mjs +7 -9
- package/dist/design-system126.mjs.map +1 -1
- package/dist/design-system127.js +1 -1
- package/dist/design-system127.js.map +1 -1
- package/dist/design-system127.mjs +9 -5
- package/dist/design-system127.mjs.map +1 -1
- package/dist/design-system128.js +1 -1
- package/dist/design-system128.js.map +1 -1
- package/dist/design-system128.mjs +11 -5
- package/dist/design-system128.mjs.map +1 -1
- package/dist/design-system129.js +1 -1
- package/dist/design-system129.js.map +1 -1
- package/dist/design-system129.mjs +6 -10
- package/dist/design-system129.mjs.map +1 -1
- package/dist/design-system13.js +1 -1
- package/dist/design-system13.js.map +1 -1
- package/dist/design-system13.mjs +54 -60
- package/dist/design-system13.mjs.map +1 -1
- package/dist/design-system130.js +1 -1
- package/dist/design-system130.js.map +1 -1
- package/dist/design-system130.mjs +5 -15
- package/dist/design-system130.mjs.map +1 -1
- package/dist/design-system131.js +1 -1
- package/dist/design-system131.js.map +1 -1
- package/dist/design-system131.mjs +10 -6
- package/dist/design-system131.mjs.map +1 -1
- package/dist/design-system132.js +1 -1
- package/dist/design-system132.js.map +1 -1
- package/dist/design-system132.mjs +15 -5
- package/dist/design-system132.mjs.map +1 -1
- package/dist/design-system133.js +1 -1
- package/dist/design-system133.js.map +1 -1
- package/dist/design-system133.mjs +5 -8
- package/dist/design-system133.mjs.map +1 -1
- package/dist/design-system134.js +1 -1
- package/dist/design-system134.js.map +1 -1
- package/dist/design-system134.mjs +5 -6
- package/dist/design-system134.mjs.map +1 -1
- package/dist/design-system135.js +1 -1
- package/dist/design-system135.js.map +1 -1
- package/dist/design-system135.mjs +8 -5
- package/dist/design-system135.mjs.map +1 -1
- package/dist/design-system136.js +1 -1
- package/dist/design-system136.js.map +1 -1
- package/dist/design-system136.mjs +6 -5
- package/dist/design-system136.mjs.map +1 -1
- package/dist/design-system137.js +1 -1
- package/dist/design-system137.js.map +1 -1
- package/dist/design-system137.mjs +4 -5
- package/dist/design-system137.mjs.map +1 -1
- package/dist/design-system138.js +1 -1
- package/dist/design-system138.js.map +1 -1
- package/dist/design-system138.mjs +5 -6
- package/dist/design-system138.mjs.map +1 -1
- package/dist/design-system139.js +1 -1
- package/dist/design-system139.js.map +1 -1
- package/dist/design-system139.mjs +7 -27
- package/dist/design-system139.mjs.map +1 -1
- package/dist/design-system14.js +1 -1
- package/dist/design-system14.js.map +1 -1
- package/dist/design-system14.mjs +182 -128
- package/dist/design-system14.mjs.map +1 -1
- package/dist/design-system140.js +1 -1
- package/dist/design-system140.js.map +1 -1
- package/dist/design-system140.mjs +6 -5
- package/dist/design-system140.mjs.map +1 -1
- package/dist/design-system141.js +1 -1
- package/dist/design-system141.js.map +1 -1
- package/dist/design-system141.mjs +27 -40
- package/dist/design-system141.mjs.map +1 -1
- package/dist/design-system142.js +1 -1
- package/dist/design-system142.js.map +1 -1
- package/dist/design-system142.mjs +3 -4
- package/dist/design-system142.mjs.map +1 -1
- package/dist/design-system143.js +1 -1
- package/dist/design-system143.js.map +1 -1
- package/dist/design-system143.mjs +39 -5
- package/dist/design-system143.mjs.map +1 -1
- package/dist/design-system144.js +1 -1
- package/dist/design-system144.js.map +1 -1
- package/dist/design-system144.mjs +7 -16
- package/dist/design-system144.mjs.map +1 -1
- package/dist/design-system145.js +1 -1
- package/dist/design-system145.js.map +1 -1
- package/dist/design-system145.mjs +5 -7
- package/dist/design-system145.mjs.map +1 -1
- package/dist/design-system146.js +1 -1
- package/dist/design-system146.js.map +1 -1
- package/dist/design-system146.mjs +16 -3
- package/dist/design-system146.mjs.map +1 -1
- package/dist/design-system147.js +1 -1
- package/dist/design-system147.js.map +1 -1
- package/dist/design-system147.mjs +8 -4
- package/dist/design-system147.mjs.map +1 -1
- package/dist/design-system148.js +1 -1
- package/dist/design-system148.js.map +1 -1
- package/dist/design-system148.mjs +3 -13
- package/dist/design-system148.mjs.map +1 -1
- package/dist/design-system149.js +1 -1
- package/dist/design-system149.js.map +1 -1
- package/dist/design-system149.mjs +4 -5
- package/dist/design-system149.mjs.map +1 -1
- package/dist/design-system15.js +1 -1
- package/dist/design-system15.js.map +1 -1
- package/dist/design-system15.mjs +109 -230
- package/dist/design-system15.mjs.map +1 -1
- package/dist/design-system150.js +1 -1
- package/dist/design-system150.js.map +1 -1
- package/dist/design-system150.mjs +13 -4
- package/dist/design-system150.mjs.map +1 -1
- package/dist/design-system151.js +1 -1
- package/dist/design-system151.js.map +1 -1
- package/dist/design-system151.mjs +5 -5
- package/dist/design-system151.mjs.map +1 -1
- package/dist/design-system152.js +1 -1
- package/dist/design-system152.js.map +1 -1
- package/dist/design-system152.mjs +4 -5
- package/dist/design-system152.mjs.map +1 -1
- package/dist/design-system153.js +1 -1
- package/dist/design-system153.js.map +1 -1
- package/dist/design-system153.mjs +4 -4
- package/dist/design-system153.mjs.map +1 -1
- package/dist/design-system154.js +1 -1
- package/dist/design-system154.js.map +1 -1
- package/dist/design-system154.mjs +5 -5
- package/dist/design-system154.mjs.map +1 -1
- package/dist/design-system155.js +1 -1
- package/dist/design-system155.js.map +1 -1
- package/dist/design-system155.mjs +5 -5
- package/dist/design-system155.mjs.map +1 -1
- package/dist/design-system156.js +1 -1
- package/dist/design-system156.js.map +1 -1
- package/dist/design-system156.mjs +5 -15
- package/dist/design-system156.mjs.map +1 -1
- package/dist/design-system157.js +1 -1
- package/dist/design-system157.js.map +1 -1
- package/dist/design-system157.mjs +5 -14
- package/dist/design-system157.mjs.map +1 -1
- package/dist/design-system158.js +1 -1
- package/dist/design-system158.js.map +1 -1
- package/dist/design-system158.mjs +14 -8
- package/dist/design-system158.mjs.map +1 -1
- package/dist/design-system159.js +1 -1
- package/dist/design-system159.js.map +1 -1
- package/dist/design-system159.mjs +14 -4
- package/dist/design-system159.mjs.map +1 -1
- package/dist/design-system16.js +3 -1
- package/dist/design-system16.js.map +1 -1
- package/dist/design-system16.mjs +103 -55
- package/dist/design-system16.mjs.map +1 -1
- package/dist/design-system160.js +1 -1
- package/dist/design-system160.js.map +1 -1
- package/dist/design-system160.mjs +8 -5
- package/dist/design-system160.mjs.map +1 -1
- package/dist/design-system161.js +1 -1
- package/dist/design-system161.js.map +1 -1
- package/dist/design-system161.mjs +4 -6
- package/dist/design-system161.mjs.map +1 -1
- package/dist/design-system162.js +1 -1
- package/dist/design-system162.js.map +1 -1
- package/dist/design-system162.mjs +5 -5
- package/dist/design-system162.mjs.map +1 -1
- package/dist/design-system163.js +1 -1
- package/dist/design-system163.js.map +1 -1
- package/dist/design-system163.mjs +5 -7
- package/dist/design-system163.mjs.map +1 -1
- package/dist/design-system164.js +1 -1
- package/dist/design-system164.js.map +1 -1
- package/dist/design-system164.mjs +5 -17
- package/dist/design-system164.mjs.map +1 -1
- package/dist/design-system165.js +1 -1
- package/dist/design-system165.js.map +1 -1
- package/dist/design-system165.mjs +7 -10
- package/dist/design-system165.mjs.map +1 -1
- package/dist/design-system166.js +1 -1
- package/dist/design-system166.js.map +1 -1
- package/dist/design-system166.mjs +17 -5
- package/dist/design-system166.mjs.map +1 -1
- package/dist/design-system167.js +1 -1
- package/dist/design-system167.js.map +1 -1
- package/dist/design-system167.mjs +10 -4
- package/dist/design-system167.mjs.map +1 -1
- package/dist/design-system168.js +1 -1
- package/dist/design-system168.js.map +1 -1
- package/dist/design-system168.mjs +5 -4
- package/dist/design-system168.mjs.map +1 -1
- package/dist/design-system169.js +1 -1
- package/dist/design-system169.js.map +1 -1
- package/dist/design-system169.mjs +4 -5
- package/dist/design-system169.mjs.map +1 -1
- package/dist/design-system17.js +1 -1
- package/dist/design-system17.js.map +1 -1
- package/dist/design-system17.mjs +58 -86
- package/dist/design-system17.mjs.map +1 -1
- package/dist/design-system170.js +1 -1
- package/dist/design-system170.js.map +1 -1
- package/dist/design-system170.mjs +4 -6
- package/dist/design-system170.mjs.map +1 -1
- package/dist/design-system171.js +1 -1
- package/dist/design-system171.js.map +1 -1
- package/dist/design-system171.mjs +6 -11
- package/dist/design-system171.mjs.map +1 -1
- package/dist/design-system172.js +1 -1
- package/dist/design-system172.js.map +1 -1
- package/dist/design-system172.mjs +6 -6
- package/dist/design-system172.mjs.map +1 -1
- package/dist/design-system173.js +1 -1
- package/dist/design-system173.js.map +1 -1
- package/dist/design-system173.mjs +11 -18
- package/dist/design-system173.mjs.map +1 -1
- package/dist/design-system174.js +1 -1
- package/dist/design-system174.js.map +1 -1
- package/dist/design-system174.mjs +2 -5
- package/dist/design-system174.mjs.map +1 -1
- package/dist/design-system175.js +1 -1
- package/dist/design-system175.js.map +1 -1
- package/dist/design-system175.mjs +6 -4
- package/dist/design-system175.mjs.map +1 -1
- package/dist/design-system176.js +1 -1
- package/dist/design-system176.js.map +1 -1
- package/dist/design-system176.mjs +17 -3
- package/dist/design-system176.mjs.map +1 -1
- package/dist/design-system177.js +1 -1
- package/dist/design-system177.js.map +1 -1
- package/dist/design-system177.mjs +4 -3
- package/dist/design-system177.mjs.map +1 -1
- package/dist/design-system178.js +1 -1
- package/dist/design-system178.js.map +1 -1
- package/dist/design-system178.mjs +4 -14
- package/dist/design-system178.mjs.map +1 -1
- package/dist/design-system179.js +1 -1
- package/dist/design-system179.js.map +1 -1
- package/dist/design-system179.mjs +4 -9
- package/dist/design-system179.mjs.map +1 -1
- package/dist/design-system18.js +1 -1
- package/dist/design-system18.js.map +1 -1
- package/dist/design-system18.mjs +191 -14
- package/dist/design-system18.mjs.map +1 -1
- package/dist/design-system180.js +1 -1
- package/dist/design-system180.js.map +1 -1
- package/dist/design-system180.mjs +3 -5
- package/dist/design-system180.mjs.map +1 -1
- package/dist/design-system181.js +1 -1
- package/dist/design-system181.js.map +1 -1
- package/dist/design-system181.mjs +14 -5
- package/dist/design-system181.mjs.map +1 -1
- package/dist/design-system182.js +1 -1
- package/dist/design-system182.js.map +1 -1
- package/dist/design-system182.mjs +9 -6
- package/dist/design-system182.mjs.map +1 -1
- package/dist/design-system183.js +1 -1
- package/dist/design-system183.js.map +1 -1
- package/dist/design-system183.mjs +5 -5
- package/dist/design-system183.mjs.map +1 -1
- package/dist/design-system184.js +1 -1
- package/dist/design-system184.js.map +1 -1
- package/dist/design-system184.mjs +5 -5
- package/dist/design-system184.mjs.map +1 -1
- package/dist/design-system185.js +1 -1
- package/dist/design-system185.js.map +1 -1
- package/dist/design-system185.mjs +6 -4
- package/dist/design-system185.mjs.map +1 -1
- package/dist/design-system186.js +1 -1
- package/dist/design-system186.js.map +1 -1
- package/dist/design-system186.mjs +5 -17
- package/dist/design-system186.mjs.map +1 -1
- package/dist/design-system187.js +1 -1
- package/dist/design-system187.js.map +1 -1
- package/dist/design-system187.mjs +5 -5
- package/dist/design-system187.mjs.map +1 -1
- package/dist/design-system188.js +1 -1
- package/dist/design-system188.js.map +1 -1
- package/dist/design-system188.mjs +4 -4
- package/dist/design-system188.mjs.map +1 -1
- package/dist/design-system189.js +1 -1
- package/dist/design-system189.js.map +1 -1
- package/dist/design-system189.mjs +16 -2
- package/dist/design-system189.mjs.map +1 -1
- package/dist/design-system19.js +1 -3
- package/dist/design-system19.js.map +1 -1
- package/dist/design-system19.mjs +69 -103
- package/dist/design-system19.mjs.map +1 -1
- package/dist/design-system190.js +1 -1
- package/dist/design-system190.js.map +1 -1
- package/dist/design-system190.mjs +4 -8
- package/dist/design-system190.mjs.map +1 -1
- package/dist/design-system191.js +1 -1
- package/dist/design-system191.js.map +1 -1
- package/dist/design-system191.mjs +3 -5
- package/dist/design-system191.mjs.map +1 -1
- package/dist/design-system192.js +1 -1
- package/dist/design-system192.js.map +1 -1
- package/dist/design-system192.mjs +3 -4
- package/dist/design-system192.mjs.map +1 -1
- package/dist/design-system193.js +1 -1
- package/dist/design-system193.js.map +1 -1
- package/dist/design-system193.mjs +9 -5
- package/dist/design-system193.mjs.map +1 -1
- package/dist/design-system194.js +1 -1
- package/dist/design-system194.js.map +1 -1
- package/dist/design-system194.mjs +6 -4
- package/dist/design-system194.mjs.map +1 -1
- package/dist/design-system195.js +1 -1
- package/dist/design-system195.js.map +1 -1
- package/dist/design-system195.mjs +2 -2
- package/dist/design-system195.mjs.map +1 -1
- package/dist/design-system196.js +1 -1
- package/dist/design-system196.js.map +1 -1
- package/dist/design-system196.mjs +5 -4
- package/dist/design-system196.mjs.map +1 -1
- package/dist/design-system197.js +1 -1
- package/dist/design-system197.js.map +1 -1
- package/dist/design-system197.mjs +4 -5
- package/dist/design-system197.mjs.map +1 -1
- package/dist/design-system198.js +1 -1
- package/dist/design-system198.js.map +1 -1
- package/dist/design-system198.mjs +4 -10
- package/dist/design-system198.mjs.map +1 -1
- package/dist/design-system199.js +1 -1
- package/dist/design-system199.js.map +1 -1
- package/dist/design-system199.mjs +4 -6
- package/dist/design-system199.mjs.map +1 -1
- package/dist/design-system2.js +1 -1
- package/dist/design-system2.js.map +1 -1
- package/dist/design-system2.mjs +101 -44
- package/dist/design-system2.mjs.map +1 -1
- package/dist/design-system20.js +1 -1
- package/dist/design-system20.js.map +1 -1
- package/dist/design-system20.mjs +36 -277
- package/dist/design-system20.mjs.map +1 -1
- package/dist/design-system200.js +1 -1
- package/dist/design-system200.js.map +1 -1
- package/dist/design-system200.mjs +10 -6
- package/dist/design-system200.mjs.map +1 -1
- package/dist/design-system201.js +1 -1
- package/dist/design-system201.js.map +1 -1
- package/dist/design-system201.mjs +6 -7
- package/dist/design-system201.mjs.map +1 -1
- package/dist/design-system202.js +1 -1
- package/dist/design-system202.js.map +1 -1
- package/dist/design-system202.mjs +7 -4
- package/dist/design-system202.mjs.map +1 -1
- package/dist/design-system203.js +2 -0
- package/dist/design-system203.js.map +1 -0
- package/dist/design-system203.mjs +8 -0
- package/dist/design-system203.mjs.map +1 -0
- package/dist/design-system204.js +2 -0
- package/dist/design-system204.js.map +1 -0
- package/dist/design-system204.mjs +11 -0
- package/dist/design-system204.mjs.map +1 -0
- package/dist/design-system205.js +2 -0
- package/dist/design-system205.js.map +1 -0
- package/dist/design-system205.mjs +7 -0
- package/dist/design-system205.mjs.map +1 -0
- package/dist/design-system21.js +1 -1
- package/dist/design-system21.js.map +1 -1
- package/dist/design-system21.mjs +5 -78
- package/dist/design-system21.mjs.map +1 -1
- package/dist/design-system22.js +1 -1
- package/dist/design-system22.js.map +1 -1
- package/dist/design-system22.mjs +12 -57
- package/dist/design-system22.mjs.map +1 -1
- package/dist/design-system23.js +1 -1
- package/dist/design-system23.mjs +5 -5
- package/dist/design-system24.js +1 -1
- package/dist/design-system24.mjs +6 -5
- package/dist/design-system24.mjs.map +1 -1
- package/dist/design-system25.js +1 -1
- package/dist/design-system25.mjs +8 -10
- package/dist/design-system25.mjs.map +1 -1
- package/dist/design-system26.js +1 -1
- package/dist/design-system26.js.map +1 -1
- package/dist/design-system26.mjs +18 -9
- package/dist/design-system26.mjs.map +1 -1
- package/dist/design-system27.js +1 -1
- package/dist/design-system27.js.map +1 -1
- package/dist/design-system27.mjs +29 -10
- package/dist/design-system27.mjs.map +1 -1
- package/dist/design-system28.js +1 -1
- package/dist/design-system28.mjs +5 -10
- package/dist/design-system28.mjs.map +1 -1
- package/dist/design-system29.js +1 -1
- package/dist/design-system29.mjs +5 -5
- package/dist/design-system3.js +1 -1
- package/dist/design-system3.js.map +1 -1
- package/dist/design-system3.mjs +44 -101
- package/dist/design-system3.mjs.map +1 -1
- package/dist/design-system30.js +1 -1
- package/dist/design-system30.js.map +1 -1
- package/dist/design-system30.mjs +10 -29
- package/dist/design-system30.mjs.map +1 -1
- package/dist/design-system31.js +1 -1
- package/dist/design-system31.js.map +1 -1
- package/dist/design-system31.mjs +10 -19
- package/dist/design-system31.mjs.map +1 -1
- package/dist/design-system32.js +1 -1
- package/dist/design-system32.mjs +7 -7
- package/dist/design-system33.js +1 -1
- package/dist/design-system33.mjs +10 -6
- package/dist/design-system33.mjs.map +1 -1
- package/dist/design-system34.js +1 -1
- package/dist/design-system34.mjs +11 -5
- package/dist/design-system34.mjs.map +1 -1
- package/dist/design-system35.js +1 -1
- package/dist/design-system35.mjs +5 -11
- package/dist/design-system35.mjs.map +1 -1
- package/dist/design-system36.js +1 -1
- package/dist/design-system36.js.map +1 -1
- package/dist/design-system36.mjs +148 -10
- package/dist/design-system36.mjs.map +1 -1
- package/dist/design-system37.js +1 -1
- package/dist/design-system37.js.map +1 -1
- package/dist/design-system37.mjs +57 -5
- package/dist/design-system37.mjs.map +1 -1
- package/dist/design-system38.js +1 -1
- package/dist/design-system38.js.map +1 -1
- package/dist/design-system38.mjs +5 -9
- package/dist/design-system38.mjs.map +1 -1
- package/dist/design-system39.js +1 -5
- package/dist/design-system39.js.map +1 -1
- package/dist/design-system39.mjs +8 -820
- package/dist/design-system39.mjs.map +1 -1
- package/dist/design-system40.js +5 -1
- package/dist/design-system40.js.map +1 -1
- package/dist/design-system40.mjs +816 -79
- package/dist/design-system40.mjs.map +1 -1
- package/dist/design-system42.js +1 -6
- package/dist/design-system42.js.map +1 -1
- package/dist/design-system42.mjs +82 -105
- package/dist/design-system42.mjs.map +1 -1
- package/dist/design-system43.js +1 -6
- package/dist/design-system43.js.map +1 -1
- package/dist/design-system43.mjs +2 -951
- package/dist/design-system43.mjs.map +1 -1
- package/dist/design-system44.js +1 -7
- package/dist/design-system44.js.map +1 -1
- package/dist/design-system44.mjs +112 -857
- package/dist/design-system44.mjs.map +1 -1
- package/dist/design-system45.js +1 -4
- package/dist/design-system45.js.map +1 -1
- package/dist/design-system45.mjs +2 -1364
- package/dist/design-system45.mjs.map +1 -1
- package/dist/design-system46.js +1 -1
- package/dist/design-system46.mjs +7 -2
- package/dist/design-system46.mjs.map +1 -1
- package/dist/design-system47.js +1 -1
- package/dist/design-system47.mjs +2 -2
- package/dist/design-system48.js +1 -1
- package/dist/design-system48.mjs +2 -2
- package/dist/design-system49.js +4 -1
- package/dist/design-system49.js.map +1 -1
- package/dist/design-system49.mjs +74 -2
- package/dist/design-system49.mjs.map +1 -1
- package/dist/design-system5.js +1 -1
- package/dist/design-system5.js.map +1 -1
- package/dist/design-system5.mjs +6 -5
- package/dist/design-system5.mjs.map +1 -1
- package/dist/design-system50.js +1 -4
- package/dist/design-system50.js.map +1 -1
- package/dist/design-system50.mjs +2 -74
- package/dist/design-system50.mjs.map +1 -1
- package/dist/design-system51.js +1 -1
- package/dist/design-system51.js.map +1 -1
- package/dist/design-system51.mjs +49 -2
- package/dist/design-system51.mjs.map +1 -1
- package/dist/design-system52.js +1 -1
- package/dist/design-system52.mjs +2 -7
- package/dist/design-system52.mjs.map +1 -1
- package/dist/design-system53.js +1 -1
- package/dist/design-system53.js.map +1 -1
- package/dist/design-system53.mjs +2 -104
- package/dist/design-system53.mjs.map +1 -1
- package/dist/design-system54.js +1 -1
- package/dist/design-system54.mjs +2 -2
- package/dist/design-system55.js +1 -1
- package/dist/design-system55.mjs +2 -2
- package/dist/design-system56.js +1 -1
- package/dist/design-system56.mjs +2 -2
- package/dist/design-system57.js +1 -1
- package/dist/design-system57.mjs +1 -1
- package/dist/design-system58.js +1 -1
- package/dist/design-system58.mjs +1 -1
- package/dist/design-system59.js +1 -1
- package/dist/design-system59.js.map +1 -1
- package/dist/design-system59.mjs +28 -2
- package/dist/design-system59.mjs.map +1 -1
- package/dist/design-system6.js.map +1 -1
- package/dist/design-system6.mjs.map +1 -1
- package/dist/design-system60.js +1 -1
- package/dist/design-system60.mjs +2 -2
- package/dist/design-system61.js +1 -1
- package/dist/design-system61.js.map +1 -1
- package/dist/design-system61.mjs +58 -2
- package/dist/design-system61.mjs.map +1 -1
- package/dist/design-system62.js +1 -1
- package/dist/design-system62.js.map +1 -1
- package/dist/design-system62.mjs +2 -28
- package/dist/design-system62.mjs.map +1 -1
- package/dist/design-system63.js +1 -1
- package/dist/design-system63.mjs +2 -2
- package/dist/design-system64.js +1 -1
- package/dist/design-system64.mjs +1 -1
- package/dist/design-system65.js +1 -1
- package/dist/design-system65.mjs +1 -1
- package/dist/design-system66.js +1 -1
- package/dist/design-system66.mjs +1 -1
- package/dist/design-system67.js +1 -1
- package/dist/design-system67.mjs +1 -1
- package/dist/design-system68.js +1 -1
- package/dist/design-system68.mjs +1 -1
- package/dist/design-system69.js +1 -1
- package/dist/design-system69.js.map +1 -1
- package/dist/design-system69.mjs +2 -48
- package/dist/design-system69.mjs.map +1 -1
- package/dist/design-system7.js +1 -1
- package/dist/design-system7.js.map +1 -1
- package/dist/design-system7.mjs +11 -2
- package/dist/design-system7.mjs.map +1 -1
- package/dist/design-system70.js +1 -1
- package/dist/design-system70.js.map +1 -1
- package/dist/design-system70.mjs +81 -2
- package/dist/design-system70.mjs.map +1 -1
- package/dist/design-system71.js +1 -1
- package/dist/design-system71.mjs +2 -2
- package/dist/design-system72.js +1 -1
- package/dist/design-system72.js.map +1 -1
- package/dist/design-system72.mjs +2 -73
- package/dist/design-system72.mjs.map +1 -1
- package/dist/design-system73.js +1 -1
- package/dist/design-system73.mjs +2 -2
- package/dist/design-system74.js +1 -1
- package/dist/design-system74.mjs +2 -2
- package/dist/design-system75.js +1 -1
- package/dist/design-system75.js.map +1 -1
- package/dist/design-system75.mjs +2 -58
- package/dist/design-system75.mjs.map +1 -1
- package/dist/design-system76.js +1 -1
- package/dist/design-system76.js.map +1 -1
- package/dist/design-system76.mjs +102 -2
- package/dist/design-system76.mjs.map +1 -1
- package/dist/design-system77.js +1 -1
- package/dist/design-system77.mjs +2 -2
- package/dist/design-system78.js +6 -1
- package/dist/design-system78.js.map +1 -1
- package/dist/design-system78.mjs +107 -2
- package/dist/design-system78.mjs.map +1 -1
- package/dist/design-system79.js +4 -3
- package/dist/design-system79.js.map +1 -1
- package/dist/design-system79.mjs +907 -5
- package/dist/design-system79.mjs.map +1 -1
- package/dist/design-system8.js +1 -1
- package/dist/design-system8.js.map +1 -1
- package/dist/design-system8.mjs +2 -11
- package/dist/design-system8.mjs.map +1 -1
- package/dist/design-system80.js +7 -1
- package/dist/design-system80.js.map +1 -1
- package/dist/design-system80.mjs +860 -5
- package/dist/design-system80.mjs.map +1 -1
- package/dist/design-system81.js +4 -1
- package/dist/design-system81.js.map +1 -1
- package/dist/design-system81.mjs +1364 -4
- package/dist/design-system81.mjs.map +1 -1
- package/dist/design-system82.js +5 -1
- package/dist/design-system82.js.map +1 -1
- package/dist/design-system82.mjs +10 -2
- package/dist/design-system82.mjs.map +1 -1
- package/dist/design-system83.js.map +1 -1
- package/dist/design-system83.mjs.map +1 -1
- package/dist/design-system84.js +1 -1
- package/dist/design-system84.js.map +1 -1
- package/dist/design-system84.mjs +1 -1
- package/dist/design-system84.mjs.map +1 -1
- package/dist/design-system85.js +1 -1
- package/dist/design-system85.js.map +1 -1
- package/dist/design-system85.mjs +71 -2448
- package/dist/design-system85.mjs.map +1 -1
- package/dist/design-system86.js +1 -1
- package/dist/design-system86.js.map +1 -1
- package/dist/design-system86.mjs +6 -1103
- package/dist/design-system86.mjs.map +1 -1
- package/dist/design-system87.js +1 -1
- package/dist/design-system87.js.map +1 -1
- package/dist/design-system87.mjs +2448 -71
- package/dist/design-system87.mjs.map +1 -1
- package/dist/design-system88.js +1 -1
- package/dist/design-system88.js.map +1 -1
- package/dist/design-system88.mjs +1103 -6
- package/dist/design-system88.mjs.map +1 -1
- package/dist/design-system9.js +1 -1
- package/dist/design-system9.js.map +1 -1
- package/dist/design-system9.mjs +79 -40
- package/dist/design-system9.mjs.map +1 -1
- package/dist/design-system93.js +1 -1
- package/dist/design-system93.mjs +2 -2
- package/dist/design-system94.js +1 -1
- package/dist/design-system94.js.map +1 -1
- package/dist/design-system94.mjs +63 -2
- package/dist/design-system94.mjs.map +1 -1
- package/dist/design-system95.js +1 -1
- package/dist/design-system95.js.map +1 -1
- package/dist/design-system95.mjs +4 -2
- package/dist/design-system95.mjs.map +1 -1
- package/dist/design-system96.js +1 -1
- package/dist/design-system96.js.map +1 -1
- package/dist/design-system96.mjs +9 -63
- package/dist/design-system96.mjs.map +1 -1
- package/dist/design-system97.js +1 -1
- package/dist/design-system97.js.map +1 -1
- package/dist/design-system97.mjs +6 -3
- package/dist/design-system97.mjs.map +1 -1
- package/dist/design-system98.js +1 -1
- package/dist/design-system98.js.map +1 -1
- package/dist/design-system98.mjs +4 -9
- package/dist/design-system98.mjs.map +1 -1
- package/dist/design-system99.js +1 -1
- package/dist/design-system99.js.map +1 -1
- package/dist/design-system99.mjs +3 -7
- package/dist/design-system99.mjs.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/components/BButton.vue.d.ts +43 -30
- package/dist/types/components/BCarousel/BCarousel.vue.d.ts +51 -43
- package/dist/types/components/BCheckbox.vue.d.ts +59 -34
- package/dist/types/components/BCollapse.vue.d.ts +11 -10
- package/dist/types/components/BDatePicker.vue.d.ts +125 -77
- package/dist/types/components/BDropdown/BDropdown.vue.d.ts +82 -52
- package/dist/types/components/BDropdown/BDropdownItem.vue.d.ts +11 -22
- package/dist/types/components/BErrorMessage.vue.d.ts +12 -30
- package/dist/types/components/BLabel.vue.d.ts +27 -31
- package/dist/types/components/BLoadingBar.vue.d.ts +35 -35
- package/dist/types/components/BLoadingOverlay.vue.d.ts +27 -32
- package/dist/types/components/BModal/BModal.vue.d.ts +35 -35
- package/dist/types/components/BModal/BModalContainer.vue.d.ts +27 -26
- package/dist/types/components/BMultiSelect.vue.d.ts +116 -64
- package/dist/types/components/BOtpField/BOtpField.vue.d.ts +84 -56
- package/dist/types/components/BOtpField/BOtpFieldBox.vue.d.ts +28 -27
- package/dist/types/components/BPagination.vue.d.ts +43 -36
- package/dist/types/components/BRadio.vue.d.ts +83 -55
- package/dist/types/components/BSelect.vue.d.ts +108 -61
- package/dist/types/components/BTabs/BTabs.vue.d.ts +27 -30
- package/dist/types/components/BTextField.vue.d.ts +156 -81
- package/dist/types/components/BTextarea.vue.d.ts +108 -63
- package/dist/types/components/BToast/BToast.vue.d.ts +11 -18
- package/dist/types/components/BToast/BToastItem.vue.d.ts +35 -28
- package/dist/types/components/BTooltip.vue.d.ts +28 -35
- package/dist/types/components/index.d.ts +21 -20
- package/dist/types/constants/Enums.d.ts +9 -3
- package/dist/types/index.d.ts +3 -3
- package/dist/types/types/components/BCarousel.d.ts +8 -0
- package/dist/types/types/components/BDatePicker.d.ts +19 -0
- package/dist/types/types/components/BDropdown.d.ts +11 -0
- package/dist/types/types/components/BErrorMessage.d.ts +4 -0
- package/dist/types/types/components/BLabel.d.ts +5 -0
- package/dist/types/types/components/BLoadingBar.d.ts +6 -0
- package/dist/types/types/components/BLoadingOverlay.d.ts +6 -0
- package/dist/types/types/components/BModal.d.ts +7 -0
- package/dist/types/types/components/BMultiSelect.d.ts +18 -0
- package/dist/types/types/components/BOtpField.d.ts +13 -0
- package/dist/types/types/components/BPagination.d.ts +8 -0
- package/dist/types/types/components/BRadio.d.ts +13 -0
- package/dist/types/types/components/BSelect.d.ts +17 -0
- package/dist/types/types/components/BTabs.d.ts +5 -0
- package/dist/types/types/components/BTextField.d.ts +22 -0
- package/dist/types/types/components/BTextarea.d.ts +16 -0
- package/dist/types/types/components/BTooltip.d.ts +6 -0
- package/dist/types/types/index.d.ts +17 -0
- package/package.json +22 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-system87.mjs","sources":["../src/components/BOtpField/BOtpFieldBox.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { vModelText as _vModelText, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"disabled\"]\n\nimport { onMounted, ref, watch, type Ref } from 'vue';\n\n/**\n * Props\n */\nexport interface Props {\n value?: string;\n focus?: boolean;\n isDisabled?: boolean;\n}\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BOtpFieldBox',\n props: {\n value: { default: '' },\n focus: { type: Boolean, default: false },\n isDisabled: { type: Boolean, default: false }\n },\n emits: [\n 'on-change',\n 'on-keydown',\n 'on-keyup',\n 'on-paste',\n 'on-focus',\n 'on-blur',\n],\n setup(__props: any, { expose: __expose, emit }) {\n\nconst props = __props;\n\n\n\n/**\n * Events\n */\n\n\n/**\n * Data\n */\nconst model = ref(props.value || '');\nconst inputRef = ref<HTMLInputElement | null>(null) as Ref<HTMLInputElement>;\nconst digits = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\n\n/**\n * Methods\n */\nconst handleOnChange = () => {\n if (!digits.includes(model.value)) {\n model.value = '';\n return;\n }\n\n model.value = model.value.toString();\n if (model.value.length > 1) {\n model.value = model.value.slice(0, 1);\n }\n return emit('on-change', model.value);\n};\n\nconst handleOnKeyDown = (event: KeyboardEvent) => {\n if (props.isDisabled) {\n event.preventDefault();\n }\n // Only allow characters 0-9, DEL, Backspace, Enter, Right and Left Arrows, and Pasting\n const keyEvent = event;\n if (\n [\n 'Alt',\n 'Control',\n 'Meta',\n 'Backspace',\n 'ArrowLeft',\n 'ArrowRight',\n 'v',\n ...digits,\n ].includes(keyEvent.key)\n ) {\n emit('on-keydown', event);\n } else {\n keyEvent.preventDefault();\n }\n};\nconst handleOnKeyUp = (event: KeyboardEvent) => {\n emit('on-keyup', event);\n};\nconst handleOnPaste = (event: ClipboardEvent) => {\n emit('on-paste', event);\n};\nconst handleOnFocus = () => {\n inputRef.value.select();\n return emit('on-focus');\n};\nconst handleOnBlur = () => emit('on-blur');\nconst focusFn = () => {\n inputRef.value.focus();\n inputRef.value.select();\n};\n\n/**\n * Watch\n */\nwatch(\n () => props.value,\n (newValue, oldValue) => {\n if (newValue !== oldValue) {\n model.value = newValue;\n }\n }\n);\nwatch(\n () => props.focus,\n (newFocusValue, oldFocusValue) => {\n // Check if focusedInput changed\n // Prevent calling function if input already in focus\n if (oldFocusValue !== newFocusValue && inputRef.value && props.focus) {\n inputRef.value.focus();\n inputRef.value.select();\n }\n }\n);\n\n/**\n * Lifecycle Hooks\n */\nonMounted(() => {\n if (inputRef.value && props.focus) {\n inputRef.value.focus();\n inputRef.value.select();\n }\n});\n\n__expose({ focus: focusFn });\n\nreturn (_ctx: any,_cache: any) => {\n return _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n ref_key: \"inputRef\",\n ref: inputRef,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((model).value = $event)),\n inputmode: \"numeric\",\n disabled: _ctx.isDisabled,\n maxlength: \"1\",\n class: \"ds-h-11 ds-w-11 ds-rounded-lg ds-border ds-text-center ds-drop-shadow-light ds-transition-all ds-duration-200\",\n onInput: handleOnChange,\n onKeydown: handleOnKeyDown,\n onKeyup: handleOnKeyUp,\n onPaste: handleOnPaste,\n onFocus: handleOnFocus,\n onBlur: handleOnBlur\n }, null, 40, _hoisted_1)), [\n [_vModelText, model.value]\n ])\n}\n}\n\n})"],"names":["_hoisted_1","_sfc_main","_defineComponent","__props","__expose","emit","props","model","ref","inputRef","digits","handleOnChange","handleOnKeyDown","event","keyEvent","handleOnKeyUp","handleOnPaste","handleOnFocus","handleOnBlur","focusFn","watch","newValue","oldValue","newFocusValue","oldFocusValue","onMounted","_ctx","_cache","_withDirectives","_openBlock","_createElementBlock","$event","_vModelText"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"design-system87.mjs","sources":["../src/vendor/imask-6.4.3.js"],"sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n ? factory(exports)\n : typeof define === 'function' && define.amd\n ? define(['exports'], factory)\n : ((global =\n typeof globalThis !== 'undefined' ? globalThis : global || self),\n factory((global.IMask = {})));\n})(this, function (exports) {\n 'use strict';\n\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n }\n\n /**\n * Applies mask on element.\n * @constructor\n * @param {HTMLInputElement|HTMLTextAreaElement|MaskElement} el - Element to apply mask\n * @param {Object} opts - Custom mask options\n * @return {InputMask}\n */\n function IMask(el) {\n let opts =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // currently available only for input-like elements\n return new IMask.InputMask(el, opts);\n }\n\n /**\n Provides details of changing model value\n @param {Object} [details]\n @param {string} [details.inserted] - Inserted symbols\n @param {boolean} [details.skip] - Can skip chars\n @param {number} [details.removeCount] - Removed symbols count\n @param {number} [details.tailShift] - Additional offset if any changes occurred before tail\n */\n class ChangeDetails {\n /** Inserted symbols */\n\n /** Can skip chars */\n\n /** Additional offset if any changes occurred before tail */\n\n /** Raw inserted is used by dynamic mask */\n\n constructor(details) {\n Object.assign(\n this,\n {\n inserted: '',\n rawInserted: '',\n skip: false,\n tailShift: 0,\n },\n details\n );\n }\n\n /**\n Aggregate changes\n @returns {ChangeDetails} `this`\n */\n aggregate(details) {\n this.rawInserted += details.rawInserted;\n this.skip = this.skip || details.skip;\n this.inserted += details.inserted;\n this.tailShift += details.tailShift;\n return this;\n }\n\n /** Total offset considering all changes */\n get offset() {\n return this.tailShift + this.inserted.length;\n }\n }\n IMask.ChangeDetails = ChangeDetails;\n\n /** Checks if value is string */\n function isString(str) {\n return typeof str === 'string' || str instanceof String;\n }\n\n /**\n Direction\n @prop {string} NONE\n @prop {string} LEFT\n @prop {string} FORCE_LEFT\n @prop {string} RIGHT\n @prop {string} FORCE_RIGHT\n */\n const DIRECTION = {\n NONE: 'NONE',\n LEFT: 'LEFT',\n FORCE_LEFT: 'FORCE_LEFT',\n RIGHT: 'RIGHT',\n FORCE_RIGHT: 'FORCE_RIGHT',\n };\n\n /** */\n function forceDirection(direction) {\n switch (direction) {\n case DIRECTION.LEFT:\n return DIRECTION.FORCE_LEFT;\n case DIRECTION.RIGHT:\n return DIRECTION.FORCE_RIGHT;\n default:\n return direction;\n }\n }\n\n /** Escapes regular expression control chars */\n function escapeRegExp(str) {\n return str.replace(/([.*+?^=!:${}()|[\\]\\/\\\\])/g, '\\\\$1');\n }\n function normalizePrepare(prep) {\n return Array.isArray(prep) ? prep : [prep, new ChangeDetails()];\n }\n\n // cloned from https://github.com/epoberezkin/fast-deep-equal with small changes\n function objectIncludes(b, a) {\n if (a === b) return true;\n var arrA = Array.isArray(a),\n arrB = Array.isArray(b),\n i;\n if (arrA && arrB) {\n if (a.length != b.length) return false;\n for (i = 0; i < a.length; i++)\n if (!objectIncludes(a[i], b[i])) return false;\n return true;\n }\n if (arrA != arrB) return false;\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA && dateB) return a.getTime() == b.getTime();\n if (dateA != dateB) return false;\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA && regexpB) return a.toString() == b.toString();\n if (regexpA != regexpB) return false;\n var keys = Object.keys(a);\n // if (keys.length !== Object.keys(b).length) return false;\n\n for (i = 0; i < keys.length; i++)\n // $FlowFixMe ... ???\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n for (i = 0; i < keys.length; i++)\n if (!objectIncludes(b[keys[i]], a[keys[i]])) return false;\n return true;\n } else if (a && b && typeof a === 'function' && typeof b === 'function') {\n return a.toString() === b.toString();\n }\n return false;\n }\n\n /** Selection range */\n\n /** Provides details of changing input */\n class ActionDetails {\n /** Current input value */\n\n /** Current cursor position */\n\n /** Old input value */\n\n /** Old selection */\n\n constructor(value, cursorPos, oldValue, oldSelection) {\n this.value = value;\n this.cursorPos = cursorPos;\n this.oldValue = oldValue;\n this.oldSelection = oldSelection;\n\n // double check if left part was changed (autofilling, other non-standard input triggers)\n while (\n this.value.slice(0, this.startChangePos) !==\n this.oldValue.slice(0, this.startChangePos)\n ) {\n --this.oldSelection.start;\n }\n }\n\n /**\n Start changing position\n @readonly\n */\n get startChangePos() {\n return Math.min(this.cursorPos, this.oldSelection.start);\n }\n\n /**\n Inserted symbols count\n @readonly\n */\n get insertedCount() {\n return this.cursorPos - this.startChangePos;\n }\n\n /**\n Inserted symbols\n @readonly\n */\n get inserted() {\n return this.value.substr(this.startChangePos, this.insertedCount);\n }\n\n /**\n Removed symbols count\n @readonly\n */\n get removedCount() {\n // Math.max for opposite operation\n return Math.max(\n this.oldSelection.end - this.startChangePos ||\n // for Delete\n this.oldValue.length - this.value.length,\n 0\n );\n }\n\n /**\n Removed symbols\n @readonly\n */\n get removed() {\n return this.oldValue.substr(this.startChangePos, this.removedCount);\n }\n\n /**\n Unchanged head symbols\n @readonly\n */\n get head() {\n return this.value.substring(0, this.startChangePos);\n }\n\n /**\n Unchanged tail symbols\n @readonly\n */\n get tail() {\n return this.value.substring(this.startChangePos + this.insertedCount);\n }\n\n /**\n Remove direction\n @readonly\n */\n get removeDirection() {\n if (!this.removedCount || this.insertedCount) return DIRECTION.NONE;\n\n // align right if delete at right\n return (this.oldSelection.end === this.cursorPos ||\n this.oldSelection.start === this.cursorPos) &&\n // if not range removed (event with backspace)\n this.oldSelection.end === this.oldSelection.start\n ? DIRECTION.RIGHT\n : DIRECTION.LEFT;\n }\n }\n\n /** Provides details of continuous extracted tail */\n class ContinuousTailDetails {\n /** Tail value as string */\n\n /** Tail start position */\n\n /** Start position */\n\n constructor() {\n let value =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n let from =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n let stop = arguments.length > 2 ? arguments[2] : undefined;\n this.value = value;\n this.from = from;\n this.stop = stop;\n }\n toString() {\n return this.value;\n }\n extend(tail) {\n this.value += String(tail);\n }\n appendTo(masked) {\n return masked\n .append(this.toString(), {\n tail: true,\n })\n .aggregate(masked._appendPlaceholder());\n }\n get state() {\n return {\n value: this.value,\n from: this.from,\n stop: this.stop,\n };\n }\n set state(state) {\n Object.assign(this, state);\n }\n unshift(beforePos) {\n if (!this.value.length || (beforePos != null && this.from >= beforePos))\n return '';\n const shiftChar = this.value[0];\n this.value = this.value.slice(1);\n return shiftChar;\n }\n shift() {\n if (!this.value.length) return '';\n const shiftChar = this.value[this.value.length - 1];\n this.value = this.value.slice(0, -1);\n return shiftChar;\n }\n }\n\n /** Supported mask type */\n\n /** Append flags */\n\n /** Extract flags */\n\n /** Provides common masking stuff */\n class Masked {\n // $Shape<MaskedOptions>; TODO after fix https://github.com/facebook/flow/issues/4773\n\n /** @type {Mask} */\n\n /** */ // $FlowFixMe no ideas\n /** Transforms value before mask processing */\n /** Validates if value is acceptable */\n /** Does additional processing in the end of editing */\n /** Format typed value to string */\n /** Parse strgin to get typed value */\n /** Enable characters overwriting */\n /** */\n /** */\n /** */\n constructor(opts) {\n this._value = '';\n this._update(Object.assign({}, Masked.DEFAULTS, opts));\n this.isInitialized = true;\n }\n\n /** Sets and applies new options */\n updateOptions(opts) {\n if (!Object.keys(opts).length) return;\n // $FlowFixMe\n this.withValueRefresh(this._update.bind(this, opts));\n }\n\n /**\n Sets new options\n @protected\n */\n _update(opts) {\n Object.assign(this, opts);\n }\n\n /** Mask state */\n get state() {\n return {\n _value: this.value,\n };\n }\n set state(state) {\n this._value = state._value;\n }\n\n /** Resets value */\n reset() {\n this._value = '';\n }\n\n /** */\n get value() {\n return this._value;\n }\n set value(value) {\n this.resolve(value);\n }\n\n /** Resolve new value */\n resolve(value) {\n this.reset();\n this.append(\n value,\n {\n input: true,\n },\n ''\n );\n this.doCommit();\n return this.value;\n }\n\n /** */\n get unmaskedValue() {\n return this.value;\n }\n set unmaskedValue(value) {\n this.reset();\n this.append(value, {}, '');\n this.doCommit();\n }\n\n /** */\n get typedValue() {\n return this.doParse(this.value);\n }\n set typedValue(value) {\n this.value = this.doFormat(value);\n }\n\n /** Value that includes raw user input */\n get rawInputValue() {\n return this.extractInput(0, this.value.length, {\n raw: true,\n });\n }\n set rawInputValue(value) {\n this.reset();\n this.append(\n value,\n {\n raw: true,\n },\n ''\n );\n this.doCommit();\n }\n get displayValue() {\n return this.value;\n }\n\n /** */\n get isComplete() {\n return true;\n }\n\n /** */\n get isFilled() {\n return this.isComplete;\n }\n\n /** Finds nearest input position in direction */\n nearestInputPos(cursorPos, direction) {\n return cursorPos;\n }\n totalInputPositions() {\n let fromPos =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : this.value.length;\n return Math.min(this.value.length, toPos - fromPos);\n }\n\n /** Extracts value in range considering flags */\n extractInput() {\n let fromPos =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : this.value.length;\n return this.value.slice(fromPos, toPos);\n }\n\n /** Extracts tail in range */\n extractTail() {\n let fromPos =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : this.value.length;\n return new ContinuousTailDetails(\n this.extractInput(fromPos, toPos),\n fromPos\n );\n }\n\n /** Appends tail */\n // $FlowFixMe no ideas\n appendTail(tail) {\n if (isString(tail)) tail = new ContinuousTailDetails(String(tail));\n return tail.appendTo(this);\n }\n\n /** Appends char */\n _appendCharRaw(ch) {\n if (!ch) return new ChangeDetails();\n this._value += ch;\n return new ChangeDetails({\n inserted: ch,\n rawInserted: ch,\n });\n }\n\n /** Appends char */\n _appendChar(ch) {\n let flags =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let checkTail = arguments.length > 2 ? arguments[2] : undefined;\n const consistentState = this.state;\n let details;\n [ch, details] = normalizePrepare(this.doPrepare(ch, flags));\n details = details.aggregate(this._appendCharRaw(ch, flags));\n if (details.inserted) {\n let consistentTail;\n let appended = this.doValidate(flags) !== false;\n if (appended && checkTail != null) {\n // validation ok, check tail\n const beforeTailState = this.state;\n if (this.overwrite === true) {\n consistentTail = checkTail.state;\n checkTail.unshift(this.value.length - details.tailShift);\n }\n let tailDetails = this.appendTail(checkTail);\n appended = tailDetails.rawInserted === checkTail.toString();\n\n // not ok, try shift\n if (\n !(appended && tailDetails.inserted) &&\n this.overwrite === 'shift'\n ) {\n this.state = beforeTailState;\n consistentTail = checkTail.state;\n checkTail.shift();\n tailDetails = this.appendTail(checkTail);\n appended = tailDetails.rawInserted === checkTail.toString();\n }\n\n // if ok, rollback state after tail\n if (appended && tailDetails.inserted) this.state = beforeTailState;\n }\n\n // revert all if something went wrong\n if (!appended) {\n details = new ChangeDetails();\n this.state = consistentState;\n if (checkTail && consistentTail) checkTail.state = consistentTail;\n }\n }\n return details;\n }\n\n /** Appends optional placeholder at end */\n _appendPlaceholder() {\n return new ChangeDetails();\n }\n\n /** Appends optional eager placeholder at end */\n _appendEager() {\n return new ChangeDetails();\n }\n\n /** Appends symbols considering flags */\n // $FlowFixMe no ideas\n append(str, flags, tail) {\n if (!isString(str)) throw new Error('value should be string');\n const details = new ChangeDetails();\n const checkTail = isString(tail)\n ? new ContinuousTailDetails(String(tail))\n : tail;\n if (flags !== null && flags !== void 0 && flags.tail)\n flags._beforeTailState = this.state;\n for (let ci = 0; ci < str.length; ++ci) {\n const d = this._appendChar(str[ci], flags, checkTail);\n if (!d.rawInserted && !this.doSkipInvalid(str[ci], flags, checkTail))\n break;\n details.aggregate(d);\n }\n\n // append tail but aggregate only tailShift\n if (checkTail != null) {\n details.tailShift += this.appendTail(checkTail).tailShift;\n // TODO it's a good idea to clear state after appending ends\n // but it causes bugs when one append calls another (when dynamic dispatch set rawInputValue)\n // this._resetBeforeTailState();\n }\n\n if (\n (this.eager === true || this.eager === 'append') &&\n flags !== null &&\n flags !== void 0 &&\n flags.input &&\n str\n ) {\n details.aggregate(this._appendEager());\n }\n return details;\n }\n\n /** */\n remove() {\n let fromPos =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : this.value.length;\n this._value = this.value.slice(0, fromPos) + this.value.slice(toPos);\n return new ChangeDetails();\n }\n\n /** Calls function and reapplies current value */\n withValueRefresh(fn) {\n if (this._refreshing || !this.isInitialized) return fn();\n this._refreshing = true;\n const rawInput = this.rawInputValue;\n const value = this.value;\n const ret = fn();\n this.rawInputValue = rawInput;\n // append lost trailing chars at end\n if (\n this.value &&\n this.value !== value &&\n value.indexOf(this.value) === 0\n ) {\n this.append(value.slice(this.value.length), {}, '');\n }\n delete this._refreshing;\n return ret;\n }\n\n /** */\n runIsolated(fn) {\n if (this._isolated || !this.isInitialized) return fn(this);\n this._isolated = true;\n const state = this.state;\n const ret = fn(this);\n this.state = state;\n delete this._isolated;\n return ret;\n }\n\n /** */\n doSkipInvalid(ch) {\n return this.skipInvalid;\n }\n\n /**\n Prepares string before mask processing\n @protected\n */\n doPrepare(str) {\n let flags =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return this.prepare ? this.prepare(str, this, flags) : str;\n }\n\n /**\n Validates if value is acceptable\n @protected\n */\n doValidate(flags) {\n return (\n (!this.validate || this.validate(this.value, this, flags)) &&\n (!this.parent || this.parent.doValidate(flags))\n );\n }\n\n /**\n Does additional processing in the end of editing\n @protected\n */\n doCommit() {\n if (this.commit) this.commit(this.value, this);\n }\n\n /** */\n doFormat(value) {\n return this.format ? this.format(value, this) : value;\n }\n\n /** */\n doParse(str) {\n return this.parse ? this.parse(str, this) : str;\n }\n\n /** */\n splice(start, deleteCount, inserted, removeDirection) {\n let flags =\n arguments.length > 4 && arguments[4] !== undefined\n ? arguments[4]\n : {\n input: true,\n };\n const tailPos = start + deleteCount;\n const tail = this.extractTail(tailPos);\n const eagerRemove = this.eager === true || this.eager === 'remove';\n let oldRawValue;\n if (eagerRemove) {\n removeDirection = forceDirection(removeDirection);\n oldRawValue = this.extractInput(0, tailPos, {\n raw: true,\n });\n }\n let startChangePos = start;\n const details = new ChangeDetails();\n\n // if it is just deletion without insertion\n if (removeDirection !== DIRECTION.NONE) {\n startChangePos = this.nearestInputPos(\n start,\n deleteCount > 1 && start !== 0 && !eagerRemove\n ? DIRECTION.NONE\n : removeDirection\n );\n\n // adjust tailShift if start was aligned\n details.tailShift = startChangePos - start;\n }\n details.aggregate(this.remove(startChangePos));\n if (\n eagerRemove &&\n removeDirection !== DIRECTION.NONE &&\n oldRawValue === this.rawInputValue\n ) {\n if (removeDirection === DIRECTION.FORCE_LEFT) {\n let valLength;\n while (\n oldRawValue === this.rawInputValue &&\n (valLength = this.value.length)\n ) {\n details\n .aggregate(\n new ChangeDetails({\n tailShift: -1,\n })\n )\n .aggregate(this.remove(valLength - 1));\n }\n } else if (removeDirection === DIRECTION.FORCE_RIGHT) {\n tail.unshift();\n }\n }\n return details.aggregate(this.append(inserted, flags, tail));\n }\n maskEquals(mask) {\n return this.mask === mask;\n }\n typedValueEquals(value) {\n const tval = this.typedValue;\n return (\n value === tval ||\n (Masked.EMPTY_VALUES.includes(value) &&\n Masked.EMPTY_VALUES.includes(tval)) ||\n this.doFormat(value) === this.doFormat(this.typedValue)\n );\n }\n }\n Masked.DEFAULTS = {\n format: String,\n parse: (v) => v,\n skipInvalid: true,\n };\n Masked.EMPTY_VALUES = [undefined, null, ''];\n IMask.Masked = Masked;\n\n /** Get Masked class by mask type */\n function maskedClass(mask) {\n if (mask == null) {\n throw new Error('mask property should be defined');\n }\n\n // $FlowFixMe\n if (mask instanceof RegExp) return IMask.MaskedRegExp;\n // $FlowFixMe\n if (isString(mask)) return IMask.MaskedPattern;\n // $FlowFixMe\n if (mask instanceof Date || mask === Date) return IMask.MaskedDate;\n // $FlowFixMe\n if (mask instanceof Number || typeof mask === 'number' || mask === Number)\n return IMask.MaskedNumber;\n // $FlowFixMe\n if (Array.isArray(mask) || mask === Array) return IMask.MaskedDynamic;\n // $FlowFixMe\n if (IMask.Masked && mask.prototype instanceof IMask.Masked) return mask;\n // $FlowFixMe\n if (mask instanceof IMask.Masked) return mask.constructor;\n // $FlowFixMe\n if (mask instanceof Function) return IMask.MaskedFunction;\n console.warn('Mask not found for mask', mask); // eslint-disable-line no-console\n // $FlowFixMe\n return IMask.Masked;\n }\n\n /** Creates new {@link Masked} depending on mask type */\n function createMask(opts) {\n // $FlowFixMe\n if (IMask.Masked && opts instanceof IMask.Masked) return opts;\n opts = Object.assign({}, opts);\n const mask = opts.mask;\n\n // $FlowFixMe\n if (IMask.Masked && mask instanceof IMask.Masked) return mask;\n const MaskedClass = maskedClass(mask);\n if (!MaskedClass)\n throw new Error(\n 'Masked class is not found for provided mask, appropriate module needs to be import manually before creating mask.'\n );\n return new MaskedClass(opts);\n }\n IMask.createMask = createMask;\n\n const _excluded$4 = [\n 'parent',\n 'isOptional',\n 'placeholderChar',\n 'displayChar',\n 'lazy',\n 'eager',\n ];\n\n /** */\n\n const DEFAULT_INPUT_DEFINITIONS = {\n 0: /\\d/,\n a: /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/,\n // http://stackoverflow.com/a/22075070\n '*': /./,\n };\n\n /** */\n class PatternInputDefinition {\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n constructor(opts) {\n const { parent, isOptional, placeholderChar, displayChar, lazy, eager } =\n opts,\n maskOpts = _objectWithoutPropertiesLoose(opts, _excluded$4);\n this.masked = createMask(maskOpts);\n Object.assign(this, {\n parent,\n isOptional,\n placeholderChar,\n displayChar,\n lazy,\n eager,\n });\n }\n reset() {\n this.isFilled = false;\n this.masked.reset();\n }\n remove() {\n let fromPos =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : this.value.length;\n if (fromPos === 0 && toPos >= 1) {\n this.isFilled = false;\n return this.masked.remove(fromPos, toPos);\n }\n return new ChangeDetails();\n }\n get value() {\n return (\n this.masked.value ||\n (this.isFilled && !this.isOptional ? this.placeholderChar : '')\n );\n }\n get unmaskedValue() {\n return this.masked.unmaskedValue;\n }\n get displayValue() {\n return (this.masked.value && this.displayChar) || this.value;\n }\n get isComplete() {\n return Boolean(this.masked.value) || this.isOptional;\n }\n _appendChar(ch) {\n let flags =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.isFilled) return new ChangeDetails();\n const state = this.masked.state;\n // simulate input\n const details = this.masked._appendChar(ch, flags);\n if (details.inserted && this.doValidate(flags) === false) {\n details.inserted = details.rawInserted = '';\n this.masked.state = state;\n }\n if (!details.inserted && !this.isOptional && !this.lazy && !flags.input) {\n details.inserted = this.placeholderChar;\n }\n details.skip = !details.inserted && !this.isOptional;\n this.isFilled = Boolean(details.inserted);\n return details;\n }\n append() {\n // TODO probably should be done via _appendChar\n return this.masked.append(...arguments);\n }\n _appendPlaceholder() {\n const details = new ChangeDetails();\n if (this.isFilled || this.isOptional) return details;\n this.isFilled = true;\n details.inserted = this.placeholderChar;\n return details;\n }\n _appendEager() {\n return new ChangeDetails();\n }\n extractTail() {\n return this.masked.extractTail(...arguments);\n }\n appendTail() {\n return this.masked.appendTail(...arguments);\n }\n extractInput() {\n let fromPos =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : this.value.length;\n let flags = arguments.length > 2 ? arguments[2] : undefined;\n return this.masked.extractInput(fromPos, toPos, flags);\n }\n nearestInputPos(cursorPos) {\n let direction =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : DIRECTION.NONE;\n const minPos = 0;\n const maxPos = this.value.length;\n const boundPos = Math.min(Math.max(cursorPos, minPos), maxPos);\n switch (direction) {\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n return this.isComplete ? boundPos : minPos;\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n return this.isComplete ? boundPos : maxPos;\n case DIRECTION.NONE:\n default:\n return boundPos;\n }\n }\n totalInputPositions() {\n let fromPos =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : this.value.length;\n return this.value.slice(fromPos, toPos).length;\n }\n doValidate() {\n return (\n this.masked.doValidate(...arguments) &&\n (!this.parent || this.parent.doValidate(...arguments))\n );\n }\n doCommit() {\n this.masked.doCommit();\n }\n get state() {\n return {\n masked: this.masked.state,\n isFilled: this.isFilled,\n };\n }\n set state(state) {\n this.masked.state = state.masked;\n this.isFilled = state.isFilled;\n }\n }\n\n /** */\n\n class PatternFixedDefinition {\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n constructor(opts) {\n Object.assign(this, opts);\n this._value = '';\n this.isFixed = true;\n }\n get value() {\n return this._value;\n }\n get unmaskedValue() {\n return this.isUnmasking ? this.value : '';\n }\n get displayValue() {\n return this.value;\n }\n reset() {\n this._isRawInput = false;\n this._value = '';\n }\n remove() {\n let fromPos =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : this._value.length;\n this._value = this._value.slice(0, fromPos) + this._value.slice(toPos);\n if (!this._value) this._isRawInput = false;\n return new ChangeDetails();\n }\n nearestInputPos(cursorPos) {\n let direction =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : DIRECTION.NONE;\n const minPos = 0;\n const maxPos = this._value.length;\n switch (direction) {\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n return minPos;\n case DIRECTION.NONE:\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n default:\n return maxPos;\n }\n }\n totalInputPositions() {\n let fromPos =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : this._value.length;\n return this._isRawInput ? toPos - fromPos : 0;\n }\n extractInput() {\n let fromPos =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : this._value.length;\n let flags =\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return (\n (flags.raw && this._isRawInput && this._value.slice(fromPos, toPos)) ||\n ''\n );\n }\n get isComplete() {\n return true;\n }\n get isFilled() {\n return Boolean(this._value);\n }\n _appendChar(ch) {\n let flags =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const details = new ChangeDetails();\n if (this.isFilled) return details;\n const appendEager = this.eager === true || this.eager === 'append';\n const appended = this.char === ch;\n const isResolved =\n appended &&\n (this.isUnmasking || flags.input || flags.raw) &&\n (!flags.raw || !appendEager) &&\n !flags.tail;\n if (isResolved) details.rawInserted = this.char;\n this._value = details.inserted = this.char;\n this._isRawInput = isResolved && (flags.raw || flags.input);\n return details;\n }\n _appendEager() {\n return this._appendChar(this.char, {\n tail: true,\n });\n }\n _appendPlaceholder() {\n const details = new ChangeDetails();\n if (this.isFilled) return details;\n this._value = details.inserted = this.char;\n return details;\n }\n extractTail() {\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : this.value.length;\n return new ContinuousTailDetails('');\n }\n\n // $FlowFixMe no ideas\n appendTail(tail) {\n if (isString(tail)) tail = new ContinuousTailDetails(String(tail));\n return tail.appendTo(this);\n }\n append(str, flags, tail) {\n const details = this._appendChar(str[0], flags);\n if (tail != null) {\n details.tailShift += this.appendTail(tail).tailShift;\n }\n return details;\n }\n doCommit() {}\n get state() {\n return {\n _value: this._value,\n _isRawInput: this._isRawInput,\n };\n }\n set state(state) {\n Object.assign(this, state);\n }\n }\n\n const _excluded$3 = ['chunks'];\n class ChunksTailDetails {\n /** */\n\n constructor() {\n let chunks =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let from =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n this.chunks = chunks;\n this.from = from;\n }\n toString() {\n return this.chunks.map(String).join('');\n }\n\n // $FlowFixMe no ideas\n extend(tailChunk) {\n if (!String(tailChunk)) return;\n if (isString(tailChunk))\n tailChunk = new ContinuousTailDetails(String(tailChunk));\n const lastChunk = this.chunks[this.chunks.length - 1];\n const extendLast =\n lastChunk &&\n // if stops are same or tail has no stop\n (lastChunk.stop === tailChunk.stop || tailChunk.stop == null) &&\n // if tail chunk goes just after last chunk\n tailChunk.from === lastChunk.from + lastChunk.toString().length;\n if (tailChunk instanceof ContinuousTailDetails) {\n // check the ability to extend previous chunk\n if (extendLast) {\n // extend previous chunk\n lastChunk.extend(tailChunk.toString());\n } else {\n // append new chunk\n this.chunks.push(tailChunk);\n }\n } else if (tailChunk instanceof ChunksTailDetails) {\n if (tailChunk.stop == null) {\n // unwrap floating chunks to parent, keeping `from` pos\n let firstTailChunk;\n while (tailChunk.chunks.length && tailChunk.chunks[0].stop == null) {\n firstTailChunk = tailChunk.chunks.shift();\n firstTailChunk.from += tailChunk.from;\n this.extend(firstTailChunk);\n }\n }\n\n // if tail chunk still has value\n if (tailChunk.toString()) {\n // if chunks contains stops, then popup stop to container\n tailChunk.stop = tailChunk.blockIndex;\n this.chunks.push(tailChunk);\n }\n }\n }\n appendTo(masked) {\n // $FlowFixMe\n if (!(masked instanceof IMask.MaskedPattern)) {\n const tail = new ContinuousTailDetails(this.toString());\n return tail.appendTo(masked);\n }\n const details = new ChangeDetails();\n for (let ci = 0; ci < this.chunks.length && !details.skip; ++ci) {\n const chunk = this.chunks[ci];\n const lastBlockIter = masked._mapPosToBlock(masked.value.length);\n const stop = chunk.stop;\n let chunkBlock;\n if (\n stop != null &&\n // if block not found or stop is behind lastBlock\n (!lastBlockIter || lastBlockIter.index <= stop)\n ) {\n if (\n chunk instanceof ChunksTailDetails ||\n // for continuous block also check if stop is exist\n masked._stops.indexOf(stop) >= 0\n ) {\n const phDetails = masked._appendPlaceholder(stop);\n details.aggregate(phDetails);\n }\n chunkBlock =\n chunk instanceof ChunksTailDetails && masked._blocks[stop];\n }\n if (chunkBlock) {\n const tailDetails = chunkBlock.appendTail(chunk);\n tailDetails.skip = false; // always ignore skip, it will be set on last\n details.aggregate(tailDetails);\n masked._value += tailDetails.inserted;\n\n // get not inserted chars\n const remainChars = chunk\n .toString()\n .slice(tailDetails.rawInserted.length);\n if (remainChars)\n details.aggregate(\n masked.append(remainChars, {\n tail: true,\n })\n );\n } else {\n details.aggregate(\n masked.append(chunk.toString(), {\n tail: true,\n })\n );\n }\n }\n return details;\n }\n get state() {\n return {\n chunks: this.chunks.map((c) => c.state),\n from: this.from,\n stop: this.stop,\n blockIndex: this.blockIndex,\n };\n }\n set state(state) {\n const { chunks } = state,\n props = _objectWithoutPropertiesLoose(state, _excluded$3);\n Object.assign(this, props);\n this.chunks = chunks.map((cstate) => {\n const chunk =\n 'chunks' in cstate\n ? new ChunksTailDetails()\n : new ContinuousTailDetails();\n // $FlowFixMe already checked above\n chunk.state = cstate;\n return chunk;\n });\n }\n unshift(beforePos) {\n if (!this.chunks.length || (beforePos != null && this.from >= beforePos))\n return '';\n const chunkShiftPos =\n beforePos != null ? beforePos - this.from : beforePos;\n let ci = 0;\n while (ci < this.chunks.length) {\n const chunk = this.chunks[ci];\n const shiftChar = chunk.unshift(chunkShiftPos);\n if (chunk.toString()) {\n // chunk still contains value\n // but not shifted - means no more available chars to shift\n if (!shiftChar) break;\n ++ci;\n } else {\n // clean if chunk has no value\n this.chunks.splice(ci, 1);\n }\n if (shiftChar) return shiftChar;\n }\n return '';\n }\n shift() {\n if (!this.chunks.length) return '';\n let ci = this.chunks.length - 1;\n while (0 <= ci) {\n const chunk = this.chunks[ci];\n const shiftChar = chunk.shift();\n if (chunk.toString()) {\n // chunk still contains value\n // but not shifted - means no more available chars to shift\n if (!shiftChar) break;\n --ci;\n } else {\n // clean if chunk has no value\n this.chunks.splice(ci, 1);\n }\n if (shiftChar) return shiftChar;\n }\n return '';\n }\n }\n\n class PatternCursor {\n constructor(masked, pos) {\n this.masked = masked;\n this._log = [];\n const { offset, index } =\n masked._mapPosToBlock(pos) ||\n (pos < 0\n ? // first\n {\n index: 0,\n offset: 0,\n }\n : // last\n {\n index: this.masked._blocks.length,\n offset: 0,\n });\n this.offset = offset;\n this.index = index;\n this.ok = false;\n }\n get block() {\n return this.masked._blocks[this.index];\n }\n get pos() {\n return this.masked._blockStartPos(this.index) + this.offset;\n }\n get state() {\n return {\n index: this.index,\n offset: this.offset,\n ok: this.ok,\n };\n }\n set state(s) {\n Object.assign(this, s);\n }\n pushState() {\n this._log.push(this.state);\n }\n popState() {\n const s = this._log.pop();\n this.state = s;\n return s;\n }\n bindBlock() {\n if (this.block) return;\n if (this.index < 0) {\n this.index = 0;\n this.offset = 0;\n }\n if (this.index >= this.masked._blocks.length) {\n this.index = this.masked._blocks.length - 1;\n this.offset = this.block.value.length;\n }\n }\n _pushLeft(fn) {\n this.pushState();\n for (\n this.bindBlock();\n 0 <= this.index;\n --this.index,\n this.offset =\n ((_this$block = this.block) === null || _this$block === void 0\n ? void 0\n : _this$block.value.length) || 0\n ) {\n var _this$block;\n if (fn()) return (this.ok = true);\n }\n return (this.ok = false);\n }\n _pushRight(fn) {\n this.pushState();\n for (\n this.bindBlock();\n this.index < this.masked._blocks.length;\n ++this.index, this.offset = 0\n ) {\n if (fn()) return (this.ok = true);\n }\n return (this.ok = false);\n }\n pushLeftBeforeFilled() {\n return this._pushLeft(() => {\n if (this.block.isFixed || !this.block.value) return;\n this.offset = this.block.nearestInputPos(\n this.offset,\n DIRECTION.FORCE_LEFT\n );\n if (this.offset !== 0) return true;\n });\n }\n pushLeftBeforeInput() {\n // cases:\n // filled input: 00|\n // optional empty input: 00[]|\n // nested block: XX<[]>|\n return this._pushLeft(() => {\n if (this.block.isFixed) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.LEFT);\n return true;\n });\n }\n pushLeftBeforeRequired() {\n return this._pushLeft(() => {\n if (this.block.isFixed || (this.block.isOptional && !this.block.value))\n return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.LEFT);\n return true;\n });\n }\n pushRightBeforeFilled() {\n return this._pushRight(() => {\n if (this.block.isFixed || !this.block.value) return;\n this.offset = this.block.nearestInputPos(\n this.offset,\n DIRECTION.FORCE_RIGHT\n );\n if (this.offset !== this.block.value.length) return true;\n });\n }\n pushRightBeforeInput() {\n return this._pushRight(() => {\n if (this.block.isFixed) return;\n\n // const o = this.offset;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.NONE);\n // HACK cases like (STILL DOES NOT WORK FOR NESTED)\n // aa|X\n // aa<X|[]>X_ - this will not work\n // if (o && o === this.offset && this.block instanceof PatternInputDefinition) continue;\n return true;\n });\n }\n pushRightBeforeRequired() {\n return this._pushRight(() => {\n if (this.block.isFixed || (this.block.isOptional && !this.block.value))\n return;\n\n // TODO check |[*]XX_\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.NONE);\n return true;\n });\n }\n }\n\n /** Masking by RegExp */\n class MaskedRegExp extends Masked {\n /**\n @override\n @param {Object} opts\n */\n _update(opts) {\n if (opts.mask) opts.validate = (value) => value.search(opts.mask) >= 0;\n super._update(opts);\n }\n }\n IMask.MaskedRegExp = MaskedRegExp;\n\n const _excluded$2 = ['_blocks'];\n\n /**\n Pattern mask\n @param {Object} opts\n @param {Object} opts.blocks\n @param {Object} opts.definitions\n @param {string} opts.placeholderChar\n @param {string} opts.displayChar\n @param {boolean} opts.lazy\n */\n class MaskedPattern extends Masked {\n /** */\n\n /** */\n\n /** Single char for empty input */\n\n /** Single char for filled input */\n\n /** Show placeholder only when needed */\n\n constructor() {\n let opts =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO type $Shape<MaskedPatternOptions>={} does not work\n opts.definitions = Object.assign(\n {},\n DEFAULT_INPUT_DEFINITIONS,\n opts.definitions\n );\n super(Object.assign({}, MaskedPattern.DEFAULTS, opts));\n }\n\n /**\n @override\n @param {Object} opts\n */\n _update() {\n let opts =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n opts.definitions = Object.assign({}, this.definitions, opts.definitions);\n super._update(opts);\n this._rebuildMask();\n }\n\n /** */\n _rebuildMask() {\n const defs = this.definitions;\n this._blocks = [];\n this._stops = [];\n this._maskedBlocks = {};\n let pattern = this.mask;\n if (!pattern || !defs) return;\n let unmaskingBlock = false;\n let optionalBlock = false;\n for (let i = 0; i < pattern.length; ++i) {\n var _defs$char, _defs$char2;\n if (this.blocks) {\n const p = pattern.slice(i);\n const bNames = Object.keys(this.blocks).filter(\n (bName) => p.indexOf(bName) === 0\n );\n // order by key length\n bNames.sort((a, b) => b.length - a.length);\n // use block name with max length\n const bName = bNames[0];\n if (bName) {\n // $FlowFixMe no ideas\n const maskedBlock = createMask(\n Object.assign(\n {\n parent: this,\n lazy: this.lazy,\n eager: this.eager,\n placeholderChar: this.placeholderChar,\n displayChar: this.displayChar,\n overwrite: this.overwrite,\n },\n this.blocks[bName]\n )\n );\n if (maskedBlock) {\n this._blocks.push(maskedBlock);\n\n // store block index\n if (!this._maskedBlocks[bName]) this._maskedBlocks[bName] = [];\n this._maskedBlocks[bName].push(this._blocks.length - 1);\n }\n i += bName.length - 1;\n continue;\n }\n }\n let char = pattern[i];\n let isInput = char in defs;\n if (char === MaskedPattern.STOP_CHAR) {\n this._stops.push(this._blocks.length);\n continue;\n }\n if (char === '{' || char === '}') {\n unmaskingBlock = !unmaskingBlock;\n continue;\n }\n if (char === '[' || char === ']') {\n optionalBlock = !optionalBlock;\n continue;\n }\n if (char === MaskedPattern.ESCAPE_CHAR) {\n ++i;\n char = pattern[i];\n if (!char) break;\n isInput = false;\n }\n const maskOpts =\n (_defs$char = defs[char]) !== null &&\n _defs$char !== void 0 &&\n _defs$char.mask &&\n !(\n ((_defs$char2 = defs[char]) === null || _defs$char2 === void 0\n ? void 0\n : _defs$char2.mask.prototype) instanceof IMask.Masked\n )\n ? defs[char]\n : {\n mask: defs[char],\n };\n const def = isInput\n ? new PatternInputDefinition(\n Object.assign(\n {\n parent: this,\n isOptional: optionalBlock,\n lazy: this.lazy,\n eager: this.eager,\n placeholderChar: this.placeholderChar,\n displayChar: this.displayChar,\n },\n maskOpts\n )\n )\n : new PatternFixedDefinition({\n char,\n eager: this.eager,\n isUnmasking: unmaskingBlock,\n });\n this._blocks.push(def);\n }\n }\n\n /**\n @override\n */\n get state() {\n return Object.assign({}, super.state, {\n _blocks: this._blocks.map((b) => b.state),\n });\n }\n set state(state) {\n const { _blocks } = state,\n maskedState = _objectWithoutPropertiesLoose(state, _excluded$2);\n this._blocks.forEach((b, bi) => (b.state = _blocks[bi]));\n super.state = maskedState;\n }\n\n /**\n @override\n */\n reset() {\n super.reset();\n this._blocks.forEach((b) => b.reset());\n }\n\n /**\n @override\n */\n get isComplete() {\n return this._blocks.every((b) => b.isComplete);\n }\n\n /**\n @override\n */\n get isFilled() {\n return this._blocks.every((b) => b.isFilled);\n }\n get isFixed() {\n return this._blocks.every((b) => b.isFixed);\n }\n get isOptional() {\n return this._blocks.every((b) => b.isOptional);\n }\n\n /**\n @override\n */\n doCommit() {\n this._blocks.forEach((b) => b.doCommit());\n super.doCommit();\n }\n\n /**\n @override\n */\n get unmaskedValue() {\n return this._blocks.reduce((str, b) => (str += b.unmaskedValue), '');\n }\n set unmaskedValue(unmaskedValue) {\n super.unmaskedValue = unmaskedValue;\n }\n\n /**\n @override\n */\n get value() {\n // TODO return _value when not in change?\n return this._blocks.reduce((str, b) => (str += b.value), '');\n }\n set value(value) {\n super.value = value;\n }\n get displayValue() {\n return this._blocks.reduce((str, b) => (str += b.displayValue), '');\n }\n\n /**\n @override\n */\n appendTail(tail) {\n return super.appendTail(tail).aggregate(this._appendPlaceholder());\n }\n\n /**\n @override\n */\n _appendEager() {\n var _this$_mapPosToBlock;\n const details = new ChangeDetails();\n let startBlockIndex =\n (_this$_mapPosToBlock = this._mapPosToBlock(this.value.length)) ===\n null || _this$_mapPosToBlock === void 0\n ? void 0\n : _this$_mapPosToBlock.index;\n if (startBlockIndex == null) return details;\n\n // TODO test if it works for nested pattern masks\n if (this._blocks[startBlockIndex].isFilled) ++startBlockIndex;\n for (let bi = startBlockIndex; bi < this._blocks.length; ++bi) {\n const d = this._blocks[bi]._appendEager();\n if (!d.inserted) break;\n details.aggregate(d);\n }\n return details;\n }\n\n /**\n @override\n */\n _appendCharRaw(ch) {\n let flags =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const blockIter = this._mapPosToBlock(this.value.length);\n const details = new ChangeDetails();\n if (!blockIter) return details;\n for (let bi = blockIter.index; ; ++bi) {\n var _flags$_beforeTailSta, _flags$_beforeTailSta2;\n const block = this._blocks[bi];\n if (!block) break;\n const blockDetails = block._appendChar(\n ch,\n Object.assign({}, flags, {\n _beforeTailState:\n (_flags$_beforeTailSta = flags._beforeTailState) === null ||\n _flags$_beforeTailSta === void 0\n ? void 0\n : (_flags$_beforeTailSta2 = _flags$_beforeTailSta._blocks) ===\n null || _flags$_beforeTailSta2 === void 0\n ? void 0\n : _flags$_beforeTailSta2[bi],\n })\n );\n const skip = blockDetails.skip;\n details.aggregate(blockDetails);\n if (skip || blockDetails.rawInserted) break; // go next char\n }\n\n return details;\n }\n\n /**\n @override\n */\n extractTail() {\n let fromPos =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : this.value.length;\n const chunkTail = new ChunksTailDetails();\n if (fromPos === toPos) return chunkTail;\n this._forEachBlocksInRange(fromPos, toPos, (b, bi, bFromPos, bToPos) => {\n const blockChunk = b.extractTail(bFromPos, bToPos);\n blockChunk.stop = this._findStopBefore(bi);\n blockChunk.from = this._blockStartPos(bi);\n if (blockChunk instanceof ChunksTailDetails) blockChunk.blockIndex = bi;\n chunkTail.extend(blockChunk);\n });\n return chunkTail;\n }\n\n /**\n @override\n */\n extractInput() {\n let fromPos =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : this.value.length;\n let flags =\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (fromPos === toPos) return '';\n let input = '';\n this._forEachBlocksInRange(fromPos, toPos, (b, _, fromPos, toPos) => {\n input += b.extractInput(fromPos, toPos, flags);\n });\n return input;\n }\n _findStopBefore(blockIndex) {\n let stopBefore;\n for (let si = 0; si < this._stops.length; ++si) {\n const stop = this._stops[si];\n if (stop <= blockIndex) stopBefore = stop;\n else break;\n }\n return stopBefore;\n }\n\n /** Appends placeholder depending on laziness */\n _appendPlaceholder(toBlockIndex) {\n const details = new ChangeDetails();\n if (this.lazy && toBlockIndex == null) return details;\n const startBlockIter = this._mapPosToBlock(this.value.length);\n if (!startBlockIter) return details;\n const startBlockIndex = startBlockIter.index;\n const endBlockIndex =\n toBlockIndex != null ? toBlockIndex : this._blocks.length;\n this._blocks.slice(startBlockIndex, endBlockIndex).forEach((b) => {\n if (!b.lazy || toBlockIndex != null) {\n // $FlowFixMe `_blocks` may not be present\n const args = b._blocks != null ? [b._blocks.length] : [];\n const bDetails = b._appendPlaceholder(...args);\n this._value += bDetails.inserted;\n details.aggregate(bDetails);\n }\n });\n return details;\n }\n\n /** Finds block in pos */\n _mapPosToBlock(pos) {\n let accVal = '';\n for (let bi = 0; bi < this._blocks.length; ++bi) {\n const block = this._blocks[bi];\n const blockStartPos = accVal.length;\n accVal += block.value;\n if (pos <= accVal.length) {\n return {\n index: bi,\n offset: pos - blockStartPos,\n };\n }\n }\n }\n\n /** */\n _blockStartPos(blockIndex) {\n return this._blocks\n .slice(0, blockIndex)\n .reduce((pos, b) => (pos += b.value.length), 0);\n }\n\n /** */\n _forEachBlocksInRange(fromPos) {\n let toPos =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : this.value.length;\n let fn = arguments.length > 2 ? arguments[2] : undefined;\n const fromBlockIter = this._mapPosToBlock(fromPos);\n if (fromBlockIter) {\n const toBlockIter = this._mapPosToBlock(toPos);\n // process first block\n const isSameBlock =\n toBlockIter && fromBlockIter.index === toBlockIter.index;\n const fromBlockStartPos = fromBlockIter.offset;\n const fromBlockEndPos =\n toBlockIter && isSameBlock\n ? toBlockIter.offset\n : this._blocks[fromBlockIter.index].value.length;\n fn(\n this._blocks[fromBlockIter.index],\n fromBlockIter.index,\n fromBlockStartPos,\n fromBlockEndPos\n );\n if (toBlockIter && !isSameBlock) {\n // process intermediate blocks\n for (let bi = fromBlockIter.index + 1; bi < toBlockIter.index; ++bi) {\n fn(this._blocks[bi], bi, 0, this._blocks[bi].value.length);\n }\n\n // process last block\n fn(\n this._blocks[toBlockIter.index],\n toBlockIter.index,\n 0,\n toBlockIter.offset\n );\n }\n }\n }\n\n /**\n @override\n */\n remove() {\n let fromPos =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : this.value.length;\n const removeDetails = super.remove(fromPos, toPos);\n this._forEachBlocksInRange(fromPos, toPos, (b, _, bFromPos, bToPos) => {\n removeDetails.aggregate(b.remove(bFromPos, bToPos));\n });\n return removeDetails;\n }\n\n /**\n @override\n */\n nearestInputPos(cursorPos) {\n let direction =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : DIRECTION.NONE;\n if (!this._blocks.length) return 0;\n const cursor = new PatternCursor(this, cursorPos);\n if (direction === DIRECTION.NONE) {\n // -------------------------------------------------\n // NONE should only go out from fixed to the right!\n // -------------------------------------------------\n if (cursor.pushRightBeforeInput()) return cursor.pos;\n cursor.popState();\n if (cursor.pushLeftBeforeInput()) return cursor.pos;\n return this.value.length;\n }\n\n // FORCE is only about a|* otherwise is 0\n if (direction === DIRECTION.LEFT || direction === DIRECTION.FORCE_LEFT) {\n // try to break fast when *|a\n if (direction === DIRECTION.LEFT) {\n cursor.pushRightBeforeFilled();\n if (cursor.ok && cursor.pos === cursorPos) return cursorPos;\n cursor.popState();\n }\n\n // forward flow\n cursor.pushLeftBeforeInput();\n cursor.pushLeftBeforeRequired();\n cursor.pushLeftBeforeFilled();\n\n // backward flow\n if (direction === DIRECTION.LEFT) {\n cursor.pushRightBeforeInput();\n cursor.pushRightBeforeRequired();\n if (cursor.ok && cursor.pos <= cursorPos) return cursor.pos;\n cursor.popState();\n if (cursor.ok && cursor.pos <= cursorPos) return cursor.pos;\n cursor.popState();\n }\n if (cursor.ok) return cursor.pos;\n if (direction === DIRECTION.FORCE_LEFT) return 0;\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n\n // cursor.popState();\n // if (\n // cursor.pushRightBeforeInput() &&\n // // TODO HACK for lazy if has aligned left inside fixed and has came to the start - use start position\n // (!this.lazy || this.extractInput())\n // ) return cursor.pos;\n\n return 0;\n }\n if (\n direction === DIRECTION.RIGHT ||\n direction === DIRECTION.FORCE_RIGHT\n ) {\n // forward flow\n cursor.pushRightBeforeInput();\n cursor.pushRightBeforeRequired();\n if (cursor.pushRightBeforeFilled()) return cursor.pos;\n if (direction === DIRECTION.FORCE_RIGHT) return this.value.length;\n\n // backward flow\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n return this.nearestInputPos(cursorPos, DIRECTION.LEFT);\n }\n return cursorPos;\n }\n\n /**\n @override\n */\n totalInputPositions() {\n let fromPos =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : this.value.length;\n let total = 0;\n this._forEachBlocksInRange(fromPos, toPos, (b, _, bFromPos, bToPos) => {\n total += b.totalInputPositions(bFromPos, bToPos);\n });\n return total;\n }\n\n /** Get block by name */\n maskedBlock(name) {\n return this.maskedBlocks(name)[0];\n }\n\n /** Get all blocks by name */\n maskedBlocks(name) {\n const indices = this._maskedBlocks[name];\n if (!indices) return [];\n return indices.map((gi) => this._blocks[gi]);\n }\n }\n MaskedPattern.DEFAULTS = {\n lazy: true,\n placeholderChar: '_',\n };\n MaskedPattern.STOP_CHAR = '`';\n MaskedPattern.ESCAPE_CHAR = '\\\\';\n MaskedPattern.InputDefinition = PatternInputDefinition;\n MaskedPattern.FixedDefinition = PatternFixedDefinition;\n IMask.MaskedPattern = MaskedPattern;\n\n /** Pattern which accepts ranges */\n class MaskedRange extends MaskedPattern {\n /**\n Optionally sets max length of pattern.\n Used when pattern length is longer then `to` param length. Pads zeros at start in this case.\n */\n\n /** Min bound */\n\n /** Max bound */\n\n /** */\n\n get _matchFrom() {\n return this.maxLength - String(this.from).length;\n }\n\n /**\n @override\n */\n _update(opts) {\n // TODO type\n opts = Object.assign(\n {\n to: this.to || 0,\n from: this.from || 0,\n maxLength: this.maxLength || 0,\n },\n opts\n );\n let maxLength = String(opts.to).length;\n if (opts.maxLength != null)\n maxLength = Math.max(maxLength, opts.maxLength);\n opts.maxLength = maxLength;\n const fromStr = String(opts.from).padStart(maxLength, '0');\n const toStr = String(opts.to).padStart(maxLength, '0');\n let sameCharsCount = 0;\n while (\n sameCharsCount < toStr.length &&\n toStr[sameCharsCount] === fromStr[sameCharsCount]\n )\n ++sameCharsCount;\n opts.mask =\n toStr.slice(0, sameCharsCount).replace(/0/g, '\\\\0') +\n '0'.repeat(maxLength - sameCharsCount);\n super._update(opts);\n }\n\n /**\n @override\n */\n get isComplete() {\n return super.isComplete && Boolean(this.value);\n }\n boundaries(str) {\n let minstr = '';\n let maxstr = '';\n const [, placeholder, num] = str.match(/^(\\D*)(\\d*)(\\D*)/) || [];\n if (num) {\n minstr = '0'.repeat(placeholder.length) + num;\n maxstr = '9'.repeat(placeholder.length) + num;\n }\n minstr = minstr.padEnd(this.maxLength, '0');\n maxstr = maxstr.padEnd(this.maxLength, '9');\n return [minstr, maxstr];\n }\n\n // TODO str is a single char everytime\n /**\n @override\n */\n doPrepare(ch) {\n let flags =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let details;\n [ch, details] = normalizePrepare(\n super.doPrepare(ch.replace(/\\D/g, ''), flags)\n );\n if (!this.autofix || !ch) return ch;\n const fromStr = String(this.from).padStart(this.maxLength, '0');\n const toStr = String(this.to).padStart(this.maxLength, '0');\n let nextVal = this.value + ch;\n if (nextVal.length > this.maxLength) return '';\n const [minstr, maxstr] = this.boundaries(nextVal);\n if (Number(maxstr) < this.from) return fromStr[nextVal.length - 1];\n if (Number(minstr) > this.to) {\n if (this.autofix === 'pad' && nextVal.length < this.maxLength) {\n return [\n '',\n details.aggregate(\n this.append(fromStr[nextVal.length - 1] + ch, flags)\n ),\n ];\n }\n return toStr[nextVal.length - 1];\n }\n return ch;\n }\n\n /**\n @override\n */\n doValidate() {\n const str = this.value;\n const firstNonZero = str.search(/[^0]/);\n if (firstNonZero === -1 && str.length <= this._matchFrom) return true;\n const [minstr, maxstr] = this.boundaries(str);\n return (\n this.from <= Number(maxstr) &&\n Number(minstr) <= this.to &&\n super.doValidate(...arguments)\n );\n }\n }\n IMask.MaskedRange = MaskedRange;\n\n /** Date mask */\n class MaskedDate extends MaskedPattern {\n /** Pattern mask for date according to {@link MaskedDate#format} */\n\n /** Start date */\n\n /** End date */\n\n /** */\n\n /**\n @param {Object} opts\n */\n constructor(opts) {\n super(Object.assign({}, MaskedDate.DEFAULTS, opts));\n }\n\n /**\n @override\n */\n _update(opts) {\n if (opts.mask === Date) delete opts.mask;\n if (opts.pattern) opts.mask = opts.pattern;\n const blocks = opts.blocks;\n opts.blocks = Object.assign({}, MaskedDate.GET_DEFAULT_BLOCKS());\n // adjust year block\n if (opts.min) opts.blocks.Y.from = opts.min.getFullYear();\n if (opts.max) opts.blocks.Y.to = opts.max.getFullYear();\n if (opts.min && opts.max && opts.blocks.Y.from === opts.blocks.Y.to) {\n opts.blocks.m.from = opts.min.getMonth() + 1;\n opts.blocks.m.to = opts.max.getMonth() + 1;\n if (opts.blocks.m.from === opts.blocks.m.to) {\n opts.blocks.d.from = opts.min.getDate();\n opts.blocks.d.to = opts.max.getDate();\n }\n }\n Object.assign(opts.blocks, this.blocks, blocks);\n\n // add autofix\n Object.keys(opts.blocks).forEach((bk) => {\n const b = opts.blocks[bk];\n if (!('autofix' in b) && 'autofix' in opts) b.autofix = opts.autofix;\n });\n super._update(opts);\n }\n\n /**\n @override\n */\n doValidate() {\n const date = this.date;\n return (\n super.doValidate(...arguments) &&\n (!this.isComplete ||\n (this.isDateExist(this.value) &&\n date != null &&\n (this.min == null || this.min <= date) &&\n (this.max == null || date <= this.max)))\n );\n }\n\n /** Checks if date is exists */\n isDateExist(str) {\n return this.format(this.parse(str, this), this).indexOf(str) >= 0;\n }\n\n /** Parsed Date */\n get date() {\n return this.typedValue;\n }\n set date(date) {\n this.typedValue = date;\n }\n\n /**\n @override\n */\n get typedValue() {\n return this.isComplete ? super.typedValue : null;\n }\n set typedValue(value) {\n super.typedValue = value;\n }\n\n /**\n @override\n */\n maskEquals(mask) {\n return mask === Date || super.maskEquals(mask);\n }\n }\n MaskedDate.DEFAULTS = {\n pattern: 'd{.}`m{.}`Y',\n format: (date) => {\n if (!date) return '';\n const day = String(date.getDate()).padStart(2, '0');\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const year = date.getFullYear();\n return [day, month, year].join('.');\n },\n parse: (str) => {\n const [day, month, year] = str.split('.');\n return new Date(year, month - 1, day);\n },\n };\n MaskedDate.GET_DEFAULT_BLOCKS = () => ({\n d: {\n mask: MaskedRange,\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n from: 1900,\n to: 9999,\n },\n });\n IMask.MaskedDate = MaskedDate;\n\n /**\n Generic element API to use with mask\n @interface\n */\n class MaskElement {\n /** */\n\n /** */\n\n /** */\n\n /** Safely returns selection start */\n get selectionStart() {\n let start;\n try {\n start = this._unsafeSelectionStart;\n } catch (e) {}\n return start != null ? start : this.value.length;\n }\n\n /** Safely returns selection end */\n get selectionEnd() {\n let end;\n try {\n end = this._unsafeSelectionEnd;\n } catch (e) {}\n return end != null ? end : this.value.length;\n }\n\n /** Safely sets element selection */\n select(start, end) {\n if (\n start == null ||\n end == null ||\n (start === this.selectionStart && end === this.selectionEnd)\n )\n return;\n try {\n this._unsafeSelect(start, end);\n } catch (e) {}\n }\n\n /** Should be overriden in subclasses */\n _unsafeSelect(start, end) {}\n /** Should be overriden in subclasses */\n get isActive() {\n return false;\n }\n /** Should be overriden in subclasses */\n bindEvents(handlers) {}\n /** Should be overriden in subclasses */\n unbindEvents() {}\n }\n IMask.MaskElement = MaskElement;\n\n /** Bridge between HTMLElement and {@link Masked} */\n class HTMLMaskElement extends MaskElement {\n /** Mapping between HTMLElement events and mask internal events */\n\n /** HTMLElement to use mask on */\n\n /**\n @param {HTMLInputElement|HTMLTextAreaElement} input\n */\n constructor(input) {\n super();\n this.input = input;\n this._handlers = {};\n }\n\n /** */\n // $FlowFixMe https://github.com/facebook/flow/issues/2839\n get rootElement() {\n var _this$input$getRootNo, _this$input$getRootNo2, _this$input;\n return (_this$input$getRootNo =\n (_this$input$getRootNo2 = (_this$input = this.input).getRootNode) ===\n null || _this$input$getRootNo2 === void 0\n ? void 0\n : _this$input$getRootNo2.call(_this$input)) !== null &&\n _this$input$getRootNo !== void 0\n ? _this$input$getRootNo\n : document;\n }\n\n /**\n Is element in focus\n @readonly\n */\n get isActive() {\n //$FlowFixMe\n return this.input === this.rootElement.activeElement;\n }\n\n /**\n Returns HTMLElement selection start\n @override\n */\n get _unsafeSelectionStart() {\n return this.input.selectionStart;\n }\n\n /**\n Returns HTMLElement selection end\n @override\n */\n get _unsafeSelectionEnd() {\n return this.input.selectionEnd;\n }\n\n /**\n Sets HTMLElement selection\n @override\n */\n _unsafeSelect(start, end) {\n this.input.setSelectionRange(start, end);\n }\n\n /**\n HTMLElement value\n @override\n */\n get value() {\n return this.input.value;\n }\n set value(value) {\n this.input.value = value;\n }\n\n /**\n Binds HTMLElement events to mask internal events\n @override\n */\n bindEvents(handlers) {\n Object.keys(handlers).forEach((event) =>\n this._toggleEventHandler(\n HTMLMaskElement.EVENTS_MAP[event],\n handlers[event]\n )\n );\n }\n\n /**\n Unbinds HTMLElement events to mask internal events\n @override\n */\n unbindEvents() {\n Object.keys(this._handlers).forEach((event) =>\n this._toggleEventHandler(event)\n );\n }\n\n /** */\n _toggleEventHandler(event, handler) {\n if (this._handlers[event]) {\n this.input.removeEventListener(event, this._handlers[event]);\n delete this._handlers[event];\n }\n if (handler) {\n this.input.addEventListener(event, handler);\n this._handlers[event] = handler;\n }\n }\n }\n HTMLMaskElement.EVENTS_MAP = {\n selectionChange: 'keydown',\n input: 'input',\n drop: 'drop',\n click: 'click',\n focus: 'focus',\n commit: 'blur',\n };\n IMask.HTMLMaskElement = HTMLMaskElement;\n\n class HTMLContenteditableMaskElement extends HTMLMaskElement {\n /**\n Returns HTMLElement selection start\n @override\n */\n get _unsafeSelectionStart() {\n const root = this.rootElement;\n const selection = root.getSelection && root.getSelection();\n const anchorOffset = selection && selection.anchorOffset;\n const focusOffset = selection && selection.focusOffset;\n if (\n focusOffset == null ||\n anchorOffset == null ||\n anchorOffset < focusOffset\n ) {\n return anchorOffset;\n }\n return focusOffset;\n }\n\n /**\n Returns HTMLElement selection end\n @override\n */\n get _unsafeSelectionEnd() {\n const root = this.rootElement;\n const selection = root.getSelection && root.getSelection();\n const anchorOffset = selection && selection.anchorOffset;\n const focusOffset = selection && selection.focusOffset;\n if (\n focusOffset == null ||\n anchorOffset == null ||\n anchorOffset > focusOffset\n ) {\n return anchorOffset;\n }\n return focusOffset;\n }\n\n /**\n Sets HTMLElement selection\n @override\n */\n _unsafeSelect(start, end) {\n if (!this.rootElement.createRange) return;\n const range = this.rootElement.createRange();\n range.setStart(this.input.firstChild || this.input, start);\n range.setEnd(this.input.lastChild || this.input, end);\n const root = this.rootElement;\n const selection = root.getSelection && root.getSelection();\n if (selection) {\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n\n /**\n HTMLElement value\n @override\n */\n get value() {\n // $FlowFixMe\n return this.input.textContent;\n }\n set value(value) {\n this.input.textContent = value;\n }\n }\n IMask.HTMLContenteditableMaskElement = HTMLContenteditableMaskElement;\n\n const _excluded$1 = ['mask'];\n\n /** Listens to element events and controls changes between element and {@link Masked} */\n class InputMask {\n /**\n View element\n @readonly\n */\n\n /**\n Internal {@link Masked} model\n @readonly\n */\n\n /**\n @param {MaskElement|HTMLInputElement|HTMLTextAreaElement} el\n @param {Object} opts\n */\n constructor(el, opts) {\n this.el =\n el instanceof MaskElement\n ? el\n : el.isContentEditable &&\n el.tagName !== 'INPUT' &&\n el.tagName !== 'TEXTAREA'\n ? new HTMLContenteditableMaskElement(el)\n : new HTMLMaskElement(el);\n this.masked = createMask(opts);\n this._listeners = {};\n this._value = '';\n this._unmaskedValue = '';\n this._saveSelection = this._saveSelection.bind(this);\n this._onInput = this._onInput.bind(this);\n this._onChange = this._onChange.bind(this);\n this._onDrop = this._onDrop.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onClick = this._onClick.bind(this);\n this.alignCursor = this.alignCursor.bind(this);\n this.alignCursorFriendly = this.alignCursorFriendly.bind(this);\n this._bindEvents();\n\n // refresh\n this.updateValue();\n this._onChange();\n }\n\n /** Read or update mask */\n get mask() {\n return this.masked.mask;\n }\n maskEquals(mask) {\n var _this$masked;\n return (\n mask == null ||\n ((_this$masked = this.masked) === null || _this$masked === void 0\n ? void 0\n : _this$masked.maskEquals(mask))\n );\n }\n set mask(mask) {\n if (this.maskEquals(mask)) return;\n\n // $FlowFixMe No ideas ... after update\n if (\n !(mask instanceof IMask.Masked) &&\n this.masked.constructor === maskedClass(mask)\n ) {\n this.masked.updateOptions({\n mask,\n });\n return;\n }\n const masked = createMask({\n mask,\n });\n masked.unmaskedValue = this.masked.unmaskedValue;\n this.masked = masked;\n }\n\n /** Raw value */\n get value() {\n return this._value;\n }\n set value(str) {\n if (this.value === str) return;\n this.masked.value = str;\n this.updateControl();\n this.alignCursor();\n }\n\n /** Unmasked value */\n get unmaskedValue() {\n return this._unmaskedValue;\n }\n set unmaskedValue(str) {\n if (this.unmaskedValue === str) return;\n this.masked.unmaskedValue = str;\n this.updateControl();\n this.alignCursor();\n }\n\n /** Typed unmasked value */\n get typedValue() {\n return this.masked.typedValue;\n }\n set typedValue(val) {\n if (this.masked.typedValueEquals(val)) return;\n this.masked.typedValue = val;\n this.updateControl();\n this.alignCursor();\n }\n\n /** Display value */\n get displayValue() {\n return this.masked.displayValue;\n }\n\n /**\n Starts listening to element events\n @protected\n */\n _bindEvents() {\n this.el.bindEvents({\n selectionChange: this._saveSelection,\n input: this._onInput,\n drop: this._onDrop,\n click: this._onClick,\n focus: this._onFocus,\n commit: this._onChange,\n });\n }\n\n /**\n Stops listening to element events\n @protected\n */\n _unbindEvents() {\n if (this.el) this.el.unbindEvents();\n }\n\n /**\n Fires custom event\n @protected\n */\n _fireEvent(ev) {\n for (\n var _len = arguments.length,\n args = new Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n const listeners = this._listeners[ev];\n if (!listeners) return;\n listeners.forEach((l) => l(...args));\n }\n\n /**\n Current selection start\n @readonly\n */\n get selectionStart() {\n return this._cursorChanging\n ? this._changingCursorPos\n : this.el.selectionStart;\n }\n\n /** Current cursor position */\n get cursorPos() {\n return this._cursorChanging\n ? this._changingCursorPos\n : this.el.selectionEnd;\n }\n set cursorPos(pos) {\n if (!this.el || !this.el.isActive) return;\n this.el.select(pos, pos);\n this._saveSelection();\n }\n\n /**\n Stores current selection\n @protected\n */\n _saveSelection /* ev */() {\n if (this.displayValue !== this.el.value) {\n console.warn(\n 'Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly.'\n ); // eslint-disable-line no-console\n }\n\n this._selection = {\n start: this.selectionStart,\n end: this.cursorPos,\n };\n }\n\n /** Syncronizes model value from view */\n updateValue() {\n this.masked.value = this.el.value;\n this._value = this.masked.value;\n }\n\n /** Syncronizes view from model value, fires change events */\n updateControl() {\n const newUnmaskedValue = this.masked.unmaskedValue;\n const newValue = this.masked.value;\n const newDisplayValue = this.displayValue;\n const isChanged =\n this.unmaskedValue !== newUnmaskedValue || this.value !== newValue;\n this._unmaskedValue = newUnmaskedValue;\n this._value = newValue;\n if (this.el.value !== newDisplayValue) this.el.value = newDisplayValue;\n if (isChanged) this._fireChangeEvents();\n }\n\n /** Updates options with deep equal check, recreates @{link Masked} model if mask type changes */\n updateOptions(opts) {\n const { mask } = opts,\n restOpts = _objectWithoutPropertiesLoose(opts, _excluded$1);\n const updateMask = !this.maskEquals(mask);\n const updateOpts = !objectIncludes(this.masked, restOpts);\n if (updateMask) this.mask = mask;\n if (updateOpts) this.masked.updateOptions(restOpts);\n if (updateMask || updateOpts) this.updateControl();\n }\n\n /** Updates cursor */\n updateCursor(cursorPos) {\n if (cursorPos == null) return;\n this.cursorPos = cursorPos;\n\n // also queue change cursor for mobile browsers\n this._delayUpdateCursor(cursorPos);\n }\n\n /**\n Delays cursor update to support mobile browsers\n @private\n */\n _delayUpdateCursor(cursorPos) {\n this._abortUpdateCursor();\n this._changingCursorPos = cursorPos;\n this._cursorChanging = setTimeout(() => {\n if (!this.el) return; // if was destroyed\n this.cursorPos = this._changingCursorPos;\n this._abortUpdateCursor();\n }, 10);\n }\n\n /**\n Fires custom events\n @protected\n */\n _fireChangeEvents() {\n this._fireEvent('accept', this._inputEvent);\n if (this.masked.isComplete) this._fireEvent('complete', this._inputEvent);\n }\n\n /**\n Aborts delayed cursor update\n @private\n */\n _abortUpdateCursor() {\n if (this._cursorChanging) {\n clearTimeout(this._cursorChanging);\n delete this._cursorChanging;\n }\n }\n\n /** Aligns cursor to nearest available position */\n alignCursor() {\n this.cursorPos = this.masked.nearestInputPos(\n this.masked.nearestInputPos(this.cursorPos, DIRECTION.LEFT)\n );\n }\n\n /** Aligns cursor only if selection is empty */\n alignCursorFriendly() {\n if (this.selectionStart !== this.cursorPos) return; // skip if range is selected\n this.alignCursor();\n }\n\n /** Adds listener on custom event */\n on(ev, handler) {\n if (!this._listeners[ev]) this._listeners[ev] = [];\n this._listeners[ev].push(handler);\n return this;\n }\n\n /** Removes custom event listener */\n off(ev, handler) {\n if (!this._listeners[ev]) return this;\n if (!handler) {\n delete this._listeners[ev];\n return this;\n }\n const hIndex = this._listeners[ev].indexOf(handler);\n if (hIndex >= 0) this._listeners[ev].splice(hIndex, 1);\n return this;\n }\n\n /** Handles view input event */\n _onInput(e) {\n this._inputEvent = e;\n this._abortUpdateCursor();\n\n // fix strange IE behavior\n if (!this._selection) return this.updateValue();\n const details = new ActionDetails(\n // new state\n this.el.value,\n this.cursorPos,\n // old state\n this.displayValue,\n this._selection\n );\n const oldRawValue = this.masked.rawInputValue;\n const offset = this.masked.splice(\n details.startChangePos,\n details.removed.length,\n details.inserted,\n details.removeDirection,\n {\n input: true,\n raw: true,\n }\n ).offset;\n\n // force align in remove direction only if no input chars were removed\n // otherwise we still need to align with NONE (to get out from fixed symbols for instance)\n const removeDirection =\n oldRawValue === this.masked.rawInputValue\n ? details.removeDirection\n : DIRECTION.NONE;\n let cursorPos = this.masked.nearestInputPos(\n details.startChangePos + offset,\n removeDirection\n );\n if (removeDirection !== DIRECTION.NONE)\n cursorPos = this.masked.nearestInputPos(cursorPos, DIRECTION.NONE);\n this.updateControl();\n this.updateCursor(cursorPos);\n delete this._inputEvent;\n }\n\n /** Handles view change event and commits model value */\n _onChange() {\n if (this.displayValue !== this.el.value) {\n this.updateValue();\n }\n this.masked.doCommit();\n this.updateControl();\n this._saveSelection();\n }\n\n /** Handles view drop event, prevents by default */\n _onDrop(ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n /** Restore last selection on focus */\n _onFocus(ev) {\n this.alignCursorFriendly();\n }\n\n /** Restore last selection on focus */\n _onClick(ev) {\n this.alignCursorFriendly();\n }\n\n /** Unbind view events and removes element reference */\n destroy() {\n this._unbindEvents();\n // $FlowFixMe why not do so?\n this._listeners.length = 0;\n // $FlowFixMe\n delete this.el;\n }\n }\n IMask.InputMask = InputMask;\n\n /** Pattern which validates enum values */\n class MaskedEnum extends MaskedPattern {\n /**\n @override\n @param {Object} opts\n */\n _update(opts) {\n // TODO type\n if (opts.enum) opts.mask = '*'.repeat(opts.enum[0].length);\n super._update(opts);\n }\n\n /**\n @override\n */\n doValidate() {\n return (\n this.enum.some((e) => e.indexOf(this.unmaskedValue) >= 0) &&\n super.doValidate(...arguments)\n );\n }\n }\n IMask.MaskedEnum = MaskedEnum;\n\n /**\n Number mask\n @param {Object} opts\n @param {string} opts.radix - Single char\n @param {string} opts.thousandsSeparator - Single char\n @param {Array<string>} opts.mapToRadix - Array of single chars\n @param {number} opts.min\n @param {number} opts.max\n @param {number} opts.scale - Digits after point\n @param {boolean} opts.signed - Allow negative\n @param {boolean} opts.normalizeZeros - Flag to remove leading and trailing zeros in the end of editing\n @param {boolean} opts.padFractionalZeros - Flag to pad trailing zeros after point in the end of editing\n */\n class MaskedNumber extends Masked {\n /** Single char */\n\n /** Single char */\n\n /** Array of single chars */\n\n /** */\n\n /** */\n\n /** Digits after point */\n\n /** */\n\n /** Flag to remove leading and trailing zeros in the end of editing */\n\n /** Flag to pad trailing zeros after point in the end of editing */\n\n constructor(opts) {\n super(Object.assign({}, MaskedNumber.DEFAULTS, opts));\n }\n\n /**\n @override\n */\n _update(opts) {\n super._update(opts);\n this._updateRegExps();\n }\n\n /** */\n _updateRegExps() {\n let start = '^' + (this.allowNegative ? '[+|\\\\-]?' : '');\n let mid = '\\\\d*';\n let end =\n (this.scale\n ? '('\n .concat(escapeRegExp(this.radix), '\\\\d{0,')\n .concat(this.scale, '})?')\n : '') + '$';\n this._numberRegExp = new RegExp(start + mid + end);\n this._mapToRadixRegExp = new RegExp(\n '['.concat(this.mapToRadix.map(escapeRegExp).join(''), ']'),\n 'g'\n );\n this._thousandsSeparatorRegExp = new RegExp(\n escapeRegExp(this.thousandsSeparator),\n 'g'\n );\n }\n\n /** */\n _removeThousandsSeparators(value) {\n return value.replace(this._thousandsSeparatorRegExp, '');\n }\n\n /** */\n _insertThousandsSeparators(value) {\n // https://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\n const parts = value.split(this.radix);\n parts[0] = parts[0].replace(\n /\\B(?=(\\d{3})+(?!\\d))/g,\n this.thousandsSeparator\n );\n return parts.join(this.radix);\n }\n\n /**\n @override\n */\n doPrepare(ch) {\n let flags =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n ch = this._removeThousandsSeparators(\n this.scale &&\n this.mapToRadix.length &&\n /*\n radix should be mapped when\n 1) input is done from keyboard = flags.input && flags.raw\n 2) unmasked value is set = !flags.input && !flags.raw\n and should not be mapped when\n 1) value is set = flags.input && !flags.raw\n 2) raw value is set = !flags.input && flags.raw\n */\n ((flags.input && flags.raw) || (!flags.input && !flags.raw))\n ? ch.replace(this._mapToRadixRegExp, this.radix)\n : ch\n );\n const [prepCh, details] = normalizePrepare(super.doPrepare(ch, flags));\n if (ch && !prepCh) details.skip = true;\n return [prepCh, details];\n }\n\n /** */\n _separatorsCount(to) {\n let extendOnSeparators =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : false;\n let count = 0;\n for (let pos = 0; pos < to; ++pos) {\n if (this._value.indexOf(this.thousandsSeparator, pos) === pos) {\n ++count;\n if (extendOnSeparators) to += this.thousandsSeparator.length;\n }\n }\n return count;\n }\n\n /** */\n _separatorsCountFromSlice() {\n let slice =\n arguments.length > 0 && arguments[0] !== undefined\n ? arguments[0]\n : this._value;\n return this._separatorsCount(\n this._removeThousandsSeparators(slice).length,\n true\n );\n }\n\n /**\n @override\n */\n extractInput() {\n let fromPos =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : this.value.length;\n let flags = arguments.length > 2 ? arguments[2] : undefined;\n [fromPos, toPos] = this._adjustRangeWithSeparators(fromPos, toPos);\n return this._removeThousandsSeparators(\n super.extractInput(fromPos, toPos, flags)\n );\n }\n\n /**\n @override\n */\n _appendCharRaw(ch) {\n let flags =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.thousandsSeparator) return super._appendCharRaw(ch, flags);\n const prevBeforeTailValue =\n flags.tail && flags._beforeTailState\n ? flags._beforeTailState._value\n : this._value;\n const prevBeforeTailSeparatorsCount =\n this._separatorsCountFromSlice(prevBeforeTailValue);\n this._value = this._removeThousandsSeparators(this.value);\n const appendDetails = super._appendCharRaw(ch, flags);\n this._value = this._insertThousandsSeparators(this._value);\n const beforeTailValue =\n flags.tail && flags._beforeTailState\n ? flags._beforeTailState._value\n : this._value;\n const beforeTailSeparatorsCount =\n this._separatorsCountFromSlice(beforeTailValue);\n appendDetails.tailShift +=\n (beforeTailSeparatorsCount - prevBeforeTailSeparatorsCount) *\n this.thousandsSeparator.length;\n appendDetails.skip =\n !appendDetails.rawInserted && ch === this.thousandsSeparator;\n return appendDetails;\n }\n\n /** */\n _findSeparatorAround(pos) {\n if (this.thousandsSeparator) {\n const searchFrom = pos - this.thousandsSeparator.length + 1;\n const separatorPos = this.value.indexOf(\n this.thousandsSeparator,\n searchFrom\n );\n if (separatorPos <= pos) return separatorPos;\n }\n return -1;\n }\n _adjustRangeWithSeparators(from, to) {\n const separatorAroundFromPos = this._findSeparatorAround(from);\n if (separatorAroundFromPos >= 0) from = separatorAroundFromPos;\n const separatorAroundToPos = this._findSeparatorAround(to);\n if (separatorAroundToPos >= 0)\n to = separatorAroundToPos + this.thousandsSeparator.length;\n return [from, to];\n }\n\n /**\n @override\n */\n remove() {\n let fromPos =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : this.value.length;\n [fromPos, toPos] = this._adjustRangeWithSeparators(fromPos, toPos);\n const valueBeforePos = this.value.slice(0, fromPos);\n const valueAfterPos = this.value.slice(toPos);\n const prevBeforeTailSeparatorsCount = this._separatorsCount(\n valueBeforePos.length\n );\n this._value = this._insertThousandsSeparators(\n this._removeThousandsSeparators(valueBeforePos + valueAfterPos)\n );\n const beforeTailSeparatorsCount =\n this._separatorsCountFromSlice(valueBeforePos);\n return new ChangeDetails({\n tailShift:\n (beforeTailSeparatorsCount - prevBeforeTailSeparatorsCount) *\n this.thousandsSeparator.length,\n });\n }\n\n /**\n @override\n */\n nearestInputPos(cursorPos, direction) {\n if (!this.thousandsSeparator) return cursorPos;\n switch (direction) {\n case DIRECTION.NONE:\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT: {\n const separatorAtLeftPos = this._findSeparatorAround(cursorPos - 1);\n if (separatorAtLeftPos >= 0) {\n const separatorAtLeftEndPos =\n separatorAtLeftPos + this.thousandsSeparator.length;\n if (\n cursorPos < separatorAtLeftEndPos ||\n this.value.length <= separatorAtLeftEndPos ||\n direction === DIRECTION.FORCE_LEFT\n ) {\n return separatorAtLeftPos;\n }\n }\n break;\n }\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT: {\n const separatorAtRightPos = this._findSeparatorAround(cursorPos);\n if (separatorAtRightPos >= 0) {\n return separatorAtRightPos + this.thousandsSeparator.length;\n }\n }\n }\n return cursorPos;\n }\n\n /**\n @override\n */\n doValidate(flags) {\n // validate as string\n let valid = Boolean(\n this._removeThousandsSeparators(this.value).match(this._numberRegExp)\n );\n if (valid) {\n // validate as number\n const number = this.number;\n valid =\n valid &&\n !isNaN(number) &&\n // check min bound for negative values\n (this.min == null || this.min >= 0 || this.min <= this.number) &&\n // check max bound for positive values\n (this.max == null || this.max <= 0 || this.number <= this.max);\n }\n return valid && super.doValidate(flags);\n }\n\n /**\n @override\n */\n doCommit() {\n if (this.value) {\n const number = this.number;\n let validnum = number;\n\n // check bounds\n if (this.min != null) validnum = Math.max(validnum, this.min);\n if (this.max != null) validnum = Math.min(validnum, this.max);\n if (validnum !== number) this.unmaskedValue = this.doFormat(validnum);\n let formatted = this.value;\n if (this.normalizeZeros) formatted = this._normalizeZeros(formatted);\n if (this.padFractionalZeros && this.scale > 0)\n formatted = this._padFractionalZeros(formatted);\n this._value = formatted;\n }\n super.doCommit();\n }\n\n /** */\n _normalizeZeros(value) {\n const parts = this._removeThousandsSeparators(value).split(this.radix);\n\n // remove leading zeros\n parts[0] = parts[0].replace(\n /^(\\D*)(0*)(\\d*)/,\n (match, sign, zeros, num) => sign + num\n );\n // add leading zero\n if (value.length && !/\\d$/.test(parts[0])) parts[0] = parts[0] + '0';\n if (parts.length > 1) {\n parts[1] = parts[1].replace(/0*$/, ''); // remove trailing zeros\n if (!parts[1].length) parts.length = 1; // remove fractional\n }\n\n return this._insertThousandsSeparators(parts.join(this.radix));\n }\n\n /** */\n _padFractionalZeros(value) {\n if (!value) return value;\n const parts = value.split(this.radix);\n if (parts.length < 2) parts.push('');\n parts[1] = parts[1].padEnd(this.scale, '0');\n return parts.join(this.radix);\n }\n\n /** */\n doSkipInvalid(ch) {\n let flags =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let checkTail = arguments.length > 2 ? arguments[2] : undefined;\n const dropFractional =\n this.scale === 0 &&\n ch !== this.thousandsSeparator &&\n (ch === this.radix ||\n ch === MaskedNumber.UNMASKED_RADIX ||\n this.mapToRadix.includes(ch));\n return super.doSkipInvalid(ch, flags, checkTail) && !dropFractional;\n }\n\n /**\n @override\n */\n get unmaskedValue() {\n return this._removeThousandsSeparators(\n this._normalizeZeros(this.value)\n ).replace(this.radix, MaskedNumber.UNMASKED_RADIX);\n }\n set unmaskedValue(unmaskedValue) {\n super.unmaskedValue = unmaskedValue;\n }\n\n /**\n @override\n */\n get typedValue() {\n return this.doParse(this.unmaskedValue);\n }\n set typedValue(n) {\n this.rawInputValue = this.doFormat(n).replace(\n MaskedNumber.UNMASKED_RADIX,\n this.radix\n );\n }\n\n /** Parsed Number */\n get number() {\n return this.typedValue;\n }\n set number(number) {\n this.typedValue = number;\n }\n\n /**\n Is negative allowed\n @readonly\n */\n get allowNegative() {\n return (\n this.signed ||\n (this.min != null && this.min < 0) ||\n (this.max != null && this.max < 0)\n );\n }\n\n /**\n @override\n */\n typedValueEquals(value) {\n // handle 0 -> '' case (typed = 0 even if value = '')\n // for details see https://github.com/uNmAnNeR/imaskjs/issues/134\n return (\n (super.typedValueEquals(value) ||\n (MaskedNumber.EMPTY_VALUES.includes(value) &&\n MaskedNumber.EMPTY_VALUES.includes(this.typedValue))) &&\n !(value === 0 && this.value === '')\n );\n }\n }\n MaskedNumber.UNMASKED_RADIX = '.';\n MaskedNumber.DEFAULTS = {\n radix: ',',\n thousandsSeparator: '',\n mapToRadix: [MaskedNumber.UNMASKED_RADIX],\n scale: 2,\n signed: false,\n normalizeZeros: true,\n padFractionalZeros: false,\n parse: Number,\n format: (n) =>\n n.toLocaleString('en-US', {\n useGrouping: false,\n maximumFractionDigits: 20,\n }),\n };\n MaskedNumber.EMPTY_VALUES = [...Masked.EMPTY_VALUES, 0];\n IMask.MaskedNumber = MaskedNumber;\n\n /** Masking by custom Function */\n class MaskedFunction extends Masked {\n /**\n @override\n @param {Object} opts\n */\n _update(opts) {\n if (opts.mask) opts.validate = opts.mask;\n super._update(opts);\n }\n }\n IMask.MaskedFunction = MaskedFunction;\n\n const _excluded = ['compiledMasks', 'currentMaskRef', 'currentMask'],\n _excluded2 = ['mask'];\n /** Dynamic mask for choosing apropriate mask in run-time */\n class MaskedDynamic extends Masked {\n /** Currently chosen mask */\n\n /** Compliled {@link Masked} options */\n\n /** Chooses {@link Masked} depending on input value */\n\n /**\n @param {Object} opts\n */\n constructor(opts) {\n super(Object.assign({}, MaskedDynamic.DEFAULTS, opts));\n this.currentMask = null;\n }\n\n /**\n @override\n */\n _update(opts) {\n super._update(opts);\n if ('mask' in opts) {\n // mask could be totally dynamic with only `dispatch` option\n this.compiledMasks = Array.isArray(opts.mask)\n ? opts.mask.map((m) => createMask(m))\n : [];\n\n // this.currentMask = this.doDispatch(''); // probably not needed but lets see\n }\n }\n\n /**\n @override\n */\n _appendCharRaw(ch) {\n let flags =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const details = this._applyDispatch(ch, flags);\n if (this.currentMask) {\n details.aggregate(\n this.currentMask._appendChar(ch, this.currentMaskFlags(flags))\n );\n }\n return details;\n }\n _applyDispatch() {\n let appended =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n let flags =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let tail =\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n const prevValueBeforeTail =\n flags.tail && flags._beforeTailState != null\n ? flags._beforeTailState._value\n : this.value;\n const inputValue = this.rawInputValue;\n const insertValue =\n flags.tail && flags._beforeTailState != null\n ? // $FlowFixMe - tired to fight with type system\n flags._beforeTailState._rawInputValue\n : inputValue;\n const tailValue = inputValue.slice(insertValue.length);\n const prevMask = this.currentMask;\n const details = new ChangeDetails();\n const prevMaskState =\n prevMask === null || prevMask === void 0 ? void 0 : prevMask.state;\n\n // clone flags to prevent overwriting `_beforeTailState`\n this.currentMask = this.doDispatch(\n appended,\n Object.assign({}, flags),\n tail\n );\n\n // restore state after dispatch\n if (this.currentMask) {\n if (this.currentMask !== prevMask) {\n // if mask changed reapply input\n this.currentMask.reset();\n if (insertValue) {\n // $FlowFixMe - it's ok, we don't change current mask above\n const d = this.currentMask.append(insertValue, {\n raw: true,\n });\n details.tailShift = d.inserted.length - prevValueBeforeTail.length;\n }\n if (tailValue) {\n // $FlowFixMe - it's ok, we don't change current mask above\n details.tailShift += this.currentMask.append(tailValue, {\n raw: true,\n tail: true,\n }).tailShift;\n }\n } else {\n // Dispatch can do something bad with state, so\n // restore prev mask state\n this.currentMask.state = prevMaskState;\n }\n }\n return details;\n }\n _appendPlaceholder() {\n const details = this._applyDispatch(...arguments);\n if (this.currentMask) {\n details.aggregate(this.currentMask._appendPlaceholder());\n }\n return details;\n }\n\n /**\n @override\n */\n _appendEager() {\n const details = this._applyDispatch(...arguments);\n if (this.currentMask) {\n details.aggregate(this.currentMask._appendEager());\n }\n return details;\n }\n appendTail(tail) {\n const details = new ChangeDetails();\n if (tail) details.aggregate(this._applyDispatch('', {}, tail));\n return details.aggregate(\n this.currentMask\n ? this.currentMask.appendTail(tail)\n : super.appendTail(tail)\n );\n }\n currentMaskFlags(flags) {\n var _flags$_beforeTailSta, _flags$_beforeTailSta2;\n return Object.assign({}, flags, {\n _beforeTailState:\n (((_flags$_beforeTailSta = flags._beforeTailState) === null ||\n _flags$_beforeTailSta === void 0\n ? void 0\n : _flags$_beforeTailSta.currentMaskRef) === this.currentMask &&\n ((_flags$_beforeTailSta2 = flags._beforeTailState) === null ||\n _flags$_beforeTailSta2 === void 0\n ? void 0\n : _flags$_beforeTailSta2.currentMask)) ||\n flags._beforeTailState,\n });\n }\n\n /**\n @override\n */\n doDispatch(appended) {\n let flags =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let tail =\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n return this.dispatch(appended, this, flags, tail);\n }\n\n /**\n @override\n */\n doValidate(flags) {\n return (\n super.doValidate(flags) &&\n (!this.currentMask ||\n this.currentMask.doValidate(this.currentMaskFlags(flags)))\n );\n }\n\n /**\n @override\n */\n doPrepare(str) {\n let flags =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let [s, details] = normalizePrepare(super.doPrepare(str, flags));\n if (this.currentMask) {\n let currentDetails;\n [s, currentDetails] = normalizePrepare(\n super.doPrepare(s, this.currentMaskFlags(flags))\n );\n details = details.aggregate(currentDetails);\n }\n return [s, details];\n }\n\n /**\n @override\n */\n reset() {\n var _this$currentMask;\n (_this$currentMask = this.currentMask) === null ||\n _this$currentMask === void 0\n ? void 0\n : _this$currentMask.reset();\n this.compiledMasks.forEach((m) => m.reset());\n }\n\n /**\n @override\n */\n get value() {\n return this.currentMask ? this.currentMask.value : '';\n }\n set value(value) {\n super.value = value;\n }\n\n /**\n @override\n */\n get unmaskedValue() {\n return this.currentMask ? this.currentMask.unmaskedValue : '';\n }\n set unmaskedValue(unmaskedValue) {\n super.unmaskedValue = unmaskedValue;\n }\n\n /**\n @override\n */\n get typedValue() {\n return this.currentMask ? this.currentMask.typedValue : '';\n }\n\n // probably typedValue should not be used with dynamic\n set typedValue(value) {\n let unmaskedValue = String(value);\n\n // double check it\n if (this.currentMask) {\n this.currentMask.typedValue = value;\n unmaskedValue = this.currentMask.unmaskedValue;\n }\n this.unmaskedValue = unmaskedValue;\n }\n get displayValue() {\n return this.currentMask ? this.currentMask.displayValue : '';\n }\n\n /**\n @override\n */\n get isComplete() {\n var _this$currentMask2;\n return Boolean(\n (_this$currentMask2 = this.currentMask) === null ||\n _this$currentMask2 === void 0\n ? void 0\n : _this$currentMask2.isComplete\n );\n }\n\n /**\n @override\n */\n get isFilled() {\n var _this$currentMask3;\n return Boolean(\n (_this$currentMask3 = this.currentMask) === null ||\n _this$currentMask3 === void 0\n ? void 0\n : _this$currentMask3.isFilled\n );\n }\n\n /**\n @override\n */\n remove() {\n const details = new ChangeDetails();\n if (this.currentMask) {\n details\n .aggregate(this.currentMask.remove(...arguments))\n // update with dispatch\n .aggregate(this._applyDispatch());\n }\n return details;\n }\n\n /**\n @override\n */\n get state() {\n var _this$currentMask4;\n return Object.assign({}, super.state, {\n _rawInputValue: this.rawInputValue,\n compiledMasks: this.compiledMasks.map((m) => m.state),\n currentMaskRef: this.currentMask,\n currentMask:\n (_this$currentMask4 = this.currentMask) === null ||\n _this$currentMask4 === void 0\n ? void 0\n : _this$currentMask4.state,\n });\n }\n set state(state) {\n const { compiledMasks, currentMaskRef, currentMask } = state,\n maskedState = _objectWithoutPropertiesLoose(state, _excluded);\n this.compiledMasks.forEach((m, mi) => (m.state = compiledMasks[mi]));\n if (currentMaskRef != null) {\n this.currentMask = currentMaskRef;\n this.currentMask.state = currentMask;\n }\n super.state = maskedState;\n }\n\n /**\n @override\n */\n extractInput() {\n return this.currentMask\n ? this.currentMask.extractInput(...arguments)\n : '';\n }\n\n /**\n @override\n */\n extractTail() {\n return this.currentMask\n ? this.currentMask.extractTail(...arguments)\n : super.extractTail(...arguments);\n }\n\n /**\n @override\n */\n doCommit() {\n if (this.currentMask) this.currentMask.doCommit();\n super.doCommit();\n }\n\n /**\n @override\n */\n nearestInputPos() {\n return this.currentMask\n ? this.currentMask.nearestInputPos(...arguments)\n : super.nearestInputPos(...arguments);\n }\n get overwrite() {\n return this.currentMask ? this.currentMask.overwrite : super.overwrite;\n }\n set overwrite(overwrite) {\n console.warn(\n '\"overwrite\" option is not available in dynamic mask, use this option in siblings'\n );\n }\n get eager() {\n return this.currentMask ? this.currentMask.eager : super.eager;\n }\n set eager(eager) {\n console.warn(\n '\"eager\" option is not available in dynamic mask, use this option in siblings'\n );\n }\n get skipInvalid() {\n return this.currentMask\n ? this.currentMask.skipInvalid\n : super.skipInvalid;\n }\n set skipInvalid(skipInvalid) {\n if (this.isInitialized || skipInvalid !== Masked.DEFAULTS.skipInvalid) {\n console.warn(\n '\"skipInvalid\" option is not available in dynamic mask, use this option in siblings'\n );\n }\n }\n\n /**\n @override\n */\n maskEquals(mask) {\n return (\n Array.isArray(mask) &&\n this.compiledMasks.every((m, mi) => {\n if (!mask[mi]) return;\n const _mask$mi = mask[mi],\n { mask: oldMask } = _mask$mi,\n restOpts = _objectWithoutPropertiesLoose(_mask$mi, _excluded2);\n return objectIncludes(m, restOpts) && m.maskEquals(oldMask);\n })\n );\n }\n\n /**\n @override\n */\n typedValueEquals(value) {\n var _this$currentMask5;\n return Boolean(\n (_this$currentMask5 = this.currentMask) === null ||\n _this$currentMask5 === void 0\n ? void 0\n : _this$currentMask5.typedValueEquals(value)\n );\n }\n }\n MaskedDynamic.DEFAULTS = {\n dispatch: (appended, masked, flags, tail) => {\n if (!masked.compiledMasks.length) return;\n const inputValue = masked.rawInputValue;\n\n // simulate input\n const inputs = masked.compiledMasks.map((m, index) => {\n const isCurrent = masked.currentMask === m;\n const startInputPos = isCurrent\n ? m.value.length\n : m.nearestInputPos(m.value.length, DIRECTION.FORCE_LEFT);\n if (m.rawInputValue !== inputValue) {\n m.reset();\n m.append(inputValue, {\n raw: true,\n });\n } else if (!isCurrent) {\n m.remove(startInputPos);\n }\n m.append(appended, masked.currentMaskFlags(flags));\n m.appendTail(tail);\n return {\n index,\n weight: m.rawInputValue.length,\n totalInputPositions: m.totalInputPositions(\n 0,\n Math.max(\n startInputPos,\n m.nearestInputPos(m.value.length, DIRECTION.FORCE_LEFT)\n )\n ),\n };\n });\n\n // pop masks with longer values first\n inputs.sort(\n (i1, i2) =>\n i2.weight - i1.weight ||\n i2.totalInputPositions - i1.totalInputPositions\n );\n return masked.compiledMasks[inputs[0].index];\n },\n };\n IMask.MaskedDynamic = MaskedDynamic;\n\n /** Mask pipe source and destination types */\n const PIPE_TYPE = {\n MASKED: 'value',\n UNMASKED: 'unmaskedValue',\n TYPED: 'typedValue',\n };\n\n /** Creates new pipe function depending on mask type, source and destination options */\n function createPipe(mask) {\n let from =\n arguments.length > 1 && arguments[1] !== undefined\n ? arguments[1]\n : PIPE_TYPE.MASKED;\n let to =\n arguments.length > 2 && arguments[2] !== undefined\n ? arguments[2]\n : PIPE_TYPE.MASKED;\n const masked = createMask(mask);\n return (value) =>\n masked.runIsolated((m) => {\n m[from] = value;\n return m[to];\n });\n }\n\n /** Pipes value through mask depending on mask type, source and destination options */\n function pipe(value) {\n for (\n var _len = arguments.length,\n pipeArgs = new Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n pipeArgs[_key - 1] = arguments[_key];\n }\n return createPipe(...pipeArgs)(value);\n }\n IMask.PIPE_TYPE = PIPE_TYPE;\n IMask.createPipe = createPipe;\n IMask.pipe = pipe;\n\n try {\n globalThis.IMask = IMask;\n } catch (e) {}\n\n exports.ChangeDetails = ChangeDetails;\n exports.HTMLContenteditableMaskElement = HTMLContenteditableMaskElement;\n exports.HTMLMaskElement = HTMLMaskElement;\n exports.InputMask = InputMask;\n exports.MaskElement = MaskElement;\n exports.Masked = Masked;\n exports.MaskedDate = MaskedDate;\n exports.MaskedDynamic = MaskedDynamic;\n exports.MaskedEnum = MaskedEnum;\n exports.MaskedFunction = MaskedFunction;\n exports.MaskedNumber = MaskedNumber;\n exports.MaskedPattern = MaskedPattern;\n exports.MaskedRange = MaskedRange;\n exports.MaskedRegExp = MaskedRegExp;\n exports.PIPE_TYPE = PIPE_TYPE;\n exports.createMask = createMask;\n exports.createPipe = createPipe;\n exports['default'] = IMask;\n exports.pipe = pipe;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n});\n\n// eslint-disable-next-line no-undef\nexport default IMask;\n"],"names":["global","factory","this","exports","_objectWithoutPropertiesLoose","source","excluded","target","sourceKeys","key","i","IMask","el","opts","ChangeDetails","details","isString","str","DIRECTION","forceDirection","direction","escapeRegExp","normalizePrepare","prep","objectIncludes","b","a","arrA","arrB","dateA","dateB","regexpA","regexpB","keys","ActionDetails","value","cursorPos","oldValue","oldSelection","ContinuousTailDetails","from","stop","tail","masked","state","beforePos","shiftChar","Masked","fromPos","toPos","ch","flags","checkTail","consistentState","consistentTail","appended","beforeTailState","tailDetails","ci","d","fn","rawInput","ret","start","deleteCount","inserted","removeDirection","tailPos","eagerRemove","oldRawValue","startChangePos","valLength","mask","tval","v","maskedClass","createMask","MaskedClass","_excluded$4","DEFAULT_INPUT_DEFINITIONS","PatternInputDefinition","parent","isOptional","placeholderChar","displayChar","lazy","eager","maskOpts","minPos","maxPos","boundPos","PatternFixedDefinition","appendEager","isResolved","_excluded$3","ChunksTailDetails","chunks","tailChunk","lastChunk","extendLast","firstTailChunk","chunk","lastBlockIter","chunkBlock","phDetails","remainChars","c","props","cstate","chunkShiftPos","PatternCursor","pos","offset","index","s","_this$block","MaskedRegExp","_excluded$2","MaskedPattern","defs","pattern","unmaskingBlock","optionalBlock","_defs$char","_defs$char2","p","bNames","bName","maskedBlock","char","isInput","def","_blocks","maskedState","bi","unmaskedValue","_this$_mapPosToBlock","startBlockIndex","blockIter","_flags$_beforeTailSta","_flags$_beforeTailSta2","block","blockDetails","skip","chunkTail","bFromPos","bToPos","blockChunk","input","_","blockIndex","stopBefore","si","toBlockIndex","startBlockIter","endBlockIndex","args","bDetails","accVal","blockStartPos","fromBlockIter","toBlockIter","isSameBlock","fromBlockStartPos","fromBlockEndPos","removeDetails","cursor","total","name","indices","gi","MaskedRange","maxLength","fromStr","toStr","sameCharsCount","minstr","maxstr","placeholder","num","nextVal","MaskedDate","blocks","bk","date","day","month","year","MaskElement","end","handlers","HTMLMaskElement","_this$input$getRootNo","_this$input$getRootNo2","_this$input","event","handler","HTMLContenteditableMaskElement","root","selection","anchorOffset","focusOffset","range","_excluded$1","InputMask","_this$masked","val","ev","_len","_key","listeners","l","newUnmaskedValue","newValue","newDisplayValue","isChanged","restOpts","updateMask","updateOpts","hIndex","e","MaskedEnum","MaskedNumber","mid","parts","prepCh","to","extendOnSeparators","count","slice","prevBeforeTailValue","prevBeforeTailSeparatorsCount","appendDetails","beforeTailValue","beforeTailSeparatorsCount","searchFrom","separatorPos","separatorAroundFromPos","separatorAroundToPos","valueBeforePos","valueAfterPos","separatorAtLeftPos","separatorAtLeftEndPos","separatorAtRightPos","valid","number","validnum","formatted","match","sign","zeros","dropFractional","n","MaskedFunction","_excluded","_excluded2","MaskedDynamic","m","prevValueBeforeTail","inputValue","insertValue","tailValue","prevMask","prevMaskState","currentDetails","_this$currentMask","_this$currentMask2","_this$currentMask3","_this$currentMask4","compiledMasks","currentMaskRef","currentMask","mi","overwrite","skipInvalid","_mask$mi","oldMask","_this$currentMask5","inputs","isCurrent","startInputPos","i1","i2","PIPE_TYPE","createPipe","pipe","pipeArgs","IMask$1"],"mappings":"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"}
|
package/dist/design-system88.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const r=require("./design-system96.js");var n=1,t=4;function o(e){return r(e,n|t)}module.exports=o;
|
|
1
|
+
"use strict";const ne=require("./design-system122.js"),re=require("./design-system174.js");(function(he,fe){(function(U,j){he.exports=j()})(ne.commonjsGlobal,function(){return function(){var U={d:function(r,e){for(var t in e)U.o(e,t)&&!U.o(r,t)&&Object.defineProperty(r,t,{enumerable:!0,get:e[t]})},o:function(r,e){return Object.prototype.hasOwnProperty.call(r,e)}},j={};U.d(j,{default:function(){return T}});var l={days:"days",months:"months",years:"years",day:"day",month:"month",year:"year",eventChangeViewDate:"changeViewDate",eventChangeCurrentView:"changeCurrentView",eventChangeFocusDate:"changeFocusDate",eventChangeSelectedDate:"changeSelectedDate",eventChangeTime:"changeTime",eventChangeLastSelectedDate:"changeLastSelectedDate",actionSelectDate:"selectDate",actionUnselectDate:"unselectDate",cssClassWeekend:"-weekend-"},Q={classes:"",inline:!1,locale:{days:["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],daysShort:["Вос","Пон","Вто","Сре","Чет","Пят","Суб"],daysMin:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthsShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],today:"Сегодня",clear:"Очистить",dateFormat:"dd.MM.yyyy",timeFormat:"HH:mm",firstDay:1},startDate:new Date,firstDay:"",weekends:[6,0],dateFormat:"",altField:"",altFieldDateFormat:"T",toggleSelected:!0,keyboardNav:!0,selectedDates:!1,container:"",isMobile:!1,visible:!1,position:"bottom left",offset:12,view:l.days,minView:l.days,showOtherMonths:!0,selectOtherMonths:!0,moveToOtherMonthsOnSelect:!0,showOtherYears:!0,selectOtherYears:!0,moveToOtherYearsOnSelect:!0,minDate:"",maxDate:"",disableNavWhenOutOfRange:!0,multipleDates:!1,multipleDatesSeparator:", ",range:!1,dynamicRange:!0,buttons:!1,monthsField:"monthsShort",showEvent:"focus",autoClose:!1,prevHtml:'<svg><path d="M 17,12 l -5,5 l 5,5"></path></svg>',nextHtml:'<svg><path d="M 14,12 l 5,5 l -5,5"></path></svg>',navTitles:{days:"MMMM, <i>yyyy</i>",months:"yyyy",years:"yyyy1 - yyyy2"},timepicker:!1,onlyTimepicker:!1,dateTimeSeparator:" ",timeFormat:"",minHours:0,maxHours:24,minMinutes:0,maxMinutes:59,hoursStep:1,minutesStep:1,onSelect:!1,onChangeViewDate:!1,onChangeView:!1,onRenderCell:!1,onShow:!1,onHide:!1,onClickDayName:!1};function y(r){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:document;return typeof r=="string"?e.querySelector(r):r}function b(){let{tagName:r="div",className:e="",innerHtml:t="",id:s="",attrs:a={}}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=document.createElement(r);return e&&n.classList.add(...e.split(" ")),s&&(n.id=s),t&&(n.innerHTML=t),a&&z(n,a),n}function z(r,e){for(let[t,s]of Object.entries(e))s!==void 0&&r.setAttribute(t,s);return r}function Z(r){return new Date(r.getFullYear(),r.getMonth()+1,0).getDate()}function D(r){let e=r.getHours(),t=e%12==0?12:e%12;return{year:r.getFullYear(),month:r.getMonth(),fullMonth:r.getMonth()+1<10?"0"+(r.getMonth()+1):r.getMonth()+1,date:r.getDate(),fullDate:r.getDate()<10?"0"+r.getDate():r.getDate(),day:r.getDay(),hours:e,fullHours:O(e),hours12:t,fullHours12:O(t),minutes:r.getMinutes(),fullMinutes:r.getMinutes()<10?"0"+r.getMinutes():r.getMinutes()}}function O(r){return r<10?"0"+r:r}function F(r){let e=10*Math.floor(r.getFullYear()/10);return[e,e+9]}function M(){let r=[];for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return t.forEach(a=>{if(typeof a=="object")for(let n in a)a[n]&&r.push(n);else a&&r.push(a)}),r.join(" ")}function v(r,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:l.days;if(!r||!e)return!1;let s=D(r),a=D(e);return{[l.days]:s.date===a.date&&s.month===a.month&&s.year===a.year,[l.months]:s.month===a.month&&s.year===a.year,[l.years]:s.year===a.year}[t]}function $(r,e,t){let s=J(r,!1).getTime(),a=J(e,!1).getTime();return t?s>=a:s>a}function E(r,e){return!$(r,e,!0)}function J(r){let e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],t=new Date(r.getTime());return typeof e!="boolean"||e||oe(t),t}function oe(r){return r.setHours(0,0,0,0),r}function w(r,e,t){r.length?r.forEach(s=>{s.addEventListener(e,t)}):r.addEventListener(e,t)}function R(r,e){return!(!r||r===document||r instanceof DocumentFragment)&&(r.matches(e)?r:R(r.parentNode,e))}function A(r,e,t){return r>t?t:r<e?e:r}function Y(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),s=1;s<e;s++)t[s-1]=arguments[s];return t.filter(a=>a).forEach(a=>{for(let[n,i]of Object.entries(a))if(i!==void 0&&i.toString()==="[object Object]"){let h=r[n]!==void 0?r[n].toString():void 0,o=i.toString(),d=Array.isArray(i)?[]:{};r[n]=r[n]?h!==o?d:r[n]:d,Y(r[n],i)}else r[n]=i}),r}function C(r){let e=r;return r instanceof Date||(e=new Date(r)),isNaN(e.getTime())&&(console.log('Unable to convert value "'.concat(r,'" to Date object')),e=!1),e}function G(r){let e="\\s|\\.|-|/|\\\\|,|\\$|\\!|\\?|:|;";return new RegExp("(^|>|"+e+")("+r+")($|<|"+e+")","g")}function V(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}class le{constructor(){let{type:e,date:t,dp:s,opts:a,body:n}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};V(this,"focus",()=>{this.$cell.classList.add("-focus-"),this.focused=!0}),V(this,"removeFocus",()=>{this.$cell.classList.remove("-focus-"),this.focused=!1}),V(this,"select",()=>{this.$cell.classList.add("-selected-"),this.selected=!0}),V(this,"removeSelect",()=>{this.$cell.classList.remove("-selected-","-range-from-","-range-to-"),this.selected=!1}),V(this,"onChangeSelectedDate",()=>{this.isDisabled||(this._handleSelectedStatus(),this.opts.range&&this._handleRangeStatus())}),V(this,"onChangeFocusDate",i=>{if(!i)return void(this.focused&&this.removeFocus());let h=v(i,this.date,this.type);h?this.focus():!h&&this.focused&&this.removeFocus(),this.opts.range&&this._handleRangeStatus()}),V(this,"render",()=>(this.$cell.innerHTML=this._getHtml(),this.$cell.adpCell=this,this.$cell)),this.type=e,this.singleType=this.type.slice(0,-1),this.date=t,this.dp=s,this.opts=a,this.body=n,this.customData=!1,this.init()}init(){let{range:e,onRenderCell:t}=this.opts;t&&(this.customData=t({date:this.date,cellType:this.singleType,datepicker:this.dp})),this._createElement(),this._bindDatepickerEvents(),this._handleInitialFocusStatus(),this.dp.hasSelectedDates&&(this._handleSelectedStatus(),e&&this._handleRangeStatus())}_bindDatepickerEvents(){this.dp.on(l.eventChangeSelectedDate,this.onChangeSelectedDate),this.dp.on(l.eventChangeFocusDate,this.onChangeFocusDate)}unbindDatepickerEvents(){this.dp.off(l.eventChangeSelectedDate,this.onChangeSelectedDate),this.dp.off(l.eventChangeFocusDate,this.onChangeFocusDate)}_createElement(){var e;let{year:t,month:s,date:a}=D(this.date),n=((e=this.customData)===null||e===void 0?void 0:e.attrs)||{};this.$cell=b({className:this._getClassName(),attrs:{"data-year":t,"data-month":s,"data-date":a,...n}})}_getClassName(){var e,t;let s=new Date,{selectOtherMonths:a,selectOtherYears:n}=this.opts,{minDate:i,maxDate:h}=this.dp,{day:o}=D(this.date),d=this._isOutOfMinMaxRange(),c=(e=this.customData)===null||e===void 0?void 0:e.disabled,u=M("air-datepicker-cell","-".concat(this.singleType,"-"),{"-current-":v(s,this.date,this.type),"-min-date-":i&&v(i,this.date,this.type),"-max-date-":h&&v(h,this.date,this.type)}),p="";switch(this.type){case l.days:p=M({"-weekend-":this.dp.isWeekend(o),"-other-month-":this.isOtherMonth,"-disabled-":this.isOtherMonth&&!a||d||c});break;case l.months:p=M({"-disabled-":d||c});break;case l.years:p=M({"-other-decade-":this.isOtherDecade,"-disabled-":d||this.isOtherDecade&&!n||c})}return M(u,p,(t=this.customData)===null||t===void 0?void 0:t.classes)}_getHtml(){var e;let{year:t,month:s,date:a}=D(this.date),{showOtherMonths:n,showOtherYears:i}=this.opts;if((e=this.customData)!==null&&e!==void 0&&e.html)return this.customData.html;switch(this.type){case l.days:return!n&&this.isOtherMonth?"":a;case l.months:return this.dp.locale[this.opts.monthsField][s];case l.years:return!i&&this.isOtherDecade?"":t}}_isOutOfMinMaxRange(){let{minDate:e,maxDate:t}=this.dp,{type:s,date:a}=this,{month:n,year:i,date:h}=D(a),o=s===l.days,d=s===l.years,c=!!e&&new Date(i,d?e.getMonth():n,o?h:e.getDate()),u=!!t&&new Date(i,d?t.getMonth():n,o?h:t.getDate());return e&&t?E(c,e)||$(u,t):e?E(c,e):t?$(u,t):void 0}destroy(){this.unbindDatepickerEvents()}_handleRangeStatus(){let{rangeDateFrom:e,rangeDateTo:t}=this.dp,s=M({"-in-range-":e&&t&&(a=this.date,n=e,i=t,$(a,n)&&E(a,i)),"-range-from-":e&&v(this.date,e,this.type),"-range-to-":t&&v(this.date,t,this.type)});var a,n,i;this.$cell.classList.remove("-range-from-","-range-to-","-in-range-"),s&&this.$cell.classList.add(...s.split(" "))}_handleSelectedStatus(){let e=this.dp._checkIfDateIsSelected(this.date,this.type);e?this.select():!e&&this.selected&&this.removeSelect()}_handleInitialFocusStatus(){v(this.dp.focusDate,this.date,this.type)&&this.focus()}get isDisabled(){return this.$cell.matches(".-disabled-")}get isOtherMonth(){return this.dp.isOtherMonth(this.date)}get isOtherDecade(){return this.dp.isOtherDecade(this.date)}}function k(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}let de={[l.days]:'<div class="air-datepicker-body--day-names"></div>'+'<div class="air-datepicker-body--cells -'.concat(l.days,'-"></div>'),[l.months]:'<div class="air-datepicker-body--cells -'.concat(l.months,'-"></div>'),[l.years]:'<div class="air-datepicker-body--cells -'.concat(l.years,'-"></div>')};const P=".air-datepicker-cell";class ee{constructor(e){let{dp:t,type:s,opts:a}=e;k(this,"handleClick",n=>{let i=n.target.closest(P).adpCell;if(i.isDisabled)return;if(!this.dp.isMinViewReached)return void this.dp.down();let h=this.dp._checkIfDateIsSelected(i.date,i.type);h?this.dp._handleAlreadySelectedDates(h,i.date):this.dp.selectDate(i.date)}),k(this,"handleDayNameClick",n=>{let i=n.target.getAttribute("data-day-index");this.opts.onClickDayName({dayIndex:Number(i),datepicker:this.dp})}),k(this,"onChangeCurrentView",n=>{n!==this.type?this.hide():(this.show(),this.render())}),k(this,"onMouseOverCell",n=>{let i=R(n.target,P);this.dp.setFocusDate(!!i&&i.adpCell.date)}),k(this,"onMouseOutCell",()=>{this.dp.setFocusDate(!1)}),k(this,"onClickBody",n=>{let{onClickDayName:i}=this.opts,h=n.target;h.closest(P)&&this.handleClick(n),i&&h.closest(".air-datepicker-body--day-name")&&this.handleDayNameClick(n)}),k(this,"onMouseDown",n=>{this.pressed=!0;let i=R(n.target,P),h=i&&i.adpCell;v(h.date,this.dp.rangeDateFrom)&&(this.rangeFromFocused=!0),v(h.date,this.dp.rangeDateTo)&&(this.rangeToFocused=!0)}),k(this,"onMouseMove",n=>{if(!this.pressed||!this.dp.isMinViewReached)return;n.preventDefault();let i=R(n.target,P),h=i&&i.adpCell,{selectedDates:o,rangeDateTo:d,rangeDateFrom:c}=this.dp;if(!h||h.isDisabled)return;let{date:u}=h;if(o.length===2){if(this.rangeFromFocused&&!$(u,d)){let{hours:p,minutes:g}=D(c);u.setHours(p),u.setMinutes(g),this.dp.rangeDateFrom=u,this.dp.replaceDate(c,u)}if(this.rangeToFocused&&!E(u,c)){let{hours:p,minutes:g}=D(d);u.setHours(p),u.setMinutes(g),this.dp.rangeDateTo=u,this.dp.replaceDate(d,u)}}}),k(this,"onMouseUp",()=>{this.pressed=!1,this.rangeFromFocused=!1,this.rangeToFocused=!1}),k(this,"onChangeViewDate",(n,i)=>{if(!this.isVisible)return;let h=F(n),o=F(i);switch(this.dp.currentView){case l.days:if(v(n,i,l.months))return;break;case l.months:if(v(n,i,l.years))return;break;case l.years:if(h[0]===o[0]&&h[1]===o[1])return}this.render()}),k(this,"render",()=>{this.destroyCells(),this._generateCells(),this.cells.forEach(n=>{this.$cells.appendChild(n.render())})}),this.dp=t,this.type=s,this.opts=a,this.cells=[],this.$el="",this.pressed=!1,this.isVisible=!0,this.init()}init(){this._buildBaseHtml(),this.type===l.days&&this.renderDayNames(),this.render(),this._bindEvents(),this._bindDatepickerEvents()}_bindEvents(){let{range:e,dynamicRange:t}=this.opts;w(this.$el,"mouseover",this.onMouseOverCell),w(this.$el,"mouseout",this.onMouseOutCell),w(this.$el,"click",this.onClickBody),e&&t&&(w(this.$el,"mousedown",this.onMouseDown),w(this.$el,"mousemove",this.onMouseMove),w(window.document,"mouseup",this.onMouseUp))}_bindDatepickerEvents(){this.dp.on(l.eventChangeViewDate,this.onChangeViewDate),this.dp.on(l.eventChangeCurrentView,this.onChangeCurrentView)}_buildBaseHtml(){this.$el=b({className:"air-datepicker-body -".concat(this.type,"-"),innerHtml:de[this.type]}),this.$names=y(".air-datepicker-body--day-names",this.$el),this.$cells=y(".air-datepicker-body--cells",this.$el)}_getDayNamesHtml(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.dp.locale.firstDay,t="",s=this.dp.isWeekend,{onClickDayName:a}=this.opts,n=e,i=0;for(;i<7;){let h=n%7,o=M("air-datepicker-body--day-name",{[l.cssClassWeekend]:s(h),"-clickable-":!!a}),d=this.dp.locale.daysMin[h];t+='<div class="'.concat(o,`" data-day-index='`).concat(h,"'>").concat(d,"</div>"),i++,n++}return t}_getDaysCells(){let{viewDate:e,locale:{firstDay:t}}=this.dp,s=Z(e),{year:a,month:n}=D(e),i=new Date(a,n,1),h=new Date(a,n,s),o=i.getDay()-t,d=6-h.getDay()+t;o=o<0?o+7:o,d=d>6?d-7:d;let c=function(N,B){let{year:K,month:I,date:q}=D(N);return new Date(K,I,q-B)}(i,o),u=s+o+d,p=c.getDate(),{year:g,month:f}=D(c),_=0;for(;_<u;){let N=new Date(g,f,p+_);this._generateCell(N),_++}}_generateCell(e){let{type:t,dp:s,opts:a}=this,n=new le({type:t,dp:s,opts:a,date:e,body:this});return this.cells.push(n),n}_generateDayCells(){this._getDaysCells()}_generateMonthCells(){let{year:e}=this.dp.parsedViewDate,t=0;for(;t<12;)this.cells.push(this._generateCell(new Date(e,t))),t++}_generateYearCells(){let e=F(this.dp.viewDate),t=e[0]-1,s=e[1]+1,a=t;for(;a<=s;)this.cells.push(this._generateCell(new Date(a,0))),a++}renderDayNames(){this.$names.innerHTML=this._getDayNamesHtml()}_generateCells(){switch(this.type){case l.days:this._generateDayCells();break;case l.months:this._generateMonthCells();break;case l.years:this._generateYearCells()}}show(){this.isVisible=!0,this.$el.classList.remove("-hidden-")}hide(){this.isVisible=!1,this.$el.classList.add("-hidden-")}destroyCells(){this.cells.forEach(e=>e.destroy()),this.cells=[],this.$cells.innerHTML=""}destroy(){this.destroyCells(),this.dp.off(l.eventChangeViewDate,this.onChangeViewDate),this.dp.off(l.eventChangeCurrentView,this.onChangeCurrentView)}}function x(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}class ce{constructor(e){let{dp:t,opts:s}=e;x(this,"onClickNav",a=>{let n=R(a.target,".air-datepicker-nav--action");if(!n)return;let i=n.dataset.action;this.dp[i]()}),x(this,"onChangeViewDate",()=>{this.render(),this._resetNavStatus(),this.handleNavStatus()}),x(this,"onChangeCurrentView",()=>{this.render(),this._resetNavStatus(),this.handleNavStatus()}),x(this,"onClickNavTitle",()=>{this.dp.isFinalView||this.dp.up()}),x(this,"update",()=>{let{prevHtml:a,nextHtml:n}=this.opts;this.$prev.innerHTML=a,this.$next.innerHTML=n,this._resetNavStatus(),this.render(),this.handleNavStatus()}),x(this,"renderDelay",()=>{setTimeout(this.render)}),x(this,"render",()=>{this.$title.innerHTML=this._getTitle(),function(a,n){for(let i in n)n[i]?a.classList.add(i):a.classList.remove(i)}(this.$title,{"-disabled-":this.dp.isFinalView})}),this.dp=t,this.opts=s,this.init()}init(){this._createElement(),this._buildBaseHtml(),this._defineDOM(),this.render(),this.handleNavStatus(),this._bindEvents(),this._bindDatepickerEvents()}_defineDOM(){this.$title=y(".air-datepicker-nav--title",this.$el),this.$prev=y('[data-action="prev"]',this.$el),this.$next=y('[data-action="next"]',this.$el)}_bindEvents(){this.$el.addEventListener("click",this.onClickNav),this.$title.addEventListener("click",this.onClickNavTitle)}_bindDatepickerEvents(){this.dp.on(l.eventChangeViewDate,this.onChangeViewDate),this.dp.on(l.eventChangeCurrentView,this.onChangeCurrentView),this.isNavIsFunction&&(this.dp.on(l.eventChangeSelectedDate,this.renderDelay),this.dp.opts.timepicker&&this.dp.on(l.eventChangeTime,this.render))}destroy(){this.dp.off(l.eventChangeViewDate,this.onChangeViewDate),this.dp.off(l.eventChangeCurrentView,this.onChangeCurrentView),this.isNavIsFunction&&(this.dp.off(l.eventChangeSelectedDate,this.renderDelay),this.dp.opts.timepicker&&this.dp.off(l.eventChangeTime,this.render))}_createElement(){this.$el=b({tagName:"nav",className:"air-datepicker-nav"})}_getTitle(){let{dp:e,opts:t}=this,s=t.navTitles[e.currentView];return typeof s=="function"?s(e):e.formatDate(e.viewDate,s)}handleNavStatus(){let{disableNavWhenOutOfRange:e}=this.opts,{minDate:t,maxDate:s}=this.dp;if(!t&&!s||!e)return;let{year:a,month:n}=this.dp.parsedViewDate,i=!!t&&D(t),h=!!s&&D(s);switch(this.dp.currentView){case l.days:t&&i.month>=n&&i.year>=a&&this._disableNav("prev"),s&&h.month<=n&&h.year<=a&&this._disableNav("next");break;case l.months:t&&i.year>=a&&this._disableNav("prev"),s&&h.year<=a&&this._disableNav("next");break;case l.years:{let o=F(this.dp.viewDate);t&&i.year>=o[0]&&this._disableNav("prev"),s&&h.year<=o[1]&&this._disableNav("next");break}}}_disableNav(e){y('[data-action="'+e+'"]',this.$el).classList.add("-disabled-")}_resetNavStatus(){(function(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),a=1;a<t;a++)s[a-1]=arguments[a];e.length?e.forEach(n=>{n.classList.remove(...s)}):e.classList.remove(...s)})(this.$el.querySelectorAll(".air-datepicker-nav--action"),"-disabled-")}_buildBaseHtml(){let{prevHtml:e,nextHtml:t}=this.opts;this.$el.innerHTML='<div class="air-datepicker-nav--action" data-action="prev">'.concat(e,"</div>")+'<div class="air-datepicker-nav--title"></div>'+'<div class="air-datepicker-nav--action" data-action="next">'.concat(t,"</div>")}get isNavIsFunction(){let{navTitles:e}=this.opts;return Object.keys(e).find(t=>typeof e[t]=="function")}}var te={today:{content:r=>r.locale.today,onClick:r=>r.setViewDate(new Date)},clear:{content:r=>r.locale.clear,onClick:r=>r.clear()}};class ue{constructor(e){let{dp:t,opts:s}=e;this.dp=t,this.opts=s,this.init()}init(){this.createElement(),this.render()}createElement(){this.$el=b({className:"air-datepicker-buttons"})}destroy(){this.$el.parentNode.removeChild(this.$el)}clearHtml(){return this.$el.innerHTML="",this}generateButtons(){let{buttons:e}=this.opts;Array.isArray(e)||(e=[e]),e.forEach(t=>{let s=t;typeof t=="string"&&te[t]&&(s=te[t]);let a=this.createButton(s);s.onClick&&this.attachEventToButton(a,s.onClick),this.$el.appendChild(a)})}attachEventToButton(e,t){e.addEventListener("click",()=>{t(this.dp)})}createButton(e){let{content:t,className:s,tagName:a="button",attrs:n={}}=e,i=typeof t=="function"?t(this.dp):t;return b({tagName:a,innerHtml:"<span tabindex='-1'>".concat(i,"</span>"),className:M("air-datepicker-button",s),attrs:n})}render(){this.generateButtons()}}function H(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}class pe{constructor(){let{opts:e,dp:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};H(this,"toggleTimepickerIsActive",a=>{this.dp.timepickerIsActive=a}),H(this,"onChangeSelectedDate",a=>{let{date:n,updateTime:i=!1}=a;n&&(this.setMinMaxTime(n),this.setCurrentTime(!!i&&n),this.addTimeToDate(n))}),H(this,"onChangeLastSelectedDate",a=>{a&&(this.setTime(a),this.render())}),H(this,"onChangeInputRange",a=>{let n=a.target;this[n.getAttribute("name")]=n.value,this.updateText(),this.dp.trigger(l.eventChangeTime,{hours:this.hours,minutes:this.minutes})}),H(this,"onMouseEnterLeave",a=>{let n=a.target.getAttribute("name"),i=this.$minutesText;n==="hours"&&(i=this.$hoursText),i.classList.toggle("-focus-")}),H(this,"onFocus",()=>{this.toggleTimepickerIsActive(!0)}),H(this,"onBlur",()=>{this.toggleTimepickerIsActive(!1)}),this.opts=e,this.dp=t;let{timeFormat:s}=this.dp.locale;s&&(s.match(G("h"))||s.match(G("hh")))&&(this.ampm=!0),this.init()}init(){this.setTime(this.dp.lastSelectedDate||this.dp.viewDate),this.createElement(),this.buildHtml(),this.defineDOM(),this.render(),this.bindDatepickerEvents(),this.bindDOMEvents()}bindDatepickerEvents(){this.dp.on(l.eventChangeSelectedDate,this.onChangeSelectedDate),this.dp.on(l.eventChangeLastSelectedDate,this.onChangeLastSelectedDate)}bindDOMEvents(){let e="input";navigator.userAgent.match(/trident/gi)&&(e="change"),w(this.$ranges,e,this.onChangeInputRange),w(this.$ranges,"mouseenter",this.onMouseEnterLeave),w(this.$ranges,"mouseleave",this.onMouseEnterLeave),w(this.$ranges,"focus",this.onFocus),w(this.$ranges,"mousedown",this.onFocus),w(this.$ranges,"blur",this.onBlur)}createElement(){this.$el=b({className:M("air-datepicker-time",{"-am-pm-":this.dp.ampm})})}destroy(){this.dp.off(l.eventChangeSelectedDate,this.onChangeSelectedDate),this.dp.off(l.eventChangeLastSelectedDate,this.onChangeLastSelectedDate),this.$el.parentNode.removeChild(this.$el)}buildHtml(){let{ampm:e,hours:t,displayHours:s,minutes:a,minHours:n,minMinutes:i,maxHours:h,maxMinutes:o,dayPeriod:d,opts:{hoursStep:c,minutesStep:u}}=this;this.$el.innerHTML='<div class="air-datepicker-time--current">'+' <span class="air-datepicker-time--current-hours">'.concat(O(s),"</span>")+' <span class="air-datepicker-time--current-colon">:</span>'+' <span class="air-datepicker-time--current-minutes">'.concat(O(a),"</span>")+" ".concat(e?"<span class='air-datepicker-time--current-ampm'>".concat(d,"</span>"):"")+'</div><div class="air-datepicker-time--sliders"> <div class="air-datepicker-time--row">'+' <input type="range" name="hours" value="'.concat(t,'" min="').concat(n,'" max="').concat(h,'" step="').concat(c,'"/>')+' </div> <div class="air-datepicker-time--row">'+' <input type="range" name="minutes" value="'.concat(a,'" min="').concat(i,'" max="').concat(o,'" step="').concat(u,'"/>')+" </div></div>"}defineDOM(){let e=t=>y(t,this.$el);this.$ranges=this.$el.querySelectorAll('[type="range"]'),this.$hours=e('[name="hours"]'),this.$minutes=e('[name="minutes"]'),this.$hoursText=e(".air-datepicker-time--current-hours"),this.$minutesText=e(".air-datepicker-time--current-minutes"),this.$ampm=e(".air-datepicker-time--current-ampm")}setTime(e){this.setMinMaxTime(e),this.setCurrentTime(e)}addTimeToDate(e){e&&(e.setHours(this.hours),e.setMinutes(this.minutes))}setMinMaxTime(e){if(this.setMinMaxTimeFromOptions(),e){let{minDate:t,maxDate:s}=this.dp;t&&v(e,t)&&this.setMinTimeFromMinDate(t),s&&v(e,s)&&this.setMaxTimeFromMaxDate(s)}}setCurrentTime(e){let{hours:t,minutes:s}=e?D(e):this;this.hours=A(t,this.minHours,this.maxHours),this.minutes=A(s,this.minMinutes,this.maxMinutes)}setMinMaxTimeFromOptions(){let{minHours:e,minMinutes:t,maxHours:s,maxMinutes:a}=this.opts;this.minHours=A(e,0,23),this.minMinutes=A(t,0,59),this.maxHours=A(s,0,23),this.maxMinutes=A(a,0,59)}setMinTimeFromMinDate(e){let{lastSelectedDate:t}=this.dp;this.minHours=e.getHours(),t&&t.getHours()>e.getHours()?this.minMinutes=this.opts.minMinutes:this.minMinutes=e.getMinutes()}setMaxTimeFromMaxDate(e){let{lastSelectedDate:t}=this.dp;this.maxHours=e.getHours(),t&&t.getHours()<e.getHours()?this.maxMinutes=this.opts.maxMinutes:this.maxMinutes=e.getMinutes()}getDayPeriod(e,t){let s=e,a=Number(e);e instanceof Date&&(s=D(e),a=Number(s.hours));let n="am";if(t||this.ampm){switch(!0){case a===12:case a>11:n="pm"}a=a%12==0?12:a%12}return{hours:a,dayPeriod:n}}updateSliders(){z(this.$hours,{min:this.minHours,max:this.maxHours}).value=this.hours,z(this.$minutes,{min:this.minMinutes,max:this.maxMinutes}).value=this.minutes}updateText(){this.$hoursText.innerHTML=O(this.displayHours),this.$minutesText.innerHTML=O(this.minutes),this.ampm&&(this.$ampm.innerHTML=this.dayPeriod)}set hours(e){this._hours=e;let{hours:t,dayPeriod:s}=this.getDayPeriod(e);this.displayHours=t,this.dayPeriod=s}get hours(){return this._hours}render(){this.updateSliders(),this.updateText()}}function L(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}class me{constructor(e){let{dp:t,opts:s}=e;L(this,"pressedKeys",new Set),L(this,"hotKeys",new Map([[[["Control","ArrowRight"],["Control","ArrowUp"]],a=>a.month++],[[["Control","ArrowLeft"],["Control","ArrowDown"]],a=>a.month--],[[["Shift","ArrowRight"],["Shift","ArrowUp"]],a=>a.year++],[[["Shift","ArrowLeft"],["Shift","ArrowDown"]],a=>a.year--],[[["Alt","ArrowRight"],["Alt","ArrowUp"]],a=>a.year+=10],[[["Alt","ArrowLeft"],["Alt","ArrowDown"]],a=>a.year-=10],[["Control","Shift","ArrowUp"],(a,n)=>n.up()]])),L(this,"handleHotKey",a=>{let n=this.hotKeys.get(a),i=D(this.getInitialFocusDate());n(i,this.dp);let{year:h,month:o,date:d}=i,c=Z(new Date(h,o));c<d&&(d=c);let u=this.dp.getClampedDate(new Date(h,o,d));this.dp.setFocusDate(u,{viewDateTransition:!0})}),L(this,"isHotKeyPressed",()=>{let a=!1,n=this.pressedKeys.size,i=h=>this.pressedKeys.has(h);for(let[h]of this.hotKeys){if(a)break;if(Array.isArray(h[0]))h.forEach(o=>{a||n!==o.length||(a=o.every(i)&&h)});else{if(n!==h.length)continue;a=h.every(i)&&h}}return a}),L(this,"isArrow",a=>a>=37&&a<=40),L(this,"onKeyDown",a=>{let{key:n,which:i}=a,{dp:h,dp:{focusDate:o},opts:d}=this;this.registerKey(n);let c=this.isHotKeyPressed();if(c)return a.preventDefault(),void this.handleHotKey(c);if(this.isArrow(i))return a.preventDefault(),void this.focusNextCell(n);if(n==="Enter"){if(h.currentView!==d.minView)return void h.down();if(o){let u=h._checkIfDateIsSelected(o);return void(u?h._handleAlreadySelectedDates(u,o):h.selectDate(o))}}n==="Escape"&&this.dp.hide()}),L(this,"onKeyUp",a=>{this.removeKey(a.key)}),this.dp=t,this.opts=s,this.init()}init(){this.bindKeyboardEvents()}bindKeyboardEvents(){let{$el:e}=this.dp;e.addEventListener("keydown",this.onKeyDown),e.addEventListener("keyup",this.onKeyUp)}destroy(){let{$el:e}=this.dp;e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("keyup",this.onKeyUp),this.hotKeys=null,this.pressedKeys=null}getInitialFocusDate(){let{focusDate:e,currentView:t,selectedDates:s,parsedViewDate:{year:a,month:n}}=this.dp,i=e||s[s.length-1];if(!i)switch(t){case l.days:i=new Date(a,n,new Date().getDate());break;case l.months:i=new Date(a,n,1);break;case l.years:i=new Date(a,0,1)}return i}focusNextCell(e){let t=this.getInitialFocusDate(),{currentView:s}=this.dp,{days:a,months:n,years:i}=l,h=D(t),o=h.year,d=h.month,c=h.date;switch(e){case"ArrowLeft":s===a&&(c-=1),s===n&&(d-=1),s===i&&(o-=1);break;case"ArrowUp":s===a&&(c-=7),s===n&&(d-=3),s===i&&(o-=4);break;case"ArrowRight":s===a&&(c+=1),s===n&&(d+=1),s===i&&(o+=1);break;case"ArrowDown":s===a&&(c+=7),s===n&&(d+=3),s===i&&(o+=4)}let u=this.dp.getClampedDate(new Date(o,d,c));this.dp.setFocusDate(u,{viewDateTransition:!0})}registerKey(e){this.pressedKeys.add(e)}removeKey(e){this.pressedKeys.delete(e)}}let ge={on(r,e){this.__events||(this.__events={}),this.__events[r]?this.__events[r].push(e):this.__events[r]=[e]},off(r,e){this.__events&&this.__events[r]&&(this.__events[r]=this.__events[r].filter(t=>t!==e))},removeAllEvents(){this.__events={}},trigger(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),s=1;s<e;s++)t[s-1]=arguments[s];this.__events&&this.__events[r]&&this.__events[r].forEach(a=>{a(...t)})}};function m(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}let X="",W="",S="",se=!1;class T{constructor(e,t){var s=this;if(m(this,"viewIndexes",[l.days,l.months,l.years]),m(this,"next",()=>{let{year:i,month:h}=this.parsedViewDate;switch(this.currentView){case l.days:this.setViewDate(new Date(i,h+1,1));break;case l.months:this.setViewDate(new Date(i+1,h,1));break;case l.years:this.setViewDate(new Date(i+10,0,1))}}),m(this,"prev",()=>{let{year:i,month:h}=this.parsedViewDate;switch(this.currentView){case l.days:this.setViewDate(new Date(i,h-1,1));break;case l.months:this.setViewDate(new Date(i-1,h,1));break;case l.years:this.setViewDate(new Date(i-10,0,1))}}),m(this,"_finishHide",()=>{this.hideAnimation=!1,this._destroyComponents(),this.$container.removeChild(this.$datepicker)}),m(this,"setPosition",function(i){let h=arguments.length>1&&arguments[1]!==void 0&&arguments[1];if(typeof(i=i||s.opts.position)=="function")return void(s.customHide=i({$datepicker:s.$datepicker,$target:s.$el,$pointer:s.$pointer,isViewChange:h,done:s._finishHide}));let o,d,{isMobile:c}=s.opts,u=s.$el.getBoundingClientRect(),p=s.$el.getBoundingClientRect(),g=s.$datepicker.offsetParent,f=s.$el.offsetParent,_=s.$datepicker.getBoundingClientRect(),N=i.split(" "),B=window.scrollY,K=window.scrollX,I=s.opts.offset,q=N[0],De=N[1];if(c)s.$datepicker.style.cssText="left: 50%; top: 50%";else{if(g===f&&g!==document.body&&(p={top:s.$el.offsetTop,left:s.$el.offsetLeft,width:u.width,height:s.$el.offsetHeight},B=0,K=0),g!==f&&g!==document.body){let ae=g.getBoundingClientRect();p={top:u.top-ae.top,left:u.left-ae.left,width:u.width,height:u.height},B=0,K=0}switch(q){case"top":o=p.top-_.height-I;break;case"right":d=p.left+p.width+I;break;case"bottom":o=p.top+p.height+I;break;case"left":d=p.left-_.width-I}switch(De){case"top":o=p.top;break;case"right":d=p.left+p.width-_.width;break;case"bottom":o=p.top+p.height-_.height;break;case"left":d=p.left;break;case"center":/left|right/.test(q)?o=p.top+p.height/2-_.height/2:d=p.left+p.width/2-_.width/2}s.$datepicker.style.cssText="left: ".concat(d+K,"px; top: ").concat(o+B,"px")}}),m(this,"_setInputValue",()=>{let{opts:i,$altField:h,locale:{dateFormat:o}}=this,{altFieldDateFormat:d,altField:c}=i;c&&h&&(h.value=this._getInputValue(d)),this.$el.value=this._getInputValue(o)}),m(this,"_getInputValue",i=>{let{selectedDates:h,opts:o}=this,{multipleDates:d,multipleDatesSeparator:c}=o;if(!h.length)return"";let u=typeof i=="function",p=u?i(d?h:h[0]):h.map(g=>this.formatDate(g,i));return p=u?p:p.join(c),p}),m(this,"_checkIfDateIsSelected",function(i){let h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:l.days,o=!1;return s.selectedDates.some(d=>{let c=v(i,d,h);return o=c&&d,c}),o}),m(this,"_scheduleCallAfterTransition",i=>{this._cancelScheduledCall(),i&&i(!1),this._onTransitionEnd=()=>{i&&i(!0)},this.$datepicker.addEventListener("transitionend",this._onTransitionEnd,{once:!0})}),m(this,"_cancelScheduledCall",()=>{this.$datepicker.removeEventListener("transitionend",this._onTransitionEnd)}),m(this,"setViewDate",i=>{if(!((i=C(i))instanceof Date)||v(i,this.viewDate))return;let h=this.viewDate;this.viewDate=i;let{onChangeViewDate:o}=this.opts;if(o){let{month:d,year:c}=this.parsedViewDate;o({month:d,year:c,decade:this.curDecade})}this.trigger(l.eventChangeViewDate,i,h)}),m(this,"setFocusDate",function(i){let h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};(!i||(i=C(i))instanceof Date)&&(s.focusDate=i,s.opts.range&&i&&s._handleRangeOnFocus(),s.trigger(l.eventChangeFocusDate,i,h))}),m(this,"setCurrentView",i=>{if(this.viewIndexes.includes(i)){if(this.currentView=i,this.elIsInput&&this.visible&&this.setPosition(void 0,!0),this.trigger(l.eventChangeCurrentView,i),!this.views[i]){let h=this.views[i]=new ee({dp:this,opts:this.opts,type:i});this.shouldUpdateDOM&&this.$content.appendChild(h.$el)}this.opts.onChangeView&&this.opts.onChangeView(i)}}),m(this,"_updateLastSelectedDate",i=>{this.lastSelectedDate=i,this.trigger(l.eventChangeLastSelectedDate,i)}),m(this,"destroy",()=>{let{showEvent:i,isMobile:h}=this.opts,o=this.$datepicker.parentNode;o&&o.removeChild(this.$datepicker),this.$el.removeEventListener(i,this._onFocus),this.$el.removeEventListener("blur",this._onBlur),window.removeEventListener("resize",this._onResize),h&&this._removeMobileAttributes(),this.keyboardNav&&this.keyboardNav.destroy(),this.views=null,this.nav=null,this.$datepicker=null,this.opts=null,this.$customContainer=null,this.viewDate=null,this.focusDate=null,this.selectedDates=null,this.rangeDateFrom=null,this.rangeDateTo=null}),m(this,"update",i=>{let h=Y({},this.opts);Y(this.opts,i);let{timepicker:o,buttons:d,range:c,selectedDates:u,isMobile:p}=this.opts,g=this.visible||this.treatAsInline;this._createMinMaxDates(),this._limitViewDateByMaxMinDates(),this._handleLocale(),!h.selectedDates&&u&&this.selectDate(u),i.view&&this.setCurrentView(i.view),this._setInputValue(),h.range&&!c?(this.rangeDateTo=!1,this.rangeDateFrom=!1):!h.range&&c&&this.selectedDates.length&&(this.rangeDateFrom=this.selectedDates[0],this.rangeDateTo=this.selectedDates[1]),h.timepicker&&!o?(g&&this.timepicker.destroy(),this.timepicker=!1,this.$timepicker.parentNode.removeChild(this.$timepicker)):!h.timepicker&&o&&this._addTimepicker(),!h.buttons&&d?this._addButtons():h.buttons&&!d?(this.buttons.destroy(),this.$buttons.parentNode.removeChild(this.$buttons)):g&&h.buttons&&d&&this.buttons.clearHtml().render(),!h.isMobile&&p?(this.treatAsInline||S||this._createMobileOverlay(),this._addMobileAttributes(),this.visible&&this._showMobileOverlay()):h.isMobile&&!p&&(this._removeMobileAttributes(),this.visible&&(S.classList.remove("-active-"),typeof this.opts.position!="function"&&this.setPosition())),g&&(this.nav.update(),this.views[this.currentView].render(),this.currentView===l.days&&this.views[this.currentView].renderDayNames())}),m(this,"isOtherMonth",i=>{let{month:h}=D(i);return h!==this.parsedViewDate.month}),m(this,"isOtherYear",i=>{let{year:h}=D(i);return h!==this.parsedViewDate.year}),m(this,"isOtherDecade",i=>{let{year:h}=D(i),[o,d]=F(this.viewDate);return h<o||h>d}),m(this,"_onChangeSelectedDate",i=>{let{silent:h}=i;setTimeout(()=>{this._setInputValue(),this.opts.onSelect&&!h&&this._triggerOnSelect()})}),m(this,"_onChangeFocusedDate",function(i){let{viewDateTransition:h}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!i)return;let o=!1;h&&(o=s.isOtherMonth(i)||s.isOtherYear(i)||s.isOtherDecade(i)),o&&s.setViewDate(i)}),m(this,"_onChangeTime",i=>{let{hours:h,minutes:o}=i,d=new Date,{lastSelectedDate:c,opts:{onSelect:u}}=this,p=c;c||(p=d);let g=this.getCell(p,this.currentViewSingular),f=g&&g.adpCell;f&&f.isDisabled||(p.setHours(h),p.setMinutes(o),c?(this._setInputValue(),u&&this._triggerOnSelect()):this.selectDate(p))}),m(this,"_onFocus",i=>{this.visible||this.show()}),m(this,"_onBlur",i=>{this.inFocus||!this.visible||this.opts.isMobile||this.hide()}),m(this,"_onMouseDown",i=>{this.inFocus=!0}),m(this,"_onMouseUp",i=>{this.inFocus=!1,this.$el.focus()}),m(this,"_onResize",()=>{this.visible&&typeof this.opts.position!="function"&&this.setPosition()}),m(this,"_onClickOverlay",()=>{this.visible&&this.hide()}),m(this,"isWeekend",i=>this.opts.weekends.includes(i)),m(this,"getClampedDate",i=>{let{minDate:h,maxDate:o}=this,d=i;return o&&$(i,o)?d=o:h&&E(i,h)&&(d=h),d}),this.$el=y(e),!this.$el)return;this.$datepicker=b({className:"air-datepicker"}),this.opts=Y({},Q,t),this.$customContainer=!!this.opts.container&&y(this.opts.container),this.$altField=y(this.opts.altField||!1),X||(X=y("body"));let{view:a,startDate:n}=this.opts;n||(this.opts.startDate=new Date),this.$el.nodeName==="INPUT"&&(this.elIsInput=!0),this.inited=!1,this.visible=!1,this.viewDate=C(this.opts.startDate),this.focusDate=!1,this.initialReadonly=this.$el.getAttribute("readonly"),this.customHide=!1,this.currentView=a,this.selectedDates=[],this.views={},this.keys=[],this.rangeDateFrom="",this.rangeDateTo="",this.timepickerIsActive=!1,this.treatAsInline=this.opts.inline||!this.elIsInput,this.init()}init(){let{opts:e,treatAsInline:t,opts:{inline:s,isMobile:a,selectedDates:n,keyboardNav:i,onlyTimepicker:h}}=this;var o;se||s||!this.elIsInput||(se=!0,W=b({className:o=T.defaultContainerId,id:o}),X.appendChild(W)),!a||S||t||this._createMobileOverlay(),this._handleLocale(),this._bindSubEvents(),this._createMinMaxDates(),this._limitViewDateByMaxMinDates(),this.elIsInput&&(s||this._bindEvents(),i&&!h&&(this.keyboardNav=new me({dp:this,opts:e}))),n&&this.selectDate(n,{silent:!0}),this.opts.visible&&!t&&this.show(),a&&!t&&this.$el.setAttribute("readonly",!0),t&&this._createComponents()}_createMobileOverlay(){S=b({className:"air-datepicker-overlay"}),W.appendChild(S)}_createComponents(){let{opts:e,treatAsInline:t,opts:{inline:s,buttons:a,timepicker:n,position:i,classes:h,onlyTimepicker:o,isMobile:d}}=this;this._buildBaseHtml(),this.elIsInput&&(s||this._setPositionClasses(i)),!s&&this.elIsInput||this.$datepicker.classList.add("-inline-"),h&&this.$datepicker.classList.add(...h.split(" ")),o&&this.$datepicker.classList.add("-only-timepicker-"),d&&!t&&this._addMobileAttributes(),this.views[this.currentView]=new ee({dp:this,type:this.currentView,opts:e}),this.nav=new ce({dp:this,opts:e}),n&&this._addTimepicker(),a&&this._addButtons(),this.$content.appendChild(this.views[this.currentView].$el),this.$nav.appendChild(this.nav.$el)}_destroyComponents(){for(let e in this.views)this.views[e].destroy();this.views={},this.nav.destroy(),this.timepicker&&this.timepicker.destroy()}_addMobileAttributes(){S.addEventListener("click",this._onClickOverlay),this.$datepicker.classList.add("-is-mobile-"),this.$el.setAttribute("readonly",!0)}_removeMobileAttributes(){S.removeEventListener("click",this._onClickOverlay),this.$datepicker.classList.remove("-is-mobile-"),this.initialReadonly||this.initialReadonly===""||this.$el.removeAttribute("readonly")}_createMinMaxDates(){let{minDate:e,maxDate:t}=this.opts;this.minDate=!!e&&C(e),this.maxDate=!!t&&C(t)}_addTimepicker(){this.$timepicker=b({className:"air-datepicker--time"}),this.$datepicker.appendChild(this.$timepicker),this.timepicker=new pe({dp:this,opts:this.opts}),this.$timepicker.appendChild(this.timepicker.$el)}_addButtons(){this.$buttons=b({className:"air-datepicker--buttons"}),this.$datepicker.appendChild(this.$buttons),this.buttons=new ue({dp:this,opts:this.opts}),this.$buttons.appendChild(this.buttons.$el)}_bindSubEvents(){this.on(l.eventChangeSelectedDate,this._onChangeSelectedDate),this.on(l.eventChangeFocusDate,this._onChangeFocusedDate),this.on(l.eventChangeTime,this._onChangeTime)}_buildBaseHtml(){let{inline:e}=this.opts;var t,s;this.elIsInput?e?(t=this.$datepicker,(s=this.$el).parentNode.insertBefore(t,s.nextSibling)):this.$container.appendChild(this.$datepicker):this.$el.appendChild(this.$datepicker),this.$datepicker.innerHTML='<i class="air-datepicker--pointer"></i><div class="air-datepicker--navigation"></div><div class="air-datepicker--content"></div>',this.$content=y(".air-datepicker--content",this.$datepicker),this.$pointer=y(".air-datepicker--pointer",this.$datepicker),this.$nav=y(".air-datepicker--navigation",this.$datepicker)}_handleLocale(){let{locale:e,dateFormat:t,firstDay:s,timepicker:a,onlyTimepicker:n,timeFormat:i,dateTimeSeparator:h}=this.opts;var o;this.locale=(o=e,JSON.parse(JSON.stringify(o))),t&&(this.locale.dateFormat=t),i!==void 0&&i!==""&&(this.locale.timeFormat=i);let{timeFormat:d}=this.locale;if(s!==""&&(this.locale.firstDay=s),a&&typeof t!="function"){let c=d?h:"";this.locale.dateFormat=[this.locale.dateFormat,d||""].join(c)}n&&typeof t!="function"&&(this.locale.dateFormat=this.locale.timeFormat)}_setPositionClasses(e){if(typeof e=="function")return void this.$datepicker.classList.add("-custom-position-");let t=(e=e.split(" "))[0],s=e[1],a="air-datepicker -".concat(t,"-").concat(s,"- -from-").concat(t,"-");this.$datepicker.classList.add(...a.split(" "))}_bindEvents(){this.$el.addEventListener(this.opts.showEvent,this._onFocus),this.$el.addEventListener("blur",this._onBlur),this.$datepicker.addEventListener("mousedown",this._onMouseDown),this.$datepicker.addEventListener("mouseup",this._onMouseUp),window.addEventListener("resize",this._onResize)}_limitViewDateByMaxMinDates(){let{viewDate:e,minDate:t,maxDate:s}=this;s&&$(e,s)&&this.setViewDate(s),t&&E(e,t)&&this.setViewDate(t)}formatDate(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.viewDate,t=arguments.length>1?arguments[1]:void 0;if(e=C(e),!(e instanceof Date))return;let s=t,a=this.locale,n=D(e),i=F(e),h=T.replacer,o="am";this.opts.timepicker&&this.timepicker&&(o=this.timepicker.getDayPeriod(e).dayPeriod);let d={T:e.getTime(),m:n.minutes,mm:n.fullMinutes,h:n.hours12,hh:n.fullHours12,H:n.hours,HH:n.fullHours,aa:o,AA:o.toUpperCase(),E:a.daysShort[n.day],EEEE:a.days[n.day],d:n.date,dd:n.fullDate,M:n.month+1,MM:n.fullMonth,MMM:a.monthsShort[n.month],MMMM:a.months[n.month],yy:n.year.toString().slice(-2),yyyy:n.year,yyyy1:i[0],yyyy2:i[1]};for(let[c,u]of Object.entries(d))s=h(s,G(c),u);return s}down(e){this._handleUpDownActions(e,"down")}up(e){this._handleUpDownActions(e,"up")}selectDate(e){let t,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{currentView:a,parsedViewDate:n,selectedDates:i}=this,{updateTime:h}=s,{moveToOtherMonthsOnSelect:o,moveToOtherYearsOnSelect:d,multipleDates:c,range:u,autoClose:p}=this.opts,g=i.length;if(Array.isArray(e))return e.forEach(f=>{this.selectDate(f,s)}),new Promise(f=>{setTimeout(f)});if((e=C(e))instanceof Date){if(a===l.days&&e.getMonth()!==n.month&&o&&(t=new Date(e.getFullYear(),e.getMonth(),1)),a===l.years&&e.getFullYear()!==n.year&&d&&(t=new Date(e.getFullYear(),0,1)),t&&this.setViewDate(t),c&&!u){if(g===c)return;this._checkIfDateIsSelected(e)||i.push(e)}else if(u)switch(g){case 1:i.push(e),this.rangeDateTo||(this.rangeDateTo=e),$(this.rangeDateFrom,this.rangeDateTo)&&(this.rangeDateTo=this.rangeDateFrom,this.rangeDateFrom=e),this.selectedDates=[this.rangeDateFrom,this.rangeDateTo];break;case 2:this.selectedDates=[e],this.rangeDateFrom=e,this.rangeDateTo="";break;default:this.selectedDates=[e],this.rangeDateFrom=e}else this.selectedDates=[e];return this.trigger(l.eventChangeSelectedDate,{action:l.actionSelectDate,silent:s==null?void 0:s.silent,date:e,updateTime:h}),this._updateLastSelectedDate(e),p&&!this.timepickerIsActive&&this.visible&&(c||u?u&&g===1&&this.hide():this.hide()),new Promise(f=>{setTimeout(f)})}}unselectDate(e){let t=this.selectedDates,s=this;if((e=C(e))instanceof Date)return t.some((a,n)=>{if(v(a,e))return t.splice(n,1),s.selectedDates.length?s._updateLastSelectedDate(s.selectedDates[s.selectedDates.length-1]):(s.rangeDateFrom="",s.rangeDateTo="",s._updateLastSelectedDate(!1)),this.trigger(l.eventChangeSelectedDate,{action:l.actionUnselectDate,date:e}),!0})}replaceDate(e,t){let s=this.selectedDates.find(n=>v(n,e,this.currentView)),a=this.selectedDates.indexOf(s);a<0||v(this.selectedDates[a],t,this.currentView)||(this.selectedDates[a]=t,this.trigger(l.eventChangeSelectedDate,{action:l.actionSelectDate,date:t,updateTime:!0}),this._updateLastSelectedDate(t))}clear(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.selectedDates=[],this.rangeDateFrom=!1,this.rangeDateTo=!1,this.trigger(l.eventChangeSelectedDate,{action:l.actionUnselectDate,silent:e.silent}),new Promise(t=>{setTimeout(t)})}show(){let{onShow:e,isMobile:t}=this.opts;this._cancelScheduledCall(),this.visible||this.hideAnimation||this._createComponents(),this.setPosition(this.opts.position),this.$datepicker.classList.add("-active-"),this.visible=!0,e&&this._scheduleCallAfterTransition(e),t&&this._showMobileOverlay()}hide(){let{onHide:e,isMobile:t}=this.opts,s=this._hasTransition();this.visible=!1,this.hideAnimation=!0,this.$datepicker.classList.remove("-active-"),this.customHide&&this.customHide(),this.elIsInput&&this.$el.blur(),this._scheduleCallAfterTransition(a=>{!this.customHide&&(a&&s||!a&&!s)&&this._finishHide(),e&&e(a)}),t&&S.classList.remove("-active-")}_triggerOnSelect(){let e=[],t=[],{selectedDates:s,locale:a,opts:{onSelect:n,multipleDates:i,range:h}}=this,o=i||h,d=typeof a.dateFormat=="function";s.length&&(e=s.map(J),t=d?i?a.dateFormat(e):e.map(c=>a.dateFormat(c)):e.map(c=>this.formatDate(c,a.dateFormat))),n({date:o?e:e[0],formattedDate:o?t:t[0],datepicker:this})}_handleAlreadySelectedDates(e,t){let{range:s,toggleSelected:a}=this.opts;s?a?this.unselectDate(t):this.selectedDates.length!==2&&this.selectDate(t):a&&this.unselectDate(t),a||this._updateLastSelectedDate(e)}_handleUpDownActions(e,t){if(!((e=C(e||this.focusDate||this.viewDate))instanceof Date))return;let s=t==="up"?this.viewIndex+1:this.viewIndex-1;s>2&&(s=2),s<0&&(s=0),this.setViewDate(new Date(e.getFullYear(),e.getMonth(),1)),this.setCurrentView(this.viewIndexes[s])}_handleRangeOnFocus(){this.selectedDates.length===1&&($(this.selectedDates[0],this.focusDate)?(this.rangeDateTo=this.selectedDates[0],this.rangeDateFrom=this.focusDate):(this.rangeDateTo=this.focusDate,this.rangeDateFrom=this.selectedDates[0]))}getCell(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:l.day;if(!((e=C(e))instanceof Date))return;let{year:s,month:a,date:n}=D(e),i='[data-year="'.concat(s,'"]'),h='[data-month="'.concat(a,'"]'),o='[data-date="'.concat(n,'"]'),d={[l.day]:"".concat(i).concat(h).concat(o),[l.month]:"".concat(i).concat(h),[l.year]:"".concat(i)};return this.views[this.currentView].$el.querySelector(d[t])}_showMobileOverlay(){S.classList.add("-active-")}_hasTransition(){return window.getComputedStyle(this.$datepicker).getPropertyValue("transition-duration").split(", ").reduce((e,t)=>parseFloat(t)+e,0)>0}get shouldUpdateDOM(){return this.visible||this.treatAsInline}get parsedViewDate(){return D(this.viewDate)}get currentViewSingular(){return this.currentView.slice(0,-1)}get curDecade(){return F(this.viewDate)}get viewIndex(){return this.viewIndexes.indexOf(this.currentView)}get isFinalView(){return this.currentView===l.years}get hasSelectedDates(){return this.selectedDates.length>0}get isMinViewReached(){return this.currentView===this.opts.minView||this.currentView===l.days}get $container(){return this.$customContainer||W}static replacer(e,t,s){return e.replace(t,function(a,n,i,h){return n+s+h})}}var ie;return m(T,"defaults",Q),m(T,"version","3.3.0"),m(T,"defaultContainerId","air-datepicker-global-container"),ie=T.prototype,Object.assign(ie,ge),j.default}()})})(re.__module);var ve=re.__module.exports;const ye=ne.getDefaultExportFromCjs(ve);module.exports=ye;
|
|
2
2
|
//# sourceMappingURL=design-system88.js.map
|