@eturnity/eturnity_reusable_components 8.13.3-EPDM-14657.2 → 8.13.3-EPDM-14690.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/TestChart.vue +29 -34
- package/src/assets/icons/collapse_arrow_icon_white.svg +1 -0
- package/src/assets/svgIcons/ac_power.svg +4 -0
- package/src/assets/svgIcons/arrow_long_left.svg +3 -0
- package/src/assets/svgIcons/arrow_long_right.svg +3 -0
- package/src/assets/svgIcons/chassis_ground_symbol.svg +27 -0
- package/src/assets/svgIcons/dc_power.svg +8 -0
- package/src/assets/svgIcons/double_arrow_long.svg +4 -0
- package/src/assets/svgIcons/ed_ac.svg +3 -0
- package/src/assets/svgIcons/ed_acgrid.svg +4 -0
- package/src/assets/svgIcons/ed_arrow_both.svg +7 -0
- package/src/assets/svgIcons/ed_arrow_left.svg +7 -0
- package/src/assets/svgIcons/ed_arrow_right.svg +7 -0
- package/src/assets/svgIcons/ed_battery.svg +10 -0
- package/src/assets/svgIcons/ed_batteryacinverter.svg +16 -0
- package/src/assets/svgIcons/ed_batteryintegratedinverter.svg +19 -0
- package/src/assets/svgIcons/ed_cirquitbreaker.svg +4 -0
- package/src/assets/svgIcons/ed_cirquitbreaker_magnetic.svg +6 -0
- package/src/assets/svgIcons/ed_cirquitbreaker_thermal.svg +4 -0
- package/src/assets/svgIcons/ed_cirquitbreaker_thermal_magnetic.svg +5 -0
- package/src/assets/svgIcons/ed_consumption.svg +3 -0
- package/src/assets/svgIcons/ed_dc.svg +6 -0
- package/src/assets/svgIcons/ed_disconnector.svg +4 -0
- package/src/assets/svgIcons/ed_disconnector_fuse.svg +4 -0
- package/src/assets/svgIcons/ed_disconnector_fuse_switch.svg +4 -0
- package/src/assets/svgIcons/ed_disconnector_loadbreak switch.svg +4 -0
- package/src/assets/svgIcons/ed_disconnector_switch.svg +4 -0
- package/src/assets/svgIcons/ed_disconnector_switch_auto_release.svg +5 -0
- package/src/assets/svgIcons/ed_energymanagement_rectangle.svg +3 -0
- package/src/assets/svgIcons/ed_evcharger.svg +19 -0
- package/src/assets/svgIcons/ed_flexiblecomponent_circle.svg +3 -0
- package/src/assets/svgIcons/ed_flexiblecomponent_square.svg +3 -0
- package/src/assets/svgIcons/ed_fuse.svg +3 -0
- package/src/assets/svgIcons/ed_ground.svg +5 -0
- package/src/assets/svgIcons/ed_heatpump.svg +4 -0
- package/src/assets/svgIcons/ed_icon_battery.svg +9 -0
- package/src/assets/svgIcons/ed_icon_circle.svg +3 -0
- package/src/assets/svgIcons/ed_icon_heatpump.svg +3 -0
- package/src/assets/svgIcons/ed_icon_inverter.svg +8 -0
- package/src/assets/svgIcons/ed_icon_optimizer.svg +11 -0
- package/src/assets/svgIcons/ed_integratedbatteryinverter.svg +10 -0
- package/src/assets/svgIcons/ed_inverter-blank.svg +3 -0
- package/src/assets/svgIcons/ed_mainsconnection.svg +3 -0
- package/src/assets/svgIcons/ed_meter_arrowleft.svg +4 -0
- package/src/assets/svgIcons/ed_meter_arrowright.svg +4 -0
- package/src/assets/svgIcons/ed_meter_bidirectional.svg +5 -0
- package/src/assets/svgIcons/ed_networkandsystemprotection_double.svg +14 -0
- package/src/assets/svgIcons/ed_networkandsystemprotection_single.svg +7 -0
- package/src/assets/svgIcons/ed_pvpanel.svg +7 -0
- package/src/assets/svgIcons/ed_rcd.svg +5 -0
- package/src/assets/svgIcons/ed_rcd_simple.svg +3 -0
- package/src/assets/svgIcons/ed_spd.svg +6 -0
- package/src/assets/svgIcons/ed_stringwithoptimizer.svg +33 -0
- package/src/assets/svgIcons/ed_stringwithoutoptimizer.svg +17 -0
- package/src/assets/svgIcons/ed_transformer.svg +3 -0
- package/src/assets/svgIcons/ground_symbol.svg +28 -0
- package/src/assets/svgIcons/house_sun.svg +3 -0
- package/src/assets/svgIcons/move_left.svg +3 -0
- package/src/assets/svgIcons/move_right.svg +3 -0
- package/src/assets/svgIcons/rectangle.svg +3 -0
- package/src/assets/svgIcons/text_icon.svg +3 -0
- package/src/assets/theme.js +1 -0
- package/src/components/banner/infoBanner/InfoBanner.spec.js +29 -42
- package/src/components/buttons/buttonIcon/index.vue +1 -1
- package/src/components/draggableCard/defaultProps.js +16 -0
- package/src/components/draggableCard/draggableCard.spec.js +99 -0
- package/src/components/draggableCard/draggableCard.stories.js +79 -0
- package/src/components/draggableCard/index.vue +363 -0
- package/src/components/errorMessage/errorMessage.spec.js +34 -0
- package/src/components/errorMessage/errorMessage.stories.js +35 -0
- package/src/components/filter/filterSettings.vue +2 -0
- package/src/components/icon/index.vue +18 -6
- package/src/components/infoText/index.vue +3 -3
- package/src/components/infoText/infoText.spec.js +6 -1
- package/src/components/inputs/checkbox/index.vue +2 -2
- package/src/components/inputs/select/index.vue +105 -18
- package/src/components/modals/actionModal/actionModal.spec.js +52 -0
- package/src/components/modals/actionModal/actionModal.stories.js +53 -0
- package/src/components/modals/actionModal/index.vue +6 -6
- package/src/components/modals/infoModal/index.vue +49 -19
- package/src/components/modals/infoModal/infoModal.spec.js +55 -0
- package/src/components/modals/infoModal/infoModal.stories.js +47 -0
- package/src/components/modals/modal/index.vue +21 -6
- package/src/components/pageSubtitle/PageSubtitle.stories.js +0 -1
- package/src/components/pageTitle/index.vue +3 -4
- package/src/components/spinner/index.vue +2 -2
- package/src/components/spinnerGif/index.vue +3 -3
- package/src/components/tableDropdown/index.vue +17 -9
- package/src/components/tables/mainTable/index.vue +4 -2
- package/src/helpers/dateTimeFormatting.js +51 -0
- package/src/main.js +0 -7
- package/src/router/dynamicRoutes.js +0 -12
- package/dist/main.es.js +0 -7
- package/dist/main.es10.js +0 -10
- package/dist/main.es100.js +0 -23
- package/dist/main.es101.js +0 -23
- package/dist/main.es102.js +0 -20
- package/dist/main.es103.js +0 -20
- package/dist/main.es104.js +0 -20
- package/dist/main.es105.js +0 -37
- package/dist/main.es106.js +0 -28
- package/dist/main.es107.js +0 -32
- package/dist/main.es108.js +0 -18
- package/dist/main.es109.js +0 -33
- package/dist/main.es11.js +0 -2484
- package/dist/main.es110.js +0 -41
- package/dist/main.es111.js +0 -36
- package/dist/main.es112.js +0 -35
- package/dist/main.es113.js +0 -20
- package/dist/main.es114.js +0 -23
- package/dist/main.es115.js +0 -30
- package/dist/main.es116.js +0 -23
- package/dist/main.es117.js +0 -32
- package/dist/main.es118.js +0 -23
- package/dist/main.es119.js +0 -29
- package/dist/main.es12.js +0 -133
- package/dist/main.es120.js +0 -25
- package/dist/main.es121.js +0 -23
- package/dist/main.es122.js +0 -28
- package/dist/main.es123.js +0 -28
- package/dist/main.es124.js +0 -39
- package/dist/main.es125.js +0 -37
- package/dist/main.es126.js +0 -23
- package/dist/main.es127.js +0 -25
- package/dist/main.es128.js +0 -23
- package/dist/main.es129.js +0 -23
- package/dist/main.es13.js +0 -261
- package/dist/main.es130.js +0 -23
- package/dist/main.es131.js +0 -28
- package/dist/main.es132.js +0 -29
- package/dist/main.es133.js +0 -29
- package/dist/main.es134.js +0 -21
- package/dist/main.es135.js +0 -20
- package/dist/main.es136.js +0 -28
- package/dist/main.es137.js +0 -24
- package/dist/main.es138.js +0 -28
- package/dist/main.es139.js +0 -23
- package/dist/main.es14.js +0 -26
- package/dist/main.es140.js +0 -33
- package/dist/main.es141.js +0 -30
- package/dist/main.es142.js +0 -23
- package/dist/main.es143.js +0 -20
- package/dist/main.es144.js +0 -19
- package/dist/main.es145.js +0 -23
- package/dist/main.es146.js +0 -29
- package/dist/main.es147.js +0 -28
- package/dist/main.es148.js +0 -35
- package/dist/main.es149.js +0 -25
- package/dist/main.es15.js +0 -1058
- package/dist/main.es150.js +0 -25
- package/dist/main.es151.js +0 -23
- package/dist/main.es152.js +0 -41
- package/dist/main.es153.js +0 -41
- package/dist/main.es154.js +0 -25
- package/dist/main.es155.js +0 -23
- package/dist/main.es156.js +0 -23
- package/dist/main.es157.js +0 -25
- package/dist/main.es158.js +0 -23
- package/dist/main.es159.js +0 -23
- package/dist/main.es16.js +0 -692
- package/dist/main.es160.js +0 -23
- package/dist/main.es161.js +0 -23
- package/dist/main.es162.js +0 -23
- package/dist/main.es163.js +0 -23
- package/dist/main.es164.js +0 -20
- package/dist/main.es165.js +0 -28
- package/dist/main.es166.js +0 -28
- package/dist/main.es167.js +0 -28
- package/dist/main.es168.js +0 -28
- package/dist/main.es169.js +0 -25
- package/dist/main.es17.js +0 -95
- package/dist/main.es170.js +0 -23
- package/dist/main.es171.js +0 -23
- package/dist/main.es172.js +0 -20
- package/dist/main.es173.js +0 -20
- package/dist/main.es174.js +0 -23
- package/dist/main.es175.js +0 -18
- package/dist/main.es176.js +0 -23
- package/dist/main.es177.js +0 -20
- package/dist/main.es178.js +0 -25
- package/dist/main.es179.js +0 -25
- package/dist/main.es18.js +0 -78
- package/dist/main.es180.js +0 -23
- package/dist/main.es181.js +0 -23
- package/dist/main.es182.js +0 -20
- package/dist/main.es183.js +0 -23
- package/dist/main.es184.js +0 -23
- package/dist/main.es185.js +0 -32
- package/dist/main.es186.js +0 -23
- package/dist/main.es187.js +0 -32
- package/dist/main.es188.js +0 -37
- package/dist/main.es189.js +0 -32
- package/dist/main.es19.js +0 -143
- package/dist/main.es190.js +0 -39
- package/dist/main.es191.js +0 -28
- package/dist/main.es192.js +0 -20
- package/dist/main.es193.js +0 -20
- package/dist/main.es194.js +0 -25
- package/dist/main.es195.js +0 -23
- package/dist/main.es196.js +0 -40
- package/dist/main.es197.js +0 -23
- package/dist/main.es198.js +0 -21
- package/dist/main.es199.js +0 -19
- package/dist/main.es2.js +0 -34
- package/dist/main.es20.js +0 -152
- package/dist/main.es200.js +0 -20
- package/dist/main.es201.js +0 -20
- package/dist/main.es202.js +0 -33
- package/dist/main.es203.js +0 -23
- package/dist/main.es204.js +0 -23
- package/dist/main.es205.js +0 -28
- package/dist/main.es206.js +0 -23
- package/dist/main.es207.js +0 -23
- package/dist/main.es208.js +0 -21
- package/dist/main.es209.js +0 -23
- package/dist/main.es21.js +0 -108
- package/dist/main.es210.js +0 -28
- package/dist/main.es211.js +0 -23
- package/dist/main.es212.js +0 -23
- package/dist/main.es213.js +0 -23
- package/dist/main.es214.js +0 -28
- package/dist/main.es215.js +0 -28
- package/dist/main.es216.js +0 -20
- package/dist/main.es217.js +0 -23
- package/dist/main.es218.js +0 -35
- package/dist/main.es219.js +0 -28
- package/dist/main.es22.js +0 -4
- package/dist/main.es220.js +0 -29
- package/dist/main.es221.js +0 -24
- package/dist/main.es222.js +0 -23
- package/dist/main.es223.js +0 -28
- package/dist/main.es224.js +0 -25
- package/dist/main.es225.js +0 -23
- package/dist/main.es226.js +0 -23
- package/dist/main.es227.js +0 -20
- package/dist/main.es228.js +0 -20
- package/dist/main.es229.js +0 -23
- package/dist/main.es23.js +0 -169
- package/dist/main.es230.js +0 -23
- package/dist/main.es231.js +0 -25
- package/dist/main.es232.js +0 -38
- package/dist/main.es233.js +0 -30
- package/dist/main.es234.js +0 -28
- package/dist/main.es235.js +0 -23
- package/dist/main.es236.js +0 -22
- package/dist/main.es237.js +0 -28
- package/dist/main.es238.js +0 -23
- package/dist/main.es239.js +0 -18
- package/dist/main.es24.js +0 -201
- package/dist/main.es240.js +0 -23
- package/dist/main.es241.js +0 -25
- package/dist/main.es242.js +0 -23
- package/dist/main.es243.js +0 -23
- package/dist/main.es244.js +0 -23
- package/dist/main.es245.js +0 -23
- package/dist/main.es246.js +0 -23
- package/dist/main.es247.js +0 -23
- package/dist/main.es248.js +0 -23
- package/dist/main.es249.js +0 -23
- package/dist/main.es25.js +0 -55
- package/dist/main.es250.js +0 -30
- package/dist/main.es251.js +0 -23
- package/dist/main.es252.js +0 -23
- package/dist/main.es253.js +0 -28
- package/dist/main.es254.js +0 -23
- package/dist/main.es255.js +0 -23
- package/dist/main.es256.js +0 -28
- package/dist/main.es257.js +0 -33
- package/dist/main.es258.js +0 -28
- package/dist/main.es259.js +0 -28
- package/dist/main.es26.js +0 -12
- package/dist/main.es260.js +0 -23
- package/dist/main.es261.js +0 -25
- package/dist/main.es262.js +0 -28
- package/dist/main.es263.js +0 -30
- package/dist/main.es264.js +0 -23
- package/dist/main.es265.js +0 -23
- package/dist/main.es266.js +0 -23
- package/dist/main.es267.js +0 -23
- package/dist/main.es268.js +0 -28
- package/dist/main.es269.js +0 -252
- package/dist/main.es27.js +0 -6
- package/dist/main.es270.js +0 -22
- package/dist/main.es271.js +0 -25
- package/dist/main.es272.js +0 -7
- package/dist/main.es273.js +0 -383
- package/dist/main.es274.js +0 -54
- package/dist/main.es275.js +0 -15
- package/dist/main.es276.js +0 -64
- package/dist/main.es277.js +0 -4
- package/dist/main.es278.js +0 -4
- package/dist/main.es279.js +0 -4
- package/dist/main.es28.js +0 -103
- package/dist/main.es280.js +0 -4
- package/dist/main.es281.js +0 -4
- package/dist/main.es282.js +0 -4
- package/dist/main.es283.js +0 -4
- package/dist/main.es284.js +0 -4
- package/dist/main.es285.js +0 -4
- package/dist/main.es286.js +0 -4
- package/dist/main.es287.js +0 -4
- package/dist/main.es288.js +0 -4
- package/dist/main.es289.js +0 -4
- package/dist/main.es29.js +0 -62
- package/dist/main.es290.js +0 -4
- package/dist/main.es291.js +0 -4
- package/dist/main.es292.js +0 -4
- package/dist/main.es293.js +0 -4
- package/dist/main.es294.js +0 -4
- package/dist/main.es295.js +0 -4
- package/dist/main.es296.js +0 -4
- package/dist/main.es297.js +0 -4
- package/dist/main.es298.js +0 -4
- package/dist/main.es299.js +0 -4
- package/dist/main.es3.js +0 -70
- package/dist/main.es30.js +0 -69
- package/dist/main.es300.js +0 -4
- package/dist/main.es301.js +0 -4
- package/dist/main.es302.js +0 -4
- package/dist/main.es303.js +0 -4
- package/dist/main.es304.js +0 -4
- package/dist/main.es305.js +0 -4
- package/dist/main.es306.js +0 -4
- package/dist/main.es307.js +0 -4
- package/dist/main.es308.js +0 -4
- package/dist/main.es309.js +0 -4
- package/dist/main.es31.js +0 -801
- package/dist/main.es310.js +0 -4
- package/dist/main.es311.js +0 -4
- package/dist/main.es312.js +0 -4
- package/dist/main.es313.js +0 -4
- package/dist/main.es314.js +0 -4
- package/dist/main.es315.js +0 -4
- package/dist/main.es316.js +0 -4
- package/dist/main.es317.js +0 -4
- package/dist/main.es318.js +0 -4
- package/dist/main.es319.js +0 -4
- package/dist/main.es32.js +0 -127
- package/dist/main.es320.js +0 -4
- package/dist/main.es321.js +0 -4
- package/dist/main.es322.js +0 -4
- package/dist/main.es323.js +0 -4
- package/dist/main.es324.js +0 -4
- package/dist/main.es325.js +0 -4
- package/dist/main.es326.js +0 -4
- package/dist/main.es327.js +0 -4
- package/dist/main.es328.js +0 -4
- package/dist/main.es329.js +0 -4
- package/dist/main.es33.js +0 -4
- package/dist/main.es330.js +0 -4
- package/dist/main.es331.js +0 -4
- package/dist/main.es332.js +0 -4
- package/dist/main.es333.js +0 -4
- package/dist/main.es334.js +0 -4
- package/dist/main.es335.js +0 -4
- package/dist/main.es336.js +0 -4
- package/dist/main.es337.js +0 -4
- package/dist/main.es338.js +0 -4
- package/dist/main.es339.js +0 -4
- package/dist/main.es34.js +0 -29
- package/dist/main.es340.js +0 -4
- package/dist/main.es341.js +0 -4
- package/dist/main.es342.js +0 -4
- package/dist/main.es343.js +0 -4
- package/dist/main.es344.js +0 -4
- package/dist/main.es345.js +0 -4
- package/dist/main.es346.js +0 -4
- package/dist/main.es347.js +0 -4
- package/dist/main.es348.js +0 -4
- package/dist/main.es349.js +0 -4
- package/dist/main.es35.js +0 -34
- package/dist/main.es350.js +0 -4
- package/dist/main.es351.js +0 -4
- package/dist/main.es352.js +0 -4
- package/dist/main.es353.js +0 -4
- package/dist/main.es354.js +0 -4
- package/dist/main.es355.js +0 -4
- package/dist/main.es356.js +0 -4
- package/dist/main.es357.js +0 -4
- package/dist/main.es358.js +0 -4
- package/dist/main.es359.js +0 -4
- package/dist/main.es36.js +0 -36
- package/dist/main.es360.js +0 -4
- package/dist/main.es361.js +0 -4
- package/dist/main.es362.js +0 -4
- package/dist/main.es363.js +0 -4
- package/dist/main.es364.js +0 -4
- package/dist/main.es365.js +0 -4
- package/dist/main.es366.js +0 -4
- package/dist/main.es367.js +0 -4
- package/dist/main.es368.js +0 -4
- package/dist/main.es369.js +0 -4
- package/dist/main.es37.js +0 -41
- package/dist/main.es370.js +0 -4
- package/dist/main.es371.js +0 -4
- package/dist/main.es372.js +0 -4
- package/dist/main.es373.js +0 -4
- package/dist/main.es374.js +0 -4
- package/dist/main.es375.js +0 -4
- package/dist/main.es376.js +0 -4
- package/dist/main.es377.js +0 -4
- package/dist/main.es378.js +0 -4
- package/dist/main.es379.js +0 -4
- package/dist/main.es38.js +0 -35
- package/dist/main.es380.js +0 -4
- package/dist/main.es381.js +0 -4
- package/dist/main.es382.js +0 -4
- package/dist/main.es383.js +0 -4
- package/dist/main.es384.js +0 -4
- package/dist/main.es385.js +0 -4
- package/dist/main.es386.js +0 -4
- package/dist/main.es387.js +0 -4
- package/dist/main.es388.js +0 -4
- package/dist/main.es389.js +0 -4
- package/dist/main.es39.js +0 -20
- package/dist/main.es390.js +0 -4
- package/dist/main.es391.js +0 -4
- package/dist/main.es392.js +0 -4
- package/dist/main.es393.js +0 -4
- package/dist/main.es394.js +0 -4
- package/dist/main.es395.js +0 -4
- package/dist/main.es396.js +0 -4
- package/dist/main.es397.js +0 -4
- package/dist/main.es398.js +0 -4
- package/dist/main.es399.js +0 -4
- package/dist/main.es4.js +0 -19
- package/dist/main.es40.js +0 -20
- package/dist/main.es400.js +0 -4
- package/dist/main.es401.js +0 -4
- package/dist/main.es402.js +0 -4
- package/dist/main.es403.js +0 -4
- package/dist/main.es404.js +0 -4
- package/dist/main.es405.js +0 -4
- package/dist/main.es406.js +0 -4
- package/dist/main.es407.js +0 -4
- package/dist/main.es408.js +0 -4
- package/dist/main.es409.js +0 -4
- package/dist/main.es41.js +0 -25
- package/dist/main.es410.js +0 -4
- package/dist/main.es411.js +0 -4
- package/dist/main.es412.js +0 -4
- package/dist/main.es413.js +0 -4
- package/dist/main.es414.js +0 -4
- package/dist/main.es415.js +0 -4
- package/dist/main.es416.js +0 -4
- package/dist/main.es417.js +0 -4
- package/dist/main.es418.js +0 -4
- package/dist/main.es419.js +0 -4
- package/dist/main.es42.js +0 -28
- package/dist/main.es420.js +0 -4
- package/dist/main.es421.js +0 -4
- package/dist/main.es422.js +0 -4
- package/dist/main.es423.js +0 -4
- package/dist/main.es424.js +0 -4
- package/dist/main.es425.js +0 -4
- package/dist/main.es426.js +0 -4
- package/dist/main.es427.js +0 -4
- package/dist/main.es428.js +0 -4
- package/dist/main.es429.js +0 -4
- package/dist/main.es43.js +0 -23
- package/dist/main.es430.js +0 -4
- package/dist/main.es431.js +0 -4
- package/dist/main.es432.js +0 -4
- package/dist/main.es433.js +0 -4
- package/dist/main.es434.js +0 -4
- package/dist/main.es435.js +0 -4
- package/dist/main.es436.js +0 -4
- package/dist/main.es437.js +0 -4
- package/dist/main.es438.js +0 -4
- package/dist/main.es439.js +0 -4
- package/dist/main.es44.js +0 -44
- package/dist/main.es440.js +0 -4
- package/dist/main.es441.js +0 -4
- package/dist/main.es442.js +0 -4
- package/dist/main.es443.js +0 -4
- package/dist/main.es444.js +0 -4
- package/dist/main.es445.js +0 -4
- package/dist/main.es446.js +0 -4
- package/dist/main.es447.js +0 -4
- package/dist/main.es448.js +0 -4
- package/dist/main.es449.js +0 -4
- package/dist/main.es45.js +0 -38
- package/dist/main.es450.js +0 -4
- package/dist/main.es451.js +0 -4
- package/dist/main.es452.js +0 -4
- package/dist/main.es453.js +0 -4
- package/dist/main.es454.js +0 -4
- package/dist/main.es455.js +0 -4
- package/dist/main.es456.js +0 -4
- package/dist/main.es457.js +0 -4
- package/dist/main.es458.js +0 -4
- package/dist/main.es459.js +0 -4
- package/dist/main.es46.js +0 -23
- package/dist/main.es460.js +0 -4
- package/dist/main.es461.js +0 -4
- package/dist/main.es462.js +0 -4
- package/dist/main.es463.js +0 -4
- package/dist/main.es464.js +0 -4
- package/dist/main.es465.js +0 -4
- package/dist/main.es466.js +0 -4
- package/dist/main.es467.js +0 -4
- package/dist/main.es468.js +0 -4
- package/dist/main.es469.js +0 -4
- package/dist/main.es47.js +0 -23
- package/dist/main.es470.js +0 -4
- package/dist/main.es471.js +0 -4
- package/dist/main.es472.js +0 -4
- package/dist/main.es473.js +0 -4
- package/dist/main.es474.js +0 -4
- package/dist/main.es475.js +0 -4
- package/dist/main.es476.js +0 -4
- package/dist/main.es477.js +0 -4
- package/dist/main.es478.js +0 -4
- package/dist/main.es479.js +0 -4
- package/dist/main.es48.js +0 -24
- package/dist/main.es480.js +0 -4
- package/dist/main.es481.js +0 -4
- package/dist/main.es482.js +0 -4
- package/dist/main.es483.js +0 -4
- package/dist/main.es484.js +0 -4
- package/dist/main.es485.js +0 -4
- package/dist/main.es486.js +0 -4
- package/dist/main.es487.js +0 -4
- package/dist/main.es488.js +0 -4
- package/dist/main.es489.js +0 -4
- package/dist/main.es49.js +0 -35
- package/dist/main.es490.js +0 -4
- package/dist/main.es491.js +0 -4
- package/dist/main.es492.js +0 -4
- package/dist/main.es493.js +0 -4
- package/dist/main.es494.js +0 -4
- package/dist/main.es495.js +0 -4
- package/dist/main.es496.js +0 -4
- package/dist/main.es497.js +0 -4
- package/dist/main.es498.js +0 -4
- package/dist/main.es499.js +0 -4
- package/dist/main.es5.js +0 -586
- package/dist/main.es50.js +0 -30
- package/dist/main.es500.js +0 -4
- package/dist/main.es501.js +0 -4
- package/dist/main.es502.js +0 -4
- package/dist/main.es503.js +0 -4
- package/dist/main.es504.js +0 -4
- package/dist/main.es505.js +0 -4
- package/dist/main.es506.js +0 -4
- package/dist/main.es507.js +0 -4
- package/dist/main.es508.js +0 -4
- package/dist/main.es509.js +0 -4
- package/dist/main.es51.js +0 -34
- package/dist/main.es510.js +0 -4
- package/dist/main.es511.js +0 -88
- package/dist/main.es52.js +0 -20
- package/dist/main.es53.js +0 -20
- package/dist/main.es54.js +0 -23
- package/dist/main.es55.js +0 -28
- package/dist/main.es56.js +0 -28
- package/dist/main.es57.js +0 -23
- package/dist/main.es58.js +0 -25
- package/dist/main.es59.js +0 -24
- package/dist/main.es6.js +0 -5872
- package/dist/main.es60.js +0 -23
- package/dist/main.es61.js +0 -23
- package/dist/main.es62.js +0 -23
- package/dist/main.es63.js +0 -23
- package/dist/main.es64.js +0 -23
- package/dist/main.es65.js +0 -20
- package/dist/main.es66.js +0 -23
- package/dist/main.es67.js +0 -23
- package/dist/main.es68.js +0 -21
- package/dist/main.es69.js +0 -20
- package/dist/main.es7.js +0 -1904
- package/dist/main.es70.js +0 -23
- package/dist/main.es71.js +0 -28
- package/dist/main.es72.js +0 -28
- package/dist/main.es73.js +0 -23
- package/dist/main.es74.js +0 -23
- package/dist/main.es75.js +0 -23
- package/dist/main.es76.js +0 -23
- package/dist/main.es77.js +0 -31
- package/dist/main.es78.js +0 -23
- package/dist/main.es79.js +0 -33
- package/dist/main.es8.js +0 -42
- package/dist/main.es80.js +0 -30
- package/dist/main.es81.js +0 -23
- package/dist/main.es82.js +0 -22
- package/dist/main.es83.js +0 -25
- package/dist/main.es84.js +0 -28
- package/dist/main.es85.js +0 -35
- package/dist/main.es86.js +0 -23
- package/dist/main.es87.js +0 -23
- package/dist/main.es88.js +0 -33
- package/dist/main.es89.js +0 -20
- package/dist/main.es9.js +0 -4
- package/dist/main.es90.js +0 -28
- package/dist/main.es91.js +0 -28
- package/dist/main.es92.js +0 -23
- package/dist/main.es93.js +0 -23
- package/dist/main.es94.js +0 -24
- package/dist/main.es95.js +0 -28
- package/dist/main.es96.js +0 -28
- package/dist/main.es97.js +0 -23
- package/dist/main.es98.js +0 -23
- package/dist/main.es99.js +0 -28
- package/dist/style.css +0 -1
- package/src/DemoCharts.vue +0 -424
@@ -109,11 +109,7 @@
|
|
109
109
|
>
|
110
110
|
<slot name="selector" :selected-value="selectedValue"></slot>
|
111
111
|
</Selector>
|
112
|
-
<Caret
|
113
|
-
class="caret_dropdown"
|
114
|
-
:color-mode="colorMode"
|
115
|
-
@click.stop="toggleCaretDropdown"
|
116
|
-
>
|
112
|
+
<Caret class="caret_dropdown" :color-mode="colorMode">
|
117
113
|
<Icon
|
118
114
|
v-if="isDropdownOpen"
|
119
115
|
:color="
|
@@ -137,17 +133,19 @@
|
|
137
133
|
</Caret>
|
138
134
|
</SelectButton>
|
139
135
|
<DropdownWrapper ref="dropdownWrapperRef" :no-relative="noRelative">
|
140
|
-
<
|
136
|
+
<component
|
137
|
+
:is="shouldUseTeleport ? 'Teleport' : 'div'"
|
138
|
+
:to="shouldUseTeleport ? 'body' : undefined"
|
139
|
+
>
|
141
140
|
<SelectDropdown
|
142
141
|
v-show="isSelectDropdownShown"
|
143
142
|
ref="dropdown"
|
144
143
|
:bg-color="
|
145
|
-
|
146
|
-
colorMode == 'dark' ||
|
147
|
-
colorMode == 'transparent'
|
144
|
+
colorMode == 'dark' || colorMode == 'transparent'
|
148
145
|
? 'black'
|
149
146
|
: 'white'
|
150
147
|
"
|
148
|
+
class="rc-select-dropdown"
|
151
149
|
:dropdown-position="dropdownPosition"
|
152
150
|
:font-color="
|
153
151
|
dropdownFontColor ||
|
@@ -167,17 +165,29 @@
|
|
167
165
|
:hovered-index="hoveredIndex"
|
168
166
|
:hovered-value="hoveredValue"
|
169
167
|
:is-active="isActive"
|
168
|
+
:is-fixed-dropdown-position="isFixedDropdownPosition"
|
169
|
+
:is-parent-modal="isParentModal"
|
170
|
+
:is-teleport="shouldUseTeleport"
|
170
171
|
:min-width="minWidth"
|
171
172
|
:no-relative="noRelative"
|
172
173
|
:option-width="getOptionWidth"
|
173
174
|
:selected-value="selectedValue"
|
175
|
+
:style="
|
176
|
+
shouldUseTeleport
|
177
|
+
? {
|
178
|
+
transform: `translate(${dropdownPosition?.left}px, ${
|
179
|
+
noRelative ? 'auto' : `${dropdownPosition?.top}px`
|
180
|
+
})`,
|
181
|
+
}
|
182
|
+
: undefined
|
183
|
+
"
|
174
184
|
@mouseleave="optionLeave"
|
175
185
|
@option-hovered="optionHovered"
|
176
186
|
@option-selected="optionSelected"
|
177
187
|
>
|
178
188
|
<slot name="dropdown"></slot>
|
179
189
|
</SelectDropdown>
|
180
|
-
</
|
190
|
+
</component>
|
181
191
|
</DropdownWrapper>
|
182
192
|
</SelectButtonWrapper>
|
183
193
|
</InputWrapper>
|
@@ -208,7 +218,7 @@
|
|
208
218
|
// </template>
|
209
219
|
// </Select>
|
210
220
|
|
211
|
-
import { Teleport } from 'vue'
|
221
|
+
import { Teleport, inject } from 'vue'
|
212
222
|
import styled from 'vue3-styled-components'
|
213
223
|
import InfoText from '../../infoText'
|
214
224
|
import Icon from '../../icon'
|
@@ -392,14 +402,18 @@
|
|
392
402
|
selectedValue: Number | String,
|
393
403
|
noRelative: Boolean,
|
394
404
|
minWidth: String,
|
405
|
+
isParentModal: Boolean,
|
406
|
+
isFixedDropdownPosition: Boolean,
|
407
|
+
isTeleport: Boolean,
|
395
408
|
}
|
396
409
|
const SelectDropdown = styled('div', selectDropdownAttrs)`
|
397
410
|
box-sizing: border-box;
|
398
|
-
z-index: ${(props) =>
|
399
|
-
|
400
|
-
|
401
|
-
props.
|
402
|
-
|
411
|
+
z-index: ${(props) =>
|
412
|
+
props.isActive ? '2' : props.isParentModal ? '9999999' : '99999'};
|
413
|
+
position: ${(props) =>
|
414
|
+
props.isFixedDropdownPosition ? 'fixed' : 'absolute'};
|
415
|
+
top: ${(props) => (props.isTeleport ? '0px' : '4px')};
|
416
|
+
left: 0px;
|
403
417
|
border: ${BORDER_WIDTH} solid ${(props) => props.theme.colors.grey4};
|
404
418
|
border-radius: 4px;
|
405
419
|
display: flex;
|
@@ -647,6 +661,23 @@
|
|
647
661
|
type: String,
|
648
662
|
required: false,
|
649
663
|
},
|
664
|
+
isFixedDropdownPosition: {
|
665
|
+
type: Boolean,
|
666
|
+
required: false,
|
667
|
+
default: false,
|
668
|
+
},
|
669
|
+
shouldUseTeleport: {
|
670
|
+
type: Boolean,
|
671
|
+
required: false,
|
672
|
+
default: true,
|
673
|
+
},
|
674
|
+
},
|
675
|
+
setup() {
|
676
|
+
const modalRef = inject('modalRef')
|
677
|
+
|
678
|
+
return {
|
679
|
+
modalRef,
|
680
|
+
}
|
650
681
|
},
|
651
682
|
|
652
683
|
data() {
|
@@ -664,6 +695,10 @@
|
|
664
695
|
},
|
665
696
|
dropdownWidth: null,
|
666
697
|
hoveredValue: null,
|
698
|
+
isDisplayedAtBottom: true,
|
699
|
+
selectTopPosition: 0,
|
700
|
+
selectAndDropdownDistance: 0,
|
701
|
+
animationFrameId: null,
|
667
702
|
}
|
668
703
|
},
|
669
704
|
computed: {
|
@@ -721,6 +756,9 @@
|
|
721
756
|
/windows phone/i.test(userAgent)
|
722
757
|
)
|
723
758
|
},
|
759
|
+
isParentModal() {
|
760
|
+
return !!this.modalRef
|
761
|
+
},
|
724
762
|
},
|
725
763
|
watch: {
|
726
764
|
value(val) {
|
@@ -734,8 +772,13 @@
|
|
734
772
|
}, 10)
|
735
773
|
await this.$nextTick()
|
736
774
|
this.handleSetDropdownOffet()
|
775
|
+
if (!this.isFixedDropdownPosition) this.calculateSelectTopPosition()
|
737
776
|
} else {
|
738
777
|
this.dropdownPosition.left = null
|
778
|
+
if (this.animationFrameId) {
|
779
|
+
cancelAnimationFrame(this.animationFrameId)
|
780
|
+
this.animationFrameId = null
|
781
|
+
}
|
739
782
|
setTimeout(() => {
|
740
783
|
this.isClickOutsideActive = false
|
741
784
|
}, 10)
|
@@ -748,11 +791,30 @@
|
|
748
791
|
})
|
749
792
|
}
|
750
793
|
},
|
794
|
+
isSelectDropdownShown(isShown) {
|
795
|
+
if (!isShown) return
|
796
|
+
// Need to wait for 1ms to make sure the dropdown menu is shown in the DOM
|
797
|
+
// before getting the distance between the select and the dropdown menu
|
798
|
+
setTimeout(() => {
|
799
|
+
this.getDistanceBetweenSelectAndDropdownMenu()
|
800
|
+
}, 100)
|
801
|
+
},
|
802
|
+
selectTopPosition() {
|
803
|
+
this.dropdownPosition.top =
|
804
|
+
this.selectTopPosition +
|
805
|
+
this.$refs.select.$el.clientHeight +
|
806
|
+
this.selectAndDropdownDistance
|
807
|
+
},
|
751
808
|
},
|
752
809
|
mounted() {
|
753
810
|
this.observeDropdownHeight()
|
754
811
|
this.observeSelectWidth()
|
755
812
|
window.addEventListener('resize', this.handleSetDropdownOffet)
|
813
|
+
if (!this.isFixedDropdownPosition)
|
814
|
+
document.body.addEventListener(
|
815
|
+
'scroll',
|
816
|
+
this.calculateSelectTopPosition
|
817
|
+
)
|
756
818
|
},
|
757
819
|
beforeMount() {
|
758
820
|
this.selectedValue = this.value
|
@@ -761,6 +823,12 @@
|
|
761
823
|
window.removeEventListener('resize', this.handleSetDropdownOffet)
|
762
824
|
if (this.dropdownResizeObserver) this.dropdownResizeObserver.disconnect()
|
763
825
|
if (this.selectResizeObserver) this.selectResizeObserver.disconnect()
|
826
|
+
if (!this.isFixedDropdownPosition) {
|
827
|
+
document.body.removeEventListener(
|
828
|
+
'scroll',
|
829
|
+
this.calculateSelectTopPosition
|
830
|
+
)
|
831
|
+
}
|
764
832
|
},
|
765
833
|
unmounted() {
|
766
834
|
document.removeEventListener('click', this.clickOutside)
|
@@ -866,11 +934,11 @@
|
|
866
934
|
return
|
867
935
|
}
|
868
936
|
await this.$nextTick()
|
869
|
-
|
937
|
+
this.isDisplayedAtBottom = await this.generateDropdownPosition()
|
870
938
|
// If the dropdown menu is going to be displayed at the bottom,
|
871
939
|
// we need reverify its position after a dom update (nextTick)
|
872
940
|
await this.$nextTick()
|
873
|
-
if (isDisplayedAtBottom) this.generateDropdownPosition()
|
941
|
+
if (this.isDisplayedAtBottom) this.generateDropdownPosition()
|
874
942
|
},
|
875
943
|
async generateDropdownPosition() {
|
876
944
|
const isDropdownNotCompletelyVisible =
|
@@ -963,6 +1031,25 @@
|
|
963
1031
|
}
|
964
1032
|
}
|
965
1033
|
},
|
1034
|
+
getDistanceBetweenSelectAndDropdownMenu() {
|
1035
|
+
const wholeSelectTopPosition =
|
1036
|
+
this.selectTopPosition + this.$refs.select.$el.clientHeight
|
1037
|
+
this.selectAndDropdownDistance =
|
1038
|
+
this.dropdownPosition.top - wholeSelectTopPosition
|
1039
|
+
},
|
1040
|
+
calculateSelectTopPosition() {
|
1041
|
+
const selectRef = this.$refs.select
|
1042
|
+
if (selectRef) {
|
1043
|
+
const currentTopPosition =
|
1044
|
+
selectRef.$el.getBoundingClientRect().top + window.scrollY
|
1045
|
+
if (this.selectTopPosition !== currentTopPosition) {
|
1046
|
+
this.selectTopPosition = currentTopPosition
|
1047
|
+
}
|
1048
|
+
}
|
1049
|
+
this.animationFrameId = requestAnimationFrame(
|
1050
|
+
this.calculateSelectTopPosition
|
1051
|
+
)
|
1052
|
+
},
|
966
1053
|
},
|
967
1054
|
}
|
968
1055
|
</script>
|
@@ -0,0 +1,52 @@
|
|
1
|
+
/* eslint-disable */
|
2
|
+
import { mount } from '@vue/test-utils'
|
3
|
+
import ActionModal from '@/components/modals/actionModal'
|
4
|
+
import theme from '@/assets/theme'
|
5
|
+
|
6
|
+
describe('ActionModal Component', () => {
|
7
|
+
let wrapper
|
8
|
+
|
9
|
+
beforeEach(() => {
|
10
|
+
wrapper = mount(ActionModal, {
|
11
|
+
props: {
|
12
|
+
isOpen: true,
|
13
|
+
buttonText: 'Close',
|
14
|
+
},
|
15
|
+
slots: {
|
16
|
+
title: 'Sample title',
|
17
|
+
body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed tincidunt commodo mollis. Fusce urna felis, malesuada sed elementum et, fermentum ac massa. Integer in massa vel orci fermentum bibendum in ut ante. Donec risus risus, luctus quis ex a, pulvinar placerat lacus. Sed pharetra augue a elit volutpat, eu dignissim ex pretium. Aenean imperdiet, nulla in pharetra rutrum, mauris mauris tincidunt tellus, non tempus quam lorem laoreet lectus.',
|
18
|
+
buttons: '<button @click="closeAction">Close</button>',
|
19
|
+
},
|
20
|
+
global: {
|
21
|
+
provide: {
|
22
|
+
theme,
|
23
|
+
},
|
24
|
+
},
|
25
|
+
})
|
26
|
+
})
|
27
|
+
|
28
|
+
test('renders ActionModal component with default props', () => {
|
29
|
+
expect(wrapper.find('[data-test-id="actionModal"]').exists()).toBe(true)
|
30
|
+
|
31
|
+
expect(wrapper.vm.isOpen).toBe(true)
|
32
|
+
})
|
33
|
+
|
34
|
+
test('action modal slots is display when user passed slots content', () => {
|
35
|
+
const modalTitleEl = wrapper.find('[data-test-id="modal_title"]')
|
36
|
+
expect(modalTitleEl.text()).toBe('Sample title')
|
37
|
+
|
38
|
+
const modalBodyEl = wrapper.find('[data-test-id="modal_body"]')
|
39
|
+
expect(modalBodyEl.text()).toContain('Lorem ipsum dolor sit amet')
|
40
|
+
|
41
|
+
const modalActionButton = wrapper.find('[data-test-id="modal_buttons"]')
|
42
|
+
expect(modalActionButton.text()).toContain('Close')
|
43
|
+
})
|
44
|
+
|
45
|
+
test('action modal on-close event is emitted when modal close button is clicked', async () => {
|
46
|
+
const modalCloseButton = wrapper.find('.close')
|
47
|
+
|
48
|
+
modalCloseButton.trigger('click')
|
49
|
+
await wrapper.vm.$nextTick()
|
50
|
+
expect(wrapper.emitted('on-close')).toBeTruthy()
|
51
|
+
})
|
52
|
+
})
|
@@ -0,0 +1,53 @@
|
|
1
|
+
import ActionModal from './index.vue'
|
2
|
+
|
3
|
+
export default {
|
4
|
+
title: 'Components/ActionModal',
|
5
|
+
component: ActionModal,
|
6
|
+
tags: ['autodocs'],
|
7
|
+
parameters: {
|
8
|
+
layout: 'centered',
|
9
|
+
},
|
10
|
+
}
|
11
|
+
|
12
|
+
// import ActionModal from "@eturnity/eturnity_reusable_components/src/components/modals/ActionModal"
|
13
|
+
// This is a reusable modal component that can be used to display information to the user.
|
14
|
+
// To use:
|
15
|
+
// <ActionModal :isOpen="isOpen" @on-close="$emit('on-close-summary')" >
|
16
|
+
// <template #title>
|
17
|
+
// <h1>Header</h1>
|
18
|
+
// </template>
|
19
|
+
// <template #body>
|
20
|
+
// <p>Body</p>
|
21
|
+
// </template>
|
22
|
+
// <template #buttons>
|
23
|
+
// <button @click="closeModal">Close</button>
|
24
|
+
// </template>
|
25
|
+
// </ActionModal>
|
26
|
+
|
27
|
+
export const Default = {
|
28
|
+
args: {
|
29
|
+
isOpen: true,
|
30
|
+
},
|
31
|
+
render: (args) => ({
|
32
|
+
components: { ActionModal },
|
33
|
+
setup() {
|
34
|
+
return { args }
|
35
|
+
},
|
36
|
+
template: `
|
37
|
+
<ActionModal v-bind="args">
|
38
|
+
<template #title>Sample title</template>
|
39
|
+
<template #body>
|
40
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed tincidunt commodo mollis. Fusce urna felis,
|
41
|
+
malesuada sed elementum et, fermentum ac massa. Integer in massa vel orci fermentum bibendum in ut ante.
|
42
|
+
Donec risus risus, luctus quis ex a, pulvinar placerat lacus. Sed pharetra augue a elit volutpat, eu dignissim
|
43
|
+
ex pretium. Aenean imperdiet, nulla in pharetra rutrum, mauris mauris tincidunt tellus, non tempus quam lorem
|
44
|
+
laoreet lectus.
|
45
|
+
</template>
|
46
|
+
<template #buttons>
|
47
|
+
<button @click="saveAction">Save</button>
|
48
|
+
<button @click="closeAction">Close</button>
|
49
|
+
</template>
|
50
|
+
</ActionModal>
|
51
|
+
`,
|
52
|
+
}),
|
53
|
+
}
|
@@ -1,13 +1,13 @@
|
|
1
1
|
<template>
|
2
|
-
<Modal :is-open="isOpen" @on-close="closeModal">
|
2
|
+
<Modal data-test-id="actionModal" :is-open="isOpen" @on-close="closeModal">
|
3
3
|
<ModalContainer>
|
4
|
-
<ModalTitle v-if="$slots.title">
|
4
|
+
<ModalTitle v-if="$slots.title" data-test-id="modal_title">
|
5
5
|
<slot name="title"></slot>
|
6
6
|
</ModalTitle>
|
7
|
-
<TextContainer v-if="$slots.body">
|
7
|
+
<TextContainer v-if="$slots.body" data-test-id="modal_body">
|
8
8
|
<slot name="body"></slot>
|
9
9
|
</TextContainer>
|
10
|
-
<ButtonContainer v-if="$slots.buttons">
|
10
|
+
<ButtonContainer v-if="$slots.buttons" data-test-id="modal_buttons">
|
11
11
|
<slot name="buttons"></slot>
|
12
12
|
</ButtonContainer>
|
13
13
|
</ModalContainer>
|
@@ -23,7 +23,7 @@
|
|
23
23
|
`
|
24
24
|
const ModalTitle = styled.div`
|
25
25
|
color: ${(props) => props.theme.colors.black};
|
26
|
-
font-family:
|
26
|
+
font-family: inherit;
|
27
27
|
font-size: 18px;
|
28
28
|
font-style: normal;
|
29
29
|
font-weight: 700;
|
@@ -37,7 +37,7 @@
|
|
37
37
|
`
|
38
38
|
const TextContainer = styled.div`
|
39
39
|
color: ${(props) => props.theme.colors.black};
|
40
|
-
font-family:
|
40
|
+
font-family: inherit;
|
41
41
|
font-size: 13px;
|
42
42
|
font-style: normal;
|
43
43
|
font-weight: 400;
|
@@ -1,48 +1,78 @@
|
|
1
1
|
<template>
|
2
|
-
<
|
2
|
+
<RCModal data-test-id="infoModal" :is-open="isOpen" @on-close="closeModal">
|
3
3
|
<ModalContainer>
|
4
|
-
<
|
4
|
+
<ModalTitle v-if="$slots.title" data-test-id="modal_title">
|
5
5
|
<slot name="title"></slot>
|
6
|
-
</
|
7
|
-
<
|
6
|
+
</ModalTitle>
|
7
|
+
<TextContainer v-if="$slots.body" data-test-id="modal_body">
|
8
8
|
<slot name="body"></slot>
|
9
|
-
</
|
10
|
-
<
|
11
|
-
<
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
</ButtonContainer>
|
19
|
-
</template>
|
9
|
+
</TextContainer>
|
10
|
+
<ButtonContainer>
|
11
|
+
<RCMainButton
|
12
|
+
min-width="150px"
|
13
|
+
:text="buttonText"
|
14
|
+
type="primary"
|
15
|
+
@click="closeModal"
|
16
|
+
/>
|
17
|
+
</ButtonContainer>
|
20
18
|
</ModalContainer>
|
21
|
-
</
|
19
|
+
</RCModal>
|
22
20
|
</template>
|
23
21
|
<script>
|
24
22
|
import styled from 'vue3-styled-components'
|
25
|
-
import
|
23
|
+
import RCModal from '../modal'
|
26
24
|
import RCMainButton from '../../buttons/mainButton'
|
25
|
+
|
27
26
|
const ModalContainer = styled.div`
|
28
27
|
width: 450px;
|
29
28
|
min-height: 205px;
|
30
29
|
padding: 40px 40px 30px 40px;
|
31
30
|
`
|
31
|
+
const ModalTitle = styled.div`
|
32
|
+
color: ${(props) => props.theme.colors.black};
|
33
|
+
font-family: inherit;
|
34
|
+
font-size: 18px;
|
35
|
+
font-style: normal;
|
36
|
+
font-weight: 700;
|
37
|
+
line-height: 120%;
|
38
|
+
text-transform: uppercase;
|
39
|
+
`
|
32
40
|
const ButtonContainer = styled.div`
|
33
41
|
display: inline-flex;
|
34
42
|
align-items: flex-start;
|
35
43
|
gap: 20px;
|
36
44
|
`
|
45
|
+
const TextContainer = styled.div`
|
46
|
+
color: ${(props) => props.theme.colors.black};
|
47
|
+
font-family: inherit;
|
48
|
+
font-size: 13px;
|
49
|
+
font-style: normal;
|
50
|
+
font-weight: 400;
|
51
|
+
line-height: normal;
|
52
|
+
padding: 30px 0px;
|
53
|
+
white-space: pre-wrap;
|
54
|
+
`
|
55
|
+
|
37
56
|
export default {
|
38
57
|
name: 'InfoModal',
|
39
58
|
components: {
|
59
|
+
RCModal,
|
40
60
|
ModalContainer,
|
61
|
+
ModalTitle,
|
41
62
|
ButtonContainer,
|
42
|
-
|
63
|
+
TextContainer,
|
43
64
|
RCMainButton,
|
44
65
|
},
|
45
|
-
props:
|
66
|
+
props: {
|
67
|
+
isOpen: {
|
68
|
+
type: Boolean,
|
69
|
+
required: true,
|
70
|
+
},
|
71
|
+
buttonText: {
|
72
|
+
type: String,
|
73
|
+
default: 'Got it',
|
74
|
+
},
|
75
|
+
},
|
46
76
|
methods: {
|
47
77
|
closeModal() {
|
48
78
|
this.$emit('on-close')
|
@@ -0,0 +1,55 @@
|
|
1
|
+
/* eslint-disable */
|
2
|
+
import { mount } from '@vue/test-utils'
|
3
|
+
import InfoModal from '@/components/modals/infoModal'
|
4
|
+
import theme from '@/assets/theme'
|
5
|
+
|
6
|
+
jest.mock('@/components/icon/iconCache.mjs', () => ({
|
7
|
+
// need to mock this due to how jest handles import.meta
|
8
|
+
fetchIcon: jest.fn(() => Promise.resolve('')),
|
9
|
+
}))
|
10
|
+
|
11
|
+
|
12
|
+
describe('InfoModal Component', () => {
|
13
|
+
let wrapper
|
14
|
+
|
15
|
+
beforeEach(() => {
|
16
|
+
wrapper = mount(InfoModal, {
|
17
|
+
props: {
|
18
|
+
isOpen: true,
|
19
|
+
buttonText: 'Close',
|
20
|
+
},
|
21
|
+
slots: {
|
22
|
+
title: 'Sample title',
|
23
|
+
body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed tincidunt commodo mollis. Fusce urna felis, malesuada sed elementum et, fermentum ac massa. Integer in massa vel orci fermentum bibendum in ut ante. Donec risus risus, luctus quis ex a, pulvinar placerat lacus. Sed pharetra augue a elit volutpat, eu dignissim ex pretium. Aenean imperdiet, nulla in pharetra rutrum, mauris mauris tincidunt tellus, non tempus quam lorem laoreet lectus.',
|
24
|
+
},
|
25
|
+
global: {
|
26
|
+
provide: {
|
27
|
+
theme,
|
28
|
+
},
|
29
|
+
},
|
30
|
+
})
|
31
|
+
})
|
32
|
+
|
33
|
+
test('renders InfoModal component with default props', () => {
|
34
|
+
expect(wrapper.find('[data-test-id="infoModal"]').exists()).toBe(true)
|
35
|
+
|
36
|
+
expect(wrapper.vm.isOpen).toBe(true)
|
37
|
+
expect(wrapper.vm.buttonText).toContain('Close')
|
38
|
+
})
|
39
|
+
|
40
|
+
test('info modal slots is display when user passed slots content', () => {
|
41
|
+
const modalTitleEl = wrapper.find('[data-test-id="modal_title"]')
|
42
|
+
expect(modalTitleEl.text()).toBe('Sample title')
|
43
|
+
|
44
|
+
const modalBodyEl = wrapper.find('[data-test-id="modal_body"]')
|
45
|
+
expect(modalBodyEl.text()).toContain('Lorem ipsum dolor sit amet')
|
46
|
+
})
|
47
|
+
|
48
|
+
test('info modal on-close event is emitted when modal close button is clicked', async () => {
|
49
|
+
const modalCloseButton = wrapper.find('.close')
|
50
|
+
|
51
|
+
modalCloseButton.trigger('click')
|
52
|
+
await wrapper.vm.$nextTick()
|
53
|
+
expect(wrapper.emitted('on-close')).toBeTruthy()
|
54
|
+
})
|
55
|
+
})
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import InfoModal from './index.vue'
|
2
|
+
|
3
|
+
export default {
|
4
|
+
title: 'Components/InfoModal',
|
5
|
+
component: InfoModal,
|
6
|
+
tags: ['autodocs'],
|
7
|
+
parameters: {
|
8
|
+
layout: 'centered',
|
9
|
+
},
|
10
|
+
}
|
11
|
+
|
12
|
+
// import InfoModal from "@eturnity/eturnity_reusable_components/src/components/modals/infoModal"
|
13
|
+
// This is a reusable modal component that can be used to display information to the user.
|
14
|
+
// To use:
|
15
|
+
// <InfoModal :isOpen="isOpen" @on-close="$emit('on-close-summary')" >
|
16
|
+
// <template #title>
|
17
|
+
// <h1>Header</h1>
|
18
|
+
// </template>
|
19
|
+
// <template #body>
|
20
|
+
// <p>Body</p>
|
21
|
+
// </template>
|
22
|
+
// </InfoModal>
|
23
|
+
|
24
|
+
export const Default = {
|
25
|
+
args: {
|
26
|
+
isOpen: true,
|
27
|
+
buttonText: 'Close',
|
28
|
+
},
|
29
|
+
render: (args) => ({
|
30
|
+
components: { InfoModal },
|
31
|
+
setup() {
|
32
|
+
return { args }
|
33
|
+
},
|
34
|
+
template: `
|
35
|
+
<InfoModal v-bind="args">
|
36
|
+
<template #title>Sample title</template>
|
37
|
+
<template #body>
|
38
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed tincidunt commodo mollis. Fusce urna felis,
|
39
|
+
malesuada sed elementum et, fermentum ac massa. Integer in massa vel orci fermentum bibendum in ut ante.
|
40
|
+
Donec risus risus, luctus quis ex a, pulvinar placerat lacus. Sed pharetra augue a elit volutpat, eu dignissim
|
41
|
+
ex pretium. Aenean imperdiet, nulla in pharetra rutrum, mauris mauris tincidunt tellus, non tempus quam lorem
|
42
|
+
laoreet lectus.
|
43
|
+
</template>
|
44
|
+
</InfoModal>
|
45
|
+
`,
|
46
|
+
}),
|
47
|
+
}
|
@@ -1,8 +1,10 @@
|
|
1
1
|
<template>
|
2
2
|
<PageWrapper
|
3
3
|
v-if="isOpen"
|
4
|
+
ref="modalRef"
|
4
5
|
:add-padding-top="addPaddingTop"
|
5
6
|
:backdrop="backdrop"
|
7
|
+
class="rc-modal-wrapper"
|
6
8
|
:is-open="isOpen"
|
7
9
|
:position="position"
|
8
10
|
>
|
@@ -16,7 +18,11 @@
|
|
16
18
|
<ContentContainer v-if="!isLoading">
|
17
19
|
<slot></slot>
|
18
20
|
</ContentContainer>
|
19
|
-
<CloseButton
|
21
|
+
<CloseButton
|
22
|
+
v-if="!hideClose && !isLoading"
|
23
|
+
class="close"
|
24
|
+
@click="onCloseModal()"
|
25
|
+
/>
|
20
26
|
</ModalContainer>
|
21
27
|
</PageWrapper>
|
22
28
|
</template>
|
@@ -32,6 +38,7 @@
|
|
32
38
|
// <div>Data....</div>
|
33
39
|
// </modal>
|
34
40
|
|
41
|
+
import { ref, provide } from 'vue'
|
35
42
|
import styled from 'vue3-styled-components'
|
36
43
|
import CloseButton from '../../buttons/closeButton'
|
37
44
|
import Spinner from '../../spinner'
|
@@ -54,14 +61,14 @@
|
|
54
61
|
props.backdrop == 'dark'
|
55
62
|
? 'rgba(0, 0, 0, 0.4)'
|
56
63
|
: 'rgba(255, 255, 255, 0.9)'};
|
57
|
-
z-index:
|
64
|
+
z-index: 9999999;
|
58
65
|
overflow: auto;
|
59
66
|
padding-top: ${(props) => (props.addPaddingTop ? '80px' : '0')};
|
60
67
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
`
|
68
|
+
@media (max-width: 425px) {
|
69
|
+
background: white;
|
70
|
+
}
|
71
|
+
`
|
65
72
|
|
66
73
|
const modalContainerAttrs = { overflow: String, isLoading: Boolean }
|
67
74
|
const ModalContainer = styled('div', modalContainerAttrs)`
|
@@ -159,6 +166,14 @@
|
|
159
166
|
default: false,
|
160
167
|
},
|
161
168
|
},
|
169
|
+
setup() {
|
170
|
+
const modalRef = ref(null)
|
171
|
+
provide('modalRef', modalRef)
|
172
|
+
|
173
|
+
return {
|
174
|
+
modalRef,
|
175
|
+
}
|
176
|
+
},
|
162
177
|
watch: {
|
163
178
|
isOpen: {
|
164
179
|
immediate: true,
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<template>
|
2
2
|
<TitleWrap data-test-id="page_wrapper" :has-info-text="!!infoText">
|
3
3
|
<TitleText
|
4
|
-
data-test-id="page_title_text"
|
5
4
|
:color="color"
|
5
|
+
data-test-id="page_title_text"
|
6
6
|
:font-size="fontSize"
|
7
7
|
:uppercase="uppercase"
|
8
8
|
>
|
@@ -10,8 +10,8 @@
|
|
10
10
|
</TitleText>
|
11
11
|
<InfoText
|
12
12
|
v-if="!!infoText"
|
13
|
-
data-test-id="page_title_tooltip"
|
14
13
|
:align-arrow="infoAlign"
|
14
|
+
data-test-id="page_title_tooltip"
|
15
15
|
:text="infoText"
|
16
16
|
/>
|
17
17
|
</TitleWrap>
|
@@ -44,9 +44,8 @@
|
|
44
44
|
const titleAttrs = { color: String, fontSize: String, uppercase: Boolean }
|
45
45
|
const TitleText = styled('span', titleAttrs)`
|
46
46
|
color: ${(props) => (props.color ? props.color : props.theme.colors.black)};
|
47
|
-
font-weight:
|
47
|
+
font-weight: 500;
|
48
48
|
font-size: ${(props) => (props.fontSize ? props.fontSize : '20px')};
|
49
|
-
text-transform: ${(props) => (props.uppercase ? 'uppercase' : 'none')};
|
50
49
|
`
|
51
50
|
|
52
51
|
export default {
|