@tsparticles/all 4.0.0-alpha.8 → 4.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/1028.min.js +1 -0
- package/1030.min.js +1 -0
- package/1048.min.js +1 -0
- package/1051.min.js +1 -0
- package/1061.min.js +1 -0
- package/1089.min.js +1 -0
- package/1120.min.js +1 -0
- package/1121.min.js +1 -0
- package/1160.min.js +1 -0
- package/1167.min.js +1 -0
- package/117.min.js +1 -0
- package/1201.min.js +1 -0
- package/1255.min.js +1 -0
- package/143.min.js +1 -0
- package/1510.min.js +1 -0
- package/1551.min.js +1 -0
- package/1605.min.js +1 -0
- package/1611.min.js +1 -0
- package/1661.min.js +1 -0
- package/1707.min.js +2 -0
- package/1744.min.js +1 -0
- package/1767.min.js +1 -0
- package/1818.min.js +2 -0
- package/1841.min.js +1 -0
- package/1860.min.js +1 -0
- package/2004.min.js +1 -0
- package/2093.min.js +1 -0
- package/2105.min.js +1 -0
- package/2158.min.js +1 -0
- package/2177.min.js +1 -0
- package/2253.min.js +1 -0
- package/2261.min.js +1 -0
- package/2265.min.js +1 -0
- package/2360.min.js +1 -0
- package/2405.min.js +1 -0
- package/2413.min.js +1 -0
- package/2425.min.js +1 -0
- package/2429.min.js +1 -0
- package/2454.min.js +1 -0
- package/2554.min.js +1 -0
- package/264.min.js +1 -0
- package/2643.min.js +1 -0
- package/2682.min.js +1 -0
- package/2784.min.js +1 -0
- package/2825.min.js +1 -0
- package/2866.min.js +1 -0
- package/2908.min.js +1 -0
- package/2930.min.js +1 -0
- package/2933.min.js +1 -0
- package/2964.min.js +1 -0
- package/2971.min.js +1 -0
- package/2975.min.js +1 -0
- package/301.min.js +1 -0
- package/3041.min.js +1 -0
- package/3057.min.js +1 -0
- package/3088.min.js +1 -0
- package/3089.min.js +1 -0
- package/31.min.js +1 -0
- package/3128.min.js +1 -0
- package/3150.min.js +1 -0
- package/3152.min.js +1 -2
- package/3210.min.js +1 -0
- package/3248.min.js +1 -0
- package/3256.min.js +1 -0
- package/3285.min.js +1 -0
- package/3304.min.js +1 -0
- package/3323.min.js +1 -0
- package/335.min.js +1 -0
- package/3362.min.js +1 -0
- package/3471.min.js +1 -0
- package/3477.min.js +1 -0
- package/349.min.js +1 -0
- package/350.min.js +1 -0
- package/3595.min.js +1 -0
- package/3693.min.js +1 -0
- package/370.min.js +2 -0
- package/3706.min.js +1 -0
- package/3719.min.js +1 -0
- package/3728.min.js +1 -0
- package/3737.min.js +1 -0
- package/3775.min.js +1 -0
- package/3861.min.js +1 -0
- package/3875.min.js +1 -0
- package/3895.min.js +1 -0
- package/394.min.js +1 -0
- package/3949.min.js +1 -0
- package/3961.min.js +1 -2
- package/3972.min.js +1 -0
- package/3983.min.js +1 -0
- package/4051.min.js +1 -0
- package/4054.min.js +1 -0
- package/4074.min.js +1 -0
- package/4075.min.js +1 -0
- package/4088.min.js +1 -0
- package/410.min.js +1 -0
- package/4117.min.js +1 -0
- package/4129.min.js +1 -0
- package/4159.min.js +1 -0
- package/4191.min.js +1 -0
- package/4198.min.js +1 -0
- package/4204.min.js +1 -0
- package/4258.min.js +1 -0
- package/4301.min.js +1 -0
- package/4306.min.js +1 -0
- package/4316.min.js +1 -0
- package/4376.min.js +1 -0
- package/4468.min.js +1 -0
- package/4473.min.js +1 -0
- package/4489.min.js +1 -0
- package/4537.min.js +1 -0
- package/4550.min.js +1 -0
- package/4567.min.js +1 -0
- package/4592.min.js +1 -0
- package/4601.min.js +1 -0
- package/465.min.js +1 -0
- package/4656.min.js +1 -0
- package/4701.min.js +1 -0
- package/4722.min.js +1 -0
- package/4726.min.js +1 -0
- package/4837.min.js +1 -2
- package/4839.min.js +1 -0
- package/4880.min.js +1 -0
- package/4887.min.js +1 -0
- package/4898.min.js +1 -0
- package/4917.min.js +1 -0
- package/4952.min.js +1 -0
- package/4991.min.js +1 -0
- package/5055.min.js +1 -0
- package/5056.min.js +1 -0
- package/5077.min.js +1 -0
- package/5095.min.js +1 -0
- package/5136.min.js +1 -0
- package/5174.min.js +1 -0
- package/5197.min.js +1 -0
- package/5212.min.js +1 -0
- package/5232.min.js +1 -0
- package/5260.min.js +1 -0
- package/5264.min.js +1 -0
- package/5275.min.js +1 -0
- package/5313.min.js +1 -0
- package/5325.min.js +1 -0
- package/5332.min.js +1 -0
- package/5341.min.js +1 -0
- package/5347.min.js +1 -0
- package/5352.min.js +1 -0
- package/5356.min.js +1 -0
- package/5402.min.js +1 -0
- package/5437.min.js +1 -0
- package/5447.min.js +1 -0
- package/5453.min.js +1 -0
- package/5532.min.js +1 -0
- package/5541.min.js +1 -0
- package/5589.min.js +1 -0
- package/5602.min.js +1 -0
- package/561.min.js +1 -0
- package/5641.min.js +1 -0
- package/5651.min.js +1 -0
- package/5668.min.js +1 -0
- package/5669.min.js +1 -0
- package/5686.min.js +1 -0
- package/5694.min.js +1 -0
- package/5700.min.js +1 -0
- package/5719.min.js +1 -0
- package/5732.min.js +1 -0
- package/5742.min.js +1 -0
- package/5816.min.js +1 -0
- package/5832.min.js +1 -0
- package/587.min.js +1 -0
- package/5976.min.js +1 -0
- package/6055.min.js +1 -0
- package/6056.min.js +1 -0
- package/607.min.js +1 -0
- package/6130.min.js +1 -0
- package/6202.min.js +1 -0
- package/6222.min.js +1 -0
- package/6227.min.js +1 -0
- package/6252.min.js +1 -0
- package/6280.min.js +1 -0
- package/6297.min.js +1 -0
- package/6340.min.js +1 -0
- package/6362.min.js +1 -0
- package/6364.min.js +1 -0
- package/6388.min.js +1 -2
- package/6412.min.js +1 -0
- package/649.min.js +1 -0
- package/6496.min.js +1 -0
- package/6502.min.js +1 -0
- package/6561.min.js +1 -0
- package/6598.min.js +1 -0
- package/6613.min.js +1 -0
- package/6693.min.js +1 -0
- package/6711.min.js +1 -2
- package/6808.min.js +1 -0
- package/6822.min.js +1 -0
- package/6827.min.js +1 -0
- package/686.min.js +1 -0
- package/6868.min.js +1 -0
- package/6897.min.js +1 -0
- package/6907.min.js +1 -0
- package/6938.min.js +1 -0
- package/6940.min.js +1 -0
- package/7017.min.js +1 -0
- package/7041.min.js +1 -0
- package/7050.min.js +1 -0
- package/706.min.js +1 -0
- package/7062.min.js +1 -0
- package/7079.min.js +1 -0
- package/7149.min.js +1 -0
- package/7157.min.js +1 -0
- package/719.min.js +1 -0
- package/7196.min.js +1 -0
- package/7203.min.js +1 -0
- package/7206.min.js +1 -0
- package/7218.min.js +1 -0
- package/7359.min.js +1 -0
- package/7374.min.js +1 -0
- package/7386.min.js +1 -0
- package/7403.min.js +1 -0
- package/746.min.js +1 -0
- package/7462.min.js +1 -0
- package/748.min.js +1 -0
- package/7520.min.js +1 -0
- package/7522.min.js +1 -0
- package/7590.min.js +1 -0
- package/7596.min.js +1 -0
- package/7604.min.js +1 -0
- package/762.min.js +1 -0
- package/7721.min.js +1 -0
- package/7788.min.js +1 -0
- package/7817.min.js +1 -0
- package/786.min.js +1 -0
- package/7921.min.js +1 -0
- package/803.min.js +1 -0
- package/8082.min.js +1 -0
- package/8096.min.js +1 -0
- package/8111.min.js +1 -0
- package/8173.min.js +1 -0
- package/8243.min.js +1 -0
- package/8272.min.js +1 -0
- package/8274.min.js +1 -0
- package/83.min.js +2 -2
- package/830.min.js +1 -0
- package/8319.min.js +1 -0
- package/8342.min.js +1 -0
- package/8360.min.js +1 -0
- package/8421.min.js +1 -0
- package/8446.min.js +1 -0
- package/8536.min.js +1 -0
- package/8553.min.js +33 -0
- package/8569.min.js +1 -0
- package/8626.min.js +1 -0
- package/8650.min.js +1 -0
- package/8684.min.js +1 -0
- package/8708.min.js +1 -0
- package/8775.min.js +1 -0
- package/8776.min.js +1 -0
- package/8796.min.js +1 -0
- package/8805.min.js +1 -0
- package/8808.min.js +1 -0
- package/886.min.js +1 -0
- package/8930.min.js +1 -0
- package/8957.min.js +1 -0
- package/8977.min.js +2 -0
- package/8989.min.js +1 -0
- package/9022.min.js +1 -0
- package/9027.min.js +1 -0
- package/9033.min.js +1 -0
- package/9072.min.js +1 -0
- package/9134.min.js +1 -0
- package/9165.min.js +1 -0
- package/9261.min.js +1 -0
- package/9293.min.js +1 -0
- package/9326.min.js +1 -0
- package/9368.min.js +1 -0
- package/938.min.js +1 -0
- package/9463.min.js +1 -0
- package/9479.min.js +1 -0
- package/951.min.js +1 -0
- package/9630.min.js +1 -0
- package/9643.min.js +1 -2
- package/9654.min.js +1 -0
- package/9673.min.js +1 -0
- package/9720.min.js +1 -0
- package/9748.min.js +1 -0
- package/9782.min.js +1 -0
- package/9838.min.js +1 -0
- package/9920.min.js +1 -0
- package/9950.min.js +1 -0
- package/9994.min.js +1 -0
- package/README.md +158 -4
- package/basic_dist_browser_index_js.js +2 -2
- package/browser/bundle.js +1 -2
- package/browser/index.js +162 -68
- package/cjs/bundle.js +1 -2
- package/cjs/index.js +162 -68
- package/effects_bubble_dist_browser_BubbleDrawer_js.js +2 -2
- package/effects_bubble_dist_browser_index_js.js +2 -2
- package/effects_particles_dist_browser_ParticlesDrawer_js.js +30 -0
- package/effects_particles_dist_browser_index_js.js +30 -0
- package/effects_shadow_dist_browser_ShadowDrawer_js.js +2 -2
- package/effects_shadow_dist_browser_index_js.js +2 -2
- package/effects_trail_dist_browser_TrailDrawer_js.js +2 -2
- package/effects_trail_dist_browser_index_js.js +2 -2
- package/engine_dist_browser_Core_Container_js.js +30 -20
- package/esm/bundle.js +1 -2
- package/esm/index.js +162 -68
- package/full_dist_browser_index_js.js +2 -2
- package/interactions_external_attract_dist_browser_Attractor_js.js +42 -42
- package/interactions_external_attract_dist_browser_index_js.js +3 -3
- package/interactions_external_bounce_dist_browser_Bouncer_js.js +42 -42
- package/interactions_external_bounce_dist_browser_index_js.js +3 -3
- package/interactions_external_bubble_dist_browser_Bubbler_js.js +43 -43
- package/interactions_external_bubble_dist_browser_index_js.js +5 -5
- package/interactions_external_cannon_dist_browser_Cannoner_js.js +130 -0
- package/interactions_external_cannon_dist_browser_index_js.js +40 -0
- package/interactions_external_connect_dist_browser_Connector_js.js +62 -42
- package/interactions_external_connect_dist_browser_index_js.js +4 -4
- package/interactions_external_drag_dist_browser_Dragger_js.js +130 -0
- package/interactions_external_drag_dist_browser_index_js.js +40 -0
- package/interactions_external_grab_dist_browser_Grabber_js.js +62 -42
- package/interactions_external_grab_dist_browser_index_js.js +4 -4
- package/interactions_external_parallax_dist_browser_Parallaxer_js.js +41 -41
- package/interactions_external_parallax_dist_browser_index_js.js +3 -3
- package/interactions_external_particle_dist_browser_InteractivityParticleMaker_js.js +42 -42
- package/interactions_external_particle_dist_browser_index_js.js +2 -2
- package/interactions_external_pause_dist_browser_Pauser_js.js +41 -41
- package/interactions_external_pause_dist_browser_index_js.js +2 -2
- package/interactions_external_pop_dist_browser_Popper_js.js +41 -41
- package/interactions_external_pop_dist_browser_index_js.js +2 -2
- package/interactions_external_push_dist_browser_Pusher_js.js +41 -41
- package/interactions_external_push_dist_browser_index_js.js +3 -3
- package/interactions_external_remove_dist_browser_Remover_js.js +41 -41
- package/interactions_external_remove_dist_browser_index_js.js +3 -3
- package/interactions_external_repulse_dist_browser_Repulser_js.js +41 -41
- package/interactions_external_repulse_dist_browser_index_js.js +5 -5
- package/interactions_external_slow_dist_browser_Slower_js.js +41 -41
- package/interactions_external_slow_dist_browser_index_js.js +3 -3
- package/interactions_external_trail_dist_browser_TrailMaker_js.js +41 -41
- package/interactions_external_trail_dist_browser_index_js.js +33 -3
- package/interactions_light_dist_browser_ExternalLighter_js.js +42 -42
- package/interactions_light_dist_browser_ParticlesLighter_js.js +42 -42
- package/interactions_light_dist_browser_index_js.js +6 -6
- package/interactions_particles_attract_dist_browser_Attractor_js.js +51 -41
- package/interactions_particles_attract_dist_browser_index_js.js +2 -2
- package/interactions_particles_collisions_dist_browser_Collider_js.js +49 -49
- package/interactions_particles_collisions_dist_browser_OverlapPluginInstance_js.js +2 -2
- package/interactions_particles_collisions_dist_browser_OverlapPlugin_js.js +2 -2
- package/interactions_particles_collisions_dist_browser_index_js.js +2 -2
- package/interactions_particles_links_dist_browser_LinkInstance_js.js +3 -3
- package/interactions_particles_links_dist_browser_Linker_js.js +42 -42
- package/interactions_particles_links_dist_browser_LinksPlugin_js.js +2 -2
- package/interactions_particles_links_dist_browser_index_js.js +5 -5
- package/interactions_particles_repulse_dist_browser_Repulser_js.js +42 -42
- package/interactions_particles_repulse_dist_browser_index_js.js +2 -2
- package/package.json +78 -67
- package/paths_branches_dist_browser_BranchesPathGenerator_js.js +30 -0
- package/paths_branches_dist_browser_index_js.js +30 -0
- package/paths_brownian_dist_browser_BrownianPathGenerator_js.js +30 -0
- package/paths_brownian_dist_browser_index_js.js +30 -0
- package/paths_curlNoise_dist_browser_CurlNoiseGenerator_js.js +2 -2
- package/paths_curlNoise_dist_browser_index_js.js +2 -2
- package/paths_curves_dist_browser_CurvesPathGenerator_js.js +3 -3
- package/paths_curves_dist_browser_index_js.js +2 -2
- package/paths_fractalNoise_dist_browser_FractalNoiseGenerator_js.js +8 -8
- package/paths_fractalNoise_dist_browser_index_js.js +2 -2
- package/paths_grid_dist_browser_GridPathGenerator_js.js +30 -0
- package/paths_grid_dist_browser_index_js.js +30 -0
- package/paths_levy_dist_browser_LevyPathGenerator_js.js +30 -0
- package/paths_levy_dist_browser_index_js.js +30 -0
- package/paths_perlinNoise_dist_browser_PerlinNoiseGenerator_js.js +7 -7
- package/paths_perlinNoise_dist_browser_index_js.js +2 -2
- package/paths_polygon_dist_browser_PolygonPathGenerator_js.js +2 -2
- package/paths_polygon_dist_browser_index_js.js +2 -2
- package/paths_random_dist_browser_RandomPathGenerator_js.js +30 -0
- package/paths_random_dist_browser_index_js.js +30 -0
- package/paths_simplexNoise_dist_browser_SimplexNoiseGenerator_js.js +4 -4
- package/paths_simplexNoise_dist_browser_index_js.js +2 -2
- package/paths_spiral_dist_browser_SpiralPathGenerator_js.js +40 -0
- package/paths_spiral_dist_browser_index_js.js +30 -0
- package/paths_svg_dist_browser_SVGPathGenerator_js.js +22 -2
- package/paths_svg_dist_browser_index_js.js +2 -2
- package/paths_zigzag_dist_browser_ZigZagPathGenerator_js.js +2 -2
- package/paths_zigzag_dist_browser_index_js.js +2 -2
- package/plugins_absorbers_dist_browser_AbsorberInstance_js.js +15 -5
- package/plugins_absorbers_dist_browser_AbsorbersInstancesManager_js.js +2 -2
- package/plugins_absorbers_dist_browser_AbsorbersInteractor_js.js +54 -44
- package/plugins_absorbers_dist_browser_AbsorbersPluginInstance_js.js +2 -2
- package/plugins_absorbers_dist_browser_AbsorbersPlugin_js.js +15 -5
- package/plugins_absorbers_dist_browser_index_js.js +2 -2
- package/plugins_backgroundMask_dist_browser_BackgroundMaskPluginInstance_js.js +2 -2
- package/plugins_backgroundMask_dist_browser_BackgroundMaskPlugin_js.js +4 -4
- package/plugins_backgroundMask_dist_browser_index_js.js +2 -2
- package/plugins_blend_dist_browser_BlendPluginInstance_js.js +2 -2
- package/plugins_blend_dist_browser_BlendPlugin_js.js +3 -3
- package/plugins_blend_dist_browser_index_js.js +2 -2
- package/plugins_canvasMask_dist_browser_CanvasMaskPluginInstance_js.js +23 -3
- package/plugins_canvasMask_dist_browser_CanvasMaskPlugin_js.js +9 -9
- package/plugins_canvasMask_dist_browser_index_js.js +2 -2
- package/plugins_colors_hex_dist_browser_HexColorManager_js.js +2 -2
- package/plugins_colors_hex_dist_browser_index_js.js +2 -2
- package/plugins_colors_hsl_dist_browser_HslColorManager_js.js +2 -2
- package/plugins_colors_hsl_dist_browser_index_js.js +2 -2
- package/plugins_colors_hsv_dist_browser_HsvColorManager_js.js +3 -3
- package/plugins_colors_hsv_dist_browser_index_js.js +2 -2
- package/plugins_colors_hwb_dist_browser_HwbColorManager_js.js +2 -2
- package/plugins_colors_hwb_dist_browser_index_js.js +2 -2
- package/plugins_colors_lab_dist_browser_LabColorManager_js.js +3 -3
- package/plugins_colors_lab_dist_browser_index_js.js +2 -2
- package/plugins_colors_lch_dist_browser_LchColorManager_js.js +3 -3
- package/plugins_colors_lch_dist_browser_index_js.js +2 -2
- package/plugins_colors_named_dist_browser_NamedColorManager_js.js +2 -2
- package/plugins_colors_named_dist_browser_index_js.js +2 -2
- package/plugins_colors_oklab_dist_browser_OklabColorManager_js.js +3 -3
- package/plugins_colors_oklab_dist_browser_index_js.js +2 -2
- package/plugins_colors_oklch_dist_browser_OklchColorManager_js.js +3 -3
- package/plugins_colors_oklch_dist_browser_index_js.js +2 -2
- package/plugins_colors_rgb_dist_browser_RgbColorManager_js.js +2 -2
- package/plugins_colors_rgb_dist_browser_index_js.js +2 -2
- package/plugins_easings_back_dist_browser_easingsFunctions_js.js +2 -2
- package/plugins_easings_back_dist_browser_index_js.js +2 -2
- package/plugins_easings_bounce_dist_browser_easingsFunctions_js.js +2 -2
- package/plugins_easings_bounce_dist_browser_index_js.js +2 -2
- package/plugins_easings_circ_dist_browser_easingsFunctions_js.js +2 -2
- package/plugins_easings_circ_dist_browser_index_js.js +2 -2
- package/plugins_easings_cubic_dist_browser_easingsFunctions_js.js +2 -2
- package/plugins_easings_cubic_dist_browser_index_js.js +2 -2
- package/plugins_easings_elastic_dist_browser_easingsFunctions_js.js +2 -2
- package/plugins_easings_elastic_dist_browser_index_js.js +2 -2
- package/plugins_easings_expo_dist_browser_easingsFunctions_js.js +2 -2
- package/plugins_easings_expo_dist_browser_index_js.js +2 -2
- package/plugins_easings_gaussian_dist_browser_easingsFunctions_js.js +2 -2
- package/plugins_easings_gaussian_dist_browser_index_js.js +2 -2
- package/plugins_easings_linear_dist_browser_easingsFunctions_js.js +2 -2
- package/plugins_easings_linear_dist_browser_index_js.js +2 -2
- package/plugins_easings_quad_dist_browser_easingsFunctions_js.js +2 -2
- package/plugins_easings_quad_dist_browser_index_js.js +2 -2
- package/plugins_easings_quart_dist_browser_easingsFunctions_js.js +2 -2
- package/plugins_easings_quart_dist_browser_index_js.js +2 -2
- package/plugins_easings_quint_dist_browser_easingsFunctions_js.js +2 -2
- package/plugins_easings_quint_dist_browser_index_js.js +2 -2
- package/plugins_easings_sigmoid_dist_browser_easingsFunctions_js.js +2 -2
- package/plugins_easings_sigmoid_dist_browser_index_js.js +2 -2
- package/plugins_easings_sine_dist_browser_easingsFunctions_js.js +2 -2
- package/plugins_easings_sine_dist_browser_index_js.js +2 -2
- package/plugins_easings_smoothstep_dist_browser_easingsFunctions_js.js +2 -2
- package/plugins_easings_smoothstep_dist_browser_index_js.js +2 -2
- package/plugins_emittersShapes_canvas_dist_browser_EmittersCanvasShapeGenerator_js.js +26 -16
- package/plugins_emittersShapes_canvas_dist_browser_index_js.js +2 -2
- package/plugins_emittersShapes_circle_dist_browser_EmittersCircleShapeGenerator_js.js +6 -6
- package/plugins_emittersShapes_circle_dist_browser_index_js.js +2 -2
- package/plugins_emittersShapes_path_dist_browser_EmittersPathShapeGenerator_js.js +8 -8
- package/plugins_emittersShapes_path_dist_browser_index_js.js +2 -2
- package/plugins_emittersShapes_polygon_dist_browser_EmittersPolygonShapeGenerator_js.js +8 -8
- package/plugins_emittersShapes_polygon_dist_browser_index_js.js +2 -2
- package/plugins_emittersShapes_square_dist_browser_EmittersSquareShapeGenerator_js.js +6 -6
- package/plugins_emittersShapes_square_dist_browser_index_js.js +2 -2
- package/plugins_emitters_dist_browser_EmitterInstance_js.js +2 -2
- package/plugins_emitters_dist_browser_EmittersInstancesManager_js.js +18 -8
- package/plugins_emitters_dist_browser_EmittersInteractor_js.js +58 -48
- package/plugins_emitters_dist_browser_EmittersPluginInstance_js.js +2 -2
- package/plugins_emitters_dist_browser_EmittersPlugin_js.js +18 -8
- package/plugins_emitters_dist_browser_ShapeManager_js.js +2 -2
- package/plugins_emitters_dist_browser_index_js.js +4 -4
- package/plugins_exports_image_dist_browser_ExportImagePluginInstance_js.js +2 -2
- package/plugins_exports_image_dist_browser_ExportImagePlugin_js.js +2 -2
- package/plugins_exports_image_dist_browser_index_js.js +2 -2
- package/plugins_exports_json_dist_browser_ExportJSONPluginInstance_js.js +2 -2
- package/plugins_exports_json_dist_browser_ExportJSONPlugin_js.js +2 -2
- package/plugins_exports_json_dist_browser_index_js.js +2 -2
- package/plugins_exports_video_dist_browser_ExportVideoPluginInstance_js.js +2 -2
- package/plugins_exports_video_dist_browser_ExportVideoPlugin_js.js +2 -2
- package/plugins_exports_video_dist_browser_index_js.js +2 -2
- package/plugins_infection_dist_browser_InfectionPluginInstance_js.js +3 -3
- package/plugins_infection_dist_browser_InfectionPlugin_js.js +4 -4
- package/plugins_infection_dist_browser_ParticlesInfecter_js.js +41 -41
- package/plugins_infection_dist_browser_index_js.js +2 -2
- package/plugins_interactivity_dist_browser_InteractivityPluginInstance_js.js +4 -4
- package/plugins_interactivity_dist_browser_InteractivityPlugin_js.js +6 -6
- package/plugins_interactivity_dist_browser_index_js.js +40 -40
- package/plugins_manualParticles_dist_browser_ManualParticlesPluginInstance_js.js +2 -2
- package/plugins_manualParticles_dist_browser_ManualParticlesPlugin_js.js +3 -3
- package/plugins_manualParticles_dist_browser_index_js.js +2 -2
- package/plugins_motion_dist_browser_MotionPluginInstance_js.js +2 -2
- package/plugins_motion_dist_browser_MotionPlugin_js.js +4 -4
- package/plugins_motion_dist_browser_index_js.js +2 -2
- package/plugins_move_dist_browser_MovePluginInstance_js.js +40 -0
- package/plugins_move_dist_browser_MovePlugin_js.js +30 -0
- package/plugins_move_dist_browser_index_js.js +30 -0
- package/plugins_poisson_dist_browser_PoissonDiscPluginInstance_js.js +2 -12
- package/plugins_poisson_dist_browser_PoissonDiscPlugin_js.js +3 -3
- package/plugins_poisson_dist_browser_PoissonDisc_js.js +30 -0
- package/plugins_poisson_dist_browser_index_js.js +2 -2
- package/plugins_polygonMask_dist_browser_PolygonMaskInstance_js.js +4 -4
- package/plugins_polygonMask_dist_browser_PolygonMaskPlugin_js.js +8 -8
- package/plugins_polygonMask_dist_browser_index_js.js +5 -5
- package/plugins_responsive_dist_browser_ResponsivePluginInstance_js.js +2 -2
- package/plugins_responsive_dist_browser_ResponsivePlugin_js.js +4 -4
- package/plugins_responsive_dist_browser_index_js.js +2 -2
- package/plugins_sounds_dist_browser_SoundsPluginInstance_js.js +3 -3
- package/plugins_sounds_dist_browser_SoundsPlugin_js.js +12 -12
- package/plugins_sounds_dist_browser_index_js.js +2 -2
- package/plugins_themes_dist_browser_ThemesPluginInstance_js.js +2 -2
- package/plugins_themes_dist_browser_ThemesPlugin_js.js +5 -5
- package/plugins_themes_dist_browser_index_js.js +2 -2
- package/plugins_trail_dist_browser_TrailPluginInstance_js.js +2 -2
- package/plugins_trail_dist_browser_TrailPlugin_js.js +4 -4
- package/plugins_trail_dist_browser_index_js.js +2 -2
- package/plugins_zoom_dist_browser_ZoomPluginInstance_js.js +40 -0
- package/plugins_zoom_dist_browser_ZoomPlugin_js.js +30 -0
- package/plugins_zoom_dist_browser_index_js.js +50 -0
- package/report.html +84 -29
- package/shapes_arrow_dist_browser_ArrowDrawer_js.js +3 -3
- package/shapes_arrow_dist_browser_index_js.js +2 -2
- package/shapes_cards_dist_browser_cards_CardDrawer_js.js +3 -53
- package/shapes_cards_dist_browser_clubs_ClubDrawer_js.js +2 -52
- package/shapes_cards_dist_browser_diamonds_DiamondDrawer_js.js +2 -52
- package/shapes_cards_dist_browser_hearts_HeartDrawer_js.js +2 -52
- package/shapes_cards_dist_browser_index_js.js +7 -7
- package/shapes_cards_dist_browser_paths_js.js +70 -0
- package/shapes_cards_dist_browser_spades_SpadeDrawer_js.js +2 -52
- package/shapes_circle_dist_browser_CircleDrawer_js.js +3 -3
- package/shapes_circle_dist_browser_index_js.js +2 -2
- package/shapes_cog_dist_browser_CogDrawer_js.js +3 -3
- package/shapes_cog_dist_browser_index_js.js +2 -2
- package/shapes_emoji_dist_browser_EmojiDrawer_js.js +17 -7
- package/shapes_emoji_dist_browser_index_js.js +12 -2
- package/shapes_heart_dist_browser_HeartDrawer_js.js +3 -3
- package/shapes_heart_dist_browser_index_js.js +2 -2
- package/shapes_image_dist_browser_GifUtils_Utils_js.js +6 -16
- package/shapes_image_dist_browser_ImageDrawer_js.js +2 -2
- package/shapes_image_dist_browser_ImagePreloaderInstance_js.js +30 -0
- package/shapes_image_dist_browser_ImagePreloader_js.js +3 -3
- package/shapes_image_dist_browser_index_js.js +12 -2
- package/shapes_infinity_dist_browser_InfinityDrawer_js.js +3 -3
- package/shapes_infinity_dist_browser_index_js.js +2 -2
- package/shapes_line_dist_browser_LineDrawer_js.js +3 -3
- package/shapes_line_dist_browser_index_js.js +2 -2
- package/shapes_matrix_dist_browser_MatrixDrawer_js.js +40 -0
- package/shapes_matrix_dist_browser_index_js.js +30 -0
- package/shapes_path_dist_browser_PathDrawer_js.js +5 -5
- package/shapes_path_dist_browser_index_js.js +2 -2
- package/shapes_polygon_dist_browser_PolygonDrawer_js.js +4 -4
- package/shapes_polygon_dist_browser_TriangleDrawer_js.js +4 -4
- package/shapes_polygon_dist_browser_index_js.js +2 -2
- package/shapes_rounded-polygon_dist_browser_RoundedPolygonDrawer_js.js +3 -3
- package/shapes_rounded-polygon_dist_browser_index_js.js +2 -2
- package/shapes_rounded-rect_dist_browser_RoundedRectDrawer_js.js +3 -3
- package/shapes_rounded-rect_dist_browser_index_js.js +2 -2
- package/shapes_spiral_dist_browser_SpiralDrawer_js.js +3 -3
- package/shapes_spiral_dist_browser_index_js.js +2 -2
- package/shapes_square_dist_browser_SquareDrawer_js.js +3 -3
- package/shapes_square_dist_browser_index_js.js +2 -2
- package/shapes_squircle_dist_browser_SquircleDrawer_js.js +40 -0
- package/shapes_squircle_dist_browser_index_js.js +30 -0
- package/shapes_star_dist_browser_StarDrawer_js.js +3 -3
- package/shapes_star_dist_browser_index_js.js +2 -2
- package/shapes_text_dist_browser_TextDrawer_js.js +17 -7
- package/shapes_text_dist_browser_index_js.js +12 -2
- package/slim_dist_browser_index_js.js +2 -2
- package/tsparticles.all.bundle.js +100 -88
- package/tsparticles.all.bundle.min.js +2 -2
- package/tsparticles.all.js +131 -21
- package/tsparticles.all.min.js +1 -2
- package/types/bundle.d.ts +1 -2
- package/umd/bundle.js +3 -3
- package/umd/index.js +162 -68
- package/updaters_destroy_dist_browser_DestroyUpdater_js.js +9 -9
- package/updaters_destroy_dist_browser_index_js.js +2 -2
- package/updaters_fillColor_dist_browser_FillColorUpdater_js.js +30 -0
- package/updaters_fillColor_dist_browser_index_js.js +30 -0
- package/updaters_gradient_dist_browser_GradientUpdater_js.js +9 -9
- package/updaters_gradient_dist_browser_index_js.js +2 -2
- package/updaters_life_dist_browser_LifeUpdater_js.js +6 -6
- package/updaters_life_dist_browser_index_js.js +2 -2
- package/updaters_opacity_dist_browser_OpacityUpdater_js.js +2 -2
- package/updaters_opacity_dist_browser_index_js.js +2 -2
- package/updaters_orbit_dist_browser_OrbitUpdater_js.js +6 -6
- package/updaters_orbit_dist_browser_index_js.js +2 -2
- package/updaters_outModes_dist_browser_OutOfCanvasUpdater_js.js +7 -7
- package/updaters_outModes_dist_browser_index_js.js +2 -2
- package/updaters_roll_dist_browser_RollUpdater_js.js +6 -6
- package/updaters_roll_dist_browser_index_js.js +2 -2
- package/updaters_rotate_dist_browser_RotateUpdater_js.js +4 -4
- package/updaters_rotate_dist_browser_index_js.js +2 -2
- package/updaters_size_dist_browser_SizeUpdater_js.js +2 -2
- package/updaters_size_dist_browser_index_js.js +2 -2
- package/updaters_strokeColor_dist_browser_StrokeColorUpdater_js.js +2 -2
- package/updaters_strokeColor_dist_browser_index_js.js +2 -2
- package/updaters_tilt_dist_browser_TiltUpdater_js.js +5 -5
- package/updaters_tilt_dist_browser_index_js.js +2 -2
- package/updaters_twinkle_dist_browser_TwinkleUpdater_js.js +18 -8
- package/updaters_twinkle_dist_browser_index_js.js +2 -2
- package/updaters_wobble_dist_browser_WobbleUpdater_js.js +5 -5
- package/updaters_wobble_dist_browser_index_js.js +2 -2
- package/utils_simplexNoise_dist_browser_index_js.js +7 -7
- package/1045.min.js +0 -2
- package/1045.min.js.LICENSE.txt +0 -1
- package/1049.min.js +0 -2
- package/1049.min.js.LICENSE.txt +0 -1
- package/1085.min.js +0 -2
- package/1085.min.js.LICENSE.txt +0 -1
- package/1112.min.js +0 -2
- package/1112.min.js.LICENSE.txt +0 -1
- package/1153.min.js +0 -2
- package/1153.min.js.LICENSE.txt +0 -1
- package/1183.min.js +0 -2
- package/1183.min.js.LICENSE.txt +0 -1
- package/1222.min.js +0 -2
- package/1222.min.js.LICENSE.txt +0 -1
- package/1278.min.js +0 -2
- package/1278.min.js.LICENSE.txt +0 -1
- package/1306.min.js +0 -2
- package/1306.min.js.LICENSE.txt +0 -1
- package/1350.min.js +0 -2
- package/1350.min.js.LICENSE.txt +0 -1
- package/1370.min.js +0 -2
- package/1370.min.js.LICENSE.txt +0 -1
- package/1446.min.js +0 -2
- package/1446.min.js.LICENSE.txt +0 -1
- package/15.min.js +0 -2
- package/15.min.js.LICENSE.txt +0 -1
- package/150.min.js +0 -2
- package/150.min.js.LICENSE.txt +0 -1
- package/151.min.js +0 -2
- package/151.min.js.LICENSE.txt +0 -1
- package/1542.min.js +0 -2
- package/1542.min.js.LICENSE.txt +0 -1
- package/1555.min.js +0 -2
- package/1555.min.js.LICENSE.txt +0 -1
- package/156.min.js +0 -2
- package/156.min.js.LICENSE.txt +0 -1
- package/1587.min.js +0 -2
- package/1587.min.js.LICENSE.txt +0 -1
- package/1608.min.js +0 -2
- package/1608.min.js.LICENSE.txt +0 -1
- package/1609.min.js +0 -2
- package/1609.min.js.LICENSE.txt +0 -1
- package/1678.min.js +0 -2
- package/1678.min.js.LICENSE.txt +0 -1
- package/1750.min.js +0 -2
- package/1750.min.js.LICENSE.txt +0 -1
- package/176.min.js +0 -2
- package/176.min.js.LICENSE.txt +0 -1
- package/1801.min.js +0 -2
- package/1801.min.js.LICENSE.txt +0 -1
- package/1804.min.js +0 -2
- package/1804.min.js.LICENSE.txt +0 -1
- package/1878.min.js +0 -2
- package/1878.min.js.LICENSE.txt +0 -1
- package/1887.min.js +0 -2
- package/1887.min.js.LICENSE.txt +0 -1
- package/1909.min.js +0 -2
- package/1909.min.js.LICENSE.txt +0 -1
- package/1968.min.js +0 -2
- package/1968.min.js.LICENSE.txt +0 -1
- package/1972.min.js +0 -2
- package/1972.min.js.LICENSE.txt +0 -1
- package/2006.min.js +0 -2
- package/2006.min.js.LICENSE.txt +0 -1
- package/2032.min.js +0 -2
- package/2032.min.js.LICENSE.txt +0 -1
- package/2192.min.js +0 -2
- package/2192.min.js.LICENSE.txt +0 -1
- package/2201.min.js +0 -2
- package/2201.min.js.LICENSE.txt +0 -1
- package/221.min.js +0 -2
- package/221.min.js.LICENSE.txt +0 -1
- package/2227.min.js +0 -2
- package/2227.min.js.LICENSE.txt +0 -1
- package/2291.min.js +0 -2
- package/2291.min.js.LICENSE.txt +0 -1
- package/2381.min.js +0 -2
- package/2381.min.js.LICENSE.txt +0 -1
- package/2387.min.js +0 -2
- package/2387.min.js.LICENSE.txt +0 -1
- package/2398.min.js +0 -2
- package/2398.min.js.LICENSE.txt +0 -1
- package/2461.min.js +0 -2
- package/2461.min.js.LICENSE.txt +0 -1
- package/2488.min.js +0 -2
- package/2488.min.js.LICENSE.txt +0 -1
- package/2495.min.js +0 -2
- package/2495.min.js.LICENSE.txt +0 -1
- package/2524.min.js +0 -2
- package/2524.min.js.LICENSE.txt +0 -1
- package/2583.min.js +0 -2
- package/2583.min.js.LICENSE.txt +0 -1
- package/2612.min.js +0 -2
- package/2612.min.js.LICENSE.txt +0 -1
- package/2615.min.js +0 -2
- package/2615.min.js.LICENSE.txt +0 -1
- package/2629.min.js +0 -2
- package/2629.min.js.LICENSE.txt +0 -1
- package/2679.min.js +0 -2
- package/2679.min.js.LICENSE.txt +0 -1
- package/2729.min.js +0 -2
- package/2729.min.js.LICENSE.txt +0 -1
- package/2752.min.js +0 -2
- package/2752.min.js.LICENSE.txt +0 -1
- package/2754.min.js +0 -2
- package/2754.min.js.LICENSE.txt +0 -1
- package/2827.min.js +0 -2
- package/2827.min.js.LICENSE.txt +0 -1
- package/2838.min.js +0 -2
- package/2838.min.js.LICENSE.txt +0 -1
- package/284.min.js +0 -2
- package/284.min.js.LICENSE.txt +0 -1
- package/2842.min.js +0 -2
- package/2842.min.js.LICENSE.txt +0 -1
- package/290.min.js +0 -2
- package/290.min.js.LICENSE.txt +0 -1
- package/2901.min.js +0 -2
- package/2901.min.js.LICENSE.txt +0 -1
- package/2923.min.js +0 -2
- package/2923.min.js.LICENSE.txt +0 -1
- package/2942.min.js +0 -2
- package/2942.min.js.LICENSE.txt +0 -1
- package/2970.min.js +0 -2
- package/2970.min.js.LICENSE.txt +0 -1
- package/3003.min.js +0 -2
- package/3003.min.js.LICENSE.txt +0 -1
- package/3067.min.js +0 -2
- package/3067.min.js.LICENSE.txt +0 -1
- package/3120.min.js +0 -2
- package/3120.min.js.LICENSE.txt +0 -1
- package/3148.min.js +0 -2
- package/3148.min.js.LICENSE.txt +0 -1
- package/3152.min.js.LICENSE.txt +0 -1
- package/3153.min.js +0 -2
- package/3153.min.js.LICENSE.txt +0 -1
- package/3182.min.js +0 -2
- package/3182.min.js.LICENSE.txt +0 -1
- package/3189.min.js +0 -2
- package/3189.min.js.LICENSE.txt +0 -1
- package/3209.min.js +0 -2
- package/3209.min.js.LICENSE.txt +0 -1
- package/3215.min.js +0 -2
- package/3215.min.js.LICENSE.txt +0 -1
- package/3306.min.js +0 -2
- package/3306.min.js.LICENSE.txt +0 -1
- package/3316.min.js +0 -2
- package/3316.min.js.LICENSE.txt +0 -1
- package/3396.min.js +0 -2
- package/3396.min.js.LICENSE.txt +0 -1
- package/3442.min.js +0 -2
- package/3442.min.js.LICENSE.txt +0 -1
- package/3445.min.js +0 -2
- package/3445.min.js.LICENSE.txt +0 -1
- package/3446.min.js +0 -2
- package/3446.min.js.LICENSE.txt +0 -1
- package/3451.min.js +0 -2
- package/3451.min.js.LICENSE.txt +0 -1
- package/346.min.js +0 -2
- package/346.min.js.LICENSE.txt +0 -1
- package/3598.min.js +0 -2
- package/3598.min.js.LICENSE.txt +0 -1
- package/3629.min.js +0 -2
- package/3629.min.js.LICENSE.txt +0 -1
- package/3643.min.js +0 -2
- package/3643.min.js.LICENSE.txt +0 -1
- package/3712.min.js +0 -2
- package/3712.min.js.LICENSE.txt +0 -1
- package/3722.min.js +0 -2
- package/3722.min.js.LICENSE.txt +0 -1
- package/3743.min.js +0 -2
- package/3743.min.js.LICENSE.txt +0 -1
- package/3744.min.js +0 -2
- package/3744.min.js.LICENSE.txt +0 -1
- package/3748.min.js +0 -2
- package/3748.min.js.LICENSE.txt +0 -1
- package/3759.min.js +0 -2
- package/3759.min.js.LICENSE.txt +0 -1
- package/3803.min.js +0 -2
- package/3803.min.js.LICENSE.txt +0 -1
- package/3804.min.js +0 -2
- package/3804.min.js.LICENSE.txt +0 -1
- package/3865.min.js +0 -2
- package/3865.min.js.LICENSE.txt +0 -1
- package/3925.min.js +0 -2
- package/3925.min.js.LICENSE.txt +0 -1
- package/3961.min.js.LICENSE.txt +0 -1
- package/3997.min.js +0 -2
- package/3997.min.js.LICENSE.txt +0 -1
- package/4007.min.js +0 -2
- package/4007.min.js.LICENSE.txt +0 -1
- package/4033.min.js +0 -2
- package/4033.min.js.LICENSE.txt +0 -1
- package/4091.min.js +0 -2
- package/4091.min.js.LICENSE.txt +0 -1
- package/4119.min.js +0 -2
- package/4119.min.js.LICENSE.txt +0 -1
- package/4235.min.js +0 -2
- package/4235.min.js.LICENSE.txt +0 -1
- package/4243.min.js +0 -2
- package/4243.min.js.LICENSE.txt +0 -1
- package/4324.min.js +0 -2
- package/4324.min.js.LICENSE.txt +0 -1
- package/4340.min.js +0 -2
- package/4340.min.js.LICENSE.txt +0 -1
- package/4427.min.js +0 -2
- package/4427.min.js.LICENSE.txt +0 -1
- package/4481.min.js +0 -2
- package/4481.min.js.LICENSE.txt +0 -1
- package/454.min.js +0 -2
- package/454.min.js.LICENSE.txt +0 -1
- package/4544.min.js +0 -2
- package/4544.min.js.LICENSE.txt +0 -1
- package/4545.min.js +0 -2
- package/4545.min.js.LICENSE.txt +0 -1
- package/4547.min.js +0 -2
- package/4547.min.js.LICENSE.txt +0 -1
- package/4571.min.js +0 -2
- package/4571.min.js.LICENSE.txt +0 -1
- package/4619.min.js +0 -2
- package/4619.min.js.LICENSE.txt +0 -1
- package/4675.min.js +0 -2
- package/4675.min.js.LICENSE.txt +0 -1
- package/4689.min.js +0 -2
- package/4689.min.js.LICENSE.txt +0 -1
- package/4698.min.js +0 -2
- package/4698.min.js.LICENSE.txt +0 -1
- package/4713.min.js +0 -2
- package/4713.min.js.LICENSE.txt +0 -1
- package/4744.min.js +0 -2
- package/4744.min.js.LICENSE.txt +0 -1
- package/4764.min.js +0 -2
- package/4764.min.js.LICENSE.txt +0 -1
- package/4813.min.js +0 -2
- package/4813.min.js.LICENSE.txt +0 -1
- package/4837.min.js.LICENSE.txt +0 -1
- package/4852.min.js +0 -2
- package/4852.min.js.LICENSE.txt +0 -1
- package/4873.min.js +0 -2
- package/4873.min.js.LICENSE.txt +0 -1
- package/4884.min.js +0 -2
- package/4884.min.js.LICENSE.txt +0 -1
- package/4962.min.js +0 -2
- package/4962.min.js.LICENSE.txt +0 -1
- package/4968.min.js +0 -2
- package/4968.min.js.LICENSE.txt +0 -1
- package/4983.min.js +0 -2
- package/4983.min.js.LICENSE.txt +0 -1
- package/4985.min.js +0 -2
- package/4985.min.js.LICENSE.txt +0 -1
- package/5010.min.js +0 -2
- package/5010.min.js.LICENSE.txt +0 -1
- package/5058.min.js +0 -2
- package/5058.min.js.LICENSE.txt +0 -1
- package/5113.min.js +0 -2
- package/5113.min.js.LICENSE.txt +0 -1
- package/5142.min.js +0 -2
- package/5142.min.js.LICENSE.txt +0 -1
- package/5152.min.js +0 -2
- package/5152.min.js.LICENSE.txt +0 -1
- package/5166.min.js +0 -2
- package/5166.min.js.LICENSE.txt +0 -1
- package/5182.min.js +0 -2
- package/5182.min.js.LICENSE.txt +0 -1
- package/521.min.js +0 -2
- package/521.min.js.LICENSE.txt +0 -1
- package/5273.min.js +0 -2
- package/5273.min.js.LICENSE.txt +0 -1
- package/5291.min.js +0 -2
- package/5291.min.js.LICENSE.txt +0 -1
- package/5302.min.js +0 -2
- package/5302.min.js.LICENSE.txt +0 -1
- package/5336.min.js +0 -2
- package/5336.min.js.LICENSE.txt +0 -1
- package/5460.min.js +0 -2
- package/5460.min.js.LICENSE.txt +0 -1
- package/5471.min.js +0 -2
- package/5471.min.js.LICENSE.txt +0 -1
- package/5475.min.js +0 -2
- package/5475.min.js.LICENSE.txt +0 -1
- package/5505.min.js +0 -2
- package/5505.min.js.LICENSE.txt +0 -1
- package/5516.min.js +0 -2
- package/5516.min.js.LICENSE.txt +0 -1
- package/5787.min.js +0 -2
- package/5787.min.js.LICENSE.txt +0 -1
- package/5913.min.js +0 -2
- package/5913.min.js.LICENSE.txt +0 -1
- package/5919.min.js +0 -2
- package/5919.min.js.LICENSE.txt +0 -1
- package/593.min.js +0 -2
- package/593.min.js.LICENSE.txt +0 -1
- package/5931.min.js +0 -2
- package/5931.min.js.LICENSE.txt +0 -1
- package/597.min.js +0 -2
- package/597.min.js.LICENSE.txt +0 -1
- package/5987.min.js +0 -2
- package/5987.min.js.LICENSE.txt +0 -1
- package/6048.min.js +0 -2
- package/6048.min.js.LICENSE.txt +0 -1
- package/6081.min.js +0 -2
- package/6081.min.js.LICENSE.txt +0 -1
- package/6181.min.js +0 -2
- package/6181.min.js.LICENSE.txt +0 -1
- package/6184.min.js +0 -2
- package/6184.min.js.LICENSE.txt +0 -1
- package/620.min.js +0 -2
- package/620.min.js.LICENSE.txt +0 -1
- package/6219.min.js +0 -2
- package/6219.min.js.LICENSE.txt +0 -1
- package/6249.min.js +0 -2
- package/6249.min.js.LICENSE.txt +0 -1
- package/6296.min.js +0 -2
- package/6296.min.js.LICENSE.txt +0 -1
- package/6361.min.js +0 -2
- package/6361.min.js.LICENSE.txt +0 -1
- package/6388.min.js.LICENSE.txt +0 -1
- package/6441.min.js +0 -2
- package/6441.min.js.LICENSE.txt +0 -1
- package/6548.min.js +0 -2
- package/6548.min.js.LICENSE.txt +0 -1
- package/6556.min.js +0 -2
- package/6556.min.js.LICENSE.txt +0 -1
- package/6580.min.js +0 -2
- package/6580.min.js.LICENSE.txt +0 -1
- package/6608.min.js +0 -2
- package/6608.min.js.LICENSE.txt +0 -1
- package/6640.min.js +0 -2
- package/6640.min.js.LICENSE.txt +0 -1
- package/671.min.js +0 -2
- package/671.min.js.LICENSE.txt +0 -1
- package/6711.min.js.LICENSE.txt +0 -1
- package/6720.min.js +0 -2
- package/6720.min.js.LICENSE.txt +0 -1
- package/6742.min.js +0 -2
- package/6742.min.js.LICENSE.txt +0 -1
- package/6753.min.js +0 -2
- package/6753.min.js.LICENSE.txt +0 -1
- package/6824.min.js +0 -2
- package/6824.min.js.LICENSE.txt +0 -1
- package/6890.min.js +0 -2
- package/6890.min.js.LICENSE.txt +0 -1
- package/6895.min.js +0 -2
- package/6895.min.js.LICENSE.txt +0 -1
- package/6905.min.js +0 -2
- package/6905.min.js.LICENSE.txt +0 -1
- package/6908.min.js +0 -2
- package/6908.min.js.LICENSE.txt +0 -1
- package/6911.min.js +0 -2
- package/6911.min.js.LICENSE.txt +0 -1
- package/6973.min.js +0 -2
- package/6973.min.js.LICENSE.txt +0 -1
- package/6983.min.js +0 -2
- package/6983.min.js.LICENSE.txt +0 -1
- package/6988.min.js +0 -2
- package/6988.min.js.LICENSE.txt +0 -1
- package/6992.min.js +0 -2
- package/6992.min.js.LICENSE.txt +0 -1
- package/6998.min.js +0 -2
- package/6998.min.js.LICENSE.txt +0 -1
- package/7012.min.js +0 -2
- package/7012.min.js.LICENSE.txt +0 -1
- package/7044.min.js +0 -2
- package/7044.min.js.LICENSE.txt +0 -1
- package/7056.min.js +0 -2
- package/7056.min.js.LICENSE.txt +0 -1
- package/7125.min.js +0 -2
- package/7125.min.js.LICENSE.txt +0 -1
- package/7134.min.js +0 -2
- package/7134.min.js.LICENSE.txt +0 -1
- package/7147.min.js +0 -2
- package/7147.min.js.LICENSE.txt +0 -1
- package/7160.min.js +0 -2
- package/7160.min.js.LICENSE.txt +0 -1
- package/718.min.js +0 -2
- package/718.min.js.LICENSE.txt +0 -1
- package/7188.min.js +0 -2
- package/7188.min.js.LICENSE.txt +0 -1
- package/7191.min.js +0 -2
- package/7191.min.js.LICENSE.txt +0 -1
- package/7245.min.js +0 -2
- package/7245.min.js.LICENSE.txt +0 -1
- package/7256.min.js +0 -2
- package/7256.min.js.LICENSE.txt +0 -1
- package/7259.min.js +0 -2
- package/7259.min.js.LICENSE.txt +0 -1
- package/7276.min.js +0 -2
- package/7276.min.js.LICENSE.txt +0 -1
- package/736.min.js +0 -2
- package/736.min.js.LICENSE.txt +0 -1
- package/7448.min.js +0 -2
- package/7448.min.js.LICENSE.txt +0 -1
- package/7569.min.js +0 -2
- package/7569.min.js.LICENSE.txt +0 -1
- package/76.min.js +0 -2
- package/76.min.js.LICENSE.txt +0 -1
- package/761.min.js +0 -2
- package/761.min.js.LICENSE.txt +0 -1
- package/7611.min.js +0 -2
- package/7611.min.js.LICENSE.txt +0 -1
- package/7613.min.js +0 -2
- package/7613.min.js.LICENSE.txt +0 -1
- package/7704.min.js +0 -2
- package/7704.min.js.LICENSE.txt +0 -1
- package/7746.min.js +0 -2
- package/7746.min.js.LICENSE.txt +0 -1
- package/7749.min.js +0 -2
- package/7749.min.js.LICENSE.txt +0 -1
- package/7774.min.js +0 -2
- package/7774.min.js.LICENSE.txt +0 -1
- package/7835.min.js +0 -2
- package/7835.min.js.LICENSE.txt +0 -1
- package/785.min.js +0 -2
- package/785.min.js.LICENSE.txt +0 -1
- package/7952.min.js +0 -2
- package/7952.min.js.LICENSE.txt +0 -1
- package/7983.min.js +0 -2
- package/7983.min.js.LICENSE.txt +0 -1
- package/8013.min.js +0 -2
- package/8013.min.js.LICENSE.txt +0 -1
- package/8018.min.js +0 -2
- package/8018.min.js.LICENSE.txt +0 -1
- package/8026.min.js +0 -2
- package/8026.min.js.LICENSE.txt +0 -1
- package/8084.min.js +0 -2
- package/8084.min.js.LICENSE.txt +0 -1
- package/8156.min.js +0 -2
- package/8156.min.js.LICENSE.txt +0 -1
- package/8182.min.js +0 -2
- package/8182.min.js.LICENSE.txt +0 -1
- package/8188.min.js +0 -2
- package/8188.min.js.LICENSE.txt +0 -1
- package/8296.min.js +0 -2
- package/8296.min.js.LICENSE.txt +0 -1
- package/83.min.js.LICENSE.txt +0 -1
- package/8314.min.js +0 -2
- package/8314.min.js.LICENSE.txt +0 -1
- package/8320.min.js +0 -2
- package/8320.min.js.LICENSE.txt +0 -1
- package/8411.min.js +0 -2
- package/8411.min.js.LICENSE.txt +0 -1
- package/8445.min.js +0 -2
- package/8445.min.js.LICENSE.txt +0 -1
- package/8509.min.js +0 -2
- package/8509.min.js.LICENSE.txt +0 -1
- package/8526.min.js +0 -2
- package/8526.min.js.LICENSE.txt +0 -1
- package/8551.min.js +0 -2
- package/8551.min.js.LICENSE.txt +0 -1
- package/8644.min.js +0 -2
- package/8644.min.js.LICENSE.txt +0 -1
- package/8675.min.js +0 -2
- package/8675.min.js.LICENSE.txt +0 -1
- package/8799.min.js +0 -2
- package/8799.min.js.LICENSE.txt +0 -1
- package/8818.min.js +0 -2
- package/8818.min.js.LICENSE.txt +0 -1
- package/8827.min.js +0 -2
- package/8827.min.js.LICENSE.txt +0 -1
- package/8830.min.js +0 -2
- package/8830.min.js.LICENSE.txt +0 -1
- package/8847.min.js +0 -2
- package/8847.min.js.LICENSE.txt +0 -1
- package/8893.min.js +0 -2
- package/8893.min.js.LICENSE.txt +0 -1
- package/8951.min.js +0 -2
- package/8951.min.js.LICENSE.txt +0 -1
- package/8993.min.js +0 -2
- package/8993.min.js.LICENSE.txt +0 -1
- package/9039.min.js +0 -2
- package/9039.min.js.LICENSE.txt +0 -1
- package/9050.min.js +0 -2
- package/9050.min.js.LICENSE.txt +0 -1
- package/9052.min.js +0 -2
- package/9052.min.js.LICENSE.txt +0 -1
- package/9111.min.js +0 -2
- package/9111.min.js.LICENSE.txt +0 -1
- package/9127.min.js +0 -2
- package/9127.min.js.LICENSE.txt +0 -1
- package/917.min.js +0 -2
- package/917.min.js.LICENSE.txt +0 -1
- package/9216.min.js +0 -2
- package/9216.min.js.LICENSE.txt +0 -1
- package/9234.min.js +0 -2
- package/9234.min.js.LICENSE.txt +0 -1
- package/9273.min.js +0 -2
- package/9273.min.js.LICENSE.txt +0 -1
- package/9277.min.js +0 -2
- package/9277.min.js.LICENSE.txt +0 -1
- package/937.min.js +0 -2
- package/937.min.js.LICENSE.txt +0 -1
- package/9410.min.js +0 -2
- package/9410.min.js.LICENSE.txt +0 -1
- package/9447.min.js +0 -2
- package/9447.min.js.LICENSE.txt +0 -1
- package/9456.min.js +0 -2
- package/9456.min.js.LICENSE.txt +0 -1
- package/9467.min.js +0 -2
- package/9467.min.js.LICENSE.txt +0 -1
- package/9527.min.js +0 -2
- package/9527.min.js.LICENSE.txt +0 -1
- package/9563.min.js +0 -2
- package/9563.min.js.LICENSE.txt +0 -1
- package/9566.min.js +0 -2
- package/9566.min.js.LICENSE.txt +0 -1
- package/9591.min.js +0 -2
- package/9591.min.js.LICENSE.txt +0 -1
- package/9596.min.js +0 -2
- package/9596.min.js.LICENSE.txt +0 -1
- package/9639.min.js +0 -2
- package/9639.min.js.LICENSE.txt +0 -1
- package/9643.min.js.LICENSE.txt +0 -1
- package/9665.min.js +0 -2
- package/9665.min.js.LICENSE.txt +0 -1
- package/9715.min.js +0 -2
- package/9715.min.js.LICENSE.txt +0 -1
- package/9765.min.js +0 -2
- package/9765.min.js.LICENSE.txt +0 -1
- package/979.min.js +0 -2
- package/979.min.js.LICENSE.txt +0 -1
- package/9839.min.js +0 -2
- package/9839.min.js.LICENSE.txt +0 -1
- package/987.min.js +0 -2
- package/987.min.js.LICENSE.txt +0 -1
- package/9902.min.js +0 -2
- package/9902.min.js.LICENSE.txt +0 -1
- package/9928.min.js +0 -2
- package/9928.min.js.LICENSE.txt +0 -1
- package/move_base_dist_browser_BaseMover_js.js +0 -40
- package/move_base_dist_browser_index_js.js +0 -30
- package/shapes_image_dist_browser_Utils_js.js +0 -30
- package/tsparticles.all.bundle.min.js.LICENSE.txt +0 -1
- package/tsparticles.all.min.js.LICENSE.txt +0 -1
- package/updaters_color_dist_browser_ColorUpdater_js.js +0 -30
- package/updaters_color_dist_browser_index_js.js +0 -30
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Demo / Generator : https://particles.js.org/
|
|
5
5
|
* GitHub : https://www.github.com/matteobruni/tsparticles
|
|
6
6
|
* How to use? : Check the GitHub README
|
|
7
|
-
* v4.0.0-
|
|
7
|
+
* v4.0.0-beta.1
|
|
8
8
|
*/
|
|
9
9
|
"use strict";
|
|
10
10
|
/*
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
\*********************************************************************/
|
|
24
24
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
25
25
|
|
|
26
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PolygonMaskInstance: () => (/* binding */ PolygonMaskInstance)\n/* harmony export */ });\n/* harmony import */ var _pathseg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pathseg.js */ \"../../plugins/polygonMask/dist/browser/pathseg.js\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils.js */ \"../../plugins/polygonMask/dist/browser/utils.js\");\n/* harmony import */ var _Enums_PolygonMaskInlineArrangement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Enums/PolygonMaskInlineArrangement.js */ \"../../plugins/polygonMask/dist/browser/Enums/PolygonMaskInlineArrangement.js\");\n/* harmony import */ var _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Enums/PolygonMaskType.js */ \"../../plugins/polygonMask/dist/browser/Enums/PolygonMaskType.js\");\n\n\n\n\n\nconst noPolygonDataLoaded = `No polygon data loaded.`,\n noPolygonFound = `No polygon found, you need to specify SVG url in config.`;\nclass PolygonMaskInstance {\n constructor(container, engine) {\n this._checkInsidePolygon = position => {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options?.enable || options.type === _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.none || options.type === _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.inline) {\n return true;\n }\n if (!this.raw) {\n throw new Error(noPolygonFound);\n }\n const canvasSize = container.canvas.size,\n x = position?.x ?? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getRandom)() * canvasSize.width,\n y = position?.y ?? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getRandom)() * canvasSize.height,\n indexOffset = 1;\n let inside = false;\n for (let i = 0, j = this.raw.length - indexOffset; i < this.raw.length; j = i++) {\n const pi = this.raw[i],\n pj = this.raw[j];\n if (!pi || !pj) {\n continue;\n }\n const intersect = pi.y > y !== pj.y > y && x < (pj.x - pi.x) * (y - pi.y) / (pj.y - pi.y) + pi.x;\n if (intersect) {\n inside = !inside;\n }\n }\n if (options.type === _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.inside) {\n return inside;\n } else {\n return !inside;\n }\n };\n this._createPath2D = () => {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options || !this.paths?.length) {\n return;\n }\n for (const path of this.paths) {\n const pathData = path.element.getAttribute(\"d\");\n if (pathData) {\n const path2d = new Path2D(pathData),\n matrix = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.safeDocument)().createElementNS(\"http://www.w3.org/2000/svg\", \"svg\").createSVGMatrix(),\n finalPath = new Path2D(),\n transform = matrix.scale(this._scale);\n finalPath.addPath(path2d, transform);\n path.path2d = finalPath;\n } else {\n delete path.path2d;\n }\n if (path.path2d ?? !this.raw) {\n continue;\n }\n path.path2d = new Path2D();\n const firstIndex = 0,\n firstPoint = this.raw[firstIndex];\n if (!firstPoint) {\n continue;\n }\n path.path2d.moveTo(firstPoint.x, firstPoint.y);\n this.raw.forEach((pos, i) => {\n if (i > firstIndex) {\n path.path2d?.lineTo(pos.x, pos.y);\n }\n });\n path.path2d.closePath();\n }\n };\n this._downloadSvgPath = async (svgUrl, force) => {\n const options = this._container.actualOptions.polygon;\n if (!options) {\n return;\n }\n const url = svgUrl ?? options.url,\n forceDownload = force ?? false;\n if (!url || this.paths !== undefined && !forceDownload) {\n return this.raw;\n }\n const req = await fetch(url);\n if (!req.ok) {\n throw new Error(`Error occurred during polygon mask download`);\n }\n return this._parseSvgPath(await req.text(), force);\n };\n this._drawPoints = () => {\n if (!this.raw) {\n return;\n }\n for (const item of this.raw) {\n void this._container.particles.addParticle({\n x: item.x,\n y: item.y\n });\n }\n };\n this._getEquidistantPointByIndex = index => {\n const container = this._container,\n options = container.actualOptions,\n polygonMaskOptions = options.polygon;\n if (!polygonMaskOptions) {\n return;\n }\n if (!this.raw?.length || !this.paths?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n let offset = 0,\n point;\n const baseAccumulator = 0,\n totalLength = this.paths.reduce((tot, path) => tot + path.length, baseAccumulator),\n distance = totalLength / options.particles.number.value;\n for (const path of this.paths) {\n const pathDistance = distance * index - offset;\n if (pathDistance <= path.length) {\n point = path.element.getPointAtLength(pathDistance);\n break;\n } else {\n offset += path.length;\n }\n }\n const scale = this._scale;\n return {\n x: (point?.x ?? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.originPoint.x) * scale + (this.offset?.x ?? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.originPoint.x),\n y: (point?.y ?? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.originPoint.y) * scale + (this.offset?.y ?? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.originPoint.y)\n };\n };\n this._getPointByIndex = index => {\n if (!this.raw?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n const coords = this.raw[index % this.raw.length];\n if (!coords) {\n return;\n }\n return {\n x: coords.x,\n y: coords.y\n };\n };\n this._getRandomPoint = () => {\n if (!this.raw?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n const coords = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.itemFromArray)(this.raw);\n if (!coords) {\n return;\n }\n return {\n x: coords.x,\n y: coords.y\n };\n };\n this._getRandomPointByLength = () => {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options) {\n return;\n }\n if (!this.raw?.length || !this.paths?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n const path = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.itemFromArray)(this.paths);\n if (!path) {\n return;\n }\n const offset = 1,\n distance = Math.floor((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getRandom)() * path.length) + offset,\n point = path.element.getPointAtLength(distance),\n scale = this._scale;\n return {\n x: point.x * scale + (this.offset?.x ?? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.originPoint.x),\n y: point.y * scale + (this.offset?.y ?? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.originPoint.y)\n };\n };\n this._initRawData = async force => {\n const options = this._container.actualOptions.polygon;\n if (!options) {\n return;\n }\n if (options.url) {\n this.raw = await this._downloadSvgPath(options.url, force);\n } else if (options.data) {\n const data = options.data;\n let svg;\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.isString)(data)) {\n svg = data;\n } else {\n const getPath = p => `<path d=\"${p}\" />`,\n path = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.isArray)(data.path) ? data.path.map(getPath).join(\"\") : getPath(data.path);\n const namespaces = 'xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n svg = `<svg ${namespaces} width=\"${data.size.width.toString()}\" height=\"${data.size.height.toString()}\">${path}</svg>`;\n }\n this.raw = this._parseSvgPath(svg, force);\n }\n this._createPath2D();\n this._engine.dispatchEvent(\"polygonMaskLoaded\", {\n container: this._container\n });\n };\n this._parseSvgPath = (xml, force) => {\n const forceDownload = force ?? false;\n if (this.paths !== undefined && !forceDownload) {\n return this.raw;\n }\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options) {\n return;\n }\n const parser = new DOMParser(),\n doc = parser.parseFromString(xml, \"image/svg+xml\"),\n firstIndex = 0,\n svg = doc.getElementsByTagName(\"svg\")[firstIndex];\n if (!svg) {\n return;\n }\n let svgPaths = svg.getElementsByTagName(\"path\");\n if (!svgPaths.length) {\n svgPaths = doc.getElementsByTagName(\"path\");\n }\n this.paths = [];\n for (let i = 0; i < svgPaths.length; i++) {\n const path = svgPaths.item(i);\n if (path) {\n this.paths.push({\n element: path,\n length: path.getTotalLength()\n });\n }\n }\n const scale = this._scale;\n this.dimension.width = parseFloat(svg.getAttribute(\"width\") ?? \"0\") * scale;\n this.dimension.height = parseFloat(svg.getAttribute(\"height\") ?? \"0\") * scale;\n const position = options.position ?? {\n x: 50,\n y: 50\n },\n canvasSize = container.canvas.size;\n this.offset = {\n x: canvasSize.width * position.x / _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.percentDenominator - this.dimension.width * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.half,\n y: canvasSize.height * position.y / _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.percentDenominator - this.dimension.height * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.half\n };\n return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parsePaths)(this.paths, scale, this.offset);\n };\n this._polygonBounce = (particle, _delta, direction) => {\n const options = this._container.actualOptions.polygon;\n if (!this.raw || !options?.enable || direction !== _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.OutModeDirection.top) {\n return false;\n }\n if (options.type === _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.inside || options.type === _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.outside) {\n let closest, dx, dy;\n const pos = particle.getPosition(),\n radius = particle.getRadius(),\n offset = 1;\n for (let i = 0, j = this.raw.length - offset; i < this.raw.length; j = i++) {\n const pi = this.raw[i],\n pj = this.raw[j];\n if (!pi || !pj) {\n continue;\n }\n closest = (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.calcClosestPointOnSegment)(pi, pj, pos);\n const dist = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getDistances)(pos, closest);\n [dx, dy] = [dist.dx, dist.dy];\n if (dist.distance < radius) {\n (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.segmentBounce)(pi, pj, particle.velocity);\n return true;\n }\n }\n if (closest && dx !== undefined && dy !== undefined && !this._checkInsidePolygon(pos)) {\n const factor = {\n x: 1,\n y: 1\n },\n diameter = radius * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.double,\n inverse = -1;\n if (pos.x >= closest.x) {\n factor.x = -1;\n }\n if (pos.y >= closest.y) {\n factor.y = -1;\n }\n particle.position.x = closest.x + diameter * factor.x;\n particle.position.y = closest.y + diameter * factor.y;\n particle.velocity.mult(inverse);\n return true;\n }\n } else if (options.type === _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.inline) {\n const dist = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getDistance)(particle.initialPosition, particle.getPosition()),\n {\n velocity\n } = particle;\n if (dist > this._moveRadius) {\n velocity.x = velocity.y * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.half - velocity.x;\n velocity.y = velocity.x * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.half - velocity.y;\n return true;\n }\n }\n return false;\n };\n this._randomPoint = () => {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options) {\n return;\n }\n let position;\n if (options.type === _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.inline) {\n switch (options.inline.arrangement) {\n case _Enums_PolygonMaskInlineArrangement_js__WEBPACK_IMPORTED_MODULE_3__.PolygonMaskInlineArrangement.randomPoint:\n position = this._getRandomPoint();\n break;\n case _Enums_PolygonMaskInlineArrangement_js__WEBPACK_IMPORTED_MODULE_3__.PolygonMaskInlineArrangement.randomLength:\n position = this._getRandomPointByLength();\n break;\n case _Enums_PolygonMaskInlineArrangement_js__WEBPACK_IMPORTED_MODULE_3__.PolygonMaskInlineArrangement.equidistant:\n position = this._getEquidistantPointByIndex(container.particles.count);\n break;\n case _Enums_PolygonMaskInlineArrangement_js__WEBPACK_IMPORTED_MODULE_3__.PolygonMaskInlineArrangement.onePerPoint:\n case _Enums_PolygonMaskInlineArrangement_js__WEBPACK_IMPORTED_MODULE_3__.PolygonMaskInlineArrangement.perPoint:\n default:\n position = this._getPointByIndex(container.particles.count);\n }\n } else {\n const canvasSize = container.canvas.size;\n position = {\n x: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getRandom)() * canvasSize.width,\n y: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getRandom)() * canvasSize.height\n };\n }\n if (this._checkInsidePolygon(position)) {\n return position;\n } else {\n return this._randomPoint();\n }\n };\n this._container = container;\n this._engine = engine;\n this.dimension = {\n height: 0,\n width: 0\n };\n this._moveRadius = 0;\n this._scale = 1;\n }\n clickPositionValid(position) {\n const options = this._container.actualOptions.polygon;\n return !!options?.enable && options.type !== _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.none && options.type !== _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.inline && this._checkInsidePolygon(position);\n }\n draw(context) {\n if (!this.paths?.length) {\n return;\n }\n const options = this._container.actualOptions.polygon;\n if (!options?.enable) {\n return;\n }\n const polygonDraw = options.draw;\n if (!polygonDraw.enable) {\n return;\n }\n const rawData = this.raw;\n for (const path of this.paths) {\n const path2d = path.path2d;\n if (path2d && this.offset) {\n (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.drawPolygonMaskPath)(this._engine, context, path2d, polygonDraw.stroke, this.offset, this._container.hdr);\n } else if (rawData) {\n (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.drawPolygonMask)(this._engine, context, rawData, polygonDraw.stroke, this._container.hdr);\n }\n }\n }\n async init() {\n const container = this._container,\n polygonMaskOptions = container.actualOptions.polygon,\n pxRatio = container.retina.pixelRatio;\n if (!polygonMaskOptions) {\n return;\n }\n this._moveRadius = polygonMaskOptions.move.radius * pxRatio;\n this._scale = polygonMaskOptions.scale * pxRatio;\n if (polygonMaskOptions.enable) {\n await this._initRawData();\n }\n }\n particleBounce(particle, delta, direction) {\n return this._polygonBounce(particle, delta, direction);\n }\n particlePosition(position) {\n const options = this._container.actualOptions.polygon,\n defaultLength = 0;\n if (!(options?.enable && (this.raw?.length ?? defaultLength) > defaultLength)) {\n return;\n }\n return (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.deepExtend)({}, position ?? this._randomPoint());\n }\n particlesInitialization() {\n const options = this._container.actualOptions.polygon;\n if (options?.enable && options.type === _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.inline && (options.inline.arrangement === _Enums_PolygonMaskInlineArrangement_js__WEBPACK_IMPORTED_MODULE_3__.PolygonMaskInlineArrangement.onePerPoint || options.inline.arrangement === _Enums_PolygonMaskInlineArrangement_js__WEBPACK_IMPORTED_MODULE_3__.PolygonMaskInlineArrangement.perPoint)) {\n this._drawPoints();\n return true;\n }\n return false;\n }\n resize() {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!(options?.enable && options.type !== _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.none)) {\n return;\n }\n if (this.redrawTimeout) {\n clearTimeout(this.redrawTimeout);\n }\n const timeout = 250;\n this.redrawTimeout = setTimeout(() => {\n void (async () => {\n await this._initRawData(true);\n await container.particles.redraw();\n })();\n }, timeout);\n }\n stop() {\n delete this.raw;\n delete this.paths;\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/PolygonMaskInstance.js?\n}");
|
|
26
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PolygonMaskInstance: () => (/* binding */ PolygonMaskInstance)\n/* harmony export */ });\n/* harmony import */ var _pathseg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pathseg.js */ \"../../plugins/polygonMask/dist/browser/pathseg.js\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils.js */ \"../../plugins/polygonMask/dist/browser/utils.js\");\n/* harmony import */ var _Enums_PolygonMaskInlineArrangement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Enums/PolygonMaskInlineArrangement.js */ \"../../plugins/polygonMask/dist/browser/Enums/PolygonMaskInlineArrangement.js\");\n/* harmony import */ var _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Enums/PolygonMaskType.js */ \"../../plugins/polygonMask/dist/browser/Enums/PolygonMaskType.js\");\n\n\n\n\n\nconst noPolygonDataLoaded = `No polygon data loaded.`, noPolygonFound = `No polygon found, you need to specify SVG url in config.`;\nclass PolygonMaskInstance {\n dimension;\n offset;\n paths;\n raw;\n redrawTimeout;\n _container;\n _moveRadius;\n _pluginManager;\n _scale;\n constructor(pluginManager, container){\n this._container = container;\n this._pluginManager = pluginManager;\n this.dimension = {\n height: 0,\n width: 0\n };\n this._moveRadius = 0;\n this._scale = 1;\n }\n clickPositionValid(position) {\n const options = this._container.actualOptions.polygon;\n return !!options?.enable && options.type !== _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.none && options.type !== _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.inline && this._checkInsidePolygon(position);\n }\n draw(context) {\n if (!this.paths?.length) {\n return;\n }\n const options = this._container.actualOptions.polygon;\n if (!options?.enable) {\n return;\n }\n const polygonDraw = options.draw;\n if (!polygonDraw.enable) {\n return;\n }\n const rawData = this.raw;\n for (const path of this.paths){\n const path2d = path.path2d;\n if (path2d && this.offset) {\n (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.drawPolygonMaskPath)(this._pluginManager, context, path2d, polygonDraw.stroke, this.offset, this._container.hdr);\n } else if (rawData) {\n (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.drawPolygonMask)(this._pluginManager, context, rawData, polygonDraw.stroke, this._container.hdr);\n }\n }\n }\n async init() {\n const container = this._container, polygonMaskOptions = container.actualOptions.polygon, pxRatio = container.retina.pixelRatio;\n if (!polygonMaskOptions) {\n return;\n }\n this._moveRadius = polygonMaskOptions.move.radius * pxRatio;\n this._scale = polygonMaskOptions.scale * pxRatio;\n if (polygonMaskOptions.enable) {\n await this._initRawData();\n }\n }\n particleBounce(particle, delta, direction) {\n return this._polygonBounce(particle, delta, direction);\n }\n particlePosition(position) {\n const options = this._container.actualOptions.polygon, defaultLength = 0;\n if (!(options?.enable && (this.raw?.length ?? defaultLength) > defaultLength)) {\n return;\n }\n return (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.deepExtend)({}, position ?? this._randomPoint());\n }\n particlesInitialization() {\n const options = this._container.actualOptions.polygon;\n if (options?.enable && options.type === _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.inline && (options.inline.arrangement === _Enums_PolygonMaskInlineArrangement_js__WEBPACK_IMPORTED_MODULE_3__.PolygonMaskInlineArrangement.onePerPoint || options.inline.arrangement === _Enums_PolygonMaskInlineArrangement_js__WEBPACK_IMPORTED_MODULE_3__.PolygonMaskInlineArrangement.perPoint)) {\n this._drawPoints();\n return true;\n }\n return false;\n }\n resize() {\n const container = this._container, options = container.actualOptions.polygon;\n if (!(options?.enable && options.type !== _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.none)) {\n return;\n }\n if (this.redrawTimeout) {\n clearTimeout(this.redrawTimeout);\n }\n const timeout = 250;\n this.redrawTimeout = setTimeout(()=>{\n void (async ()=>{\n await this._initRawData(true);\n await container.particles.redraw();\n })();\n }, timeout);\n }\n stop() {\n delete this.raw;\n delete this.paths;\n }\n _checkInsidePolygon = (position)=>{\n const container = this._container, options = container.actualOptions.polygon;\n if (!options?.enable || options.type === _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.none || options.type === _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.inline) {\n return true;\n }\n if (!this.raw) {\n throw new Error(noPolygonFound);\n }\n const canvasSize = container.canvas.size, x = position?.x ?? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getRandom)() * canvasSize.width, y = position?.y ?? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getRandom)() * canvasSize.height, indexOffset = 1;\n let inside = false;\n for(let i = 0, j = this.raw.length - indexOffset; i < this.raw.length; j = i++){\n const pi = this.raw[i], pj = this.raw[j];\n if (!pi || !pj) {\n continue;\n }\n const intersect = pi.y > y !== pj.y > y && x < (pj.x - pi.x) * (y - pi.y) / (pj.y - pi.y) + pi.x;\n if (intersect) {\n inside = !inside;\n }\n }\n if (options.type === _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.inside) {\n return inside;\n } else {\n return !inside;\n }\n };\n _createPath2D = ()=>{\n const container = this._container, options = container.actualOptions.polygon;\n if (!options || !this.paths?.length) {\n return;\n }\n for (const path of this.paths){\n const pathData = path.element.getAttribute(\"d\");\n if (pathData) {\n const path2d = new Path2D(pathData), matrix = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.safeDocument)().createElementNS(\"http://www.w3.org/2000/svg\", \"svg\").createSVGMatrix(), finalPath = new Path2D(), transform = matrix.scale(this._scale);\n finalPath.addPath(path2d, transform);\n path.path2d = finalPath;\n } else {\n delete path.path2d;\n }\n if (path.path2d ?? !this.raw) {\n continue;\n }\n path.path2d = new Path2D();\n const firstIndex = 0, firstPoint = this.raw[firstIndex];\n if (!firstPoint) {\n continue;\n }\n path.path2d.moveTo(firstPoint.x, firstPoint.y);\n this.raw.forEach((pos, i)=>{\n if (i > firstIndex) {\n path.path2d?.lineTo(pos.x, pos.y);\n }\n });\n path.path2d.closePath();\n }\n };\n _downloadSvgPath = async (svgUrl, force)=>{\n const options = this._container.actualOptions.polygon;\n if (!options) {\n return;\n }\n const url = svgUrl ?? options.url, forceDownload = force ?? false;\n if (!url || this.paths !== undefined && !forceDownload) {\n return this.raw;\n }\n const req = await fetch(url);\n if (!req.ok) {\n throw new Error(`Error occurred during polygon mask download`);\n }\n return this._parseSvgPath(await req.text(), force);\n };\n _drawPoints = ()=>{\n if (!this.raw) {\n return;\n }\n for (const item of this.raw){\n this._container.particles.addParticle({\n x: item.x,\n y: item.y\n });\n }\n };\n _getEquidistantPointByIndex = (index)=>{\n const container = this._container, options = container.actualOptions, polygonMaskOptions = options.polygon;\n if (!polygonMaskOptions) {\n return;\n }\n if (!this.raw?.length || !this.paths?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n let offset = 0, point;\n const baseAccumulator = 0, totalLength = this.paths.reduce((tot, path)=>tot + path.length, baseAccumulator), distance = totalLength / options.particles.number.value;\n for (const path of this.paths){\n const pathDistance = distance * index - offset;\n if (pathDistance <= path.length) {\n point = path.element.getPointAtLength(pathDistance);\n break;\n } else {\n offset += path.length;\n }\n }\n const scale = this._scale;\n return {\n x: (point?.x ?? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.originPoint.x) * scale + (this.offset?.x ?? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.originPoint.x),\n y: (point?.y ?? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.originPoint.y) * scale + (this.offset?.y ?? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.originPoint.y)\n };\n };\n _getPointByIndex = (index)=>{\n if (!this.raw?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n const coords = this.raw[index % this.raw.length];\n if (!coords) {\n return;\n }\n return {\n x: coords.x,\n y: coords.y\n };\n };\n _getRandomPoint = ()=>{\n if (!this.raw?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n const coords = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.itemFromArray)(this.raw);\n if (!coords) {\n return;\n }\n return {\n x: coords.x,\n y: coords.y\n };\n };\n _getRandomPointByLength = ()=>{\n const container = this._container, options = container.actualOptions.polygon;\n if (!options) {\n return;\n }\n if (!this.raw?.length || !this.paths?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n const path = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.itemFromArray)(this.paths);\n if (!path) {\n return;\n }\n const offset = 1, distance = Math.floor((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getRandom)() * path.length) + offset, point = path.element.getPointAtLength(distance), scale = this._scale;\n return {\n x: point.x * scale + (this.offset?.x ?? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.originPoint.x),\n y: point.y * scale + (this.offset?.y ?? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.originPoint.y)\n };\n };\n _initRawData = async (force)=>{\n const options = this._container.actualOptions.polygon;\n if (!options) {\n return;\n }\n if (options.url) {\n this.raw = await this._downloadSvgPath(options.url, force);\n } else if (options.data) {\n const data = options.data;\n let svg;\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.isString)(data)) {\n svg = data;\n } else {\n const getPath = (p)=>`<path d=\"${p}\" />`, path = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.isArray)(data.path) ? data.path.map(getPath).join(\"\") : getPath(data.path), namespaces = 'xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n svg = `<svg ${namespaces} width=\"${data.size.width.toString()}\" height=\"${data.size.height.toString()}\">${path}</svg>`;\n }\n this.raw = this._parseSvgPath(svg, force);\n }\n this._createPath2D();\n this._container.dispatchEvent(\"polygonMaskLoaded\");\n };\n _parseSvgPath = (xml, force)=>{\n const forceDownload = force ?? false;\n if (this.paths !== undefined && !forceDownload) {\n return this.raw;\n }\n const container = this._container, options = container.actualOptions.polygon;\n if (!options) {\n return;\n }\n const parser = new DOMParser(), doc = parser.parseFromString(xml, \"image/svg+xml\"), firstIndex = 0, svg = doc.getElementsByTagName(\"svg\")[firstIndex];\n if (!svg) {\n return;\n }\n let svgPaths = svg.getElementsByTagName(\"path\");\n if (!svgPaths.length) {\n svgPaths = doc.getElementsByTagName(\"path\");\n }\n this.paths = [];\n for(let i = 0; i < svgPaths.length; i++){\n const path = svgPaths.item(i);\n if (path) {\n this.paths.push({\n element: path,\n length: path.getTotalLength()\n });\n }\n }\n const scale = this._scale;\n this.dimension.width = parseFloat(svg.getAttribute(\"width\") ?? \"0\") * scale;\n this.dimension.height = parseFloat(svg.getAttribute(\"height\") ?? \"0\") * scale;\n const position = options.position ?? {\n x: 50,\n y: 50\n }, canvasSize = container.canvas.size;\n this.offset = {\n x: canvasSize.width * position.x / _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.percentDenominator - this.dimension.width * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.half,\n y: canvasSize.height * position.y / _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.percentDenominator - this.dimension.height * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.half\n };\n return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parsePaths)(this.paths, scale, this.offset);\n };\n _polygonBounce = (particle, _delta, direction)=>{\n const options = this._container.actualOptions.polygon;\n if (!this.raw || !options?.enable || direction !== _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.OutModeDirection.top) {\n return false;\n }\n if (options.type === _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.inside || options.type === _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.outside) {\n let closest, dx, dy;\n const pos = particle.getPosition(), radius = particle.getRadius(), offset = 1;\n for(let i = 0, j = this.raw.length - offset; i < this.raw.length; j = i++){\n const pi = this.raw[i], pj = this.raw[j];\n if (!pi || !pj) {\n continue;\n }\n closest = (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.calcClosestPointOnSegment)(pi, pj, pos);\n const dist = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getDistances)(pos, closest);\n [dx, dy] = [\n dist.dx,\n dist.dy\n ];\n if (dist.distance < radius) {\n (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.segmentBounce)(pi, pj, particle.velocity);\n return true;\n }\n }\n if (closest && dx !== undefined && dy !== undefined && !this._checkInsidePolygon(pos)) {\n const factor = {\n x: 1,\n y: 1\n }, diameter = radius * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.double, inverse = -1;\n if (pos.x >= closest.x) {\n factor.x = -1;\n }\n if (pos.y >= closest.y) {\n factor.y = -1;\n }\n particle.position.x = closest.x + diameter * factor.x;\n particle.position.y = closest.y + diameter * factor.y;\n particle.velocity.mult(inverse);\n return true;\n }\n } else if (options.type === _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.inline) {\n const dist = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getDistance)(particle.initialPosition, particle.getPosition()), { velocity } = particle;\n if (dist > this._moveRadius) {\n velocity.x = velocity.y * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.half - velocity.x;\n velocity.y = velocity.x * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.half - velocity.y;\n return true;\n }\n }\n return false;\n };\n _randomPoint = ()=>{\n const container = this._container, options = container.actualOptions.polygon;\n if (!options) {\n return;\n }\n let position;\n if (options.type === _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskType.inline) {\n switch(options.inline.arrangement){\n case _Enums_PolygonMaskInlineArrangement_js__WEBPACK_IMPORTED_MODULE_3__.PolygonMaskInlineArrangement.randomPoint:\n position = this._getRandomPoint();\n break;\n case _Enums_PolygonMaskInlineArrangement_js__WEBPACK_IMPORTED_MODULE_3__.PolygonMaskInlineArrangement.randomLength:\n position = this._getRandomPointByLength();\n break;\n case _Enums_PolygonMaskInlineArrangement_js__WEBPACK_IMPORTED_MODULE_3__.PolygonMaskInlineArrangement.equidistant:\n position = this._getEquidistantPointByIndex(container.particles.count);\n break;\n case _Enums_PolygonMaskInlineArrangement_js__WEBPACK_IMPORTED_MODULE_3__.PolygonMaskInlineArrangement.onePerPoint:\n case _Enums_PolygonMaskInlineArrangement_js__WEBPACK_IMPORTED_MODULE_3__.PolygonMaskInlineArrangement.perPoint:\n default:\n position = this._getPointByIndex(container.particles.count);\n }\n } else {\n const canvasSize = container.canvas.size;\n position = {\n x: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getRandom)() * canvasSize.width,\n y: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getRandom)() * canvasSize.height\n };\n }\n if (this._checkInsidePolygon(position)) {\n return position;\n } else {\n return this._randomPoint();\n }\n };\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/PolygonMaskInstance.js?\n}");
|
|
27
27
|
|
|
28
28
|
/***/ },
|
|
29
29
|
|
|
@@ -33,7 +33,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
33
33
|
\*********************************************************/
|
|
34
34
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
35
35
|
|
|
36
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n\n\n(function () {\n \"use strict\";\n\n try {\n if (typeof window === \"undefined\") return;\n if (!(\"SVGPathSeg\" in window)) {\n window.SVGPathSeg = function (type, typeAsLetter, owningPathSegList) {\n this.pathSegType = type;\n this.pathSegTypeAsLetter = typeAsLetter;\n this._owningPathSegList = owningPathSegList;\n };\n window.SVGPathSeg.prototype.classname = \"SVGPathSeg\";\n window.SVGPathSeg.PATHSEG_UNKNOWN = 0;\n window.SVGPathSeg.PATHSEG_CLOSEPATH = 1;\n window.SVGPathSeg.PATHSEG_MOVETO_ABS = 2;\n window.SVGPathSeg.PATHSEG_MOVETO_REL = 3;\n window.SVGPathSeg.PATHSEG_LINETO_ABS = 4;\n window.SVGPathSeg.PATHSEG_LINETO_REL = 5;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS = 6;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL = 7;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS = 8;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL = 9;\n window.SVGPathSeg.PATHSEG_ARC_ABS = 10;\n window.SVGPathSeg.PATHSEG_ARC_REL = 11;\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS = 12;\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL = 13;\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS = 14;\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL = 15;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;\n window.SVGPathSeg.prototype._segmentChanged = function () {\n if (this._owningPathSegList) this._owningPathSegList.segmentChanged(this);\n };\n window.SVGPathSegClosePath = function (owningPathSegList) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CLOSEPATH, \"z\", owningPathSegList);\n };\n window.SVGPathSegClosePath.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegClosePath.prototype.toString = function () {\n return \"[object SVGPathSegClosePath]\";\n };\n window.SVGPathSegClosePath.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter;\n };\n window.SVGPathSegClosePath.prototype.clone = function () {\n return new window.SVGPathSegClosePath(undefined);\n };\n window.SVGPathSegMovetoAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_ABS, \"M\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegMovetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegMovetoAbs.prototype.toString = function () {\n return \"[object SVGPathSegMovetoAbs]\";\n };\n window.SVGPathSegMovetoAbs.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x} ${this._y}`;\n };\n window.SVGPathSegMovetoAbs.prototype.clone = function () {\n return new window.SVGPathSegMovetoAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegMovetoRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_REL, \"m\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegMovetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegMovetoRel.prototype.toString = function () {\n return \"[object SVGPathSegMovetoRel]\";\n };\n window.SVGPathSegMovetoRel.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x} ${this._y}`;\n };\n window.SVGPathSegMovetoRel.prototype.clone = function () {\n return new window.SVGPathSegMovetoRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_ABS, \"L\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegLinetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoAbs]\";\n };\n window.SVGPathSegLinetoAbs.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x} ${this._y}`;\n };\n window.SVGPathSegLinetoAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_REL, \"l\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegLinetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoRel]\";\n };\n window.SVGPathSegLinetoRel.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x} ${this._y}`;\n };\n window.SVGPathSegLinetoRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoCubicAbs = function (owningPathSegList, x, y, x1, y1, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS, \"C\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicAbs]\";\n };\n window.SVGPathSegCurvetoCubicAbs.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x2} ${this._y2} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoCubicAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicAbs(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoCubicRel = function (owningPathSegList, x, y, x1, y1, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL, \"c\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicRel]\";\n };\n window.SVGPathSegCurvetoCubicRel.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x2} ${this._y2} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoCubicRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicRel(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoQuadraticAbs = function (owningPathSegList, x, y, x1, y1) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS, \"Q\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticAbs]\";\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, this._x, this._y, this._x1, this._y1);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoQuadraticRel = function (owningPathSegList, x, y, x1, y1) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL, \"q\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticRel]\";\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, this._x, this._y, this._x1, this._y1);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegArcAbs = function (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_ABS, \"A\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n };\n window.SVGPathSegArcAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegArcAbs.prototype.toString = function () {\n return \"[object SVGPathSegArcAbs]\";\n };\n window.SVGPathSegArcAbs.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._r1} ${this._r2} ${this._angle} ${this._largeArcFlag ? \"1\" : \"0\"} ${this._sweepFlag ? \"1\" : \"0\"} ${this._x} ${this._y}`;\n };\n window.SVGPathSegArcAbs.prototype.clone = function () {\n return new window.SVGPathSegArcAbs(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\n };\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"r1\", {\n get: function () {\n return this._r1;\n },\n set: function (r1) {\n this._r1 = r1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"r2\", {\n get: function () {\n return this._r2;\n },\n set: function (r2) {\n this._r2 = r2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (angle) {\n this._angle = angle;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"largeArcFlag\", {\n get: function () {\n return this._largeArcFlag;\n },\n set: function (largeArcFlag) {\n this._largeArcFlag = largeArcFlag;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"sweepFlag\", {\n get: function () {\n return this._sweepFlag;\n },\n set: function (sweepFlag) {\n this._sweepFlag = sweepFlag;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegArcRel = function (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_REL, \"a\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n };\n window.SVGPathSegArcRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegArcRel.prototype.toString = function () {\n return \"[object SVGPathSegArcRel]\";\n };\n window.SVGPathSegArcRel.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._r1} ${this._r2} ${this._angle} ${this._largeArcFlag ? \"1\" : \"0\"} ${this._sweepFlag ? \"1\" : \"0\"} ${this._x} ${this._y}`;\n };\n window.SVGPathSegArcRel.prototype.clone = function () {\n return new window.SVGPathSegArcRel(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\n };\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"r1\", {\n get: function () {\n return this._r1;\n },\n set: function (r1) {\n this._r1 = r1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"r2\", {\n get: function () {\n return this._r2;\n },\n set: function (r2) {\n this._r2 = r2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (angle) {\n this._angle = angle;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"largeArcFlag\", {\n get: function () {\n return this._largeArcFlag;\n },\n set: function (largeArcFlag) {\n this._largeArcFlag = largeArcFlag;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"sweepFlag\", {\n get: function () {\n return this._sweepFlag;\n },\n set: function (sweepFlag) {\n this._sweepFlag = sweepFlag;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoHorizontalAbs = function (owningPathSegList, x) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS, \"H\", owningPathSegList);\n this._x = x;\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoHorizontalAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoHorizontalAbs]\";\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x}`;\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, this._x);\n };\n Object.defineProperty(window.SVGPathSegLinetoHorizontalAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoHorizontalRel = function (owningPathSegList, x) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL, \"h\", owningPathSegList);\n this._x = x;\n };\n window.SVGPathSegLinetoHorizontalRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoHorizontalRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoHorizontalRel]\";\n };\n window.SVGPathSegLinetoHorizontalRel.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x}`;\n };\n window.SVGPathSegLinetoHorizontalRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoHorizontalRel(undefined, this._x);\n };\n Object.defineProperty(window.SVGPathSegLinetoHorizontalRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoVerticalAbs = function (owningPathSegList, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS, \"V\", owningPathSegList);\n this._y = y;\n };\n window.SVGPathSegLinetoVerticalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoVerticalAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoVerticalAbs]\";\n };\n window.SVGPathSegLinetoVerticalAbs.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._y}`;\n };\n window.SVGPathSegLinetoVerticalAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoVerticalAbs(undefined, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoVerticalAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoVerticalRel = function (owningPathSegList, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL, \"v\", owningPathSegList);\n this._y = y;\n };\n window.SVGPathSegLinetoVerticalRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoVerticalRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoVerticalRel]\";\n };\n window.SVGPathSegLinetoVerticalRel.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._y}`;\n };\n window.SVGPathSegLinetoVerticalRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoVerticalRel(undefined, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoVerticalRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoCubicSmoothAbs = function (owningPathSegList, x, y, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS, \"S\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicSmoothAbs]\";\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x2} ${this._y2} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, this._x, this._y, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoCubicSmoothRel = function (owningPathSegList, x, y, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL, \"s\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicSmoothRel]\";\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x2} ${this._y2} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, this._x, this._y, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoQuadraticSmoothAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS, \"T\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticSmoothAbs]\";\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoQuadraticSmoothRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL, \"t\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticSmoothRel]\";\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathElement.prototype.createSVGPathSegClosePath = function () {\n return new window.SVGPathSegClosePath(undefined);\n };\n window.SVGPathElement.prototype.createSVGPathSegMovetoAbs = function (x, y) {\n return new window.SVGPathSegMovetoAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegMovetoRel = function (x, y) {\n return new window.SVGPathSegMovetoRel(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoAbs = function (x, y) {\n return new window.SVGPathSegLinetoAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoRel = function (x, y) {\n return new window.SVGPathSegLinetoRel(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs = function (x, y, x1, y1, x2, y2) {\n return new window.SVGPathSegCurvetoCubicAbs(undefined, x, y, x1, y1, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel = function (x, y, x1, y1, x2, y2) {\n return new window.SVGPathSegCurvetoCubicRel(undefined, x, y, x1, y1, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs = function (x, y, x1, y1) {\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, x, y, x1, y1);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel = function (x, y, x1, y1) {\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, x, y, x1, y1);\n };\n window.SVGPathElement.prototype.createSVGPathSegArcAbs = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n return new window.SVGPathSegArcAbs(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\n };\n window.SVGPathElement.prototype.createSVGPathSegArcRel = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n return new window.SVGPathSegArcRel(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs = function (x) {\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, x);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel = function (x) {\n return new window.SVGPathSegLinetoHorizontalRel(undefined, x);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs = function (y) {\n return new window.SVGPathSegLinetoVerticalAbs(undefined, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel = function (y) {\n return new window.SVGPathSegLinetoVerticalRel(undefined, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs = function (x, y, x2, y2) {\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, x, y, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel = function (x, y, x2, y2) {\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, x, y, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs = function (x, y) {\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel = function (x, y) {\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, x, y);\n };\n if (!(\"getPathSegAtLength\" in window.SVGPathElement.prototype)) {\n window.SVGPathElement.prototype.getPathSegAtLength = function (distance) {\n if (distance === undefined || !isFinite(distance)) throw \"Invalid arguments.\";\n const measurementElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n measurementElement.setAttribute(\"d\", this.getAttribute(\"d\"));\n let lastPathSegment = measurementElement.pathSegList.numberOfItems - 1;\n if (lastPathSegment <= 0) return 0;\n do {\n measurementElement.pathSegList.removeItem(lastPathSegment);\n if (distance > measurementElement.getTotalLength()) break;\n lastPathSegment--;\n } while (lastPathSegment > 0);\n return lastPathSegment;\n };\n }\n }\n if (!(\"SVGPathSegList\" in window) || !(\"appendItem\" in window.SVGPathSegList.prototype)) {\n window.SVGPathSegList = function (pathElement) {\n this._pathElement = pathElement;\n this._list = this._parsePath(this._pathElement.getAttribute(\"d\"));\n this._mutationObserverConfig = {\n attributes: true,\n attributeFilter: [\"d\"]\n };\n this._pathElementMutationObserver = new MutationObserver(this._updateListFromPathMutations.bind(this));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n };\n window.SVGPathSegList.prototype.classname = \"SVGPathSegList\";\n Object.defineProperty(window.SVGPathSegList.prototype, \"numberOfItems\", {\n get: function () {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegList.prototype, \"length\", {\n get: function () {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"pathSegList\", {\n get: function () {\n if (!this._pathSegList) this._pathSegList = new window.SVGPathSegList(this);\n return this._pathSegList;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"normalizedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"animatedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"animatedNormalizedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true\n });\n window.SVGPathSegList.prototype._checkPathSynchronizedToList = function () {\n this._updateListFromPathMutations(this._pathElementMutationObserver.takeRecords());\n };\n window.SVGPathSegList.prototype._updateListFromPathMutations = function (mutationRecords) {\n if (!this._pathElement) return;\n let hasPathMutations = false;\n mutationRecords.forEach(function (record) {\n if (record.attributeName == \"d\") hasPathMutations = true;\n });\n if (hasPathMutations) this._list = this._parsePath(this._pathElement.getAttribute(\"d\"));\n };\n window.SVGPathSegList.prototype._writeListToPath = function () {\n this._pathElementMutationObserver.disconnect();\n this._pathElement.setAttribute(\"d\", window.SVGPathSegList._pathSegArrayAsString(this._list));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n };\n window.SVGPathSegList.prototype.segmentChanged = function () {\n this._writeListToPath();\n };\n window.SVGPathSegList.prototype.clear = function () {\n this._checkPathSynchronizedToList();\n this._list.forEach(function (pathSeg) {\n pathSeg._owningPathSegList = null;\n });\n this._list = [];\n this._writeListToPath();\n };\n window.SVGPathSegList.prototype.initialize = function (newItem) {\n this._checkPathSynchronizedToList();\n this._list = [newItem];\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype._checkValidIndex = function (index) {\n if (isNaN(index) || index < 0 || index >= this.numberOfItems) throw \"INDEX_SIZE_ERR\";\n };\n window.SVGPathSegList.prototype.getItem = function (index) {\n this._checkPathSynchronizedToList();\n this._checkValidIndex(index);\n return this._list[index];\n };\n window.SVGPathSegList.prototype.insertItemBefore = function (newItem, index) {\n this._checkPathSynchronizedToList();\n if (index > this.numberOfItems) index = this.numberOfItems;\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._list.splice(index, 0, newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype.replaceItem = function (newItem, index) {\n this._checkPathSynchronizedToList();\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._checkValidIndex(index);\n this._list[index] = newItem;\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype.removeItem = function (index) {\n this._checkPathSynchronizedToList();\n this._checkValidIndex(index);\n const item = this._list[index];\n this._list.splice(index, 1);\n this._writeListToPath();\n return item;\n };\n window.SVGPathSegList.prototype.appendItem = function (newItem) {\n this._checkPathSynchronizedToList();\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._list.push(newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList._pathSegArrayAsString = function (pathSegArray) {\n let string = \"\";\n let first = true;\n pathSegArray.forEach(function (pathSeg) {\n if (first) {\n first = false;\n string += pathSeg._asPathString();\n } else {\n string += ` ${pathSeg._asPathString()}`;\n }\n });\n return string;\n };\n window.SVGPathSegList.prototype._parsePath = function (string) {\n if (!string?.length) return [];\n const owningPathSegList = this;\n const Builder = function () {\n this.pathSegList = [];\n };\n Builder.prototype.appendSegment = function (pathSeg) {\n this.pathSegList.push(pathSeg);\n };\n const Source = function (string) {\n this._string = string;\n this._currentIndex = 0;\n this._endIndex = this._string.length;\n this._previousCommand = window.SVGPathSeg.PATHSEG_UNKNOWN;\n this._skipOptionalSpaces();\n };\n Source.prototype._isCurrentSpace = function () {\n const character = this._string[this._currentIndex];\n return character <= \" \" && (character == \" \" || character == \"\\n\" || character == \"\\t\" || character == \"\\r\" || character == \"\\f\");\n };\n Source.prototype._skipOptionalSpaces = function () {\n while (this._currentIndex < this._endIndex && this._isCurrentSpace()) this._currentIndex++;\n return this._currentIndex < this._endIndex;\n };\n Source.prototype._skipOptionalSpacesOrDelimiter = function () {\n if (this._currentIndex < this._endIndex && !this._isCurrentSpace() && this._string.charAt(this._currentIndex) != \",\") return false;\n if (this._skipOptionalSpaces()) {\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \",\") {\n this._currentIndex++;\n this._skipOptionalSpaces();\n }\n }\n return this._currentIndex < this._endIndex;\n };\n Source.prototype.hasMoreData = function () {\n return this._currentIndex < this._endIndex;\n };\n Source.prototype.peekSegmentType = function () {\n const lookahead = this._string[this._currentIndex];\n return this._pathSegTypeFromChar(lookahead);\n };\n Source.prototype._pathSegTypeFromChar = function (lookahead) {\n switch (lookahead) {\n case \"Z\":\n case \"z\":\n return window.SVGPathSeg.PATHSEG_CLOSEPATH;\n case \"M\":\n return window.SVGPathSeg.PATHSEG_MOVETO_ABS;\n case \"m\":\n return window.SVGPathSeg.PATHSEG_MOVETO_REL;\n case \"L\":\n return window.SVGPathSeg.PATHSEG_LINETO_ABS;\n case \"l\":\n return window.SVGPathSeg.PATHSEG_LINETO_REL;\n case \"C\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS;\n case \"c\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL;\n case \"Q\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS;\n case \"q\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL;\n case \"A\":\n return window.SVGPathSeg.PATHSEG_ARC_ABS;\n case \"a\":\n return window.SVGPathSeg.PATHSEG_ARC_REL;\n case \"H\":\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS;\n case \"h\":\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL;\n case \"V\":\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS;\n case \"v\":\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL;\n case \"S\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;\n case \"s\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL;\n case \"T\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;\n case \"t\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;\n default:\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\n }\n };\n Source.prototype._nextCommandHelper = function (lookahead, previousCommand) {\n if ((lookahead == \"+\" || lookahead == \"-\" || lookahead == \".\" || lookahead >= \"0\" && lookahead <= \"9\") && previousCommand != window.SVGPathSeg.PATHSEG_CLOSEPATH) {\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_ABS) return window.SVGPathSeg.PATHSEG_LINETO_ABS;\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_REL) return window.SVGPathSeg.PATHSEG_LINETO_REL;\n return previousCommand;\n }\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\n };\n Source.prototype.initialCommandIsMoveTo = function () {\n if (!this.hasMoreData()) return true;\n const command = this.peekSegmentType();\n return command == window.SVGPathSeg.PATHSEG_MOVETO_ABS || command == window.SVGPathSeg.PATHSEG_MOVETO_REL;\n };\n Source.prototype._parseNumber = function () {\n let exponent = 0;\n let integer = 0;\n let frac = 1;\n let decimal = 0;\n let sign = 1;\n let expsign = 1;\n const startIndex = this._currentIndex;\n this._skipOptionalSpaces();\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \"+\") this._currentIndex++;else if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n sign = -1;\n }\n if (this._currentIndex == this._endIndex || (this._string.charAt(this._currentIndex) < \"0\" || this._string.charAt(this._currentIndex) > \"9\") && this._string.charAt(this._currentIndex) != \".\") return undefined;\n const startIntPartIndex = this._currentIndex;\n while (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) >= \"0\" && this._string.charAt(this._currentIndex) <= \"9\") this._currentIndex++;\n if (this._currentIndex != startIntPartIndex) {\n let scanIntPartIndex = this._currentIndex - 1;\n let multiplier = 1;\n while (scanIntPartIndex >= startIntPartIndex) {\n integer += multiplier * (this._string.charAt(scanIntPartIndex--) - \"0\");\n multiplier *= 10;\n }\n }\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \".\") {\n this._currentIndex++;\n if (this._currentIndex >= this._endIndex || this._string.charAt(this._currentIndex) < \"0\" || this._string.charAt(this._currentIndex) > \"9\") return undefined;\n while (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) >= \"0\" && this._string.charAt(this._currentIndex) <= \"9\") {\n frac *= 10;\n decimal += (this._string.charAt(this._currentIndex) - \"0\") / frac;\n this._currentIndex += 1;\n }\n }\n if (this._currentIndex != startIndex && this._currentIndex + 1 < this._endIndex && (this._string.charAt(this._currentIndex) == \"e\" || this._string.charAt(this._currentIndex) == \"E\") && this._string.charAt(this._currentIndex + 1) != \"x\" && this._string.charAt(this._currentIndex + 1) != \"m\") {\n this._currentIndex++;\n if (this._string.charAt(this._currentIndex) == \"+\") {\n this._currentIndex++;\n } else if (this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n expsign = -1;\n }\n if (this._currentIndex >= this._endIndex || this._string.charAt(this._currentIndex) < \"0\" || this._string.charAt(this._currentIndex) > \"9\") return undefined;\n while (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) >= \"0\" && this._string.charAt(this._currentIndex) <= \"9\") {\n exponent *= 10;\n exponent += this._string.charAt(this._currentIndex) - \"0\";\n this._currentIndex++;\n }\n }\n let number = integer + decimal;\n number *= sign;\n if (exponent) number *= Math.pow(10, expsign * exponent);\n if (startIndex == this._currentIndex) return undefined;\n this._skipOptionalSpacesOrDelimiter();\n return number;\n };\n Source.prototype._parseArcFlag = function () {\n if (this._currentIndex >= this._endIndex) return undefined;\n let flag = false;\n const flagChar = this._string.charAt(this._currentIndex++);\n if (flagChar == \"0\") flag = false;else if (flagChar == \"1\") flag = true;else return undefined;\n this._skipOptionalSpacesOrDelimiter();\n return flag;\n };\n Source.prototype.parseSegment = function () {\n const lookahead = this._string[this._currentIndex];\n let command = this._pathSegTypeFromChar(lookahead);\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN) {\n if (this._previousCommand == window.SVGPathSeg.PATHSEG_UNKNOWN) return null;\n command = this._nextCommandHelper(lookahead, this._previousCommand);\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN) return null;\n } else {\n this._currentIndex++;\n }\n this._previousCommand = command;\n let points;\n switch (command) {\n case window.SVGPathSeg.PATHSEG_MOVETO_REL:\n return new window.SVGPathSegMovetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_MOVETO_ABS:\n return new window.SVGPathSegMovetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_REL:\n return new window.SVGPathSegLinetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_ABS:\n return new window.SVGPathSegLinetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\n return new window.SVGPathSegLinetoHorizontalRel(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\n return new window.SVGPathSegLinetoHorizontalAbs(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL:\n return new window.SVGPathSegLinetoVerticalRel(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\n return new window.SVGPathSegLinetoVerticalAbs(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_CLOSEPATH:\n this._skipOptionalSpaces();\n return new window.SVGPathSegClosePath(owningPathSegList);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoCubicRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoCubicAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:\n points = {\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoCubicSmoothRel(owningPathSegList, points.x, points.y, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:\n points = {\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoCubicSmoothAbs(owningPathSegList, points.x, points.y, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoQuadraticRel(owningPathSegList, points.x, points.y, points.x1, points.y1);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoQuadraticAbs(owningPathSegList, points.x, points.y, points.x1, points.y1);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_ARC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n arcAngle: this._parseNumber(),\n arcLarge: this._parseArcFlag(),\n arcSweep: this._parseArcFlag(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegArcRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n case window.SVGPathSeg.PATHSEG_ARC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n arcAngle: this._parseNumber(),\n arcLarge: this._parseArcFlag(),\n arcSweep: this._parseArcFlag(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegArcAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n default:\n throw \"Unknown path seg type.\";\n }\n };\n const builder = new Builder();\n const source = new Source(string);\n if (!source.initialCommandIsMoveTo()) return [];\n while (source.hasMoreData()) {\n const pathSeg = source.parseSegment();\n if (!pathSeg) return [];\n builder.appendSegment(pathSeg);\n }\n return builder.pathSegList;\n };\n }\n } catch (e) {\n console.warn(\"An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/tsparticles/tsparticles\", e);\n }\n})();\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/pathseg.js?\n}");
|
|
36
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n\n(function() {\n \"use strict\";\n try {\n if (typeof window === \"undefined\") return;\n if (!(\"SVGPathSeg\" in window)) {\n window.SVGPathSeg = function(type, typeAsLetter, owningPathSegList) {\n this.pathSegType = type;\n this.pathSegTypeAsLetter = typeAsLetter;\n this._owningPathSegList = owningPathSegList;\n };\n window.SVGPathSeg.prototype.classname = \"SVGPathSeg\";\n window.SVGPathSeg.PATHSEG_UNKNOWN = 0;\n window.SVGPathSeg.PATHSEG_CLOSEPATH = 1;\n window.SVGPathSeg.PATHSEG_MOVETO_ABS = 2;\n window.SVGPathSeg.PATHSEG_MOVETO_REL = 3;\n window.SVGPathSeg.PATHSEG_LINETO_ABS = 4;\n window.SVGPathSeg.PATHSEG_LINETO_REL = 5;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS = 6;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL = 7;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS = 8;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL = 9;\n window.SVGPathSeg.PATHSEG_ARC_ABS = 10;\n window.SVGPathSeg.PATHSEG_ARC_REL = 11;\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS = 12;\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL = 13;\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS = 14;\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL = 15;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;\n window.SVGPathSeg.prototype._segmentChanged = function() {\n if (this._owningPathSegList) this._owningPathSegList.segmentChanged(this);\n };\n window.SVGPathSegClosePath = function(owningPathSegList) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CLOSEPATH, \"z\", owningPathSegList);\n };\n window.SVGPathSegClosePath.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegClosePath.prototype.toString = function() {\n return \"[object SVGPathSegClosePath]\";\n };\n window.SVGPathSegClosePath.prototype._asPathString = function() {\n return this.pathSegTypeAsLetter;\n };\n window.SVGPathSegClosePath.prototype.clone = function() {\n return new window.SVGPathSegClosePath(undefined);\n };\n window.SVGPathSegMovetoAbs = function(owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_ABS, \"M\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegMovetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegMovetoAbs.prototype.toString = function() {\n return \"[object SVGPathSegMovetoAbs]\";\n };\n window.SVGPathSegMovetoAbs.prototype._asPathString = function() {\n return `${this.pathSegTypeAsLetter} ${this._x} ${this._y}`;\n };\n window.SVGPathSegMovetoAbs.prototype.clone = function() {\n return new window.SVGPathSegMovetoAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, \"x\", {\n get: function() {\n return this._x;\n },\n set: function(x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, \"y\", {\n get: function() {\n return this._y;\n },\n set: function(y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegMovetoRel = function(owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_REL, \"m\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegMovetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegMovetoRel.prototype.toString = function() {\n return \"[object SVGPathSegMovetoRel]\";\n };\n window.SVGPathSegMovetoRel.prototype._asPathString = function() {\n return `${this.pathSegTypeAsLetter} ${this._x} ${this._y}`;\n };\n window.SVGPathSegMovetoRel.prototype.clone = function() {\n return new window.SVGPathSegMovetoRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, \"x\", {\n get: function() {\n return this._x;\n },\n set: function(x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, \"y\", {\n get: function() {\n return this._y;\n },\n set: function(y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoAbs = function(owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_ABS, \"L\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegLinetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoAbs.prototype.toString = function() {\n return \"[object SVGPathSegLinetoAbs]\";\n };\n window.SVGPathSegLinetoAbs.prototype._asPathString = function() {\n return `${this.pathSegTypeAsLetter} ${this._x} ${this._y}`;\n };\n window.SVGPathSegLinetoAbs.prototype.clone = function() {\n return new window.SVGPathSegLinetoAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, \"x\", {\n get: function() {\n return this._x;\n },\n set: function(x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, \"y\", {\n get: function() {\n return this._y;\n },\n set: function(y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoRel = function(owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_REL, \"l\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegLinetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoRel.prototype.toString = function() {\n return \"[object SVGPathSegLinetoRel]\";\n };\n window.SVGPathSegLinetoRel.prototype._asPathString = function() {\n return `${this.pathSegTypeAsLetter} ${this._x} ${this._y}`;\n };\n window.SVGPathSegLinetoRel.prototype.clone = function() {\n return new window.SVGPathSegLinetoRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, \"x\", {\n get: function() {\n return this._x;\n },\n set: function(x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, \"y\", {\n get: function() {\n return this._y;\n },\n set: function(y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoCubicAbs = function(owningPathSegList, x, y, x1, y1, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS, \"C\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicAbs.prototype.toString = function() {\n return \"[object SVGPathSegCurvetoCubicAbs]\";\n };\n window.SVGPathSegCurvetoCubicAbs.prototype._asPathString = function() {\n return `${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x2} ${this._y2} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoCubicAbs.prototype.clone = function() {\n return new window.SVGPathSegCurvetoCubicAbs(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x\", {\n get: function() {\n return this._x;\n },\n set: function(x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y\", {\n get: function() {\n return this._y;\n },\n set: function(y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x1\", {\n get: function() {\n return this._x1;\n },\n set: function(x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y1\", {\n get: function() {\n return this._y1;\n },\n set: function(y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x2\", {\n get: function() {\n return this._x2;\n },\n set: function(x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y2\", {\n get: function() {\n return this._y2;\n },\n set: function(y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoCubicRel = function(owningPathSegList, x, y, x1, y1, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL, \"c\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicRel.prototype.toString = function() {\n return \"[object SVGPathSegCurvetoCubicRel]\";\n };\n window.SVGPathSegCurvetoCubicRel.prototype._asPathString = function() {\n return `${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x2} ${this._y2} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoCubicRel.prototype.clone = function() {\n return new window.SVGPathSegCurvetoCubicRel(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x\", {\n get: function() {\n return this._x;\n },\n set: function(x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y\", {\n get: function() {\n return this._y;\n },\n set: function(y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x1\", {\n get: function() {\n return this._x1;\n },\n set: function(x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y1\", {\n get: function() {\n return this._y1;\n },\n set: function(y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x2\", {\n get: function() {\n return this._x2;\n },\n set: function(x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y2\", {\n get: function() {\n return this._y2;\n },\n set: function(y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoQuadraticAbs = function(owningPathSegList, x, y, x1, y1) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS, \"Q\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticAbs.prototype.toString = function() {\n return \"[object SVGPathSegCurvetoQuadraticAbs]\";\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype._asPathString = function() {\n return `${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype.clone = function() {\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, this._x, this._y, this._x1, this._y1);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"x\", {\n get: function() {\n return this._x;\n },\n set: function(x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"y\", {\n get: function() {\n return this._y;\n },\n set: function(y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"x1\", {\n get: function() {\n return this._x1;\n },\n set: function(x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"y1\", {\n get: function() {\n return this._y1;\n },\n set: function(y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoQuadraticRel = function(owningPathSegList, x, y, x1, y1) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL, \"q\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticRel.prototype.toString = function() {\n return \"[object SVGPathSegCurvetoQuadraticRel]\";\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype._asPathString = function() {\n return `${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype.clone = function() {\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, this._x, this._y, this._x1, this._y1);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"x\", {\n get: function() {\n return this._x;\n },\n set: function(x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"y\", {\n get: function() {\n return this._y;\n },\n set: function(y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"x1\", {\n get: function() {\n return this._x1;\n },\n set: function(x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"y1\", {\n get: function() {\n return this._y1;\n },\n set: function(y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegArcAbs = function(owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_ABS, \"A\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n };\n window.SVGPathSegArcAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegArcAbs.prototype.toString = function() {\n return \"[object SVGPathSegArcAbs]\";\n };\n window.SVGPathSegArcAbs.prototype._asPathString = function() {\n return `${this.pathSegTypeAsLetter} ${this._r1} ${this._r2} ${this._angle} ${this._largeArcFlag ? \"1\" : \"0\"} ${this._sweepFlag ? \"1\" : \"0\"} ${this._x} ${this._y}`;\n };\n window.SVGPathSegArcAbs.prototype.clone = function() {\n return new window.SVGPathSegArcAbs(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\n };\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"x\", {\n get: function() {\n return this._x;\n },\n set: function(x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"y\", {\n get: function() {\n return this._y;\n },\n set: function(y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"r1\", {\n get: function() {\n return this._r1;\n },\n set: function(r1) {\n this._r1 = r1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"r2\", {\n get: function() {\n return this._r2;\n },\n set: function(r2) {\n this._r2 = r2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"angle\", {\n get: function() {\n return this._angle;\n },\n set: function(angle) {\n this._angle = angle;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"largeArcFlag\", {\n get: function() {\n return this._largeArcFlag;\n },\n set: function(largeArcFlag) {\n this._largeArcFlag = largeArcFlag;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"sweepFlag\", {\n get: function() {\n return this._sweepFlag;\n },\n set: function(sweepFlag) {\n this._sweepFlag = sweepFlag;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegArcRel = function(owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_REL, \"a\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n };\n window.SVGPathSegArcRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegArcRel.prototype.toString = function() {\n return \"[object SVGPathSegArcRel]\";\n };\n window.SVGPathSegArcRel.prototype._asPathString = function() {\n return `${this.pathSegTypeAsLetter} ${this._r1} ${this._r2} ${this._angle} ${this._largeArcFlag ? \"1\" : \"0\"} ${this._sweepFlag ? \"1\" : \"0\"} ${this._x} ${this._y}`;\n };\n window.SVGPathSegArcRel.prototype.clone = function() {\n return new window.SVGPathSegArcRel(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\n };\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"x\", {\n get: function() {\n return this._x;\n },\n set: function(x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"y\", {\n get: function() {\n return this._y;\n },\n set: function(y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"r1\", {\n get: function() {\n return this._r1;\n },\n set: function(r1) {\n this._r1 = r1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"r2\", {\n get: function() {\n return this._r2;\n },\n set: function(r2) {\n this._r2 = r2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"angle\", {\n get: function() {\n return this._angle;\n },\n set: function(angle) {\n this._angle = angle;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"largeArcFlag\", {\n get: function() {\n return this._largeArcFlag;\n },\n set: function(largeArcFlag) {\n this._largeArcFlag = largeArcFlag;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"sweepFlag\", {\n get: function() {\n return this._sweepFlag;\n },\n set: function(sweepFlag) {\n this._sweepFlag = sweepFlag;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoHorizontalAbs = function(owningPathSegList, x) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS, \"H\", owningPathSegList);\n this._x = x;\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoHorizontalAbs.prototype.toString = function() {\n return \"[object SVGPathSegLinetoHorizontalAbs]\";\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype._asPathString = function() {\n return `${this.pathSegTypeAsLetter} ${this._x}`;\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype.clone = function() {\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, this._x);\n };\n Object.defineProperty(window.SVGPathSegLinetoHorizontalAbs.prototype, \"x\", {\n get: function() {\n return this._x;\n },\n set: function(x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoHorizontalRel = function(owningPathSegList, x) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL, \"h\", owningPathSegList);\n this._x = x;\n };\n window.SVGPathSegLinetoHorizontalRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoHorizontalRel.prototype.toString = function() {\n return \"[object SVGPathSegLinetoHorizontalRel]\";\n };\n window.SVGPathSegLinetoHorizontalRel.prototype._asPathString = function() {\n return `${this.pathSegTypeAsLetter} ${this._x}`;\n };\n window.SVGPathSegLinetoHorizontalRel.prototype.clone = function() {\n return new window.SVGPathSegLinetoHorizontalRel(undefined, this._x);\n };\n Object.defineProperty(window.SVGPathSegLinetoHorizontalRel.prototype, \"x\", {\n get: function() {\n return this._x;\n },\n set: function(x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoVerticalAbs = function(owningPathSegList, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS, \"V\", owningPathSegList);\n this._y = y;\n };\n window.SVGPathSegLinetoVerticalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoVerticalAbs.prototype.toString = function() {\n return \"[object SVGPathSegLinetoVerticalAbs]\";\n };\n window.SVGPathSegLinetoVerticalAbs.prototype._asPathString = function() {\n return `${this.pathSegTypeAsLetter} ${this._y}`;\n };\n window.SVGPathSegLinetoVerticalAbs.prototype.clone = function() {\n return new window.SVGPathSegLinetoVerticalAbs(undefined, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoVerticalAbs.prototype, \"y\", {\n get: function() {\n return this._y;\n },\n set: function(y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoVerticalRel = function(owningPathSegList, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL, \"v\", owningPathSegList);\n this._y = y;\n };\n window.SVGPathSegLinetoVerticalRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoVerticalRel.prototype.toString = function() {\n return \"[object SVGPathSegLinetoVerticalRel]\";\n };\n window.SVGPathSegLinetoVerticalRel.prototype._asPathString = function() {\n return `${this.pathSegTypeAsLetter} ${this._y}`;\n };\n window.SVGPathSegLinetoVerticalRel.prototype.clone = function() {\n return new window.SVGPathSegLinetoVerticalRel(undefined, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoVerticalRel.prototype, \"y\", {\n get: function() {\n return this._y;\n },\n set: function(y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoCubicSmoothAbs = function(owningPathSegList, x, y, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS, \"S\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.toString = function() {\n return \"[object SVGPathSegCurvetoCubicSmoothAbs]\";\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype._asPathString = function() {\n return `${this.pathSegTypeAsLetter} ${this._x2} ${this._y2} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.clone = function() {\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, this._x, this._y, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"x\", {\n get: function() {\n return this._x;\n },\n set: function(x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"y\", {\n get: function() {\n return this._y;\n },\n set: function(y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"x2\", {\n get: function() {\n return this._x2;\n },\n set: function(x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"y2\", {\n get: function() {\n return this._y2;\n },\n set: function(y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoCubicSmoothRel = function(owningPathSegList, x, y, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL, \"s\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.toString = function() {\n return \"[object SVGPathSegCurvetoCubicSmoothRel]\";\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype._asPathString = function() {\n return `${this.pathSegTypeAsLetter} ${this._x2} ${this._y2} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.clone = function() {\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, this._x, this._y, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"x\", {\n get: function() {\n return this._x;\n },\n set: function(x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"y\", {\n get: function() {\n return this._y;\n },\n set: function(y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"x2\", {\n get: function() {\n return this._x2;\n },\n set: function(x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"y2\", {\n get: function() {\n return this._y2;\n },\n set: function(y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoQuadraticSmoothAbs = function(owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS, \"T\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.toString = function() {\n return \"[object SVGPathSegCurvetoQuadraticSmoothAbs]\";\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype._asPathString = function() {\n return `${this.pathSegTypeAsLetter} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.clone = function() {\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, \"x\", {\n get: function() {\n return this._x;\n },\n set: function(x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, \"y\", {\n get: function() {\n return this._y;\n },\n set: function(y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoQuadraticSmoothRel = function(owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL, \"t\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.toString = function() {\n return \"[object SVGPathSegCurvetoQuadraticSmoothRel]\";\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype._asPathString = function() {\n return `${this.pathSegTypeAsLetter} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.clone = function() {\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, \"x\", {\n get: function() {\n return this._x;\n },\n set: function(x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, \"y\", {\n get: function() {\n return this._y;\n },\n set: function(y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathElement.prototype.createSVGPathSegClosePath = function() {\n return new window.SVGPathSegClosePath(undefined);\n };\n window.SVGPathElement.prototype.createSVGPathSegMovetoAbs = function(x, y) {\n return new window.SVGPathSegMovetoAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegMovetoRel = function(x, y) {\n return new window.SVGPathSegMovetoRel(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoAbs = function(x, y) {\n return new window.SVGPathSegLinetoAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoRel = function(x, y) {\n return new window.SVGPathSegLinetoRel(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs = function(x, y, x1, y1, x2, y2) {\n return new window.SVGPathSegCurvetoCubicAbs(undefined, x, y, x1, y1, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel = function(x, y, x1, y1, x2, y2) {\n return new window.SVGPathSegCurvetoCubicRel(undefined, x, y, x1, y1, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs = function(x, y, x1, y1) {\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, x, y, x1, y1);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel = function(x, y, x1, y1) {\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, x, y, x1, y1);\n };\n window.SVGPathElement.prototype.createSVGPathSegArcAbs = function(x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n return new window.SVGPathSegArcAbs(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\n };\n window.SVGPathElement.prototype.createSVGPathSegArcRel = function(x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n return new window.SVGPathSegArcRel(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs = function(x) {\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, x);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel = function(x) {\n return new window.SVGPathSegLinetoHorizontalRel(undefined, x);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs = function(y) {\n return new window.SVGPathSegLinetoVerticalAbs(undefined, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel = function(y) {\n return new window.SVGPathSegLinetoVerticalRel(undefined, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs = function(x, y, x2, y2) {\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, x, y, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel = function(x, y, x2, y2) {\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, x, y, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs = function(x, y) {\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel = function(x, y) {\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, x, y);\n };\n if (!(\"getPathSegAtLength\" in window.SVGPathElement.prototype)) {\n window.SVGPathElement.prototype.getPathSegAtLength = function(distance) {\n if (distance === undefined || !isFinite(distance)) throw \"Invalid arguments.\";\n const measurementElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n measurementElement.setAttribute(\"d\", this.getAttribute(\"d\"));\n let lastPathSegment = measurementElement.pathSegList.numberOfItems - 1;\n if (lastPathSegment <= 0) return 0;\n do {\n measurementElement.pathSegList.removeItem(lastPathSegment);\n if (distance > measurementElement.getTotalLength()) break;\n lastPathSegment--;\n }while (lastPathSegment > 0)\n return lastPathSegment;\n };\n }\n }\n if (!(\"SVGPathSegList\" in window) || !(\"appendItem\" in window.SVGPathSegList.prototype)) {\n window.SVGPathSegList = function(pathElement) {\n this._pathElement = pathElement;\n this._list = this._parsePath(this._pathElement.getAttribute(\"d\"));\n this._mutationObserverConfig = {\n attributes: true,\n attributeFilter: [\n \"d\"\n ]\n };\n this._pathElementMutationObserver = new MutationObserver(this._updateListFromPathMutations.bind(this));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n };\n window.SVGPathSegList.prototype.classname = \"SVGPathSegList\";\n Object.defineProperty(window.SVGPathSegList.prototype, \"numberOfItems\", {\n get: function() {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegList.prototype, \"length\", {\n get: function() {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"pathSegList\", {\n get: function() {\n if (!this._pathSegList) this._pathSegList = new window.SVGPathSegList(this);\n return this._pathSegList;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"normalizedPathSegList\", {\n get: function() {\n return this.pathSegList;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"animatedPathSegList\", {\n get: function() {\n return this.pathSegList;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"animatedNormalizedPathSegList\", {\n get: function() {\n return this.pathSegList;\n },\n enumerable: true\n });\n window.SVGPathSegList.prototype._checkPathSynchronizedToList = function() {\n this._updateListFromPathMutations(this._pathElementMutationObserver.takeRecords());\n };\n window.SVGPathSegList.prototype._updateListFromPathMutations = function(mutationRecords) {\n if (!this._pathElement) return;\n let hasPathMutations = false;\n mutationRecords.forEach(function(record) {\n if (record.attributeName == \"d\") hasPathMutations = true;\n });\n if (hasPathMutations) this._list = this._parsePath(this._pathElement.getAttribute(\"d\"));\n };\n window.SVGPathSegList.prototype._writeListToPath = function() {\n this._pathElementMutationObserver.disconnect();\n this._pathElement.setAttribute(\"d\", window.SVGPathSegList._pathSegArrayAsString(this._list));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n };\n window.SVGPathSegList.prototype.segmentChanged = function() {\n this._writeListToPath();\n };\n window.SVGPathSegList.prototype.clear = function() {\n this._checkPathSynchronizedToList();\n this._list.forEach(function(pathSeg) {\n pathSeg._owningPathSegList = null;\n });\n this._list = [];\n this._writeListToPath();\n };\n window.SVGPathSegList.prototype.initialize = function(newItem) {\n this._checkPathSynchronizedToList();\n this._list = [\n newItem\n ];\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype._checkValidIndex = function(index) {\n if (isNaN(index) || index < 0 || index >= this.numberOfItems) throw \"INDEX_SIZE_ERR\";\n };\n window.SVGPathSegList.prototype.getItem = function(index) {\n this._checkPathSynchronizedToList();\n this._checkValidIndex(index);\n return this._list[index];\n };\n window.SVGPathSegList.prototype.insertItemBefore = function(newItem, index) {\n this._checkPathSynchronizedToList();\n if (index > this.numberOfItems) index = this.numberOfItems;\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._list.splice(index, 0, newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype.replaceItem = function(newItem, index) {\n this._checkPathSynchronizedToList();\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._checkValidIndex(index);\n this._list[index] = newItem;\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype.removeItem = function(index) {\n this._checkPathSynchronizedToList();\n this._checkValidIndex(index);\n const item = this._list[index];\n this._list.splice(index, 1);\n this._writeListToPath();\n return item;\n };\n window.SVGPathSegList.prototype.appendItem = function(newItem) {\n this._checkPathSynchronizedToList();\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._list.push(newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList._pathSegArrayAsString = function(pathSegArray) {\n let string = \"\";\n let first = true;\n pathSegArray.forEach(function(pathSeg) {\n if (first) {\n first = false;\n string += pathSeg._asPathString();\n } else {\n string += ` ${pathSeg._asPathString()}`;\n }\n });\n return string;\n };\n window.SVGPathSegList.prototype._parsePath = function(string) {\n if (!string?.length) return [];\n const owningPathSegList = this;\n const Builder = function() {\n this.pathSegList = [];\n };\n Builder.prototype.appendSegment = function(pathSeg) {\n this.pathSegList.push(pathSeg);\n };\n const Source = function(string) {\n this._string = string;\n this._currentIndex = 0;\n this._endIndex = this._string.length;\n this._previousCommand = window.SVGPathSeg.PATHSEG_UNKNOWN;\n this._skipOptionalSpaces();\n };\n Source.prototype._isCurrentSpace = function() {\n const character = this._string[this._currentIndex];\n return character <= \" \" && (character == \" \" || character == \"\\n\" || character == \"\\t\" || character == \"\\r\" || character == \"\\f\");\n };\n Source.prototype._skipOptionalSpaces = function() {\n while(this._currentIndex < this._endIndex && this._isCurrentSpace())this._currentIndex++;\n return this._currentIndex < this._endIndex;\n };\n Source.prototype._skipOptionalSpacesOrDelimiter = function() {\n if (this._currentIndex < this._endIndex && !this._isCurrentSpace() && this._string.charAt(this._currentIndex) != \",\") return false;\n if (this._skipOptionalSpaces()) {\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \",\") {\n this._currentIndex++;\n this._skipOptionalSpaces();\n }\n }\n return this._currentIndex < this._endIndex;\n };\n Source.prototype.hasMoreData = function() {\n return this._currentIndex < this._endIndex;\n };\n Source.prototype.peekSegmentType = function() {\n const lookahead = this._string[this._currentIndex];\n return this._pathSegTypeFromChar(lookahead);\n };\n Source.prototype._pathSegTypeFromChar = function(lookahead) {\n switch(lookahead){\n case \"Z\":\n case \"z\":\n return window.SVGPathSeg.PATHSEG_CLOSEPATH;\n case \"M\":\n return window.SVGPathSeg.PATHSEG_MOVETO_ABS;\n case \"m\":\n return window.SVGPathSeg.PATHSEG_MOVETO_REL;\n case \"L\":\n return window.SVGPathSeg.PATHSEG_LINETO_ABS;\n case \"l\":\n return window.SVGPathSeg.PATHSEG_LINETO_REL;\n case \"C\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS;\n case \"c\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL;\n case \"Q\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS;\n case \"q\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL;\n case \"A\":\n return window.SVGPathSeg.PATHSEG_ARC_ABS;\n case \"a\":\n return window.SVGPathSeg.PATHSEG_ARC_REL;\n case \"H\":\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS;\n case \"h\":\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL;\n case \"V\":\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS;\n case \"v\":\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL;\n case \"S\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;\n case \"s\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL;\n case \"T\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;\n case \"t\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;\n default:\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\n }\n };\n Source.prototype._nextCommandHelper = function(lookahead, previousCommand) {\n if ((lookahead == \"+\" || lookahead == \"-\" || lookahead == \".\" || lookahead >= \"0\" && lookahead <= \"9\") && previousCommand != window.SVGPathSeg.PATHSEG_CLOSEPATH) {\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_ABS) return window.SVGPathSeg.PATHSEG_LINETO_ABS;\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_REL) return window.SVGPathSeg.PATHSEG_LINETO_REL;\n return previousCommand;\n }\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\n };\n Source.prototype.initialCommandIsMoveTo = function() {\n if (!this.hasMoreData()) return true;\n const command = this.peekSegmentType();\n return command == window.SVGPathSeg.PATHSEG_MOVETO_ABS || command == window.SVGPathSeg.PATHSEG_MOVETO_REL;\n };\n Source.prototype._parseNumber = function() {\n let exponent = 0;\n let integer = 0;\n let frac = 1;\n let decimal = 0;\n let sign = 1;\n let expsign = 1;\n const startIndex = this._currentIndex;\n this._skipOptionalSpaces();\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \"+\") this._currentIndex++;\n else if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n sign = -1;\n }\n if (this._currentIndex == this._endIndex || (this._string.charAt(this._currentIndex) < \"0\" || this._string.charAt(this._currentIndex) > \"9\") && this._string.charAt(this._currentIndex) != \".\") return undefined;\n const startIntPartIndex = this._currentIndex;\n while(this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) >= \"0\" && this._string.charAt(this._currentIndex) <= \"9\")this._currentIndex++;\n if (this._currentIndex != startIntPartIndex) {\n let scanIntPartIndex = this._currentIndex - 1;\n let multiplier = 1;\n while(scanIntPartIndex >= startIntPartIndex){\n integer += multiplier * (this._string.charAt(scanIntPartIndex--) - \"0\");\n multiplier *= 10;\n }\n }\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \".\") {\n this._currentIndex++;\n if (this._currentIndex >= this._endIndex || this._string.charAt(this._currentIndex) < \"0\" || this._string.charAt(this._currentIndex) > \"9\") return undefined;\n while(this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) >= \"0\" && this._string.charAt(this._currentIndex) <= \"9\"){\n frac *= 10;\n decimal += (this._string.charAt(this._currentIndex) - \"0\") / frac;\n this._currentIndex += 1;\n }\n }\n if (this._currentIndex != startIndex && this._currentIndex + 1 < this._endIndex && (this._string.charAt(this._currentIndex) == \"e\" || this._string.charAt(this._currentIndex) == \"E\") && this._string.charAt(this._currentIndex + 1) != \"x\" && this._string.charAt(this._currentIndex + 1) != \"m\") {\n this._currentIndex++;\n if (this._string.charAt(this._currentIndex) == \"+\") {\n this._currentIndex++;\n } else if (this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n expsign = -1;\n }\n if (this._currentIndex >= this._endIndex || this._string.charAt(this._currentIndex) < \"0\" || this._string.charAt(this._currentIndex) > \"9\") return undefined;\n while(this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) >= \"0\" && this._string.charAt(this._currentIndex) <= \"9\"){\n exponent *= 10;\n exponent += this._string.charAt(this._currentIndex) - \"0\";\n this._currentIndex++;\n }\n }\n let number = integer + decimal;\n number *= sign;\n if (exponent) number *= Math.pow(10, expsign * exponent);\n if (startIndex == this._currentIndex) return undefined;\n this._skipOptionalSpacesOrDelimiter();\n return number;\n };\n Source.prototype._parseArcFlag = function() {\n if (this._currentIndex >= this._endIndex) return undefined;\n let flag = false;\n const flagChar = this._string.charAt(this._currentIndex++);\n if (flagChar == \"0\") flag = false;\n else if (flagChar == \"1\") flag = true;\n else return undefined;\n this._skipOptionalSpacesOrDelimiter();\n return flag;\n };\n Source.prototype.parseSegment = function() {\n const lookahead = this._string[this._currentIndex];\n let command = this._pathSegTypeFromChar(lookahead);\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN) {\n if (this._previousCommand == window.SVGPathSeg.PATHSEG_UNKNOWN) return null;\n command = this._nextCommandHelper(lookahead, this._previousCommand);\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN) return null;\n } else {\n this._currentIndex++;\n }\n this._previousCommand = command;\n let points;\n switch(command){\n case window.SVGPathSeg.PATHSEG_MOVETO_REL:\n return new window.SVGPathSegMovetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_MOVETO_ABS:\n return new window.SVGPathSegMovetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_REL:\n return new window.SVGPathSegLinetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_ABS:\n return new window.SVGPathSegLinetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\n return new window.SVGPathSegLinetoHorizontalRel(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\n return new window.SVGPathSegLinetoHorizontalAbs(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL:\n return new window.SVGPathSegLinetoVerticalRel(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\n return new window.SVGPathSegLinetoVerticalAbs(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_CLOSEPATH:\n this._skipOptionalSpaces();\n return new window.SVGPathSegClosePath(owningPathSegList);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoCubicRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoCubicAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:\n points = {\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoCubicSmoothRel(owningPathSegList, points.x, points.y, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:\n points = {\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoCubicSmoothAbs(owningPathSegList, points.x, points.y, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoQuadraticRel(owningPathSegList, points.x, points.y, points.x1, points.y1);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoQuadraticAbs(owningPathSegList, points.x, points.y, points.x1, points.y1);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_ARC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n arcAngle: this._parseNumber(),\n arcLarge: this._parseArcFlag(),\n arcSweep: this._parseArcFlag(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegArcRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n case window.SVGPathSeg.PATHSEG_ARC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n arcAngle: this._parseNumber(),\n arcLarge: this._parseArcFlag(),\n arcSweep: this._parseArcFlag(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegArcAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n default:\n throw \"Unknown path seg type.\";\n }\n };\n const builder = new Builder();\n const source = new Source(string);\n if (!source.initialCommandIsMoveTo()) return [];\n while(source.hasMoreData()){\n const pathSeg = source.parseSegment();\n if (!pathSeg) return [];\n builder.appendSegment(pathSeg);\n }\n return builder.pathSegList;\n };\n }\n } catch (e) {\n console.warn(\"An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/tsparticles/tsparticles\", e);\n }\n})();\n\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/pathseg.js?\n}");
|
|
37
37
|
|
|
38
38
|
/***/ },
|
|
39
39
|
|
|
@@ -43,7 +43,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n\n\n(function () {\n \"use
|
|
|
43
43
|
\*******************************************************/
|
|
44
44
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
45
45
|
|
|
46
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ calcClosestPointOnSegment: () => (/* binding */ calcClosestPointOnSegment),\n/* harmony export */ drawPolygonMask: () => (/* binding */ drawPolygonMask),\n/* harmony export */ drawPolygonMaskPath: () => (/* binding */ drawPolygonMaskPath),\n/* harmony export */ parsePaths: () => (/* binding */ parsePaths),\n/* harmony export */ segmentBounce: () => (/* binding */ segmentBounce)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst squareExp = 2
|
|
46
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ calcClosestPointOnSegment: () => (/* binding */ calcClosestPointOnSegment),\n/* harmony export */ drawPolygonMask: () => (/* binding */ drawPolygonMask),\n/* harmony export */ drawPolygonMaskPath: () => (/* binding */ drawPolygonMaskPath),\n/* harmony export */ parsePaths: () => (/* binding */ parsePaths),\n/* harmony export */ segmentBounce: () => (/* binding */ segmentBounce)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst squareExp = 2, inSegmentRange = {\n min: 0,\n max: 1\n};\nfunction drawPolygonMask(pluginManager, context, rawData, stroke, hdr = false) {\n const color = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.rangeColorToRgb)(pluginManager, stroke.color);\n if (!color) {\n return;\n }\n const firstIndex = 0, firstItem = rawData[firstIndex];\n if (!firstItem) {\n return;\n }\n context.beginPath();\n context.moveTo(firstItem.x, firstItem.y);\n for (const item of rawData){\n context.lineTo(item.x, item.y);\n }\n context.closePath();\n context.strokeStyle = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getStyleFromRgb)(color, hdr);\n context.lineWidth = stroke.width;\n context.stroke();\n}\nfunction drawPolygonMaskPath(pluginManager, context, path, stroke, position, hdr = false) {\n const defaultTransform = {\n a: 1,\n b: 0,\n c: 0,\n d: 1\n };\n context.setTransform(defaultTransform.a, defaultTransform.b, defaultTransform.c, defaultTransform.d, position.x, position.y);\n const color = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.rangeColorToRgb)(pluginManager, stroke.color);\n if (!color) {\n return;\n }\n context.strokeStyle = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getStyleFromRgb)(color, hdr, stroke.opacity);\n context.lineWidth = stroke.width;\n context.stroke(path);\n context.resetTransform();\n}\nfunction parsePaths(paths, scale, offset) {\n const res = [], defaultCount = 0;\n for (const path of paths){\n const segments = path.element.pathSegList, len = segments?.numberOfItems ?? defaultCount, p = {\n x: 0,\n y: 0\n };\n for(let i = 0; i < len; i++){\n const segment = segments?.getItem(i), svgPathSeg = globalThis.SVGPathSeg;\n switch(segment?.pathSegType){\n case svgPathSeg.PATHSEG_MOVETO_ABS:\n case svgPathSeg.PATHSEG_LINETO_ABS:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_ABS:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:\n case svgPathSeg.PATHSEG_ARC_ABS:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:\n {\n const absSeg = segment;\n p.x = absSeg.x;\n p.y = absSeg.y;\n break;\n }\n case svgPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\n p.x = segment.x;\n break;\n case svgPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\n p.y = segment.y;\n break;\n case svgPathSeg.PATHSEG_LINETO_REL:\n case svgPathSeg.PATHSEG_MOVETO_REL:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_REL:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:\n case svgPathSeg.PATHSEG_ARC_REL:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:\n {\n const relSeg = segment;\n p.x += relSeg.x;\n p.y += relSeg.y;\n break;\n }\n case svgPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\n p.x += segment.x;\n break;\n case svgPathSeg.PATHSEG_LINETO_VERTICAL_REL:\n p.y += segment.y;\n break;\n case svgPathSeg.PATHSEG_UNKNOWN:\n case svgPathSeg.PATHSEG_CLOSEPATH:\n continue;\n default:\n continue;\n }\n res.push({\n x: p.x * scale + offset.x,\n y: p.y * scale + offset.y\n });\n }\n }\n return res;\n}\nfunction calcClosestPointOnSegment(s1, s2, pos) {\n const { dx: dx1, dy: dy1 } = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistances)(pos, s1), { dx: dx2, dy: dy2 } = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistances)(s2, s1), t = (dx1 * dx2 + dy1 * dy2) / (dx2 ** squareExp + dy2 ** squareExp), res = {\n x: s1.x + dx2 * t,\n y: s1.y + dy2 * t,\n isOnSegment: t >= inSegmentRange.min && t <= inSegmentRange.max\n };\n if (t < inSegmentRange.min) {\n res.x = s1.x;\n res.y = s1.y;\n } else if (t > inSegmentRange.max) {\n res.x = s2.x;\n res.y = s2.y;\n }\n return res;\n}\nfunction segmentBounce(start, stop, velocity) {\n const { dx, dy } = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistances)(start, stop), wallAngle = Math.atan2(dy, dx), wallNormal = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(Math.sin(wallAngle), -Math.cos(wallAngle)), d = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.double * (velocity.x * wallNormal.x + velocity.y * wallNormal.y);\n wallNormal.multTo(d);\n velocity.subFrom(wallNormal);\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/utils.js?\n}");
|
|
47
47
|
|
|
48
48
|
/***/ }
|
|
49
49
|
|