@omniumretail/component-library 1.2.65 → 1.2.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.css CHANGED
@@ -33,4 +33,4 @@
33
33
  :root{--color-grey: #e4e4e4;--color-grey-100: #E5E5E5}.SF5f_Q_Ggz_4JHUHS2Xa{display:flex;align-items:center;padding:13px 20px;box-sizing:border-box;height:72px}.SF5f_Q_Ggz_4JHUHS2Xa *{box-sizing:border-box}.gSVYvBn1sLbcMsGI32b9{display:flex;flex-grow:1;align-items:flex-end;justify-content:center;max-width:calc(100% - 60px)}.gSVYvBn1sLbcMsGI32b9 img{max-width:196px;max-height:50px}.gSVYvBn1sLbcMsGI32b9 .fVSt3bSZBcJGsOdA5nIN{font-weight:var(--font-weight-semibold);text-transform:uppercase;color:var(--color-black)}.BIBQmS_NwoMw2Ncq5yuN{cursor:pointer;padding:4px 4px 4px 0;font-size:20px;width:30px;display:flex;align-items:center;justify-content:center}.ZinSgUtysxITkbGRKdux{position:fixed;top:0;left:-100%;bottom:0;width:100%;max-width:430px;background-color:var(--color-white);padding-inline:15px;z-index:999;box-shadow:0 3px 12px rgba(0,0,0,.45);transition:.6s ease-out}.ZinSgUtysxITkbGRKdux.FW1pOdad0uN5LO9h5PgQ{left:0;transition:.3s ease-in}.ZfA8OEmbRzRsNqLAmdtn{background-color:rgba(0,0,0,.3);backdrop-filter:blur(1px);position:absolute;left:0;top:0;right:0;bottom:0;z-index:998;pointer-events:none;opacity:0;transition:.3s}.ZfA8OEmbRzRsNqLAmdtn.FW1pOdad0uN5LO9h5PgQ{opacity:1;pointer-events:all}.YKSQJmdRP_7tKwvQpeuV{width:calc(100% + 30px);margin-left:-15px;background-color:var(--color-orange);display:flex;align-items:center;justify-content:center}.ISssYC5Uz452JVWP0xDc img{max-width:160px;max-height:50px}.E6YZPpa60LxA7qqIW7jQ{position:absolute;top:23px;right:15px;font-size:25px;cursor:pointer;color:var(--color-white)}.YYp3pzktjEDEyW8knAZQ{overflow-y:auto;height:calc(100% - 51px);margin:0;padding:0}.u7k2VQ30AQDk6mKA22GX{height:60px;padding:10px;display:flex;align-items:center;border-bottom:1px solid var(--color-black);cursor:pointer;transition:.3s;text-transform:uppercase;width:100%}.u7k2VQ30AQDk6mKA22GX:hover{background-color:var(--color-grey);color:var(--color-black)}.QQoDB9XPcAK18l2DIym4{list-style:none}.QQoDB9XPcAK18l2DIym4.wrXCksst57UpQuCNgGkN{height:auto;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding-bottom:0}.QQoDB9XPcAK18l2DIym4.wrXCksst57UpQuCNgGkN>.u7k2VQ30AQDk6mKA22GX{position:relative}.QQoDB9XPcAK18l2DIym4.wrXCksst57UpQuCNgGkN>.u7k2VQ30AQDk6mKA22GX .NytmT59TmaWHc4FLM2wa{position:absolute;width:60px;height:100%;background:var(--color-black);right:0;display:flex;align-items:center;justify-content:center}.QQoDB9XPcAK18l2DIym4.wrXCksst57UpQuCNgGkN>.u7k2VQ30AQDk6mKA22GX .NytmT59TmaWHc4FLM2wa:hover{background-color:var(--color-orange)}.QQoDB9XPcAK18l2DIym4.wrXCksst57UpQuCNgGkN>.u7k2VQ30AQDk6mKA22GX .zo7CFksIKx7Fahu4e4S_{color:var(--color-white)}.QQoDB9XPcAK18l2DIym4.wrXCksst57UpQuCNgGkN.yk4DnBgiUlzk23Yg_q6E{background:var(--color-grey)}.QQoDB9XPcAK18l2DIym4.wrXCksst57UpQuCNgGkN.yk4DnBgiUlzk23Yg_q6E .NytmT59TmaWHc4FLM2wa{background-color:var(--color-orange)}.QQoDB9XPcAK18l2DIym4.wrXCksst57UpQuCNgGkN.yk4DnBgiUlzk23Yg_q6E .uLgjMU9sbvfaa0qKEguP{height:auto;opacity:1}.uLgjMU9sbvfaa0qKEguP{padding:0;width:100%;margin:0;background-color:var(--color-orange);color:var(--color-white);height:0;opacity:0;overflow:hidden;transition:height .3s ease,opacity .3s ease}.uLgjMU9sbvfaa0qKEguP .u7k2VQ30AQDk6mKA22GX{min-height:60px;height:auto;padding-inline:40px}.efnjUnudkE0UTVQ6wrgH{cursor:pointer}.u7k2VQ30AQDk6mKA22GX .fjNRYZMP1O0pTvBDBB3L span{margin-left:8px;transform:translateY(-2px);display:inline-block;font-size:var(--font-size-body-3);text-transform:capitalize}
34
34
  .muC1BdCbIEMIs70EtJoA{position:fixed}@media(max-width: 768px){.muC1BdCbIEMIs70EtJoA{position:absolute;top:0 !important;left:0 !important;right:0 !important;width:100% !important}}.msELhnfhfo6un3c4Spoc{max-height:calc(100vh - 70px);padding:0 !important;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.15)}@media(max-width: 768px){.msELhnfhfo6un3c4Spoc{max-width:100vw;border-radius:0}}@media(min-width: 768px){.msELhnfhfo6un3c4Spoc{max-width:500px;max-height:calc(100vh - 100px);transform:translate(25%);margin-block-end:20px;margin-bottom:20px !important}}@media(max-width: 768px){.oGsIq0O_Hzwg2mLR72la{position:absolute}}.KSVguXBQ_A1SUSR6e8Wq{overflow-y:auto;max-height:calc(100vh - 200px)}@media(max-width: 768px){.KSVguXBQ_A1SUSR6e8Wq{max-height:calc(100vh - 120px)}}.GeNg2HVTmhQDmsLLTpWj{display:flex;flex-direction:column;align-items:unset !important;padding:10px;border-bottom:1px solid #f0f0f0;background-color:#fff !important;cursor:pointer}.GeNg2HVTmhQDmsLLTpWj:hover{background-color:#f9f9f9}@media(max-width: 768px){.GeNg2HVTmhQDmsLLTpWj{padding:8px}}.GBb48KXbGnQtAY8xqmUp{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background-color:#f5f5f5;border-bottom:1px solid #e8e8e8}.LoCH7sYpmK3VgRASqTgz{font-size:20px;cursor:pointer;color:#595959;padding:4px;border-radius:4px}.LoCH7sYpmK3VgRASqTgz:hover{background-color:#e8e8e8}.Xjs10kZPSsD_BVFomnIe{color:#ff674c;margin-right:8px}.oibCayv_cOyhyWCKzHSr{display:flex;align-items:center;gap:10px}.oibCayv_cOyhyWCKzHSr span{font-size:14px;font-weight:500;color:#595959}.hhwYXSd0CR75D8ETnUML{display:flex;align-items:center;position:relative;padding-left:12px;width:100%}@media(max-width: 768px){.hhwYXSd0CR75D8ETnUML{padding-left:8px}}.LkP1cqeAyAYI9rCurnE8{position:absolute;left:0;top:50%;transform:translateY(-50%);font-size:16px}@media(max-width: 768px){.LkP1cqeAyAYI9rCurnE8{font-size:12px}}.u_jT9kmq2kyThRlj8HT1{width:50px;height:50px;margin-left:10px;margin-right:10px;flex-shrink:0}@media(max-width: 768px){.u_jT9kmq2kyThRlj8HT1{width:40px;height:40px;margin-left:8px;margin-right:8px}}.ieGdf5FTgLUPcfuZi7Xz{flex:1;overflow:hidden;min-width:0}.QgZ3oHW9IRTexL8xWVqP{font-weight:bold;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%}@media(max-width: 768px){.QgZ3oHW9IRTexL8xWVqP{font-size:12px}}.JwfbSOSIRAz5OO2hiSFc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%;font-size:12px;color:#666;margin-top:2px}@media(max-width: 768px){.JwfbSOSIRAz5OO2hiSFc{font-size:10px}}.XfXQBYqMfZc4p8s2Mhla{width:6px;height:6px;background-color:#1890ff;border-radius:50%;margin-left:10px;flex-shrink:0}@media(max-width: 768px){.XfXQBYqMfZc4p8s2Mhla{width:4px;height:4px;margin-left:8px}}.RGXTlVxCxbZpD6__J5_g .ant-badge-count{font-size:12px !important;min-width:16px !important;height:16px !important;line-height:16px !important;transform:translate(40%, -50%) !important}.rWa5cnbZQLDtxFxJU6qA{font-size:26px;cursor:pointer;color:#0033a0}@media(min-width: 767px){.rWa5cnbZQLDtxFxJU6qA{color:var(--color-grey-light)}}.Pus_rAoqX05D4Qz2pYxo{animation:Pus_rAoqX05D4Qz2pYxo 1s ease-in-out infinite}@keyframes Pus_rAoqX05D4Qz2pYxo{0%{transform:rotate(0deg)}25%{transform:rotate(10deg)}50%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}100%{transform:rotate(0deg)}}
35
35
  .rUOcBpTPxrzfRw36v939{display:flex;align-items:center;width:100%;margin:16px 0;box-sizing:border-box}.rUOcBpTPxrzfRw36v939 .ant-descriptions{width:calc(100vw - 24px)}.rUOcBpTPxrzfRw36v939 .ant-descriptions-item-label{max-width:140px !important;padding:8px 16px !important;color:var(--color-blue) !important;font-weight:700 !important;font-size:12px !important}.rUOcBpTPxrzfRw36v939 .ant-descriptions-item-content{padding:8px 16px !important;font-size:12px !important}.cyz9pmVdkD7z1n7QUlfu{width:100vw !important;max-width:100vw !important;padding:0px 12px}.PQ794lq3KZF_sigL5bbI{overflow:hidden !important}.PQ794lq3KZF_sigL5bbI .ant-modal .ant-modal-body{overflow-y:auto;overflow-x:hidden;max-height:80vh}.PQ794lq3KZF_sigL5bbI .ant-modal .ant-modal-content{padding:20px 12px !important}.PQ794lq3KZF_sigL5bbI .ant-modal-header{text-align:center !important}.PQ794lq3KZF_sigL5bbI .ant-modal-close{color:var(--button-default-background-hover-color)}.b23UIWngPXOEh5FC2mcC{display:flex;justify-content:center}.b23UIWngPXOEh5FC2mcC.DEfmwZ5CmWvodIcPVgfo{justify-content:space-between}.lIEwxxVD_vq2cGux3ehI{color:var(--button-default-background);font-size:26px}.ckRiBia09XQRtMVbNqvy{color:#c7cac9;pointer-events:none}
36
- .TRyfXWNBGEHsogA6eGN_{display:flex;justify-content:space-between;align-items:center;position:fixed;bottom:0px;width:100%;height:70px;padding:0 10px;box-sizing:border-box;z-index:10;padding-bottom:2px;background-color:#fff}.TRyfXWNBGEHsogA6eGN_::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background-color:#e5e7eb;width:100%}@media(min-width: 767px){.TRyfXWNBGEHsogA6eGN_{background-color:var(--color-black) !important;padding-bottom:0px}}.TRyfXWNBGEHsogA6eGN_ .wJU9Lx1mlSJ82yM1uy5i{display:flex;justify-content:space-between;width:100%}@media(min-width: 767px){.TRyfXWNBGEHsogA6eGN_ .wJU9Lx1mlSJ82yM1uy5i{width:fit-content;gap:100px}}.TRyfXWNBGEHsogA6eGN_ .X3NLcQLxnunLpbrTQW8h{font-size:var(--font-size-body-1);color:var(--color-grey-light)}.TRyfXWNBGEHsogA6eGN_ .wkmxxKMcpmBG8oshX8yW{width:100%;margin-bottom:4px}.TRyfXWNBGEHsogA6eGN_ .TCBuRot8X1MeAAQ9p9SW{margin-left:8px}.TRyfXWNBGEHsogA6eGN_ .X6xkdc8XoFcYrQWq3hB7,.TRyfXWNBGEHsogA6eGN_ .TCBuRot8X1MeAAQ9p9SW{display:inline-block}.TRyfXWNBGEHsogA6eGN_ .u7LoVIvRXqdjsXffoRjw{height:25px;width:100px;align-self:flex-end}.TRyfXWNBGEHsogA6eGN_ .EqVJkSj9Vem7EVpPIYW_{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1}@media(min-width: 767px){.TRyfXWNBGEHsogA6eGN_ .EqVJkSj9Vem7EVpPIYW_{flex-direction:row;gap:12px;flex:unset}}.TRyfXWNBGEHsogA6eGN_ .EqVJkSj9Vem7EVpPIYW_ .YA6MXmjAZZwtbSZYmcEw{font-size:26px;color:#0033a0;cursor:pointer}@media(min-width: 767px){.TRyfXWNBGEHsogA6eGN_ .EqVJkSj9Vem7EVpPIYW_ .YA6MXmjAZZwtbSZYmcEw{color:var(--color-grey-light)}}.TRyfXWNBGEHsogA6eGN_ .EqVJkSj9Vem7EVpPIYW_ .C4jdW5oFYxdgldUsYeMg{font-size:12px;margin-top:4px;color:#0033a0}@media(min-width: 767px){.TRyfXWNBGEHsogA6eGN_ .EqVJkSj9Vem7EVpPIYW_ .C4jdW5oFYxdgldUsYeMg{color:var(--color-grey-light)}}.TRyfXWNBGEHsogA6eGN_ .FiQHpDUl90uFjStr9OAg{display:flex;justify-content:center;flex:1}@media(min-width: 767px){.TRyfXWNBGEHsogA6eGN_ .FiQHpDUl90uFjStr9OAg{flex:unset}}.TRyfXWNBGEHsogA6eGN_ .FiQHpDUl90uFjStr9OAg .iFeWqTLSjbpgaVFy6shj{display:flex;justify-content:center;align-items:center;width:50px;height:50px;background-color:#0033a0;border-radius:8px;cursor:pointer}@media(min-width: 767px){.TRyfXWNBGEHsogA6eGN_ .FiQHpDUl90uFjStr9OAg .iFeWqTLSjbpgaVFy6shj{background-color:var(--color-grey-light)}}.TRyfXWNBGEHsogA6eGN_ .FiQHpDUl90uFjStr9OAg .iFeWqTLSjbpgaVFy6shj .wbWHzMmDsgEQ056VQENK{font-size:20px;color:#fff}@media(min-width: 767px){.TRyfXWNBGEHsogA6eGN_ .FiQHpDUl90uFjStr9OAg .iFeWqTLSjbpgaVFy6shj .wbWHzMmDsgEQ056VQENK{color:#2c2d2e}}.TRyfXWNBGEHsogA6eGN_ .pPyAGD44QA4U6r5_xMLN{position:relative}.ziO_hsrPyI74unWMlZKA{opacity:.5;cursor:not-allowed !important;pointer-events:none}.MGvcBnUleTUDOtqafxZd{transform:rotate(45deg);transition:transform .3s ease}.m5JXPA_4FcCHUN17ucxY{position:absolute;bottom:70px;width:180px;left:50%;transform:translateX(-52%);display:flex;flex-direction:column;align-items:center;gap:12px;z-index:999}@media(min-width: 767px){.m5JXPA_4FcCHUN17ucxY{transform:translateX(-67%)}}.Rtyw1XuncdBWZdUEV1qj{display:flex;align-items:center;background-color:#fff;padding:8px 16px;border-radius:20px;box-shadow:0 4px 12px rgba(0,51,160,.5);cursor:pointer;transition:all .2s ease;animation:g8HDTZ2GSb3rGEQ5ICmJ .3s cubic-bezier(0.34, 1.56, 0.64, 1)}.Rtyw1XuncdBWZdUEV1qj:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.12)}@keyframes g8HDTZ2GSb3rGEQ5ICmJ{from{opacity:0;transform:scale(0.8) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.ZVQGcR7lZkCRgAxqbZt1{width:28px;height:28px;border-radius:50%;background-color:#f3f4f6;display:flex;align-items:center;justify-content:center;margin-right:10px;color:#4b5563}.c87nj1oXjBwCQjx_Jq7T{font-size:14px;font-weight:500;color:#374151}
36
+ .TRyfXWNBGEHsogA6eGN_{display:flex;justify-content:space-between;align-items:center;position:fixed;bottom:0px;width:100%;height:70px;padding:0 10px;box-sizing:border-box;z-index:10;padding-bottom:2px;background-color:#fff}.TRyfXWNBGEHsogA6eGN_::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background-color:#e5e7eb;width:100%}@media(min-width: 767px){.TRyfXWNBGEHsogA6eGN_{background-color:var(--color-black) !important;padding-bottom:0px}}.TRyfXWNBGEHsogA6eGN_ .wJU9Lx1mlSJ82yM1uy5i{display:flex;justify-content:space-between;width:100%}@media(min-width: 767px){.TRyfXWNBGEHsogA6eGN_ .wJU9Lx1mlSJ82yM1uy5i{width:fit-content;gap:100px}}.TRyfXWNBGEHsogA6eGN_ .X3NLcQLxnunLpbrTQW8h{font-size:var(--font-size-body-1);color:var(--color-grey-light)}.TRyfXWNBGEHsogA6eGN_ .wkmxxKMcpmBG8oshX8yW{width:100%;margin-bottom:4px}.TRyfXWNBGEHsogA6eGN_ .TCBuRot8X1MeAAQ9p9SW{margin-left:8px}.TRyfXWNBGEHsogA6eGN_ .X6xkdc8XoFcYrQWq3hB7,.TRyfXWNBGEHsogA6eGN_ .TCBuRot8X1MeAAQ9p9SW{display:inline-block}.TRyfXWNBGEHsogA6eGN_ .u7LoVIvRXqdjsXffoRjw{height:25px;width:100px;align-self:flex-end}.TRyfXWNBGEHsogA6eGN_ .EqVJkSj9Vem7EVpPIYW_{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1}@media(min-width: 767px){.TRyfXWNBGEHsogA6eGN_ .EqVJkSj9Vem7EVpPIYW_{flex-direction:row;gap:12px;flex:unset}}.TRyfXWNBGEHsogA6eGN_ .EqVJkSj9Vem7EVpPIYW_ .YA6MXmjAZZwtbSZYmcEw{font-size:26px;color:#0033a0;cursor:pointer}@media(min-width: 767px){.TRyfXWNBGEHsogA6eGN_ .EqVJkSj9Vem7EVpPIYW_ .YA6MXmjAZZwtbSZYmcEw{color:var(--color-grey-light)}}.TRyfXWNBGEHsogA6eGN_ .EqVJkSj9Vem7EVpPIYW_ .C4jdW5oFYxdgldUsYeMg{font-size:12px;margin-top:4px;color:#0033a0}@media(min-width: 767px){.TRyfXWNBGEHsogA6eGN_ .EqVJkSj9Vem7EVpPIYW_ .C4jdW5oFYxdgldUsYeMg{color:var(--color-grey-light)}}.TRyfXWNBGEHsogA6eGN_ .FiQHpDUl90uFjStr9OAg{display:flex;justify-content:center;flex:1}@media(min-width: 767px){.TRyfXWNBGEHsogA6eGN_ .FiQHpDUl90uFjStr9OAg{flex:unset}}.TRyfXWNBGEHsogA6eGN_ .FiQHpDUl90uFjStr9OAg .iFeWqTLSjbpgaVFy6shj{display:flex;justify-content:center;align-items:center;width:50px;height:50px;background-color:#0033a0;border-radius:8px;cursor:pointer}@media(min-width: 767px){.TRyfXWNBGEHsogA6eGN_ .FiQHpDUl90uFjStr9OAg .iFeWqTLSjbpgaVFy6shj{background-color:var(--color-grey-light)}}.TRyfXWNBGEHsogA6eGN_ .FiQHpDUl90uFjStr9OAg .iFeWqTLSjbpgaVFy6shj .wbWHzMmDsgEQ056VQENK{font-size:20px;color:#fff}@media(min-width: 767px){.TRyfXWNBGEHsogA6eGN_ .FiQHpDUl90uFjStr9OAg .iFeWqTLSjbpgaVFy6shj .wbWHzMmDsgEQ056VQENK{color:#2c2d2e}}.TRyfXWNBGEHsogA6eGN_ .pPyAGD44QA4U6r5_xMLN{position:relative}.ziO_hsrPyI74unWMlZKA{opacity:.5;cursor:not-allowed !important;pointer-events:none}.MGvcBnUleTUDOtqafxZd{transform:rotate(45deg);transition:transform .3s ease}.m5JXPA_4FcCHUN17ucxY{position:absolute;bottom:70px;width:250px;left:50%;transform:translateX(-52%);display:flex;flex-direction:column;align-items:center;gap:12px;z-index:999}@media(min-width: 767px){.m5JXPA_4FcCHUN17ucxY{transform:translateX(-67%)}}.Rtyw1XuncdBWZdUEV1qj{display:flex;align-items:center;background-color:#fff;padding:8px 16px;border-radius:20px;box-shadow:0 4px 12px rgba(0,51,160,.5);cursor:pointer;transition:all .2s ease;animation:g8HDTZ2GSb3rGEQ5ICmJ .3s cubic-bezier(0.34, 1.56, 0.64, 1)}.Rtyw1XuncdBWZdUEV1qj:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,51,160,.25);background-color:#f8fafc}.Rtyw1XuncdBWZdUEV1qj:active{transform:translateY(0)}.Rtyw1XuncdBWZdUEV1qj.ziO_hsrPyI74unWMlZKA:hover{transform:none;box-shadow:0 4px 12px rgba(0,51,160,.15);background-color:#fff}.ZVQGcR7lZkCRgAxqbZt1{width:28px;height:28px;border-radius:50%;background-color:#f3f4f6;display:flex;align-items:center;justify-content:center;margin-right:10px;color:#4b5563}.Rtyw1XuncdBWZdUEV1qj:hover .ZVQGcR7lZkCRgAxqbZt1{transform:scale(1.1)}.c87nj1oXjBwCQjx_Jq7T{font-size:14px;font-weight:500;color:#374151}.Rtyw1XuncdBWZdUEV1qj:hover .c87nj1oXjBwCQjx_Jq7T{color:#1f2937}.A8DnxsntIvtsgZYP0onw{display:flex;align-items:center;background:linear-gradient(135deg, #0033a0 0%, #0052cc 100%);color:#fff;padding:0px 2px;border-radius:25px;cursor:pointer;transition:all .2s ease;animation:kr_UbmCwuyzGen4k0VLT .3s cubic-bezier(0.34, 1.56, 0.64, 1);box-shadow:0 4px 12px rgba(0,51,160,.3);width:20px;justify-content:center;margin-bottom:8px}.A8DnxsntIvtsgZYP0onw:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,51,160,.4)}.A8DnxsntIvtsgZYP0onw .nXYCMY7_50YjdBZrUJ9Z{width:30px;height:30px;display:flex;align-items:center;justify-content:center;font-size:32px}.dwOlCZ6A1Brhln1W7iK0{color:#9ca3af;font-size:12px;margin-left:4px}.Rtyw1XuncdBWZdUEV1qj:hover .dwOlCZ6A1Brhln1W7iK0{color:#0033a0;transform:translateX(2px)}@keyframes g8HDTZ2GSb3rGEQ5ICmJ{from{opacity:0;transform:scale(0.8) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes kr_UbmCwuyzGen4k0VLT{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
@@ -3,3 +3,4 @@ import { Footer2Props } from '.';
3
3
  declare const _default: Meta<import("@storybook/react").Args>;
4
4
  export default _default;
5
5
  export declare const Primary: Story<Footer2Props>;
6
+ export declare const WithoutSubmenus: Story<Footer2Props>;
@@ -1,10 +1,18 @@
1
1
  import React from 'react';
2
+ interface SubAction {
3
+ key: string;
4
+ label: string;
5
+ icon: React.ReactNode;
6
+ onClick: () => void;
7
+ disabled?: boolean;
8
+ }
2
9
  interface Action {
3
10
  key: string;
4
11
  label: string;
5
12
  icon: React.ReactNode;
6
13
  onClick?: () => void;
7
14
  disabled?: boolean;
15
+ subItems?: SubAction[];
8
16
  }
9
17
  interface Criticality {
10
18
  Id: string;
@@ -31,8 +39,9 @@ export declare enum ActionType {
31
39
  }
32
40
  export interface ActionConfig {
33
41
  type: ActionType | string;
34
- onClick: () => void;
42
+ onClick?: () => void;
35
43
  disabled?: boolean;
44
+ subItems?: SubAction[];
36
45
  }
37
46
  export interface Footer2Props {
38
47
  onBackClick?: () => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omniumretail/component-library",
3
- "version": "1.2.65",
3
+ "version": "1.2.67",
4
4
  "private": false,
5
5
  "main": "dist/bundle.js",
6
6
  "typings": "./dist/types/index",
@@ -2,6 +2,14 @@ import { Meta, Story } from "@storybook/react";
2
2
  import { Footer2, Footer2Props, ActionType } from '.';
3
3
  import {
4
4
  SettingOutlined,
5
+ FileTextOutlined,
6
+ TableOutlined,
7
+ FilePdfOutlined,
8
+ PrinterOutlined,
9
+ EyeOutlined,
10
+ UserOutlined,
11
+ FileOutlined,
12
+ BarChartOutlined,
5
13
  } from '@ant-design/icons';
6
14
 
7
15
  export default {
@@ -40,175 +48,137 @@ const notifications = [
40
48
  },
41
49
  "IsRead": true
42
50
  },
43
- {
44
- "Id": "0419654F-66FE-41EA-BBA4-D8BB6E3D6B33",
45
- "Title": "Creation of an Evaluation Cycle",
46
- "Description": "A new evaluation cycle was created. You must answer it.",
47
- "RedirectURL": "https://www.google.pt",
48
- "Icon": "https://omniumfont.s3.eu-west-1.amazonaws.com/Assets/images/aacp-image.png",
49
- "ExpirationDate": 1736899200,
50
- "Criticality": {
51
- "Id": "F133ED4C-6C72-4CDC-86A1-27A76E6BDE7F",
52
- "Name": "High",
53
- "ColorHex": "#E05151"
54
- },
55
- "IsRead": true
56
- },
57
- {
58
- "Id": "CC98EDA1-0461-4D08-982E-8424EF4AFB3B",
59
- "Title": "Creation of an Evaluation Cycle",
60
- "Description": "A new evaluation cycle was created. You must answer it.",
61
- "RedirectURL": "https://www.google.pt",
62
- "Icon": "https://omniumfont.s3.eu-west-1.amazonaws.com/Assets/images/aacp-image.png",
63
- "ExpirationDate": 1736899200,
64
- "Criticality": {
65
- "Id": "F133ED4C-6C72-4CDC-86A1-27A76E6BDE7F",
66
- "Name": "High",
67
- "ColorHex": "#E05151"
68
- },
69
- "IsRead": false
70
- },
71
- {
72
- "Id": "3DB9310A-4BF8-4B90-8D5A-7583473664BB",
73
- "Title": "Creation of an Evaluation Cycle",
74
- "Description": "A new evaluation cycle was created. You must answer it.",
75
- "RedirectURL": "https://www.google.pt",
76
- "Icon": "https://omniumfont.s3.eu-west-1.amazonaws.com/Assets/images/aacp-image.png",
77
- "ExpirationDate": 1736899200,
78
- "Criticality": {
79
- "Id": "F133ED4C-6C72-4CDC-86A1-27A76E6BDE7F",
80
- "Name": "High",
81
- "ColorHex": "#E05151"
82
- },
83
- "IsRead": false
84
- },
85
- {
86
- "Id": "D6FB93EE-3255-42B2-8EC1-27E7AC3F5249",
87
- "Title": "Creation of a new user",
88
- "Description": "A new user was created in the platform with the mecanographic number 8111.",
89
- "RedirectURL": "https://www.google.pt",
90
- "Icon": "https://omnium-user-images.s3.eu-west-1.amazonaws.com/omniumretail-bigwingame-logotipo-vermelho.svg",
91
- "ExpirationDate": 1736985600,
92
- "Criticality": {
93
- "Id": "F133ED4C-6C72-4CDC-86A1-27A76E6BDE7F",
94
- "Name": "High",
95
- "ColorHex": "#E05151"
96
- },
97
- "IsRead": false
98
- },
99
- {
100
- "Id": "D6FB96EE-3255-42B2-8EC1-27E7AC3F5249",
101
- "Title": "Creation of a new action of inspection",
102
- "Description": "A new inspection action was created.",
103
- "RedirectURL": "https://www.google.pt",
104
- "Icon": "https://omnium-user-images.s3.eu-west-1.amazonaws.com/omniumretail-bigwingame-logotipo-vermelho.svg",
105
- "ExpirationDate": 1736985600,
106
- "Criticality": {
107
- "Id": "F133ED4C-6C72-4CDC-86A1-27A76E6BDE7F",
108
- "Name": "High",
109
- "ColorHex": "#E05151"
110
- },
111
- "IsRead": false
112
- },
113
- {
114
- "Id": "D6FB96EE-3655-42B2-8EC1-27E7AC3F5249",
115
- "Title": "Creation of a new action of inspection",
116
- "Description": "A new inspection action was created.",
117
- "RedirectURL": "https://www.google.pt",
118
- "Icon": "https://omnium-user-images.s3.eu-west-1.amazonaws.com/omniumretail-bigwingame-logotipo-vermelho.svg",
119
- "ExpirationDate": 1736985600,
120
- "Criticality": {
121
- "Id": "F133ED4C-6C72-4CDC-86A1-27A76E6BDE7F",
122
- "Name": "Low",
123
- "ColorHex": "#E05151"
124
- },
125
- "IsRead": false
126
- },
127
- {
128
- "Id": "D6FB96EE-3255-46B2-8EC1-27E7AC3F5249",
129
- "Title": "Creation of a new action of inspection",
130
- "Description": "A new inspection action was created.",
131
- "RedirectURL": "https://www.google.pt",
132
- "Icon": "https://omnium-user-images.s3.eu-west-1.amazonaws.com/omniumretail-bigwingame-logotipo-vermelho.svg",
133
- "ExpirationDate": 1736985600,
134
- "Criticality": {
135
- "Id": "F133ED4C-6C72-4CDC-86A1-27A76E6BDE7F",
136
- "Name": "High",
137
- "ColorHex": "#E05151"
138
- },
139
- "IsRead": false
140
- },
141
- {
142
- "Id": "D9FB96EE-3255-42B2-8EC1-27E7AC3F5249",
143
- "Title": "Creation of a new action of inspection",
144
- "Description": "A new inspection action was created.",
145
- "RedirectURL": "https://www.google.pt",
146
- "Icon": "https://omnium-user-images.s3.eu-west-1.amazonaws.com/omniumretail-bigwingame-logotipo-vermelho.svg",
147
- "ExpirationDate": 1736985600,
148
- "Criticality": {
149
- "Id": "F133ED4C-6C72-4CDC-86A1-27A76E6BDE7F",
150
- "Name": "High",
151
- "ColorHex": "#E05151"
152
- },
153
- "IsRead": false
154
- },
155
- {
156
- "Id": "D6FB96EE-5955-42B2-8EC1-27E7AC3F5249",
157
- "Title": "Creation of a new action of inspection",
158
- "Description": "A new inspection action was created.",
159
- "RedirectURL": "https://www.google.pt",
160
- "Icon": "https://omnium-user-images.s3.eu-west-1.amazonaws.com/omniumretail-bigwingame-logotipo-vermelho.svg",
161
- "ExpirationDate": 1736985600,
162
- "Criticality": {
163
- "Id": "F133ED4C-6C72-4CDC-86A1-27A76E6BDE7F",
164
- "Name": "High",
165
- "ColorHex": "#E05151"
166
- },
167
- "IsRead": false
168
- },
169
- {
170
- "Id": "D6FB96EE-3255-42B7-8EC1-27E7AC3F5249",
171
- "Title": "Creation of a new action of inspection",
172
- "Description": "A new inspection action was created.",
173
- "RedirectURL": "https://www.google.pt",
174
- "Icon": "https://omnium-user-images.s3.eu-west-1.amazonaws.com/omniumretail-bigwingame-logotipo-vermelho.svg",
175
- "ExpirationDate": 1736985600,
176
- "Criticality": {
177
- "Id": "F133ED4C-6C72-4CDC-86A1-27A76E6BDE7F",
178
- "Name": "High",
179
- "ColorHex": "#E05151"
180
- },
181
- "IsRead": false
182
- }
183
51
  ];
184
52
 
185
- const actions = [
53
+ const customActions = [
186
54
  {
187
- key: 'rederecionar',
55
+ key: 'definicoes',
188
56
  label: 'Definições',
189
57
  icon: <SettingOutlined />,
190
58
  onClick: () => console.log('Definições'),
191
59
  disabled: true
60
+ },
61
+ {
62
+ key: 'relatorios',
63
+ label: 'Relatórios Relatórios',
64
+ icon: <BarChartOutlined />,
65
+ subItems: [
66
+ {
67
+ key: 'relatorio-mensal',
68
+ label: 'Relatório Mensal',
69
+ icon: <FileTextOutlined />,
70
+ onClick: () => console.log('Relatório Mensal')
71
+ },
72
+ {
73
+ key: 'relatorio-anual',
74
+ label: 'Relatório Anual',
75
+ icon: <FileTextOutlined />,
76
+ onClick: () => console.log('Relatório Anual')
77
+ }
78
+ ]
192
79
  }
193
80
  ];
194
81
 
82
+ // Ações padrão com submenus
195
83
  const handleCreate = () => console.log('Criar novo item');
196
84
  const handleEdit = () => console.log('Editar item');
197
85
  const handleDelete = () => console.log('Excluir item');
198
86
  const handleExport = () => console.log('Exportar item');
199
87
 
200
88
  const actions2 = [
201
- { type: ActionType.CREATE, onClick: handleCreate },
202
- { type: ActionType.EDIT, onClick: handleEdit, disabled: true },
203
- { type: ActionType.DELETE, onClick: handleDelete },
204
- { type: ActionType.EXPORT, onClick: handleExport }
205
- ];
89
+ {
90
+ type: ActionType.CREATE,
91
+ subItems: [
92
+ {
93
+ key: 'create-user',
94
+ label: 'Criar Usuário',
95
+ icon: <UserOutlined />,
96
+ onClick: () => console.log('Criar Usuário')
97
+ },
98
+ {
99
+ key: 'create-document',
100
+ label: 'Criar Documento',
101
+ icon: <FileOutlined />,
102
+ onClick: () => console.log('Criar Documento')
103
+ }
104
+ ]
105
+ },
106
+ {
107
+ type: ActionType.EDIT,
108
+ onClick: handleEdit,
109
+ disabled: true
110
+ },
111
+ {
112
+ type: ActionType.DELETE,
113
+ onClick: handleDelete
114
+ },
115
+ {
116
+ type: ActionType.EXPORT,
117
+ subItems: [
118
+ {
119
+ key: 'export-pdf',
120
+ label: 'Exportar PDF',
121
+ icon: <FilePdfOutlined />,
122
+ onClick: () => console.log('Exportar PDF')
123
+ },
124
+ {
125
+ key: 'export-excel',
126
+ label: 'Exportar Excel',
127
+ icon: <TableOutlined />,
128
+ onClick: () => console.log('Exportar Excel')
129
+ }
130
+ ]
131
+ },
132
+ {
133
+ type: ActionType.PRINT,
134
+ subItems: [
135
+ {
136
+ key: 'print-preview',
137
+ label: 'Visualizar',
138
+ icon: <EyeOutlined />,
139
+ onClick: () => console.log('Visualizar Impressão')
140
+ },
141
+ {
142
+ key: 'print-direct',
143
+ label: 'Imprimir',
144
+ icon: <PrinterOutlined />,
145
+ onClick: () => console.log('Imprimir Diretamente')
146
+ }
147
+ ]
148
+ }
149
+ ];
206
150
 
207
151
  export const Primary = Template.bind({});
208
152
  Primary.args = {
209
153
  notifications: notifications,
210
- customActions: actions,
154
+ customActions: customActions,
211
155
  actions: actions2,
212
156
  disableBackButton: true,
213
157
  companyName: 'omnium',
158
+ footerName: 'Minha Aplicação',
159
+ onBackClick: () => console.log('Voltar'),
160
+ onFilterChange: (filter) => console.log('Filtro:', filter),
161
+ onNotificationClick: (id, url) => console.log('Notificação:', id, url),
162
+ handleMarkAllAsRead: () => console.log('Marcar todas como lidas'),
214
163
  };
164
+
165
+ export const WithoutSubmenus = Template.bind({});
166
+ WithoutSubmenus.args = {
167
+ notifications: notifications,
168
+ customActions: [
169
+ {
170
+ key: 'definicoes',
171
+ label: 'Definições',
172
+ icon: <SettingOutlined />,
173
+ onClick: () => console.log('Definições')
174
+ }
175
+ ],
176
+ actions: [
177
+ { type: ActionType.CREATE, onClick: handleCreate },
178
+ { type: ActionType.EDIT, onClick: handleEdit },
179
+ { type: ActionType.DELETE, onClick: handleDelete }
180
+ ],
181
+ disableBackButton: false,
182
+ companyName: 'omnium',
183
+ footerName: 'Sem Submenus',
184
+ };
@@ -7,19 +7,30 @@ import {
7
7
  ReloadOutlined,
8
8
  EditOutlined,
9
9
  ExportOutlined,
10
- PrinterOutlined
10
+ PrinterOutlined,
11
+ RightOutlined,
12
+ LeftCircleOutlined
11
13
  } from '@ant-design/icons';
12
14
  import moment from 'moment';
13
15
  import React, { useEffect, useRef, useState } from 'react';
14
16
  import { useTranslation } from 'react-i18next';
15
17
  import { getCompanyLogos } from '../../constants/logoCompanyHelper';
16
18
 
19
+ interface SubAction {
20
+ key: string;
21
+ label: string;
22
+ icon: React.ReactNode;
23
+ onClick: () => void;
24
+ disabled?: boolean;
25
+ }
26
+
17
27
  interface Action {
18
28
  key: string;
19
29
  label: string;
20
30
  icon: React.ReactNode;
21
31
  onClick?: () => void;
22
32
  disabled?: boolean;
33
+ subItems?: SubAction[];
23
34
  }
24
35
 
25
36
  interface Criticality {
@@ -51,8 +62,9 @@ export enum ActionType {
51
62
 
52
63
  export interface ActionConfig {
53
64
  type: ActionType | string;
54
- onClick: () => void;
65
+ onClick?: () => void;
55
66
  disabled?: boolean;
67
+ subItems?: SubAction[];
56
68
  }
57
69
 
58
70
  export interface Footer2Props {
@@ -86,6 +98,7 @@ export const Footer2 = (props: Footer2Props) => {
86
98
 
87
99
  const [date, setDate] = useState(moment());
88
100
  const [isMenuOpen, setIsMenuOpen] = useState(false);
101
+ const [currentSubmenu, setCurrentSubmenu] = useState<string | null>(null);
89
102
  const menuRef = useRef<HTMLDivElement>(null);
90
103
  const [isMobile, setIsMobile] = useState(window.innerWidth < 768);
91
104
  const { t } = useTranslation();
@@ -138,7 +151,8 @@ export const Footer2 = (props: Footer2Props) => {
138
151
  label: defaultProps.label,
139
152
  icon: defaultProps.icon,
140
153
  onClick: actionConfig.onClick,
141
- disabled: actionConfig.disabled || false
154
+ disabled: actionConfig.disabled || false,
155
+ subItems: actionConfig.subItems
142
156
  };
143
157
  });
144
158
 
@@ -152,9 +166,36 @@ export const Footer2 = (props: Footer2Props) => {
152
166
  const allActions = getAllActions();
153
167
 
154
168
  const toggleMenu = () => {
169
+ if (isMenuOpen) {
170
+ setCurrentSubmenu(null);
171
+ }
155
172
  setIsMenuOpen(!isMenuOpen);
156
173
  };
157
174
 
175
+ const handleActionClick = (action: Action) => {
176
+ if (action.subItems && action.subItems.length > 0) {
177
+ setCurrentSubmenu(action.key);
178
+ } else {
179
+ if (action.onClick && !action.disabled) {
180
+ action.onClick();
181
+ setIsMenuOpen(false);
182
+ setCurrentSubmenu(null);
183
+ }
184
+ }
185
+ };
186
+
187
+ const handleBackToMain = () => {
188
+ setCurrentSubmenu(null);
189
+ };
190
+
191
+ const handleSubActionClick = (subAction: SubAction) => {
192
+ if (subAction.onClick && !subAction.disabled) {
193
+ subAction.onClick();
194
+ setIsMenuOpen(false);
195
+ setCurrentSubmenu(null);
196
+ }
197
+ };
198
+
158
199
  // Handle click outside to close menu
159
200
  useEffect(() => {
160
201
  const handleClickOutside = (event: MouseEvent) => {
@@ -165,6 +206,7 @@ export const Footer2 = (props: Footer2Props) => {
165
206
  !(event.target as Element).closest(`.${styles.addButton}`)
166
207
  ) {
167
208
  setIsMenuOpen(false);
209
+ setCurrentSubmenu(null);
168
210
  }
169
211
  };
170
212
 
@@ -177,6 +219,16 @@ export const Footer2 = (props: Footer2Props) => {
177
219
 
178
220
  const plusIconClass = isMenuOpen ? `${styles.addIcon} ${styles.rotateIcon}` : styles.addIcon;
179
221
 
222
+ const getCurrentActions = () => {
223
+ if (currentSubmenu) {
224
+ const parentAction = allActions.find(action => action.key === currentSubmenu);
225
+ return parentAction?.subItems || [];
226
+ }
227
+ return allActions;
228
+ };
229
+
230
+ const currentActions = getCurrentActions();
231
+
180
232
  return (
181
233
  <div className={`${styles.footer}`}>
182
234
  {!isMobile &&
@@ -204,15 +256,27 @@ export const Footer2 = (props: Footer2Props) => {
204
256
  </div>
205
257
 
206
258
  {isMenuOpen && (
207
- <div className={styles.circularMenu} ref={menuRef}>
208
- {allActions?.map((action) => (
259
+ <div className={`${styles.circularMenu}`} ref={menuRef}>
260
+ {currentSubmenu && (
261
+
262
+ <div
263
+ className={styles.backButton}
264
+ onClick={handleBackToMain}
265
+ >
266
+ <LeftCircleOutlined className={styles.backIcon} />
267
+ </div>
268
+ )}
269
+ {/* {currentSubmenu && <LeftCircleOutlined className={styles.backIcon} onClick={handleBackToMain} />} */}
270
+
271
+ {currentActions.map((action, index) => (
209
272
  <div
210
273
  key={action.key}
211
274
  className={`${styles.circleMenuItem} ${action.disabled ? styles.disabled : ''}`}
212
275
  onClick={() => {
213
- if (action.onClick && !action.disabled) {
214
- action.onClick();
215
- setIsMenuOpen(false);
276
+ if (currentSubmenu) {
277
+ handleSubActionClick(action as SubAction);
278
+ } else {
279
+ handleActionClick(action as Action);
216
280
  }
217
281
  }}
218
282
  >
@@ -220,7 +284,15 @@ export const Footer2 = (props: Footer2Props) => {
220
284
  {action.icon}
221
285
  </div>
222
286
 
223
- <div className={styles.circleMenuLabel}>{action.label}</div>
287
+ <div className={styles.circleMenuLabel}>
288
+ {action.label}
289
+ </div>
290
+
291
+ {!currentSubmenu && (action as Action).subItems && (action as Action).subItems!.length > 0 && (
292
+ <div className={styles.submenuIndicator}>
293
+ <RightOutlined />
294
+ </div>
295
+ )}
224
296
  </div>
225
297
  ))}
226
298
  </div>