@rpcbase/ui 0.210.0 → 0.212.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/dist/index.js +73 -25
- package/dist/index.js.map +1 -0
- package/dist/index10.js +666 -18
- package/dist/index10.js.map +1 -1
- package/dist/index100.js +46 -9
- package/dist/index100.js.map +1 -1
- package/dist/index101.js +7 -14
- package/dist/index101.js.map +1 -1
- package/dist/index102.js +50 -10
- package/dist/index102.js.map +1 -1
- package/dist/index103.js +233 -15
- package/dist/index103.js.map +1 -1
- package/dist/index104.js +25 -21
- package/dist/index104.js.map +1 -1
- package/dist/index105.js +27 -27
- package/dist/index105.js.map +1 -1
- package/dist/index106.js +404 -9
- package/dist/index106.js.map +1 -1
- package/dist/index107.js +609 -9
- package/dist/index107.js.map +1 -1
- package/dist/index108.js +55 -10
- package/dist/index108.js.map +1 -1
- package/dist/index109.js +6 -8
- package/dist/index109.js.map +1 -1
- package/dist/index11.js +459 -1673
- package/dist/index11.js.map +1 -1
- package/dist/index110.js +7 -8
- package/dist/index110.js.map +1 -1
- package/dist/index111.js +17 -7
- package/dist/index111.js.map +1 -1
- package/dist/index112.js +8 -11
- package/dist/index112.js.map +1 -1
- package/dist/index113.js +10 -10
- package/dist/index113.js.map +1 -1
- package/dist/index114.js +19 -37
- package/dist/index114.js.map +1 -1
- package/dist/index115.js +6 -9
- package/dist/index115.js.map +1 -1
- package/dist/index116.js +7 -8
- package/dist/index116.js.map +1 -1
- package/dist/index117.js +8 -10
- package/dist/index117.js.map +1 -1
- package/dist/index118.js +8 -12
- package/dist/index118.js.map +1 -1
- package/dist/index119.js +6 -7
- package/dist/index119.js.map +1 -1
- package/dist/index12.js +79 -10
- package/dist/index12.js.map +1 -1
- package/dist/index120.js +6 -8
- package/dist/index120.js.map +1 -1
- package/dist/index121.js +8 -7
- package/dist/index121.js.map +1 -1
- package/dist/index122.js +27 -8
- package/dist/index122.js.map +1 -1
- package/dist/index123.js +9 -9
- package/dist/index123.js.map +1 -1
- package/dist/index124.js +6 -7
- package/dist/index124.js.map +1 -1
- package/dist/index125.js +8 -7
- package/dist/index125.js.map +1 -1
- package/dist/index126.js +8 -10
- package/dist/index126.js.map +1 -1
- package/dist/index127.js +8 -60
- package/dist/index127.js.map +1 -1
- package/dist/index128.js +8 -9
- package/dist/index128.js.map +1 -1
- package/dist/index129.js +8 -23
- package/dist/index129.js.map +1 -1
- package/dist/index13.js +23 -21
- package/dist/index13.js.map +1 -1
- package/dist/index130.js +11 -22
- package/dist/index130.js.map +1 -1
- package/dist/index131.js +8 -37
- package/dist/index131.js.map +1 -1
- package/dist/index132.js +7 -8
- package/dist/index132.js.map +1 -1
- package/dist/index133.js +7 -11
- package/dist/index133.js.map +1 -1
- package/dist/index134.js +9 -17
- package/dist/index134.js.map +1 -1
- package/dist/index135.js +148 -13
- package/dist/index135.js.map +1 -1
- package/dist/index136.js +42 -9
- package/dist/index136.js.map +1 -1
- package/dist/index137.js +7 -8
- package/dist/index137.js.map +1 -1
- package/dist/index138.js +10 -8
- package/dist/index138.js.map +1 -1
- package/dist/index139.js +16 -8
- package/dist/index139.js.map +1 -1
- package/dist/index14.js +20 -194
- package/dist/index14.js.map +1 -1
- package/dist/index140.js +16 -8
- package/dist/index140.js.map +1 -1
- package/dist/index141.js +10 -7
- package/dist/index141.js.map +1 -1
- package/dist/index142.js +34 -9
- package/dist/index142.js.map +1 -1
- package/dist/index143.js +14 -24
- package/dist/index143.js.map +1 -1
- package/dist/index144.js +13 -11
- package/dist/index144.js.map +1 -1
- package/dist/index145.js +11 -10
- package/dist/index145.js.map +1 -1
- package/dist/index146.js +16 -9
- package/dist/index146.js.map +1 -1
- package/dist/index147.js +104 -9
- package/dist/index147.js.map +1 -1
- package/dist/index148.js +23 -8
- package/dist/index148.js.map +1 -1
- package/dist/index149.js +56 -7
- package/dist/index149.js.map +1 -1
- package/dist/index15.js +30 -33
- package/dist/index15.js.map +1 -1
- package/dist/index150.js +75 -8
- package/dist/index150.js.map +1 -1
- package/dist/index151.js +12 -7
- package/dist/index151.js.map +1 -1
- package/dist/index152.js +23 -8
- package/dist/index152.js.map +1 -1
- package/dist/index153.js +19 -7
- package/dist/index153.js.map +1 -1
- package/dist/index154.js +26 -7
- package/dist/index154.js.map +1 -1
- package/dist/index155.js +9 -7
- package/dist/index155.js.map +1 -1
- package/dist/index156.js +9 -32
- package/dist/index156.js.map +1 -1
- package/dist/index157.js +26 -35
- package/dist/index157.js.map +1 -1
- package/dist/index158.js +38 -19
- package/dist/index158.js.map +1 -1
- package/dist/index159.js +19 -15
- package/dist/index159.js.map +1 -1
- package/dist/index16.js +268 -57
- package/dist/index16.js.map +1 -1
- package/dist/index160.js +9 -12
- package/dist/index160.js.map +1 -1
- package/dist/index161.js +7 -19
- package/dist/index161.js.map +1 -1
- package/dist/index162.js +7 -89
- package/dist/index162.js.map +1 -1
- package/dist/index163.js +7 -50
- package/dist/index163.js.map +1 -1
- package/dist/index164.js +7 -20
- package/dist/index164.js.map +1 -1
- package/dist/index165.js +6 -11
- package/dist/index165.js.map +1 -1
- package/dist/index166.js +9 -13
- package/dist/index166.js.map +1 -1
- package/dist/index167.js +27 -9
- package/dist/index167.js.map +1 -1
- package/dist/index168.js +10 -25
- package/dist/index168.js.map +1 -1
- package/dist/index169.js +9 -10
- package/dist/index169.js.map +1 -1
- package/dist/index17.js +179 -9
- package/dist/index17.js.map +1 -1
- package/dist/index170.js +8 -9
- package/dist/index170.js.map +1 -1
- package/dist/index171.js +6 -9
- package/dist/index171.js.map +1 -1
- package/dist/index172.js +6 -7
- package/dist/index172.js.map +1 -1
- package/dist/index173.js +7 -9
- package/dist/index173.js.map +1 -1
- package/dist/index174.js +6 -70
- package/dist/index174.js.map +1 -1
- package/dist/index175.js +7 -20
- package/dist/index175.js.map +1 -1
- package/dist/index176.js +6 -15
- package/dist/index176.js.map +1 -1
- package/dist/index177.js +6 -12
- package/dist/index177.js.map +1 -1
- package/dist/index178.js +6 -23
- package/dist/index178.js.map +1 -1
- package/dist/index179.js +16 -20
- package/dist/index179.js.map +1 -1
- package/dist/index18.js +469 -27
- package/dist/index18.js.map +1 -1
- package/dist/index180.js +158 -59
- package/dist/index180.js.map +1 -1
- package/dist/index181.js +33 -13
- package/dist/index181.js.map +1 -1
- package/dist/index182.js +12 -9
- package/dist/index182.js.map +1 -1
- package/dist/index183.js +51 -29
- package/dist/index183.js.map +1 -1
- package/dist/index184.js +14 -29
- package/dist/index184.js.map +1 -1
- package/dist/index185.js +47 -16
- package/dist/index185.js.map +1 -1
- package/dist/index186.js +98 -16
- package/dist/index186.js.map +1 -1
- package/dist/index187.js +90 -10
- package/dist/index187.js.map +1 -1
- package/dist/index188.js +109 -27
- package/dist/index188.js.map +1 -1
- package/dist/index189.js +55 -388
- package/dist/index189.js.map +1 -1
- package/dist/index19.js +266 -65
- package/dist/index19.js.map +1 -1
- package/dist/index190.js +15 -499
- package/dist/index190.js.map +1 -1
- package/dist/index191.js +39 -132
- package/dist/index191.js.map +1 -1
- package/dist/index192.js +11 -55
- package/dist/index192.js.map +1 -1
- package/dist/index193.js +6 -80
- package/dist/index193.js.map +1 -1
- package/dist/index194.js +12 -902
- package/dist/index194.js.map +1 -1
- package/dist/index195.js +119 -22
- package/dist/index195.js.map +1 -1
- package/dist/index196.js +21 -452
- package/dist/index196.js.map +1 -1
- package/dist/index197.js +18 -7
- package/dist/index197.js.map +1 -1
- package/dist/index198.js +38 -59
- package/dist/index198.js.map +1 -1
- package/dist/index199.js +23 -64
- package/dist/index199.js.map +1 -1
- package/dist/index2.js +8 -10
- package/dist/index2.js.map +1 -0
- package/dist/index20.js +5 -43
- package/dist/index20.js.map +1 -1
- package/dist/index200.js +11 -63
- package/dist/index200.js.map +1 -1
- package/dist/index201.js +22 -11
- package/dist/index201.js.map +1 -1
- package/dist/index202.js +31 -19
- package/dist/index202.js.map +1 -1
- package/dist/index203.js +20 -148
- package/dist/index203.js.map +1 -1
- package/dist/index204.js +28 -7
- package/dist/index204.js.map +1 -1
- package/dist/index205.js +32 -14
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +7 -107
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +65 -355
- package/dist/index207.js.map +1 -1
- package/dist/index208.js +184 -99
- package/dist/index208.js.map +1 -1
- package/dist/index209.js +49 -329
- package/dist/index209.js.map +1 -1
- package/dist/index21.js +28 -11
- package/dist/index21.js.map +1 -1
- package/dist/index210.js +60 -212
- package/dist/index210.js.map +1 -1
- package/dist/index211.js +12 -22
- package/dist/index211.js.map +1 -1
- package/dist/index212.js +69 -30
- package/dist/index212.js.map +1 -1
- package/dist/index213.js +21 -189
- package/dist/index213.js.map +1 -1
- package/dist/index214.js +20 -21
- package/dist/index214.js.map +1 -1
- package/dist/index215.js +9 -65
- package/dist/index215.js.map +1 -1
- package/dist/index216.js +8 -46
- package/dist/index216.js.map +1 -1
- package/dist/index217.js +9 -12
- package/dist/index217.js.map +1 -1
- package/dist/index218.js +8 -28
- package/dist/index218.js.map +1 -1
- package/dist/index219.js +9 -47
- package/dist/index219.js.map +1 -1
- package/dist/index22.js +48 -16
- package/dist/index22.js.map +1 -1
- package/dist/index220.js +19 -20
- package/dist/index220.js.map +1 -1
- package/dist/index221.js +8 -6
- package/dist/index221.js.map +1 -1
- package/dist/index222.js +7 -7
- package/dist/index222.js.map +1 -1
- package/dist/index223.js +15 -23
- package/dist/index223.js.map +1 -1
- package/dist/index224.js +12 -27
- package/dist/index224.js.map +1 -1
- package/dist/index225.js +16 -70
- package/dist/index225.js.map +1 -1
- package/dist/index226.js +16 -17
- package/dist/index226.js.map +1 -1
- package/dist/index227.js +8 -7
- package/dist/index227.js.map +1 -1
- package/dist/index228.js +8 -53
- package/dist/index228.js.map +1 -1
- package/dist/index229.js +9 -8
- package/dist/index229.js.map +1 -1
- package/dist/index23.js +37 -109
- package/dist/index23.js.map +1 -1
- package/dist/index230.js +7 -28
- package/dist/index230.js.map +1 -1
- package/dist/index231.js +57 -16
- package/dist/index231.js.map +1 -1
- package/dist/index232.js +11 -12
- package/dist/index232.js.map +1 -1
- package/dist/index233.js +8 -3
- package/dist/index233.js.map +1 -0
- package/dist/index234.js +7 -28
- package/dist/index234.js.map +1 -1
- package/dist/index235.js +11 -71
- package/dist/index235.js.map +1 -1
- package/dist/index236.js +8 -3
- package/dist/index236.js.map +1 -0
- package/dist/index237.js +7 -14
- package/dist/index237.js.map +1 -1
- package/dist/index238.js +6 -53
- package/dist/index238.js.map +1 -1
- package/dist/index239.js +13 -117
- package/dist/index239.js.map +1 -1
- package/dist/index24.js +227 -11
- package/dist/index24.js.map +1 -1
- package/dist/index240.js +13 -9
- package/dist/index240.js.map +1 -1
- package/dist/index241.js +13 -16
- package/dist/index241.js.map +1 -1
- package/dist/index242.js +13 -689
- package/dist/index242.js.map +1 -1
- package/dist/index243.js +14 -256
- package/dist/index243.js.map +1 -1
- package/dist/index244.js +13 -704
- package/dist/index244.js.map +1 -1
- package/dist/index245.js +9 -7433
- package/dist/index245.js.map +1 -1
- package/dist/index246.js +8 -9
- package/dist/index246.js.map +1 -1
- package/dist/index247.js +7 -15
- package/dist/index247.js.map +1 -1
- package/dist/index248.js +8 -8
- package/dist/index248.js.map +1 -1
- package/dist/index249.js +9 -462
- package/dist/index249.js.map +1 -1
- package/dist/index25.js +32 -23
- package/dist/index25.js.map +1 -1
- package/dist/index250.js +9 -41
- package/dist/index250.js.map +1 -1
- package/dist/index251.js +19 -22
- package/dist/index251.js.map +1 -1
- package/dist/index252.js +10 -30
- package/dist/index252.js.map +1 -1
- package/dist/index253.js +13 -7
- package/dist/index253.js.map +1 -1
- package/dist/index254.js +14 -62
- package/dist/index254.js.map +1 -1
- package/dist/index255.js +24 -10
- package/dist/index255.js.map +1 -1
- package/dist/index256.js +13 -15
- package/dist/index256.js.map +1 -1
- package/dist/index257.js +13 -6
- package/dist/index257.js.map +1 -1
- package/dist/index258.js +12 -19
- package/dist/index258.js.map +1 -1
- package/dist/index259.js +7 -28
- package/dist/index259.js.map +1 -1
- package/dist/index26.js +16 -60
- package/dist/index26.js.map +1 -1
- package/dist/index260.js +9 -47
- package/dist/index260.js.map +1 -1
- package/dist/index261.js +19 -16
- package/dist/index261.js.map +1 -1
- package/dist/index262.js +12 -28
- package/dist/index262.js.map +1 -1
- package/dist/index263.js +21 -20
- package/dist/index263.js.map +1 -1
- package/dist/index264.js +18 -38
- package/dist/index264.js.map +1 -1
- package/dist/index265.js +15 -8
- package/dist/index265.js.map +1 -1
- package/dist/index266.js +32 -12
- package/dist/index266.js.map +1 -1
- package/dist/index267.js +15 -11
- package/dist/index267.js.map +1 -1
- package/dist/index268.js +28 -12
- package/dist/index268.js.map +1 -1
- package/dist/index269.js +8 -13
- package/dist/index269.js.map +1 -1
- package/dist/index27.js +2924 -58
- package/dist/index27.js.map +1 -1
- package/dist/index270.js +23 -10
- package/dist/index270.js.map +1 -1
- package/dist/index271.js +8 -77
- package/dist/index271.js.map +1 -1
- package/dist/index272.js +5 -174
- package/dist/index272.js.map +1 -1
- package/dist/index273.js +27 -118
- package/dist/index273.js.map +1 -1
- package/dist/index274.js +115 -17
- package/dist/index274.js.map +1 -1
- package/dist/index275.js +17 -82
- package/dist/index275.js.map +1 -1
- package/dist/index276.js +528 -45
- package/dist/index276.js.map +1 -1
- package/dist/index277.js +129 -17
- package/dist/index277.js.map +1 -1
- package/dist/index278.js +137 -20
- package/dist/index278.js.map +1 -1
- package/dist/index279.js +8 -103
- package/dist/index279.js.map +1 -1
- package/dist/index28.js +6 -1
- package/dist/index28.js.map +1 -0
- package/dist/index280.js +21 -60
- package/dist/index280.js.map +1 -1
- package/dist/index281.js +16 -112
- package/dist/index281.js.map +1 -1
- package/dist/index282.js +65 -72
- package/dist/index282.js.map +1 -1
- package/dist/index283.js +72 -117
- package/dist/index283.js.map +1 -1
- package/dist/index284.js +12 -59
- package/dist/index284.js.map +1 -1
- package/dist/index285.js +17 -47
- package/dist/index285.js.map +1 -1
- package/dist/index286.js +69 -146
- package/dist/index286.js.map +1 -1
- package/dist/index287.js +8 -143
- package/dist/index287.js.map +1 -1
- package/dist/index288.js +8 -258
- package/dist/index288.js.map +1 -1
- package/dist/index289.js +7 -244
- package/dist/index289.js.map +1 -1
- package/dist/index29.js +40 -5
- package/dist/index29.js.map +1 -0
- package/dist/index290.js +19 -302
- package/dist/index290.js.map +1 -1
- package/dist/index291.js +11 -8
- package/dist/index291.js.map +1 -1
- package/dist/index292.js +8 -9
- package/dist/index292.js.map +1 -1
- package/dist/index293.js +7 -10
- package/dist/index293.js.map +1 -1
- package/dist/index294.js +548 -9
- package/dist/index294.js.map +1 -1
- package/dist/index295.js +50 -10
- package/dist/index295.js.map +1 -1
- package/dist/index296.js +20 -24
- package/dist/index296.js.map +1 -1
- package/dist/index297.js +8 -13
- package/dist/index297.js.map +1 -1
- package/dist/index298.js +11 -130
- package/dist/index298.js.map +1 -1
- package/dist/index299.js +9 -167
- package/dist/index299.js.map +1 -1
- package/dist/index3.js +181 -6
- package/dist/index3.js.map +1 -1
- package/dist/index30.js +6 -8
- package/dist/index30.js.map +1 -1
- package/dist/index300.js +11 -72
- package/dist/index300.js.map +1 -1
- package/dist/index301.js +14 -112
- package/dist/index301.js.map +1 -1
- package/dist/index302.js +12 -495
- package/dist/index302.js.map +1 -1
- package/dist/index303.js +15 -65
- package/dist/index303.js.map +1 -1
- package/dist/index304.js +7 -7
- package/dist/index304.js.map +1 -1
- package/dist/index305.js +25 -30
- package/dist/index305.js.map +1 -1
- package/dist/index306.js +6 -67
- package/dist/index306.js.map +1 -1
- package/dist/index307.js +58 -155
- package/dist/index307.js.map +1 -1
- package/dist/index308.js +71 -65
- package/dist/index308.js.map +1 -1
- package/dist/index309.js +32 -563
- package/dist/index309.js.map +1 -1
- package/dist/index31.js +128 -9
- package/dist/index31.js.map +1 -1
- package/dist/index310.js +11 -213
- package/dist/index310.js.map +1 -1
- package/dist/index311.js +156 -335
- package/dist/index311.js.map +1 -1
- package/dist/index312.js +110 -271
- package/dist/index312.js.map +1 -1
- package/dist/index313.js +26 -0
- package/dist/index313.js.map +1 -0
- package/dist/index314.js +16 -0
- package/dist/index314.js.map +1 -0
- package/dist/index315.js +31 -0
- package/dist/index315.js.map +1 -0
- package/dist/index316.js +8 -0
- package/dist/index316.js.map +1 -0
- package/dist/index317.js +19 -0
- package/dist/index317.js.map +1 -0
- package/dist/index318.js +32 -0
- package/dist/index318.js.map +1 -0
- package/dist/index319.js +16 -0
- package/dist/index319.js.map +1 -0
- package/dist/index32.js +234 -8
- package/dist/index32.js.map +1 -1
- package/dist/index320.js +10 -0
- package/dist/index320.js.map +1 -0
- package/dist/index33.js +26 -10
- package/dist/index33.js.map +1 -1
- package/dist/index34.js +54 -14
- package/dist/index34.js.map +1 -1
- package/dist/index35.js +24 -8
- package/dist/index35.js.map +1 -1
- package/dist/index36.js +133 -11
- package/dist/index36.js.map +1 -1
- package/dist/index37.js +225 -12
- package/dist/index37.js.map +1 -1
- package/dist/index38.js +94 -16
- package/dist/index38.js.map +1 -1
- package/dist/index39.js +121 -9
- package/dist/index39.js.map +1 -1
- package/dist/index4.js +28 -25
- package/dist/index4.js.map +1 -1
- package/dist/index40.js +8 -9
- package/dist/index40.js.map +1 -1
- package/dist/index41.js +847 -10
- package/dist/index41.js.map +1 -1
- package/dist/index42.js +60 -13
- package/dist/index42.js.map +1 -1
- package/dist/index43.js +10 -11
- package/dist/index43.js.map +1 -1
- package/dist/index44.js +5 -9
- package/dist/index44.js.map +1 -1
- package/dist/index45.js +14 -8
- package/dist/index45.js.map +1 -1
- package/dist/index46.js +21 -14
- package/dist/index46.js.map +1 -1
- package/dist/index47.js +10 -14
- package/dist/index47.js.map +1 -1
- package/dist/index48.js +5 -11
- package/dist/index48.js.map +1 -1
- package/dist/index49.js +26 -7
- package/dist/index49.js.map +1 -1
- package/dist/index5.js +41 -34
- package/dist/index5.js.map +1 -1
- package/dist/index50.js +236 -9
- package/dist/index50.js.map +1 -1
- package/dist/index51.js +9 -9
- package/dist/index51.js.map +1 -1
- package/dist/index52.js +36 -9
- package/dist/index52.js.map +1 -1
- package/dist/index53.js +29 -12
- package/dist/index53.js.map +1 -1
- package/dist/index54.js +10 -16
- package/dist/index54.js.map +1 -1
- package/dist/index55.js +14 -9
- package/dist/index55.js.map +1 -1
- package/dist/index56.js +5 -10
- package/dist/index56.js.map +1 -1
- package/dist/index57.js +5 -10
- package/dist/index57.js.map +1 -1
- package/dist/index58.js +5 -17
- package/dist/index58.js.map +1 -1
- package/dist/index59.js +5 -11
- package/dist/index59.js.map +1 -1
- package/dist/index6.js +469 -42
- package/dist/index6.js.map +1 -1
- package/dist/index60.js +208 -12
- package/dist/index60.js.map +1 -1
- package/dist/index61.js +8 -70
- package/dist/index61.js.map +1 -1
- package/dist/index62.js +10 -10
- package/dist/index62.js.map +1 -1
- package/dist/index63.js +8 -33
- package/dist/index63.js.map +1 -1
- package/dist/index64.js +7 -13
- package/dist/index64.js.map +1 -1
- package/dist/index65.js +50 -18
- package/dist/index65.js.map +1 -1
- package/dist/index66.js +53 -203
- package/dist/index66.js.map +1 -1
- package/dist/index67.js +10 -23
- package/dist/index67.js.map +1 -1
- package/dist/index68.js +17 -19
- package/dist/index68.js.map +1 -1
- package/dist/index69.js +136 -125
- package/dist/index69.js.map +1 -1
- package/dist/index7.js +138 -224
- package/dist/index7.js.map +1 -1
- package/dist/index70.js +13 -21
- package/dist/index70.js.map +1 -1
- package/dist/index71.js +219 -11
- package/dist/index71.js.map +1 -1
- package/dist/index72.js +16 -13
- package/dist/index72.js.map +1 -1
- package/dist/index73.js +49 -16
- package/dist/index73.js.map +1 -1
- package/dist/index74.js +52 -12
- package/dist/index74.js.map +1 -1
- package/dist/index75.js +7 -13
- package/dist/index75.js.map +1 -1
- package/dist/index76.js +8 -7
- package/dist/index76.js.map +1 -1
- package/dist/index77.js +30 -44
- package/dist/index77.js.map +1 -1
- package/dist/index78.js +52 -383
- package/dist/index78.js.map +1 -1
- package/dist/index79.js +11 -41
- package/dist/index79.js.map +1 -1
- package/dist/index8.js +875 -37
- package/dist/index8.js.map +1 -1
- package/dist/index80.js +46 -21
- package/dist/index80.js.map +1 -1
- package/dist/index81.js +8 -60
- package/dist/index81.js.map +1 -1
- package/dist/index82.js +72 -11
- package/dist/index82.js.map +1 -1
- package/dist/index83.js +5 -9
- package/dist/index83.js.map +1 -1
- package/dist/index84.js +367 -9
- package/dist/index84.js.map +1 -1
- package/dist/index85.js +265 -9
- package/dist/index85.js.map +1 -1
- package/dist/index86.js +64 -9
- package/dist/index86.js.map +1 -1
- package/dist/index87.js +50 -10
- package/dist/index87.js.map +1 -1
- package/dist/index88.js +173 -10
- package/dist/index88.js.map +1 -1
- package/dist/index89.js +113 -14
- package/dist/index89.js.map +1 -1
- package/dist/index9.js +8 -33
- package/dist/index9.js.map +1 -1
- package/dist/index90.js +27 -10
- package/dist/index90.js.map +1 -1
- package/dist/index91.js +11 -10
- package/dist/index91.js.map +1 -1
- package/dist/index92.js +7 -8
- package/dist/index92.js.map +1 -1
- package/dist/index93.js +8 -10
- package/dist/index93.js.map +1 -1
- package/dist/index94.js +7 -50
- package/dist/index94.js.map +1 -1
- package/dist/index95.js +469 -108
- package/dist/index95.js.map +1 -1
- package/dist/index96.js +188 -13
- package/dist/index96.js.map +1 -1
- package/dist/index97.js +110 -9
- package/dist/index97.js.map +1 -1
- package/dist/index98.js +265 -9
- package/dist/index98.js.map +1 -1
- package/dist/index99.js +12 -8
- package/dist/index99.js.map +1 -1
- package/package.json +7 -7
package/dist/index194.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index194.js","names":["useEffect","useMemo","useRef","useState","ReactNode","createPortal","DismissableLayerBranch","DragEndEvent","DndContext","DragOverlay","KeyboardSensor","PointerSensor","closestCenter","useSensor","useSensors","SortableContext","arrayMove","rectSortingStrategy","sortableKeyboardCoordinates","useSortable","CSS","Loader2","Maximize2","Plus","X","cn","FilesUploadFieldFile","id","url","alt","uploadKey","TENANT_ID_QUERY_PARAM","FileUploadsInitResponse","ok","error","uploadId","chunkSize","chunksTotal","FileUploadsStatusResponse","status","received","fileId","FileUploadsCompleteResponse","sha256Hex","data","ArrayBuffer","Promise","crypto","subtle","digest","bytes","Array","from","Uint8Array","map","b","toString","padStart","join","readTenantIdFromLocation","window","raw","URLSearchParams","location","search","get","normalized","trim","withTenant","path","tenantId","sep","includes","encodeURIComponent","postJson","body","options","headers","Record","signal","AbortSignal","T","response","fetch","method","credentials","JSON","stringify","payload","json","catch","getJson","putOctetStream","sha256","defaultUpload","UploadHandler","file","onProgress","initRes","filename","name","mimeType","type","isPublic","totalSize","size","Error","String","Number","doUploadChunk","index","start","end","Math","min","slice","arrayBuffer","sha","res","undefined","uploadChunks","indices","alreadyUploaded","uploaded","idx","pct","floor","allIndices","length","_","i","complete","completeRes","code","statusRes","isArray","present","Set","missing","has","push","SortableTile","t0","$","_c","item","isHovered","enableImagePreview","renderItem","onHoverEnter","onHoverLeave","onRemove","onRetry","startFullscreen","isUploading","isError","tileClasses","disabled","isDraggingExternal","removeButtonAriaLabel","t1","setNodeRef","attributes","listeners","transform","transition","isDragging","tileRef","previewRef","previewPosition","setPreviewPosition","t2","Symbol","for","el","current","rect","getBoundingClientRect","left","width","top","updatePreviewPosition","t3","t4","raf","schedule","cancelAnimationFrame","requestAnimationFrame","addEventListener","removeEventListener","t5","Transform","t6","style","t7","fileName","previewUrl","progress","tileContent","t8","node","t9","t10","t11","t12","t13","t14","t15","t16","event","next","relatedTarget","Node","contains","t17","t18","t19","t20","preview","event_0","next_0","document","t21","t22","t23","UploadResult","File","FilesUploadFieldRenderItemProps","FilesUploadFieldProps","initialFiles","onChange","files","upload","uploadIsPublic","onUploadingChange","accept","renderHeader","props","addButtonAriaLabel","FileWithState","toPreview","URL","createObjectURL","FilesUploadField","fileInputRef","_temp","images","setImages","dragActive","setDragActive","fullscreenIndex","setFullscreenIndex","hoveredId","setHoveredId","activeId","setActiveId","hoverTimeoutRef","skipNotifyRef","imagesRef","lastInitialImagesRef","onChangeRef","onUploadingChangeRef","Map","replacedIdRef","fileRef","abortRef","objectUrlRef","activationConstraint","distance","coordinateGetter","sensors","controller","values","abort","clear","revokeObjectURL","cursor","_temp2","t24","t25","t26","t27","previous","samePropValue","every","img","prepared","_temp3","preparedRawIds","_temp4","tempId","finalId","entries","delete","currentIds","_temp5","hasStaleInitialImages","some","img_3","mapped","preparedIds","_temp6","img_5","controller_0","tempUrl","sameLength","sameContent","index_0","t28","t29","_temp7","t30","t31","_temp8","t32","t33","handleKey","key","current_0","current_1","t34","list","uploads","file_0","tempId_0","randomUUID","set","next_1","current_2","updateProgress","value","nextValue","max","current_3","item_0","finalize","controller_1","AbortController","result","tempUrl_1","current_5","item_2","t35","aborted","tempUrl_0","console","current_4","item_1","allSettled","handleFiles","target","onFileInputChange","t36","click","openFileDialog","t37","id_0","controller_2","tempUrl_2","current_6","filter","item_3","removeImage","t38","id_1","file_1","existingController","current_7","item_4","updateProgress_0","value_0","nextValue_0","current_8","item_5","controller_3","result_0","tempUrl_3","current_10","item_7","t39","current_9","item_6","retryUpload","id_2","index_1","findIndex","item_8","t40","event_1","active","handleDragStart","t41","event_2","over","activeId_0","overId","current_11","oldIndex","item_9","newIndex","item_10","handleDragEnd","t42","handleDragCancel","t43","clearTimeout","clearHoverTimeout","t44","bb0","fullscreenImage","t45","t46","t47","containerClasses","t48","bb1","t49","acceptAttr","bb2","tokens","split","_temp9","Boolean","_temp0","toRenderItemProps","_temp1","t50","activeItem","find","item_12","rendered","dragOverlayContent","hideActiveTile","t51","event_3","preventDefault","t52","t53","event_4","dataTransfer","t54","t55","t56","_temp10","t57","item_14","setTimeout","current_12","tileBaseClasses","t58","t59","t60","t61","t62","t63","bb3","t64","overlay","t65","t66","current_13","current_14","t67","item_13","item_11","token","startsWith","value_1","img_6","url_0","img_4","img_2","img_1","img_0"],"sources":["../src/components/FilesUploadField/index.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, useState, type ReactNode } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { DismissableLayerBranch } from \"@radix-ui/react-dismissable-layer\"\nimport type { DragEndEvent } from \"@dnd-kit/core\"\nimport { DndContext, DragOverlay, KeyboardSensor, PointerSensor, closestCenter, useSensor, useSensors } from \"@dnd-kit/core\"\nimport {\n SortableContext,\n arrayMove,\n rectSortingStrategy,\n sortableKeyboardCoordinates,\n useSortable,\n} from \"@dnd-kit/sortable\"\nimport { CSS } from \"@dnd-kit/utilities\"\nimport { Loader2, Maximize2, Plus, X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nexport type FilesUploadFieldFile = {\n id: string\n url: string\n alt?: string\n uploadKey?: string\n}\n\nconst TENANT_ID_QUERY_PARAM = \"rb-tenant-id\"\n\ntype FileUploadsInitResponse = {\n ok: boolean\n error?: string\n uploadId?: string\n uploadKey?: string\n chunkSize?: number\n chunksTotal?: number\n}\n\ntype FileUploadsStatusResponse = {\n ok: boolean\n error?: string\n status?: \"uploading\" | \"assembling\" | \"done\" | \"error\"\n chunkSize?: number\n chunksTotal?: number\n received?: number[]\n fileId?: string\n}\n\ntype FileUploadsCompleteResponse = {\n ok: boolean\n error?: string\n fileId?: string\n}\n\nconst sha256Hex = async (data: ArrayBuffer): Promise<string | null> => {\n if (typeof crypto === \"undefined\" || typeof crypto.subtle === \"undefined\") return null\n try {\n const digest = await crypto.subtle.digest(\"SHA-256\", data)\n const bytes = Array.from(new Uint8Array(digest))\n return bytes.map((b) => b.toString(16).padStart(2, \"0\")).join(\"\")\n } catch {\n return null\n }\n}\n\nconst readTenantIdFromLocation = (): string | null => {\n if (typeof window === \"undefined\") return null\n const raw = new URLSearchParams(window.location.search || \"\").get(TENANT_ID_QUERY_PARAM)\n const normalized = raw?.trim() ?? \"\"\n return normalized ? normalized : null\n}\n\nconst withTenant = (path: string, tenantId: string | null): string => {\n if (!tenantId) return path\n const sep = path.includes(\"?\") ? \"&\" : \"?\"\n return `${path}${sep}${TENANT_ID_QUERY_PARAM}=${encodeURIComponent(tenantId)}`\n}\n\nconst postJson = async <T,>(\n url: string,\n body: unknown,\n options?: { headers?: Record<string, string>; signal?: AbortSignal },\n): Promise<{ ok: boolean; status: number; data: T }> => {\n const response = await fetch(url, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...(options?.headers ?? {}) },\n credentials: \"include\",\n body: JSON.stringify(body),\n signal: options?.signal,\n })\n\n const payload = await response.json().catch(() => ({}))\n return { ok: response.ok, status: response.status, data: payload as T }\n}\n\nconst getJson = async <T,>(\n url: string,\n options?: { headers?: Record<string, string>; signal?: AbortSignal },\n): Promise<{ ok: boolean; status: number; data: T }> => {\n const response = await fetch(url, {\n credentials: \"include\",\n headers: options?.headers,\n signal: options?.signal,\n })\n const payload = await response.json().catch(() => ({}))\n return { ok: response.ok, status: response.status, data: payload as T }\n}\n\nconst putOctetStream = async ({\n url,\n body,\n sha256,\n uploadKey,\n signal,\n}: {\n url: string\n body: ArrayBuffer\n sha256?: string\n uploadKey?: string\n signal?: AbortSignal\n}): Promise<{ ok: boolean; status: number }> => {\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/octet-stream\",\n }\n if (sha256) headers[\"X-Chunk-SHA256\"] = sha256\n if (uploadKey) headers[\"X-Upload-Key\"] = uploadKey\n\n const response = await fetch(url, {\n method: \"PUT\",\n credentials: \"include\",\n headers,\n body,\n signal,\n })\n\n return { ok: response.ok, status: response.status }\n}\n\nconst defaultUpload: UploadHandler = async (file, onProgress, options) => {\n const tenantId = readTenantIdFromLocation()\n\n const initRes = await postJson<FileUploadsInitResponse>(\n withTenant(\"/api/rb/file-uploads\", tenantId),\n {\n filename: file.name,\n mimeType: file.type || \"application/octet-stream\",\n ...(typeof options?.isPublic === \"boolean\" ? { isPublic: options.isPublic } : {}),\n totalSize: file.size,\n },\n { signal: options?.signal },\n )\n\n if (!initRes.ok || !(initRes.data as any)?.ok) {\n throw new Error((initRes.data as any)?.error ?? `Init failed (${initRes.status})`)\n }\n\n const uploadId = String((initRes.data as any)?.uploadId ?? \"\")\n const uploadKey = typeof (initRes.data as any)?.uploadKey === \"string\" ? String((initRes.data as any).uploadKey) : null\n const chunkSize = Number((initRes.data as any)?.chunkSize ?? 0)\n const chunksTotal = Number((initRes.data as any)?.chunksTotal ?? 0)\n\n if (!uploadId || !chunkSize || !chunksTotal) {\n throw new Error(\"Upload init missing required fields\")\n }\n\n const doUploadChunk = async (index: number) => {\n const start = index * chunkSize\n const end = Math.min(file.size, start + chunkSize)\n const slice = file.slice(start, end)\n const body = await slice.arrayBuffer()\n const sha = await sha256Hex(body)\n\n const res = await putOctetStream({\n url: withTenant(`/api/rb/file-uploads/${encodeURIComponent(uploadId)}/chunks/${index}`, tenantId),\n body,\n sha256: sha ?? undefined,\n uploadKey: uploadKey ?? undefined,\n signal: options?.signal,\n })\n\n if (res.status === 204) return\n throw new Error(`Chunk ${index} failed (${res.status})`)\n }\n\n const uploadChunks = async (indices: number[], alreadyUploaded = 0) => {\n let uploaded = alreadyUploaded\n\n for (const idx of indices) {\n await doUploadChunk(idx)\n uploaded += 1\n const pct = Math.min(99, Math.floor((uploaded / chunksTotal) * 99))\n onProgress(pct)\n }\n }\n\n const allIndices = Array.from({ length: chunksTotal }, (_, i) => i)\n await uploadChunks(allIndices, 0)\n\n const complete = async (): Promise<string> => {\n const completeRes = await postJson<FileUploadsCompleteResponse>(\n withTenant(`/api/rb/file-uploads/${encodeURIComponent(uploadId)}/complete`, tenantId),\n {},\n { headers: uploadKey ? { \"X-Upload-Key\": uploadKey } : undefined, signal: options?.signal },\n )\n\n if (completeRes.ok && (completeRes.data as any)?.ok) {\n const fileId = String((completeRes.data as any)?.fileId ?? \"\")\n if (!fileId) throw new Error(\"Upload completed without fileId\")\n return fileId\n }\n\n const code = String((completeRes.data as any)?.error ?? \"\")\n if (completeRes.status !== 409 || code !== \"missing_chunks\") {\n throw new Error(code || `Complete failed (${completeRes.status})`)\n }\n\n const statusRes = await getJson<FileUploadsStatusResponse>(\n withTenant(`/api/rb/file-uploads/${encodeURIComponent(uploadId)}/status`, tenantId),\n { headers: uploadKey ? { \"X-Upload-Key\": uploadKey } : undefined, signal: options?.signal },\n )\n\n if (!statusRes.ok || !(statusRes.data as any)?.ok) {\n throw new Error((statusRes.data as any)?.error ?? `Status failed (${statusRes.status})`)\n }\n\n const received = Array.isArray((statusRes.data as any)?.received) ? (statusRes.data as any).received : []\n const present = new Set<number>(received)\n const missing: number[] = []\n for (let i = 0; i < chunksTotal; i += 1) {\n if (!present.has(i)) missing.push(i)\n }\n\n if (!missing.length) {\n throw new Error(\"missing_chunks\")\n }\n\n await uploadChunks(missing, present.size)\n return complete()\n }\n\n const fileId = await complete()\n\n onProgress(100)\n return {\n id: fileId,\n url: withTenant(`/api/rb/files/${encodeURIComponent(fileId)}`, tenantId),\n alt: file.name,\n ...(uploadKey ? { uploadKey } : {}),\n }\n}\n\nfunction SortableTile({\n item,\n isHovered,\n enableImagePreview,\n renderItem,\n onHoverEnter,\n onHoverLeave,\n onRemove,\n onRetry,\n startFullscreen,\n isUploading,\n isError,\n tileClasses,\n disabled,\n isDraggingExternal,\n removeButtonAriaLabel,\n}: {\n item: FileWithState\n isHovered: boolean\n enableImagePreview: boolean\n renderItem?: (props: FilesUploadFieldRenderItemProps) => ReactNode\n onHoverEnter: () => void\n onHoverLeave: () => void\n onRemove: (id: string) => void\n onRetry: (id: string) => void\n startFullscreen: (id: string) => void\n isUploading: boolean\n isError: boolean\n tileClasses: string\n disabled: boolean\n isDraggingExternal: boolean\n removeButtonAriaLabel: string\n}) {\n const { setNodeRef, attributes, listeners, transform, transition, isDragging } = useSortable({\n id: item.id,\n disabled,\n })\n\n const tileRef = useRef<HTMLDivElement | null>(null)\n const previewRef = useRef<HTMLDivElement | null>(null)\n const [previewPosition, setPreviewPosition] = useState<{ left: number; top: number } | null>(null)\n\n const updatePreviewPosition = () => {\n const el = tileRef.current\n if (!el) return\n const rect = el.getBoundingClientRect()\n setPreviewPosition({ left: rect.left + rect.width / 2, top: rect.top - 10 })\n }\n\n useEffect(() => {\n if (!enableImagePreview || !isHovered) {\n setPreviewPosition(null)\n return\n }\n\n updatePreviewPosition()\n\n let raf = 0\n const schedule = () => {\n if (raf) cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n raf = 0\n updatePreviewPosition()\n })\n }\n\n window.addEventListener(\"resize\", schedule)\n window.addEventListener(\"scroll\", schedule, true)\n return () => {\n if (raf) cancelAnimationFrame(raf)\n window.removeEventListener(\"resize\", schedule)\n window.removeEventListener(\"scroll\", schedule, true)\n }\n }, [enableImagePreview, isHovered])\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n }\n\n const tileContent = renderItem\n ? renderItem({\n file: { id: item.id, url: item.url, alt: item.alt, uploadKey: item.uploadKey },\n previewUrl: item.previewUrl,\n status: item.status,\n progress: item.progress,\n fileName: item.fileName,\n })\n : enableImagePreview\n ? (\n <img\n src={item.previewUrl}\n alt={item.alt ?? \"Uploaded file\"}\n className={cn(\n \"size-full rounded-md object-cover\",\n isUploading && \"opacity-75\",\n isError && \"grayscale\"\n )}\n />\n )\n : (\n <div className=\"flex size-full items-center justify-center rounded-md bg-slate-100 px-2 text-center text-[10px] font-medium text-slate-700 dark:bg-slate-800 dark:text-slate-200\">\n <span className=\"w-full truncate\">{item.fileName ?? item.alt ?? \"Fichier\"}</span>\n </div>\n )\n\n return (\n <div\n ref={(node) => {\n tileRef.current = node\n setNodeRef(node)\n }}\n style={style}\n className={cn(\n tileClasses,\n isDragging && \"z-20 ring-2 ring-primary shadow-xl\",\n isDraggingExternal && \"opacity-0\",\n !disabled && \"cursor-grab active:cursor-grabbing\",\n isDragging && \"cursor-grabbing\",\n disabled && \"cursor-default\"\n )}\n onMouseEnter={() => {\n updatePreviewPosition()\n onHoverEnter()\n }}\n onMouseLeave={(event) => {\n const next = event.relatedTarget\n if (next instanceof Node && previewRef.current?.contains(next)) return\n onHoverLeave()\n }}\n {...attributes}\n {...listeners}\n >\n {tileContent}\n\n <button\n type=\"button\"\n onClick={() => {\n if (disabled) return\n onRemove(item.id)\n }}\n disabled={disabled}\n className=\"absolute right-1 top-1 inline-flex size-6 items-center justify-center rounded-full bg-white text-slate-700 shadow-sm transition hover:scale-105 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary dark:bg-slate-900 dark:text-slate-200\"\n aria-label={removeButtonAriaLabel}\n >\n <X className=\"h-4 w-4\" />\n </button>\n\n {enableImagePreview &&\n isHovered &&\n previewPosition &&\n (() => {\n const preview = (\n <DismissableLayerBranch>\n <div\n ref={previewRef}\n className=\"pointer-events-auto fixed z-[60] w-52 -translate-x-1/2 -translate-y-full rounded-xl border border-slate-200 bg-white/95 p-3 shadow-2xl backdrop-blur dark:border-slate-700 dark:bg-slate-900/95\"\n style={{ left: previewPosition.left, top: previewPosition.top }}\n onMouseEnter={() => {\n updatePreviewPosition()\n onHoverEnter()\n }}\n onMouseLeave={(event) => {\n const next = event.relatedTarget\n if (next instanceof Node && tileRef.current?.contains(next)) return\n onHoverLeave()\n }}\n >\n <div className=\"relative overflow-hidden rounded-lg\">\n <img src={item.url} alt={item.alt ?? \"Preview\"} className=\"h-40 w-full object-cover\" />\n <button\n type=\"button\"\n onClick={() => startFullscreen(item.id)}\n className=\"absolute right-2 top-2 inline-flex items-center justify-center rounded-full bg-black/70 p-2 text-white transition hover:bg-black\"\n aria-label=\"Plein écran\"\n >\n <Maximize2 className=\"h-3.5 w-3.5\" />\n </button>\n </div>\n </div>\n </DismissableLayerBranch>\n )\n\n if (typeof document === \"undefined\") return preview\n return createPortal(preview, document.body)\n })()}\n\n {isUploading && (\n <div className=\"absolute inset-0 z-20 flex flex-col items-center justify-center gap-2 rounded-lg bg-black/40 text-white\">\n <Loader2 className=\"h-5 w-5 animate-spin\" />\n <div className=\"h-1.5 w-5/6 rounded-full bg-white/20\">\n <div className=\"h-full rounded-full bg-primary\" style={{ width: `${item.progress}%` }} />\n </div>\n <div className=\"text-xs font-semibold\">{item.progress}%</div>\n </div>\n )}\n\n {isError && (\n <div className=\"absolute inset-0 z-10 flex flex-col items-center justify-center gap-2 rounded-lg bg-red-600/70 text-white\">\n <div className=\"text-xs font-semibold\">Échec</div>\n <button\n type=\"button\"\n onClick={() => onRetry(item.id)}\n disabled={disabled}\n className=\"rounded-full bg-white/90 px-3 py-1 text-xs font-semibold text-red-700 shadow-sm transition hover:bg-white focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white\"\n >\n Réessayer\n </button>\n </div>\n )}\n </div>\n )\n}\n\ntype UploadResult = FilesUploadFieldFile | Promise<FilesUploadFieldFile>\n\ntype UploadHandler = (\n file: File,\n onProgress: (progress: number) => void,\n options?: { signal?: AbortSignal; isPublic?: boolean },\n) => UploadResult\n\nexport type FilesUploadFieldRenderItemProps = {\n file: FilesUploadFieldFile\n previewUrl: string\n status: \"uploaded\" | \"uploading\" | \"error\"\n progress: number\n fileName?: string\n}\n\nexport type FilesUploadFieldProps = {\n initialFiles?: FilesUploadFieldFile[]\n onChange?: (files: FilesUploadFieldFile[]) => void\n upload?: UploadHandler\n uploadIsPublic?: boolean\n disabled?: boolean\n onUploadingChange?: (isUploading: boolean) => void\n accept?: string | string[]\n renderHeader?: () => ReactNode\n renderItem?: (props: FilesUploadFieldRenderItemProps) => ReactNode\n addButtonAriaLabel?: string\n removeButtonAriaLabel?: string\n}\n\ntype FileWithState = FilesUploadFieldFile & {\n previewUrl: string\n status: \"uploaded\" | \"uploading\" | \"error\"\n progress: number\n fileName?: string\n}\n\nfunction toPreview(file: File) {\n return URL.createObjectURL(file)\n}\n\nexport function FilesUploadField({\n initialFiles = [],\n onChange,\n upload = defaultUpload,\n uploadIsPublic = false,\n disabled = false,\n onUploadingChange,\n accept,\n renderHeader,\n renderItem,\n addButtonAriaLabel = \"Ajouter un fichier\",\n removeButtonAriaLabel = \"Supprimer le fichier\",\n}: FilesUploadFieldProps) {\n const fileInputRef = useRef<HTMLInputElement>(null)\n const [images, setImages] = useState<FileWithState[]>(() =>\n initialFiles.map((file) => ({ ...file, previewUrl: file.url, status: \"uploaded\", progress: 100 }))\n )\n const [dragActive, setDragActive] = useState(false)\n const [fullscreenIndex, setFullscreenIndex] = useState<number | null>(null)\n const [hoveredId, setHoveredId] = useState<string | null>(null)\n const [activeId, setActiveId] = useState<string | null>(null)\n const hoverTimeoutRef = useRef<number | null>(null)\n const skipNotifyRef = useRef(true)\n const imagesRef = useRef<FileWithState[]>([])\n const lastInitialImagesRef = useRef<FilesUploadFieldFile[]>(initialFiles)\n const onChangeRef = useRef(onChange)\n const onUploadingChangeRef = useRef(onUploadingChange)\n const replacedIdRef = useRef<Map<string, string>>(new Map())\n const fileRef = useRef<Map<string, File>>(new Map())\n const abortRef = useRef<Map<string, AbortController>>(new Map())\n const objectUrlRef = useRef<Map<string, string>>(new Map())\n const sensors = useSensors(\n useSensor(PointerSensor, { activationConstraint: { distance: 6 } }),\n useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates })\n )\n\n useEffect(() => {\n return () => {\n for (const controller of abortRef.current.values()) {\n try {\n controller.abort()\n } catch {\n //\n }\n }\n abortRef.current.clear()\n fileRef.current.clear()\n replacedIdRef.current.clear()\n\n for (const url of objectUrlRef.current.values()) {\n if (typeof URL !== \"undefined\") {\n try {\n URL.revokeObjectURL(url)\n } catch {\n //\n }\n }\n }\n objectUrlRef.current.clear()\n }\n }, [])\n\n useEffect(() => {\n if (typeof document === \"undefined\") return\n if (activeId) {\n document.body.style.cursor = \"grabbing\"\n return () => {\n document.body.style.cursor = \"\"\n }\n }\n document.body.style.cursor = \"\"\n }, [activeId])\n\n useEffect(() => {\n imagesRef.current = images\n }, [images])\n\n useEffect(() => {\n onChangeRef.current = onChange\n }, [onChange])\n\n useEffect(() => {\n onUploadingChangeRef.current = onUploadingChange\n }, [onUploadingChange])\n\n useEffect(() => {\n const previous = lastInitialImagesRef.current\n const samePropValue =\n previous.length === initialFiles.length &&\n previous.every((img, index) => {\n const next = initialFiles[index]\n return next && img.id === next.id && img.url === next.url && img.alt === next.alt\n })\n\n if (samePropValue) return\n lastInitialImagesRef.current = initialFiles\n\n const prepared: FileWithState[] = initialFiles.map((img) => ({\n ...img,\n previewUrl: img.url,\n status: \"uploaded\",\n progress: 100,\n }))\n\n const preparedRawIds = new Set(prepared.map((img) => img.id))\n for (const [tempId, finalId] of replacedIdRef.current.entries()) {\n if (preparedRawIds.has(finalId)) {\n replacedIdRef.current.delete(tempId)\n }\n }\n\n const currentIds = new Set(imagesRef.current.map((img) => img.id))\n const hasStaleInitialImages = prepared.some((img) => {\n const mapped = replacedIdRef.current.get(img.id)\n return mapped ? currentIds.has(mapped) : false\n })\n if (hasStaleInitialImages) return\n\n const preparedIds = new Set(prepared.map((img) => img.id))\n for (const img of imagesRef.current) {\n if (preparedIds.has(img.id)) continue\n\n const controller = abortRef.current.get(img.id)\n if (controller) {\n abortRef.current.delete(img.id)\n try {\n controller.abort()\n } catch {\n //\n }\n }\n\n fileRef.current.delete(img.id)\n\n const tempUrl = objectUrlRef.current.get(img.id)\n if (tempUrl) {\n objectUrlRef.current.delete(img.id)\n try {\n URL.revokeObjectURL(tempUrl)\n } catch {\n //\n }\n }\n }\n\n setImages((current) => {\n const sameLength = current.length === prepared.length\n const sameContent =\n sameLength &&\n current.every((item, index) => {\n const next = prepared[index]\n return next && item.id === next.id && item.url === next.url && item.alt === next.alt && item.uploadKey === next.uploadKey\n })\n\n if (sameContent) return current\n\n skipNotifyRef.current = true\n return prepared\n })\n }, [initialFiles])\n\n useEffect(() => {\n if (skipNotifyRef.current) {\n skipNotifyRef.current = false\n return\n }\n\n onChangeRef.current?.(images.map(({ id, url, alt, uploadKey }) => ({ id, url, alt, uploadKey })))\n }, [images])\n\n useEffect(() => {\n onUploadingChangeRef.current?.(images.some((img) => img.status === \"uploading\"))\n }, [images])\n\n useEffect(() => {\n if (fullscreenIndex === null) {\n return\n }\n\n const handleKey = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setFullscreenIndex(null)\n return\n }\n\n if (event.key === \"ArrowRight\") {\n setFullscreenIndex((current) => {\n if (current === null) return current\n return (current + 1) % images.length\n })\n return\n }\n\n if (event.key === \"ArrowLeft\") {\n setFullscreenIndex((current) => {\n if (current === null) return current\n return (current - 1 + images.length) % images.length\n })\n }\n }\n\n window.addEventListener(\"keydown\", handleKey)\n return () => window.removeEventListener(\"keydown\", handleKey)\n }, [fullscreenIndex, images.length])\n\n const handleFiles = async (files: FileList | File[]) => {\n if (disabled) return\n const list = Array.from(files)\n\n const uploads = list.map((file) => {\n const previewUrl = toPreview(file)\n const tempId = crypto.randomUUID()\n\n objectUrlRef.current.set(tempId, previewUrl)\n fileRef.current.set(tempId, file)\n\n const next: FileWithState = {\n id: tempId,\n url: previewUrl,\n previewUrl,\n alt: file.name,\n status: \"uploading\",\n progress: 0,\n fileName: file.name,\n }\n\n setImages((current) => [...current, next])\n\n const updateProgress = (value: number) => {\n const nextValue = Math.max(0, Math.min(99, value))\n setImages((current) =>\n current.map((item) =>\n item.id === tempId ? { ...item, progress: nextValue, status: \"uploading\" } : item\n )\n )\n }\n\n const finalize = async () => {\n const controller = new AbortController()\n abortRef.current.set(tempId, controller)\n\n try {\n const result = await upload(file, updateProgress, { signal: controller.signal, isPublic: uploadIsPublic })\n replacedIdRef.current.set(tempId, result.id)\n\n const tempUrl = objectUrlRef.current.get(tempId)\n if (tempUrl) {\n objectUrlRef.current.delete(tempId)\n try {\n URL.revokeObjectURL(tempUrl)\n } catch {\n //\n }\n }\n\n abortRef.current.delete(tempId)\n fileRef.current.delete(tempId)\n\n setImages((current) =>\n current.map((item) =>\n item.id === tempId\n ? {\n ...item,\n ...result,\n previewUrl: result.url,\n url: result.url,\n status: \"uploaded\",\n progress: 100,\n }\n : item\n )\n )\n } catch (error) {\n abortRef.current.delete(tempId)\n if (controller.signal.aborted) {\n fileRef.current.delete(tempId)\n const tempUrl = objectUrlRef.current.get(tempId)\n if (tempUrl) {\n objectUrlRef.current.delete(tempId)\n try {\n URL.revokeObjectURL(tempUrl)\n } catch {\n //\n }\n }\n return\n }\n console.error(\"Upload failed\", error)\n setImages((current) =>\n current.map((item) =>\n item.id === tempId\n ? { ...item, status: \"error\", progress: Math.max(0, Math.min(99, item.progress)) }\n : item\n )\n )\n }\n }\n\n return finalize()\n })\n\n await Promise.allSettled(uploads)\n }\n\n const onFileInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!event.target.files) return\n void handleFiles(event.target.files)\n event.target.value = \"\"\n }\n\n const openFileDialog = () => {\n if (disabled) return\n fileInputRef.current?.click()\n }\n\n const removeImage = (id: string) => {\n const controller = abortRef.current.get(id)\n if (controller) {\n abortRef.current.delete(id)\n try {\n controller.abort()\n } catch {\n //\n }\n }\n\n fileRef.current.delete(id)\n\n const tempUrl = objectUrlRef.current.get(id)\n if (tempUrl) {\n objectUrlRef.current.delete(id)\n try {\n URL.revokeObjectURL(tempUrl)\n } catch {\n //\n }\n }\n\n setImages((current) => current.filter((item) => item.id !== id))\n }\n\n const retryUpload = (id: string) => {\n if (disabled) return\n const file = fileRef.current.get(id)\n if (!file) return\n\n const existingController = abortRef.current.get(id)\n if (existingController) {\n try {\n existingController.abort()\n } catch {\n //\n }\n abortRef.current.delete(id)\n }\n\n setImages((current) =>\n current.map((item) => (item.id === id ? { ...item, status: \"uploading\", progress: 0 } : item))\n )\n\n const updateProgress = (value: number) => {\n const nextValue = Math.max(0, Math.min(99, value))\n setImages((current) =>\n current.map((item) => (item.id === id ? { ...item, progress: nextValue, status: \"uploading\" } : item))\n )\n }\n\n const controller = new AbortController()\n abortRef.current.set(id, controller)\n\n void (async () => {\n try {\n const result = await upload(file, updateProgress, { signal: controller.signal, isPublic: uploadIsPublic })\n replacedIdRef.current.set(id, result.id)\n\n const tempUrl = objectUrlRef.current.get(id)\n if (tempUrl) {\n objectUrlRef.current.delete(id)\n try {\n URL.revokeObjectURL(tempUrl)\n } catch {\n //\n }\n }\n\n abortRef.current.delete(id)\n fileRef.current.delete(id)\n\n setImages((current) =>\n current.map((item) =>\n item.id === id\n ? { ...item, ...result, previewUrl: result.url, url: result.url, status: \"uploaded\", progress: 100 }\n : item\n )\n )\n } catch (error) {\n abortRef.current.delete(id)\n if (controller.signal.aborted) return\n console.error(\"Retry failed\", error)\n setImages((current) => current.map((item) => (item.id === id ? { ...item, status: \"error\" } : item)))\n }\n })()\n }\n\n const startFullscreen = (id: string) => {\n const index = images.findIndex((item) => item.id === id)\n if (index !== -1) {\n setFullscreenIndex(index)\n }\n }\n\n const handleDragStart = (event: DragEndEvent) => {\n setActiveId(String(event.active.id))\n }\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event\n if (!over) {\n setActiveId(null)\n return\n }\n\n const activeId = String(active.id)\n const overId = String(over.id)\n\n if (activeId !== overId) {\n setImages((current) => {\n const oldIndex = current.findIndex((item) => item.id === activeId)\n const newIndex = current.findIndex((item) => item.id === overId)\n if (oldIndex === -1 || newIndex === -1) return current\n return arrayMove(current, oldIndex, newIndex)\n })\n }\n\n setActiveId(null)\n }\n\n const handleDragCancel = () => {\n setActiveId(null)\n }\n\n const clearHoverTimeout = () => {\n if (hoverTimeoutRef.current !== null) {\n window.clearTimeout(hoverTimeoutRef.current)\n hoverTimeoutRef.current = null\n }\n }\n\n const fullscreenImage = useMemo(() => {\n if (fullscreenIndex === null) return null\n return images[fullscreenIndex] ?? null\n }, [fullscreenIndex, images])\n\n const containerClasses = cn(\n \"rounded-xl border border-dashed border-slate-300 bg-white/70 p-4 shadow-sm transition-colors dark:border-slate-700 dark:bg-slate-900/60\",\n dragActive && \"border-primary ring-2 ring-primary/50\",\n disabled && \"opacity-70\"\n )\n\n const tileBaseClasses = \"group relative size-20 overflow-visible rounded-lg border border-slate-200 bg-slate-50 shadow-inner transition hover:shadow md:size-24 dark:border-slate-700 dark:bg-slate-800\"\n\n const acceptAttr = useMemo(() => {\n if (!accept) return undefined\n if (Array.isArray(accept)) return accept.join(\",\")\n return accept\n }, [accept])\n\n const enableImagePreview = useMemo(() => {\n if (renderItem) return false\n if (!acceptAttr) return false\n const tokens = acceptAttr.split(\",\").map((value) => value.trim()).filter(Boolean)\n if (!tokens.length) return false\n return tokens.every((token) => token === \"image/*\" || token.startsWith(\"image/\"))\n }, [acceptAttr, renderItem])\n\n const toRenderItemProps = (item: FileWithState): FilesUploadFieldRenderItemProps => ({\n file: { id: item.id, url: item.url, alt: item.alt, uploadKey: item.uploadKey },\n previewUrl: item.previewUrl,\n status: item.status,\n progress: item.progress,\n fileName: item.fileName,\n })\n\n const dragOverlayContent = activeId\n ? (() => {\n const activeItem = images.find((item) => item.id === activeId)\n if (!activeItem) return null\n\n if (renderItem) {\n const rendered = renderItem(toRenderItemProps(activeItem))\n if (rendered === null || rendered === undefined || rendered === false) return null\n return (\n <div className=\"pointer-events-none\">\n <div className=\"h-24 w-24 overflow-hidden rounded-lg shadow-2xl\">{rendered}</div>\n </div>\n )\n }\n\n if (!enableImagePreview) return null\n return (\n <div className=\"pointer-events-none\">\n <img\n src={activeItem.previewUrl}\n alt={activeItem.alt ?? \"Dragged image\"}\n className=\"h-24 w-24 rounded-lg object-cover shadow-2xl\"\n />\n </div>\n )\n })()\n : null\n\n const hideActiveTile = dragOverlayContent !== null && dragOverlayContent !== undefined\n\n return (\n <div\n onDragOver={(event) => {\n event.preventDefault()\n if (!disabled) {\n setDragActive(true)\n }\n }}\n onDragLeave={() => setDragActive(false)}\n onDrop={(event) => {\n event.preventDefault()\n setDragActive(false)\n if (event.dataTransfer.files?.length) {\n void handleFiles(event.dataTransfer.files)\n }\n }}\n className={containerClasses}\n >\n {renderHeader ? <div className=\"mb-3\">{renderHeader()}</div> : null}\n\n <DndContext\n sensors={disabled ? undefined : sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n onDragCancel={handleDragCancel}\n >\n <SortableContext items={images.map((item) => item.id)} strategy={rectSortingStrategy}>\n <div className=\"flex flex-wrap gap-3\">\n {images.map((item) => {\n const isUploading = item.status === \"uploading\"\n const isError = item.status === \"error\"\n\n return (\n <SortableTile\n key={item.id}\n item={item}\n isHovered={hoveredId === item.id}\n enableImagePreview={enableImagePreview}\n renderItem={renderItem}\n onHoverEnter={() => {\n clearHoverTimeout()\n setHoveredId(item.id)\n }}\n onHoverLeave={() => {\n clearHoverTimeout()\n hoverTimeoutRef.current = window.setTimeout(() => {\n setHoveredId((current) => (current === item.id ? null : current))\n hoverTimeoutRef.current = null\n }, 120)\n }}\n onRemove={removeImage}\n onRetry={retryUpload}\n startFullscreen={startFullscreen}\n isUploading={isUploading}\n isError={isError}\n tileClasses={tileBaseClasses}\n disabled={disabled}\n isDraggingExternal={hideActiveTile && activeId === item.id}\n removeButtonAriaLabel={removeButtonAriaLabel}\n />\n )\n })}\n\n <button\n type=\"button\"\n onClick={openFileDialog}\n disabled={disabled}\n className={cn(\n tileBaseClasses,\n \"flex items-center justify-center border-dashed bg-white text-slate-500 hover:border-slate-300 dark:bg-slate-900\"\n )}\n aria-label={addButtonAriaLabel}\n >\n <div className=\"flex flex-col items-center gap-1\">\n <div className=\"flex size-9 items-center justify-center rounded-full border border-slate-300 bg-slate-100 text-slate-600 shadow-inner dark:border-slate-700 dark:bg-slate-800 dark:text-slate-200\">\n <Plus className=\"h-5 w-5\" />\n </div>\n <span className=\"text-xs font-medium\">Ajouter</span>\n </div>\n </button>\n </div>\n </SortableContext>\n {(() => {\n const overlay = <DragOverlay>{dragOverlayContent}</DragOverlay>\n\n if (typeof document === \"undefined\") return overlay\n return createPortal(overlay, document.body)\n })()}\n </DndContext>\n\n <input\n ref={fileInputRef}\n type=\"file\"\n accept={acceptAttr}\n multiple\n className=\"hidden\"\n onChange={onFileInputChange}\n aria-hidden\n />\n\n {enableImagePreview && fullscreenImage && (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center bg-black/90\">\n <button\n type=\"button\"\n className=\"absolute left-6 top-1/2 -translate-y-1/2 rounded-full bg-white/10 p-3 text-white shadow-lg transition hover:bg-white/20 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white\"\n onClick={() =>\n setFullscreenIndex((current) => {\n if (current === null) return current\n return (current - 1 + images.length) % images.length\n })\n }\n aria-label=\"Précédent\"\n >\n <svg viewBox=\"0 0 24 24\" className=\"h-6 w-6\" stroke=\"currentColor\" strokeWidth={2} fill=\"none\">\n <path d=\"M15 18l-6-6 6-6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n <div className=\"relative max-h-[80vh] max-w-4xl\">\n <img\n src={fullscreenImage.url}\n alt={fullscreenImage.alt ?? \"Fullscreen\"}\n className=\"max-h-[80vh] max-w-full rounded-lg object-contain shadow-2xl\"\n />\n <button\n type=\"button\"\n className=\"absolute right-3 top-3 inline-flex size-9 items-center justify-center rounded-full bg-black/70 text-white transition hover:bg-black focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white\"\n onClick={() => setFullscreenIndex(null)}\n aria-label=\"Fermer\"\n >\n <X className=\"h-5 w-5\" />\n </button>\n </div>\n <button\n type=\"button\"\n className=\"absolute right-6 top-1/2 -translate-y-1/2 rounded-full bg-white/10 p-3 text-white shadow-lg transition hover:bg-white/20 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white\"\n onClick={() =>\n setFullscreenIndex((current) => {\n if (current === null) return current\n return (current + 1) % images.length\n })\n }\n aria-label=\"Suivant\"\n >\n <svg viewBox=\"0 0 24 24\" className=\"h-6 w-6\" stroke=\"currentColor\" strokeWidth={2} fill=\"none\">\n <path d=\"M9 6l6 6-6 6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n </div>\n )}\n </div>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index194.js","sources":["../../../node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js"],"sourcesContent":["import Metadata from '../metadata.js';\n\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/;\n\n// If the `country` supports IDD calling, it returns a preferred IDD prefix.\n// If the `country` doesn't support IDD calling, it returns `undefined`.\nexport default function getIddPrefix(country, callingCode, metadata) {\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n if (countryMetadata.defaultIDDPrefix()) {\n return countryMetadata.defaultIDDPrefix();\n }\n if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n}\n//# sourceMappingURL=getIddPrefix.js.map"],"names":["SINGLE_IDD_PREFIX_REG_EXP","getIddPrefix","country","callingCode","metadata","countryMetadata","Metadata"],"mappings":";AAWA,IAAIA,IAA4B;AAIjB,SAASC,EAAaC,GAASC,GAAaC,GAAU;AACnE,MAAIC,IAAkB,IAAIC,EAASF,CAAQ;AAE3C,MADAC,EAAgB,oBAAoBH,GAASC,CAAW,GACpDE,EAAgB;AAClB,WAAOA,EAAgB,iBAAgB;AAEzC,MAAIL,EAA0B,KAAKK,EAAgB,UAAS,CAAE;AAC5D,WAAOA,EAAgB,UAAS;AAEpC;","x_google_ignoreList":[0]}
|
package/dist/index195.js
CHANGED
|
@@ -1,23 +1,120 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
import { MIN_LENGTH_FOR_NSN as g, MAX_LENGTH_FOR_NSN as h, PLUS_CHARS as P, VALID_DIGITS as d } from "./index91.js";
|
|
2
|
+
import m from "./index187.js";
|
|
3
|
+
import T, { getCountryCallingCode as O } from "./index95.js";
|
|
4
|
+
import s, { isViablePhoneNumberStart as v } from "./index196.js";
|
|
5
|
+
import w from "./index197.js";
|
|
6
|
+
import y from "./index191.js";
|
|
7
|
+
import { isPossibleNumber as S } from "./index181.js";
|
|
8
|
+
import x from "./index96.js";
|
|
9
|
+
import R from "./index193.js";
|
|
10
|
+
import E from "./index185.js";
|
|
11
|
+
import I from "./index198.js";
|
|
12
|
+
import A from "./index99.js";
|
|
13
|
+
import p from "./index199.js";
|
|
14
|
+
var H = 250, L = new RegExp("[" + P + d + "]"), U = new RegExp("[^" + d + "#]+$");
|
|
15
|
+
function Z(t, r, n) {
|
|
16
|
+
if (r = r || {}, n = new T(n), r.defaultCountry && !n.hasCountry(r.defaultCountry))
|
|
17
|
+
throw r.v2 ? new m("INVALID_COUNTRY") : new Error("Unknown country: ".concat(r.defaultCountry));
|
|
18
|
+
var e = G(t, r.v2, r.extract), l = e.number, c = e.ext, i = e.error;
|
|
19
|
+
if (!l) {
|
|
20
|
+
if (r.v2)
|
|
21
|
+
throw i === "TOO_SHORT" ? new m("TOO_SHORT") : new m("NOT_A_NUMBER");
|
|
22
|
+
return {};
|
|
23
|
+
}
|
|
24
|
+
var a = D(l, r.defaultCountry, r.defaultCallingCode, n), o = a.country, u = a.nationalNumber, N = a.countryCallingCode, _ = a.countryCallingCodeSource, f = a.carrierCode;
|
|
25
|
+
if (!n.hasSelectedNumberingPlan()) {
|
|
26
|
+
if (r.v2)
|
|
27
|
+
throw new m("INVALID_COUNTRY");
|
|
28
|
+
return {};
|
|
29
|
+
}
|
|
30
|
+
if (!u || u.length < g) {
|
|
31
|
+
if (r.v2)
|
|
32
|
+
throw new m("TOO_SHORT");
|
|
33
|
+
return {};
|
|
34
|
+
}
|
|
35
|
+
if (u.length > h) {
|
|
36
|
+
if (r.v2)
|
|
37
|
+
throw new m("TOO_LONG");
|
|
38
|
+
return {};
|
|
39
|
+
}
|
|
40
|
+
if (r.v2) {
|
|
41
|
+
var C = new x(N, u, n.metadata);
|
|
42
|
+
return o && (C.country = o), f && (C.carrierCode = f), c && (C.ext = c), C.__countryCallingCodeSource = _, C;
|
|
43
|
+
}
|
|
44
|
+
var b = (r.extended ? n.hasSelectedNumberingPlan() : o) ? R(u, n.nationalNumberPattern()) : !1;
|
|
45
|
+
return r.extended ? {
|
|
46
|
+
country: o,
|
|
47
|
+
countryCallingCode: N,
|
|
48
|
+
carrierCode: f,
|
|
49
|
+
valid: b,
|
|
50
|
+
possible: b ? !0 : !!(r.extended === !0 && n.possibleLengths() && S(u, o, n)),
|
|
51
|
+
phone: u,
|
|
52
|
+
ext: c
|
|
53
|
+
} : b ? M(o, u, c) : {};
|
|
19
54
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
55
|
+
function F(t, r, n) {
|
|
56
|
+
if (t) {
|
|
57
|
+
if (t.length > H) {
|
|
58
|
+
if (n)
|
|
59
|
+
throw new m("TOO_LONG");
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (r === !1)
|
|
63
|
+
return t;
|
|
64
|
+
var e = t.search(L);
|
|
65
|
+
if (!(e < 0))
|
|
66
|
+
return t.slice(e).replace(U, "");
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function G(t, r, n) {
|
|
70
|
+
var e = p(t, {
|
|
71
|
+
extractFormattedPhoneNumber: function(i) {
|
|
72
|
+
return F(i, n, r);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
if (!e)
|
|
76
|
+
return {};
|
|
77
|
+
if (!s(e))
|
|
78
|
+
return v(e) ? {
|
|
79
|
+
error: "TOO_SHORT"
|
|
80
|
+
} : {};
|
|
81
|
+
var l = w(e);
|
|
82
|
+
return l.ext ? l : {
|
|
83
|
+
number: e
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
function M(t, r, n) {
|
|
87
|
+
var e = {
|
|
88
|
+
country: t,
|
|
89
|
+
phone: r
|
|
90
|
+
};
|
|
91
|
+
return n && (e.ext = n), e;
|
|
92
|
+
}
|
|
93
|
+
function D(t, r, n, e) {
|
|
94
|
+
var l = E(y(t), void 0, r, n, e.metadata), c = l.countryCallingCodeSource, i = l.countryCallingCode, a = l.number, o;
|
|
95
|
+
if (i)
|
|
96
|
+
e.selectNumberingPlan(i);
|
|
97
|
+
else if (a && (r || n))
|
|
98
|
+
e.selectNumberingPlan(r, n), r && (o = r), i = n || O(r, e.metadata);
|
|
99
|
+
else return {};
|
|
100
|
+
if (!a)
|
|
101
|
+
return {
|
|
102
|
+
countryCallingCodeSource: c,
|
|
103
|
+
countryCallingCode: i
|
|
104
|
+
};
|
|
105
|
+
var u = I(y(a), o, e), N = u.nationalNumber, _ = u.carrierCode, f = A(i, {
|
|
106
|
+
nationalNumber: N,
|
|
107
|
+
metadata: e
|
|
108
|
+
});
|
|
109
|
+
return f && (o = f, f === "001" || e.selectNumberingPlan(o)), {
|
|
110
|
+
country: o,
|
|
111
|
+
countryCallingCode: i,
|
|
112
|
+
countryCallingCodeSource: c,
|
|
113
|
+
nationalNumber: N,
|
|
114
|
+
carrierCode: _
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
export {
|
|
118
|
+
Z as default
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=index195.js.map
|
package/dist/index195.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index195.js","names":["FilesUploadFieldFile","FilesUploadFieldProps","FilesUploadField","ImagesFieldImage","ImagesFieldProps","Omit","initialImages","onChange","images","ImagesField","t0","$","_c","props","t1","t2","t3","t4","accept","addButtonAriaLabel","removeButtonAriaLabel","t5","undefined","t6"],"sources":["../src/components/ImagesField/index.tsx"],"sourcesContent":["import type { FilesUploadFieldFile, FilesUploadFieldProps } from \"../FilesUploadField\"\nimport { FilesUploadField } from \"../FilesUploadField\"\n\n\nexport type ImagesFieldImage = FilesUploadFieldFile\n\nexport type ImagesFieldProps = Omit<FilesUploadFieldProps, \"initialFiles\" | \"onChange\"> & {\n initialImages?: ImagesFieldImage[]\n onChange?: (images: ImagesFieldImage[]) => void\n}\n\nexport function ImagesField({\n initialImages = [],\n onChange,\n accept = \"image/*\",\n addButtonAriaLabel = \"Ajouter une image\",\n removeButtonAriaLabel = \"Supprimer l'image\",\n ...props\n}: ImagesFieldProps) {\n return (\n <FilesUploadField\n initialFiles={initialImages}\n onChange={onChange}\n accept={accept}\n addButtonAriaLabel={addButtonAriaLabel}\n removeButtonAriaLabel={removeButtonAriaLabel}\n {...props}\n />\n )\n}\n"],"mappings":";;;;AAWA,SAAOS,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAAAL,GAAAM,GAAAC,GAAAC,GAAAC,GAAAC;AAAA,CAAAN,EAAA,OAAAD,KAOYH,IAAAI,EAAA,IAAAE,IAAAF,EAAA,IAAAG,IAAAH,EAAA,IAAAI,IAAAJ,EAAA,IAAAK,IAAAL,EAAA,IAAAM,IAAAN,EAAA,OAPS,CAAAL,eAAAQ,gBAAAI,QAAAH,GAAAI,oBAAAH,GAAAI,uBAAAH,MAAAJ,KAAAH,GAOTC,EAAA,KAAAD,GAAAC,EAAA,KAAAJ,GAAAI,EAAA,KAAAE,GAAAF,EAAA,KAAAG,GAAAH,EAAA,KAAAI,GAAAJ,EAAA,KAAAK,GAAAL,EAAA,KAAAM;CAAA,IAAAI;AAAA,CAAAV,EAAA,OAAAG,IANCO,IAAAV,EAAA,MAAlBU,IAAAP,MAAAQ,KAAAA,IAAA,EAAkB,GAAlBR,GAAkBH,EAAA,KAAAG,GAAAH,EAAA,KAAAU;CAAlB,IAAAf,IAAAe,GAEAH,IAAAH,MAAAO,KAAAA,IAAA,YAAAP,GACAI,IAAAH,MAAAM,KAAAA,IAAA,sBAAAN,GACAI,IAAAH,MAAAK,KAAAA,IAAA,sBAAAL,GAA2CM;AAWvC,QAXuCZ,EAAA,OAAAO,KAAAP,EAAA,QAAAQ,KAAAR,EAAA,QAAAL,KAAAK,EAAA,QAAAJ,KAAAI,EAAA,QAAAE,KAAAF,EAAA,QAAAS,KAIzCG,IAAA,kBAAC,GAAD;EACgBjB,cAAAA;EACJC;EACFW;EACYC;EACGC;EAAqB,GACxCP;EACJ,CAAA,EAAAF,EAAA,KAAAO,GAAAP,EAAA,MAAAQ,GAAAR,EAAA,MAAAL,GAAAK,EAAA,MAAAJ,GAAAI,EAAA,MAAAE,GAAAF,EAAA,MAAAS,GAAAT,EAAA,MAAAY,KAAAA,IAAAZ,EAAA,KAPFY"}
|
|
1
|
+
{"version":3,"file":"index195.js","sources":["../../../node_modules/libphonenumber-js/es6/parse.js"],"sourcesContent":["// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\n\nimport { VALID_DIGITS, PLUS_CHARS, MIN_LENGTH_FOR_NSN, MAX_LENGTH_FOR_NSN } from './constants.js';\nimport ParseError from './ParseError.js';\nimport Metadata from './metadata.js';\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber.js';\nimport extractExtension from './helpers/extension/extractExtension.js';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber.js';\nimport getCountryCallingCode from './getCountryCallingCode.js';\nimport { isPossibleNumber } from './isPossible.js';\n// import { parseRFC3966 } from './helpers/RFC3966.js'\nimport PhoneNumber from './PhoneNumber.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractNationalNumber from './helpers/extractNationalNumber.js';\n// import stripIddPrefix from './helpers/stripIddPrefix.js'\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport extractFormattedPhoneNumberFromPossibleRfc3966NumberUri from './helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js';\n\n// We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\nvar MAX_INPUT_STRING_LENGTH = 250;\n\n// This consists of the plus symbol, digits, and arabic-indic digits.\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']');\n\n// Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\n// Examples:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\n/**\r\n * Parses a phone number.\r\n *\r\n * parse('123456789', { defaultCountry: 'RU', v2: true }, metadata)\r\n * parse('123456789', { defaultCountry: 'RU' }, metadata)\r\n * parse('123456789', undefined, metadata)\r\n *\r\n * @param {string} input\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {object|PhoneNumber?} If `options.v2: true` flag is passed, it returns a `PhoneNumber?` instance. Otherwise, returns an object of shape `{ phone: '...', country: '...' }` (or just `{}` if no phone number was parsed).\r\n */\nexport default function parse(text, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata);\n\n // Validate `defaultCountry`.\n if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n }\n\n // Parse the phone number.\n var _parseInput = parseInput(text, options.v2, options.extract),\n formattedPhoneNumber = _parseInput.number,\n ext = _parseInput.ext,\n error = _parseInput.error;\n\n // If the phone number is not viable then return nothing.\n if (!formattedPhoneNumber) {\n if (options.v2) {\n if (error === 'TOO_SHORT') {\n throw new ParseError('TOO_SHORT');\n }\n throw new ParseError('NOT_A_NUMBER');\n }\n return {};\n }\n var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n country = _parsePhoneNumber.country,\n nationalNumber = _parsePhoneNumber.nationalNumber,\n countryCallingCode = _parsePhoneNumber.countryCallingCode,\n countryCallingCodeSource = _parsePhoneNumber.countryCallingCodeSource,\n carrierCode = _parsePhoneNumber.carrierCode;\n if (!metadata.hasSelectedNumberingPlan()) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n return {};\n }\n\n // Validate national (significant) number length.\n if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n // Won't throw here because the regexp already demands length > 1.\n /* istanbul ignore if */\n if (options.v2) {\n throw new ParseError('TOO_SHORT');\n }\n // Google's demo just throws an error in this case.\n return {};\n }\n\n // Validate national (significant) number length.\n //\n // A sidenote:\n //\n // They say that sometimes national (significant) numbers\n // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n // Such numbers will just be discarded.\n //\n if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n if (options.v2) {\n throw new ParseError('TOO_LONG');\n }\n // Google's demo just throws an error in this case.\n return {};\n }\n if (options.v2) {\n var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n if (country) {\n phoneNumber.country = country;\n }\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n if (ext) {\n phoneNumber.ext = ext;\n }\n phoneNumber.__countryCallingCodeSource = countryCallingCodeSource;\n return phoneNumber;\n }\n\n // Check if national phone number pattern matches the number.\n // National number pattern is different for each country,\n // even for those ones which are part of the \"NANPA\" group.\n var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false;\n if (!options.extended) {\n return valid ? result(country, nationalNumber, ext) : {};\n }\n\n // isInternational: countryCallingCode !== undefined\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n carrierCode: carrierCode,\n valid: valid,\n possible: valid ? true : options.extended === true && metadata.possibleLengths() && isPossibleNumber(nationalNumber, country, metadata) ? true : false,\n phone: nationalNumber,\n ext: ext\n };\n}\n\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\nfunction _extractFormattedPhoneNumber(text, extract, throwOnError) {\n if (!text) {\n return;\n }\n if (text.length > MAX_INPUT_STRING_LENGTH) {\n if (throwOnError) {\n throw new ParseError('TOO_LONG');\n }\n return;\n }\n if (extract === false) {\n return text;\n }\n // Attempt to extract a possible number from the string passed in\n var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n if (startsAt < 0) {\n return;\n }\n return text\n // Trim everything to the left of the phone number\n .slice(startsAt)\n // Remove trailing non-numerical characters\n .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n\n/**\r\n * @param {string} text - Input.\r\n * @param {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\nfunction parseInput(text, v2, extract) {\n // // Parse RFC 3966 phone number URI.\n // if (text && text.indexOf('tel:') === 0) {\n // \treturn parseRFC3966(text)\n // }\n // let number = extractFormattedPhoneNumber(text, extract, v2)\n var number = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(text, {\n extractFormattedPhoneNumber: function extractFormattedPhoneNumber(text) {\n return _extractFormattedPhoneNumber(text, extract, v2);\n }\n });\n // If the phone number is not viable, then abort.\n if (!number) {\n return {};\n }\n if (!isViablePhoneNumber(number)) {\n if (isViablePhoneNumberStart(number)) {\n return {\n error: 'TOO_SHORT'\n };\n }\n return {};\n }\n // Attempt to parse extension first, since it doesn't require region-specific\n // data and we want to have the non-normalised number here.\n var withExtensionStripped = extractExtension(number);\n if (withExtensionStripped.ext) {\n return withExtensionStripped;\n }\n return {\n number: number\n };\n}\n\n/**\r\n * Creates `parse()` result object.\r\n */\nfunction result(country, nationalNumber, ext) {\n var result = {\n country: country,\n phone: nationalNumber\n };\n if (ext) {\n result.ext = ext;\n }\n return result;\n}\n\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\nfunction parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n // Extract calling code from phone number.\n var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), undefined, defaultCountry, defaultCallingCode, metadata.metadata),\n countryCallingCodeSource = _extractCountryCallin.countryCallingCodeSource,\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number;\n\n // The exact country of the phone number\n var country;\n\n // If `formattedPhoneNumber` is passed in \"international\" format,\n // choose a country by `countryCallingCode`.\n if (countryCallingCode) {\n metadata.selectNumberingPlan(countryCallingCode);\n }\n // Else, if `formattedPhoneNumber` is passed in \"national\" format,\n // then `number` is defined and `countryCallingCode` is `undefined`.\n else if (number && (defaultCountry || defaultCallingCode)) {\n metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n if (defaultCountry) {\n country = defaultCountry;\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n country = '001';\n }\n }\n }\n countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata);\n } else return {};\n if (!number) {\n return {\n countryCallingCodeSource: countryCallingCodeSource,\n countryCallingCode: countryCallingCode\n };\n }\n var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), country, metadata),\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode;\n\n // Sometimes there are several countries\n // corresponding to the same country phone code\n // (e.g. NANPA countries all having `1` country phone code).\n // Therefore, to reliably determine the exact country,\n // national (significant) number should have been parsed first.\n //\n // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n // get their countries populated with the full set of\n // \"phone number type\" regular expressions.\n //\n var exactCountry = getCountryByCallingCode(countryCallingCode, {\n nationalNumber: nationalNumber,\n metadata: metadata\n });\n if (exactCountry) {\n country = exactCountry;\n /* istanbul ignore if */\n if (exactCountry === '001') {\n // Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n // If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n // then remove the \"istanbul ignore if\".\n } else {\n metadata.selectNumberingPlan(country);\n }\n }\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n countryCallingCodeSource: countryCallingCodeSource,\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n}\n//# sourceMappingURL=parse.js.map"],"names":["MAX_INPUT_STRING_LENGTH","PHONE_NUMBER_START_PATTERN","PLUS_CHARS","VALID_DIGITS","AFTER_PHONE_NUMBER_END_PATTERN","parse","text","options","metadata","Metadata","ParseError","_parseInput","parseInput","formattedPhoneNumber","ext","error","_parsePhoneNumber","parsePhoneNumber","country","nationalNumber","countryCallingCode","countryCallingCodeSource","carrierCode","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","phoneNumber","PhoneNumber","valid","matchesEntirely","isPossibleNumber","result","_extractFormattedPhoneNumber","extract","throwOnError","startsAt","v2","number","extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","isViablePhoneNumber","isViablePhoneNumberStart","withExtensionStripped","extractExtension","defaultCountry","defaultCallingCode","_extractCountryCallin","extractCountryCallingCode","parseIncompletePhoneNumber","getCountryCallingCode","_extractNationalNumbe","extractNationalNumber","exactCountry","getCountryByCallingCode"],"mappings":";;;;;;;;;;;;;AAwBA,IAAIA,IAA0B,KAG1BC,IAA6B,IAAI,OAAO,MAAMC,IAAaC,IAAe,GAAG,GAK7EC,IAAiC,IAAI,OAAO,OAAOD,IAAe,MAAW;AA2BlE,SAASE,EAAMC,GAAMC,GAASC,GAAU;AAOrD,MAJAD,IAAUA,KAAW,CAAA,GACrBC,IAAW,IAAIC,EAASD,CAAQ,GAG5BD,EAAQ,kBAAkB,CAACC,EAAS,WAAWD,EAAQ,cAAc;AACvE,UAAIA,EAAQ,KACJ,IAAIG,EAAW,iBAAiB,IAElC,IAAI,MAAM,oBAAoB,OAAOH,EAAQ,cAAc,CAAC;AAIpE,MAAII,IAAcC,EAAWN,GAAMC,EAAQ,IAAIA,EAAQ,OAAO,GAC5DM,IAAuBF,EAAY,QACnCG,IAAMH,EAAY,KAClBI,IAAQJ,EAAY;AAGtB,MAAI,CAACE,GAAsB;AACzB,QAAIN,EAAQ;AACV,YAAIQ,MAAU,cACN,IAAIL,EAAW,WAAW,IAE5B,IAAIA,EAAW,cAAc;AAErC,WAAO,CAAA;AAAA,EACT;AACA,MAAIM,IAAoBC,EAAiBJ,GAAsBN,EAAQ,gBAAgBA,EAAQ,oBAAoBC,CAAQ,GACzHU,IAAUF,EAAkB,SAC5BG,IAAiBH,EAAkB,gBACnCI,IAAqBJ,EAAkB,oBACvCK,IAA2BL,EAAkB,0BAC7CM,IAAcN,EAAkB;AAClC,MAAI,CAACR,EAAS,4BAA4B;AACxC,QAAID,EAAQ;AACV,YAAM,IAAIG,EAAW,iBAAiB;AAExC,WAAO,CAAA;AAAA,EACT;AAGA,MAAI,CAACS,KAAkBA,EAAe,SAASI,GAAoB;AAGjE,QAAIhB,EAAQ;AACV,YAAM,IAAIG,EAAW,WAAW;AAGlC,WAAO,CAAA;AAAA,EACT;AAWA,MAAIS,EAAe,SAASK,GAAoB;AAC9C,QAAIjB,EAAQ;AACV,YAAM,IAAIG,EAAW,UAAU;AAGjC,WAAO,CAAA;AAAA,EACT;AACA,MAAIH,EAAQ,IAAI;AACd,QAAIkB,IAAc,IAAIC,EAAYN,GAAoBD,GAAgBX,EAAS,QAAQ;AACvF,WAAIU,MACFO,EAAY,UAAUP,IAEpBI,MACFG,EAAY,cAAcH,IAExBR,MACFW,EAAY,MAAMX,IAEpBW,EAAY,6BAA6BJ,GAClCI;AAAA,EACT;AAKA,MAAIE,KAASpB,EAAQ,WAAWC,EAAS,yBAAwB,IAAKU,KAAWU,EAAgBT,GAAgBX,EAAS,sBAAqB,CAAE,IAAI;AACrJ,SAAKD,EAAQ,WAMN;AAAA,IACL,SAASW;AAAA,IACT,oBAAoBE;AAAA,IACpB,aAAaE;AAAA,IACb,OAAOK;AAAA,IACP,UAAUA,IAAQ,KAAO,GAAApB,EAAQ,aAAa,MAAQC,EAAS,gBAAe,KAAMqB,EAAiBV,GAAgBD,GAASV,CAAQ;AAAA,IACtI,OAAOW;AAAA,IACP,KAAKL;AAAA,EACT,IAbWa,IAAQG,EAAOZ,GAASC,GAAgBL,CAAG,IAAI,CAAA;AAc1D;AAcA,SAASiB,EAA6BzB,GAAM0B,GAASC,GAAc;AACjE,MAAK3B,GAGL;AAAA,QAAIA,EAAK,SAASN,GAAyB;AACzC,UAAIiC;AACF,cAAM,IAAIvB,EAAW,UAAU;AAEjC;AAAA,IACF;AACA,QAAIsB,MAAY;AACd,aAAO1B;AAGT,QAAI4B,IAAW5B,EAAK,OAAOL,CAA0B;AACrD,QAAI,EAAAiC,IAAW;AAGf,aAAO5B,EAEN,MAAM4B,CAAQ,EAEd,QAAQ9B,GAAgC,EAAE;AAAA;AAC7C;AAQA,SAASQ,EAAWN,GAAM6B,GAAIH,GAAS;AAMrC,MAAII,IAASC,EAAwD/B,GAAM;AAAA,IACzE,6BAA6B,SAAqCA,GAAM;AACtE,aAAOyB,EAA6BzB,GAAM0B,GAASG,CAAE;AAAA,IACvD;AAAA,EACJ,CAAG;AAED,MAAI,CAACC;AACH,WAAO,CAAA;AAET,MAAI,CAACE,EAAoBF,CAAM;AAC7B,WAAIG,EAAyBH,CAAM,IAC1B;AAAA,MACL,OAAO;AAAA,IACf,IAEW,CAAA;AAIT,MAAII,IAAwBC,EAAiBL,CAAM;AACnD,SAAII,EAAsB,MACjBA,IAEF;AAAA,IACL,QAAQJ;AAAA,EACZ;AACA;AAKA,SAASN,EAAOZ,GAASC,GAAgBL,GAAK;AAC5C,MAAIgB,IAAS;AAAA,IACX,SAASZ;AAAA,IACT,OAAOC;AAAA,EACX;AACE,SAAIL,MACFgB,EAAO,MAAMhB,IAERgB;AACT;AAUA,SAASb,EAAiBJ,GAAsB6B,GAAgBC,GAAoBnC,GAAU;AAE5F,MAAIoC,IAAwBC,EAA0BC,EAA2BjC,CAAoB,GAAG,QAAW6B,GAAgBC,GAAoBnC,EAAS,QAAQ,GACtKa,IAA2BuB,EAAsB,0BACjDxB,IAAqBwB,EAAsB,oBAC3CR,IAASQ,EAAsB,QAG7B1B;AAIJ,MAAIE;AACF,IAAAZ,EAAS,oBAAoBY,CAAkB;AAAA,WAIxCgB,MAAWM,KAAkBC;AACpC,IAAAnC,EAAS,oBAAoBkC,GAAgBC,CAAkB,GAC3DD,MACFxB,IAAUwB,IASZtB,IAAqBuB,KAAsBI,EAAsBL,GAAgBlC,EAAS,QAAQ;AAAA,MAC7F,QAAO,CAAA;AACd,MAAI,CAAC4B;AACH,WAAO;AAAA,MACL,0BAA0Bf;AAAA,MAC1B,oBAAoBD;AAAA,IAC1B;AAEE,MAAI4B,IAAwBC,EAAsBH,EAA2BV,CAAM,GAAGlB,GAASV,CAAQ,GACrGW,IAAiB6B,EAAsB,gBACvC1B,IAAc0B,EAAsB,aAYlCE,IAAeC,EAAwB/B,GAAoB;AAAA,IAC7D,gBAAgBD;AAAA,IAChB,UAAUX;AAAA,EACd,CAAG;AACD,SAAI0C,MACFhC,IAAUgC,GAENA,MAAiB,SAKnB1C,EAAS,oBAAoBU,CAAO,IAGjC;AAAA,IACL,SAASA;AAAA,IACT,oBAAoBE;AAAA,IACpB,0BAA0BC;AAAA,IAC1B,gBAAgBF;AAAA,IAChB,aAAaG;AAAA,EACjB;AACA;","x_google_ignoreList":[0]}
|