@megafon/ui-core 7.3.0 → 7.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/components/Search/Search.css +1 -1
- package/dist/es/components/Search/Search.d.ts +15 -2
- package/dist/es/components/Search/Search.js +173 -23
- package/dist/es/components/Search/i/textarea-resizer.svg +4 -0
- package/dist/lib/components/Search/Search.css +1 -1
- package/dist/lib/components/Search/Search.d.ts +15 -2
- package/dist/lib/components/Search/Search.js +174 -24
- package/dist/lib/components/Search/i/textarea-resizer.svg +4 -0
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
h1,h2,h3,h4,h5{margin:0}@-webkit-keyframes listAppear{0%{opacity:0;-webkit-transform:translateY(-25px);transform:translateY(-25px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes listAppear{0%{opacity:0;-webkit-transform:translateY(-25px);transform:translateY(-25px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.mfui-search{-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--content);font-family:inherit;font-size:15px;line-height:24px;min-height:40px;position:relative;z-index:auto}.mfui-search__require-mark{color:var(--fury);font-size:20px;line-height:0;margin-left:1px}.mfui-search__control{border:1px solid;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;outline:none;position:relative;-webkit-transition:border-color .3s;transition:border-color .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;z-index:1}.mfui-search__field_labeled::-webkit-input-placeholder{color:var(--spbSky3);opacity:0;-webkit-transition:opacity .2s;transition:opacity .2s}.mfui-search__field_labeled::-moz-placeholder{color:var(--spbSky3);opacity:0;-moz-transition:opacity .2s;transition:opacity .2s}.mfui-search__field_labeled:-ms-input-placeholder{color:var(--spbSky3);opacity:0;-ms-transition:opacity .2s;transition:opacity .2s}.mfui-search__field_labeled::-ms-input-placeholder{color:var(--spbSky3);opacity:0;-ms-transition:opacity .2s;transition:opacity .2s}.mfui-search__field_labeled::placeholder{color:var(--spbSky3);opacity:0;-webkit-transition:opacity .2s;transition:opacity .2s}.mfui-search__field:focus::-webkit-input-placeholder{opacity:1}.mfui-search__field:focus::-moz-placeholder{opacity:1}.mfui-search__field:focus:-ms-input-placeholder{opacity:1}.mfui-search__field:focus::-ms-input-placeholder{opacity:1}.mfui-search__field:focus::placeholder{opacity:1}.mfui-search__field{display:block;position:relative;z-index:1;-webkit-box-flex:1;-ms-flex-positive:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;box-sizing:border-box;caret-color:var(--brandGreen);color:var(--content);cursor:text;flex-grow:1;font-family:inherit;font-size:100%;height:100%;line-height:25px;opacity:1;outline:none;overflow:auto;padding:0;width:100%}@media screen and (max-width:767px){.mfui-search__field{width:90%}}.mfui-search__label{color:var(--spbSky3);display:block;font-family:inherit;font-size:15px;line-height:24px;overflow:auto;pointer-events:none;position:absolute;-webkit-transition-duration:.2s,.01s;transition-duration:.2s,.01s;z-index:1}.mfui-search__list{background-color:var(--base);border-radius:12px;-webkit-box-shadow:0 4px 12px rgba(0,0,0,.08);box-shadow:0 4px 12px rgba(0,0,0,.08);display:none;left:-1px;position:absolute;right:-1px;top:calc(100% + 1px);z-index:0}.mfui-search__clear,.mfui-search__submit-button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;background-color:transparent;border:none;cursor:pointer;height:100%;justify-content:center;padding:0;text-align:center}.mfui-search__list-inner{-webkit-box-sizing:border-box;box-sizing:border-box;max-height:368px;overflow-y:auto;padding:16px}.mfui-search__list-item{background-color:var(--base);border-radius:16px;cursor:pointer;font-family:inherit;padding-bottom:12px;padding-top:12px}.mfui-search__list-item_paddings_large{padding-left:32px;padding-right:32px}.mfui-search__list-item_paddings_small{padding-left:12px;padding-right:12px}.mfui-search__popular-item{background-color:var(--base);border-radius:16px;cursor:pointer;min-height:48px;padding-left:12px;padding-right:16px;text-decoration:none}.mfui-search__popular-icon,.mfui-search__popular-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.mfui-search__popular-icon{-ms-flex-negative:0;flex-shrink:0;-webkit-box-pack:center;-ms-flex-pack:center;height:32px;justify-content:center;margin-right:16px;width:32px}.mfui-search__list-item_active,.mfui-search__popular-item_active{background-color:var(--spbSky0)}.mfui-search__item-title,.mfui-search__popular-item-title{position:relative;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;overflow:hidden;white-space:nowrap}.mfui-search__item-title:after,.mfui-search__popular-item-title:after{background:var(--base);bottom:0;content:"";-webkit-mask-image:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(var(--base)));-webkit-mask-image:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--base) 100%);mask-image:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(var(--spbSky0)));mask-image:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--spbSky0) 100%);position:absolute;right:0;top:0;width:40px}.mfui-search__list-item_active .mfui-search__item-title:after,.mfui-search__popular-item_active .mfui-search__popular-item-title:after{background:var(--spbSky0);-webkit-mask-image:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(var(--spbSky0)));-webkit-mask-image:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--spbSky0) 100%);mask-image:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(var(--spbSky0)));mask-image:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--spbSky0) 100%)}.mfui-search__highlighted-fragment{font-weight:700}.mfui-search__notice{font-size:12px;line-height:16px;margin-top:4px}.mfui-search__notice_error{color:var(--fury)}.mfui-search__notice_success{color:var(--brandGreen)}.mfui-search__icons{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%}.mfui-search__list_not-found{cursor:default}.mfui-search__not-found-text{background-color:var(--base);color:var(--spbSky3);font-family:inherit;padding:12px 32px}.mfui-search__not-found-text_show-popular{border-bottom:1px solid var(--spbSky2);padding:0 0 16px}.mfui-search__popular-title{padding-bottom:8px;padding-top:16px}.mfui-search_open{z-index:12}.mfui-search_open .mfui-search__list{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-name:listAppear;animation-name:listAppear;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;display:block}.mfui-search_type_textfield .mfui-search__control{background-color:var(--base);border-color:var(--spbSky2);border-radius:12px;height:60px;padding:0 16px}.mfui-search_type_textfield .mfui-search__control:hover{border-color:var(--content)}.mfui-search_type_textfield .mfui-search__label{top:17px}.mfui-search_type_textfield .mfui-search__field:focus+.mfui-search__label,.mfui-search_type_textfield .mfui-search__field_filled+.mfui-search__label{-webkit-transform:scale(.8) translate(-12.5%,-75%);transform:scale(.8) translate(-12.5%,-75%)}.mfui-search_type_textfield .mfui-search__field_labeled{padding-top:22px}.mfui-search_type_textfield .mfui-search__submit-icon{height:32px;width:32px;fill:var(--content)}.mfui-search_type_textfield.mfui-search_disabled .mfui-search__control{background-color:var(--spbSky1);border-color:var(--spbSky1)}.mfui-search_type_textfield.mfui-search_disabled .mfui-search__submit-icon{opacity:.5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mfui-search_type_compact .mfui-search__control{background-color:var(--spbSky0);border-color:var(--spbSky0);border-radius:24px;height:40px;padding:0 12px;-webkit-transition:background-color,border-color .3s;transition:background-color,border-color .3s}.mfui-search_type_compact .mfui-search__control:hover{background-color:var(--spbSky1)}.mfui-search_type_compact .mfui-search__field{height:100%;padding:8px 0 8px 12px}.mfui-search_type_compact .mfui-search__label{left:44px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.mfui-search_type_compact .mfui-search__field:focus+.mfui-search__label,.mfui-search_type_compact .mfui-search__field_filled+.mfui-search__label{opacity:0}.mfui-search_type_compact .mfui-search__submit-icon{height:20px;width:20px;fill:var(--spbSky3)}.mfui-search_type_compact .mfui-search__clear{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;background-color:transparent;border:none;cursor:pointer;height:24px;justify-content:center;margin-left:12px;padding:0;width:24px}.mfui-search_type_compact .mfui-search__clear-icon{height:24px;width:24px;fill:var(--spbSky3)}.mfui-search_type_compact .mfui-search__clear-icon:hover{fill:var(--content)}.mfui-search_type_compact .mfui-search__clear-icon:active{fill:var(--buttonDown)}.mfui-search_type_compact.mfui-search_open .mfui-search__control{background-color:var(--spbSky1)}.mfui-search_type_compact.mfui-search_open .mfui-search__submit-icon{fill:var(--content)}.mfui-search_disabled .mfui-search__control{cursor:default;pointer-events:none}.mfui-search_disabled .mfui-search__submit-icon{opacity:.5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mfui-search_error .mfui-search__control{border-color:var(--fury)}.mfui-search_success .mfui-search__control{border-color:var(--brandGreen)}
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}@-webkit-keyframes listAppear{0%{opacity:0;-webkit-transform:translateY(-25px);transform:translateY(-25px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes listAppear{0%{opacity:0;-webkit-transform:translateY(-25px);transform:translateY(-25px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.mfui-search{-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--content);font-family:inherit;font-size:15px;line-height:24px;min-height:40px;position:relative;z-index:auto}.mfui-search__require-mark{color:var(--fury);font-size:20px;line-height:0;margin-left:1px}.mfui-search__control{border:1px solid;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;outline:none;position:relative;-webkit-transition:border-color .3s;transition:border-color .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;z-index:1}.mfui-search__field_labeled::-webkit-input-placeholder{color:var(--spbSky3);opacity:0;-webkit-transition:opacity .2s;transition:opacity .2s}.mfui-search__field_labeled::-moz-placeholder{color:var(--spbSky3);opacity:0;-moz-transition:opacity .2s;transition:opacity .2s}.mfui-search__field_labeled:-ms-input-placeholder{color:var(--spbSky3);opacity:0;-ms-transition:opacity .2s;transition:opacity .2s}.mfui-search__field_labeled::-ms-input-placeholder{color:var(--spbSky3);opacity:0;-ms-transition:opacity .2s;transition:opacity .2s}.mfui-search__field_labeled::placeholder{color:var(--spbSky3);opacity:0;-webkit-transition:opacity .2s;transition:opacity .2s}.mfui-search__field:focus::-webkit-input-placeholder{opacity:1}.mfui-search__field:focus::-moz-placeholder{opacity:1}.mfui-search__field:focus:-ms-input-placeholder{opacity:1}.mfui-search__field:focus::-ms-input-placeholder{opacity:1}.mfui-search__field:focus::placeholder{opacity:1}.mfui-search__field{display:block;position:relative;z-index:1;-webkit-box-flex:1;-ms-flex-positive:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;box-sizing:border-box;caret-color:var(--brandGreen);color:var(--content);cursor:text;flex-grow:1;font-family:inherit;font-size:100%;height:100%;line-height:24px;opacity:1;outline:none;overflow:auto;padding:0;resize:none;width:100%}@media screen and (max-width:767px){.mfui-search__field{width:90%}}.mfui-search__label{color:var(--spbSky3);display:block;font-family:inherit;font-size:15px;line-height:24px;overflow:auto;pointer-events:none;position:absolute;-webkit-transition:scale .5s,top .01s,-webkit-transform .5s;transition:scale .5s,top .01s,-webkit-transform .5s;transition:transform .5s,scale .5s,top .01s;transition:transform .5s,scale .5s,top .01s,-webkit-transform .5s;z-index:1}.mfui-search__list{background-color:var(--base);border-radius:12px;-webkit-box-shadow:0 4px 12px rgba(0,0,0,.08);box-shadow:0 4px 12px rgba(0,0,0,.08);display:none;left:-1px;position:absolute;right:-1px;top:calc(100% + 1px);z-index:0}.mfui-search__clear,.mfui-search__submit-button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;background-color:transparent;border:none;cursor:pointer;height:100%;justify-content:center;padding:0;text-align:center}.mfui-search__list-inner{-webkit-box-sizing:border-box;box-sizing:border-box;max-height:368px;overflow-y:auto;padding:16px}.mfui-search__list-item{background-color:var(--base);border-radius:16px;cursor:pointer;font-family:inherit;padding-bottom:12px;padding-top:12px}.mfui-search__list-item_paddings_large{padding-left:32px;padding-right:32px}.mfui-search__list-item_paddings_small{padding-left:12px;padding-right:12px}.mfui-search__popular-item{background-color:var(--base);border-radius:16px;cursor:pointer;min-height:48px;padding-left:12px;padding-right:16px;text-decoration:none}.mfui-search__popular-icon,.mfui-search__popular-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.mfui-search__popular-icon{-ms-flex-negative:0;flex-shrink:0;-webkit-box-pack:center;-ms-flex-pack:center;height:32px;justify-content:center;margin-right:16px;width:32px}.mfui-search__list-item_active,.mfui-search__popular-item_active{background-color:var(--spbSky0)}.mfui-search__item-title,.mfui-search__popular-item-title{position:relative;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;overflow:hidden;white-space:nowrap}.mfui-search__item-title:after,.mfui-search__popular-item-title:after{background:var(--base);bottom:0;content:"";-webkit-mask-image:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(var(--base)));-webkit-mask-image:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--base) 100%);mask-image:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(var(--spbSky0)));mask-image:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--spbSky0) 100%);position:absolute;right:0;top:0;width:40px}.mfui-search__list-item_active .mfui-search__item-title:after,.mfui-search__popular-item_active .mfui-search__popular-item-title:after{background:var(--spbSky0);-webkit-mask-image:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(var(--spbSky0)));-webkit-mask-image:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--spbSky0) 100%);mask-image:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(var(--spbSky0)));mask-image:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--spbSky0) 100%)}.mfui-search__highlighted-fragment{font-weight:700}.mfui-search__notice{font-size:12px;line-height:16px;margin-top:4px}.mfui-search__notice_error{color:var(--fury)}.mfui-search__notice_success{color:var(--brandGreen)}.mfui-search__icons{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%}.mfui-search__list_not-found{cursor:default}.mfui-search__not-found-text{background-color:var(--base);color:var(--spbSky3);font-family:inherit;padding:12px 32px}.mfui-search__not-found-text_show-popular{border-bottom:1px solid var(--spbSky2);padding:0 0 16px}.mfui-search__popular-title{padding-bottom:8px;padding-top:16px}.mfui-search_open{z-index:12}.mfui-search_open .mfui-search__list{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-name:listAppear;animation-name:listAppear;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;display:block}.mfui-search_type_textfield .mfui-search__control{background-color:var(--base);border-color:var(--spbSky2);border-radius:12px;height:60px;padding:0 16px}.mfui-search_type_textfield .mfui-search__control:hover,.mfui-search_type_textfield .mfui-search__control_focused{border-color:var(--content)}.mfui-search_type_textfield .mfui-search__label{top:17px}.mfui-search_type_textfield .mfui-search__field:focus+.mfui-search__label,.mfui-search_type_textfield .mfui-search__field_filled+.mfui-search__label{-webkit-transform:scale(.8) translate(-12.5%,-75%);transform:scale(.8) translate(-12.5%,-75%);-webkit-transition:scale .2s,top .01s,-webkit-transform .2s;transition:scale .2s,top .01s,-webkit-transform .2s;transition:transform .2s,scale .2s,top .01s;transition:transform .2s,scale .2s,top .01s,-webkit-transform .2s}.mfui-search_type_textfield .mfui-search__field_labeled{padding-bottom:9px;padding-top:25px}.mfui-search_type_textfield .mfui-search__submit-icon{height:32px;width:32px;fill:var(--content)}.mfui-search_textarea .mfui-search__control{height:auto;min-height:60px}.mfui-search_textarea .mfui-search__field{-webkit-box-sizing:content-box;box-sizing:content-box;max-height:204px;padding-bottom:9px;padding-top:17px;scrollbar-color:var(--spbSky2) transparent;scrollbar-width:thin}.mfui-search_textarea .mfui-search__field_labeled{padding-bottom:9px;padding-top:25px}.mfui-search_textarea .mfui-search__icons{height:58px;margin-left:8px}.mfui-search_textarea .mfui-search__field_resized{-webkit-transition:height .1s;transition:height .1s;will-change:height}.mfui-search__textarea-wrapper{position:relative;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;overflow:hidden;width:100%}.mfui-search_type_textfield.mfui-search_disabled .mfui-search__control{background-color:var(--spbSky1);border-color:var(--spbSky1)}.mfui-search_type_textfield.mfui-search_disabled .mfui-search__submit-icon{opacity:.5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mfui-search_type_compact .mfui-search__control{background-color:var(--spbSky0);border-color:var(--spbSky0);border-radius:24px;height:40px;padding:0 12px;-webkit-transition:background-color,border-color .3s;transition:background-color,border-color .3s}.mfui-search_type_compact .mfui-search__control:hover{background-color:var(--spbSky1)}.mfui-search_type_compact .mfui-search__field{height:100%;padding:8px 0 8px 12px}.mfui-search_type_compact .mfui-search__label{left:44px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.mfui-search_type_compact .mfui-search__field:focus+.mfui-search__label,.mfui-search_type_compact .mfui-search__field_filled+.mfui-search__label{opacity:0}.mfui-search_type_compact .mfui-search__submit-icon{height:20px;width:20px;fill:var(--spbSky3)}.mfui-search_type_compact .mfui-search__clear{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;background-color:transparent;border:none;cursor:pointer;height:24px;justify-content:center;margin-left:12px;padding:0;width:24px}.mfui-search_type_compact .mfui-search__clear-icon{height:24px;width:24px;fill:var(--spbSky3)}.mfui-search_type_compact .mfui-search__clear-icon:hover{fill:var(--content)}.mfui-search_type_compact .mfui-search__clear-icon:active{fill:var(--buttonDown)}.mfui-search_type_compact.mfui-search_open .mfui-search__control{background-color:var(--spbSky1)}.mfui-search_type_compact.mfui-search_open .mfui-search__submit-icon{fill:var(--content)}.mfui-search_disabled .mfui-search__control{cursor:default;pointer-events:none}.mfui-search_disabled .mfui-search__submit-icon{opacity:.5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mfui-search_error .mfui-search__control{border-color:var(--fury)}.mfui-search_success .mfui-search__control{border-color:var(--brandGreen)}.mfui-search__resizer{bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;position:absolute;right:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-sizing:content-box;box-sizing:content-box;cursor:ns-resize;height:12px;justify-content:center;padding:4px;width:12px}.mfui-search__resizer svg{-webkit-transition:stroke .3s;transition:stroke .3s;stroke:var(--spbSky2)}.mfui-search__resizer:active svg,.mfui-search__resizer:hover svg{stroke:var(--spbSky3)}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import './Search.scss';
|
|
3
|
+
export declare const MinTextareaHeight: {
|
|
4
|
+
readonly ONE_ROW: 24;
|
|
5
|
+
readonly THREE_ROWS: number;
|
|
6
|
+
};
|
|
7
|
+
type MinTextareaHeightType = (typeof MinTextareaHeight)[keyof typeof MinTextareaHeight];
|
|
3
8
|
export declare const Verification: {
|
|
4
9
|
readonly VALID: "valid";
|
|
5
10
|
readonly ERROR: "error";
|
|
@@ -39,11 +44,14 @@ export interface ISearchProps {
|
|
|
39
44
|
notice?: Record<string, string>;
|
|
40
45
|
popularItem?: Record<string, string>;
|
|
41
46
|
clearButton?: Record<string, string>;
|
|
47
|
+
resizer?: Record<string, string>;
|
|
42
48
|
};
|
|
43
49
|
/** Значение */
|
|
44
50
|
value?: string;
|
|
45
51
|
/** Вид отображения */
|
|
46
52
|
type?: 'textfield' | 'compact';
|
|
53
|
+
/** Включить режим textarea */
|
|
54
|
+
textarea?: boolean;
|
|
47
55
|
/** Заголовок поля */
|
|
48
56
|
label?: string;
|
|
49
57
|
/** HTML идентификатор поля поиска */
|
|
@@ -77,6 +85,7 @@ export interface ISearchProps {
|
|
|
77
85
|
textNotFound?: string;
|
|
78
86
|
popularTitle?: string;
|
|
79
87
|
popularItem?: string;
|
|
88
|
+
resizer?: string;
|
|
80
89
|
};
|
|
81
90
|
/** Отображение загрузки */
|
|
82
91
|
showLoader?: boolean;
|
|
@@ -90,14 +99,18 @@ export interface ISearchProps {
|
|
|
90
99
|
popularTitle?: string;
|
|
91
100
|
/** Ссылка на элемент списка с результатами */
|
|
92
101
|
listRef?: React.Ref<HTMLDivElement>;
|
|
102
|
+
/** Минимальная высота textarea, px */
|
|
103
|
+
minTextareaHeight?: MinTextareaHeightType;
|
|
104
|
+
/** Показать хендлер для ресайза текстового поля */
|
|
105
|
+
showResizer?: boolean;
|
|
93
106
|
/** Обработчик изменения поля */
|
|
94
107
|
onChange?: (value: string) => void;
|
|
95
108
|
/** Обработчик нажатия на enter */
|
|
96
109
|
onSubmit?: (value: string) => void;
|
|
97
110
|
/** Обработчик выхода из фокуса */
|
|
98
|
-
onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;
|
|
111
|
+
onBlur?: (e: React.FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
|
|
99
112
|
/** Обработчик входа в фокус */
|
|
100
|
-
onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;
|
|
113
|
+
onFocus?: (e: React.FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
|
|
101
114
|
/** Обработчик нажатия на популярный элемент */
|
|
102
115
|
onPopularItemClick?: (popularItemValue?: string) => void;
|
|
103
116
|
}
|
|
@@ -2,6 +2,7 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
|
2
2
|
import _extends from "@babel/runtime/helpers/extends";
|
|
3
3
|
import "core-js/modules/es.array.map.js";
|
|
4
4
|
import "core-js/modules/es.array.slice.js";
|
|
5
|
+
import "core-js/modules/es.parse-float.js";
|
|
5
6
|
import "core-js/modules/es.regexp.constructor.js";
|
|
6
7
|
import "core-js/modules/es.regexp.exec.js";
|
|
7
8
|
import "core-js/modules/es.regexp.sticky.js";
|
|
@@ -11,6 +12,8 @@ import "core-js/modules/es.string.split.js";
|
|
|
11
12
|
import * as React from 'react';
|
|
12
13
|
import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
|
13
14
|
import debounce from 'lodash.debounce';
|
|
15
|
+
import throttle from 'lodash.throttle';
|
|
16
|
+
import throttleTime from "../../constants/throttleTime";
|
|
14
17
|
import Caption from "../Caption/Caption";
|
|
15
18
|
import Header from "../Header/Header";
|
|
16
19
|
import Preloader from "../Preloader/Preloader";
|
|
@@ -37,8 +40,25 @@ var ClearIcon = function ClearIcon(props) {
|
|
|
37
40
|
d: "M10 8.8L6.2 5 5 6.2 8.8 10 5 13.8 6.2 15l3.8-3.8 3.8 3.8 1.2-1.2-3.8-3.8L15 6.2 13.8 5 10 8.8z"
|
|
38
41
|
}));
|
|
39
42
|
};
|
|
43
|
+
var ResizeIcon = function ResizeIcon(props) {
|
|
44
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
45
|
+
width: 12,
|
|
46
|
+
height: 12
|
|
47
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
48
|
+
d: "M1 11L11 1M7 11l4-4"
|
|
49
|
+
}));
|
|
50
|
+
};
|
|
51
|
+
var DEFAULT_ROW_COUNT = 3;
|
|
52
|
+
var MAX_ROW_COUNT = 6;
|
|
53
|
+
var TEXTAREA_ROW_HEIGHT = 24;
|
|
54
|
+
var TEXTAREA_MAX_HEIGHT = TEXTAREA_ROW_HEIGHT * MAX_ROW_COUNT;
|
|
55
|
+
var DEFAULT_LABEL_TOP_POSITION = 16;
|
|
40
56
|
var SEARCH_QUERY_REGEX = /[^A-Z-a-zА-ЯЁа-яё0-9]/g;
|
|
41
57
|
var MAX_POPULAR_ITEMS_LENGTH = 5;
|
|
58
|
+
export var MinTextareaHeight = {
|
|
59
|
+
ONE_ROW: TEXTAREA_ROW_HEIGHT,
|
|
60
|
+
THREE_ROWS: TEXTAREA_ROW_HEIGHT * DEFAULT_ROW_COUNT
|
|
61
|
+
};
|
|
42
62
|
export var Verification = {
|
|
43
63
|
VALID: 'valid',
|
|
44
64
|
ERROR: 'error'
|
|
@@ -69,6 +89,7 @@ var Search = function Search(_ref) {
|
|
|
69
89
|
classes = _ref.classes,
|
|
70
90
|
_ref$type = _ref.type,
|
|
71
91
|
type = _ref$type === void 0 ? 'textfield' : _ref$type,
|
|
92
|
+
textarea = _ref.textarea,
|
|
72
93
|
showLoader = _ref.showLoader,
|
|
73
94
|
showNotFound = _ref.showNotFound,
|
|
74
95
|
textNotFound = _ref.textNotFound,
|
|
@@ -76,6 +97,9 @@ var Search = function Search(_ref) {
|
|
|
76
97
|
popularItems = _ref$popularItems === void 0 ? [] : _ref$popularItems,
|
|
77
98
|
popularTitle = _ref.popularTitle,
|
|
78
99
|
listRef = _ref.listRef,
|
|
100
|
+
_ref$minTextareaHeigh = _ref.minTextareaHeight,
|
|
101
|
+
minTextareaHeight = _ref$minTextareaHeigh === void 0 ? MinTextareaHeight.ONE_ROW : _ref$minTextareaHeigh,
|
|
102
|
+
showResizer = _ref.showResizer,
|
|
79
103
|
onChange = _ref.onChange,
|
|
80
104
|
onSubmit = _ref.onSubmit,
|
|
81
105
|
onBlur = _ref.onBlur,
|
|
@@ -97,19 +121,57 @@ var Search = function Search(_ref) {
|
|
|
97
121
|
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
98
122
|
popularActiveIndex = _React$useState8[0],
|
|
99
123
|
setPopularActiveIndex = _React$useState8[1];
|
|
124
|
+
var _React$useState9 = React.useState(TEXTAREA_ROW_HEIGHT),
|
|
125
|
+
_React$useState10 = _slicedToArray(_React$useState9, 2),
|
|
126
|
+
textareaHeight = _React$useState10[0],
|
|
127
|
+
setTextareaHeight = _React$useState10[1];
|
|
128
|
+
var _React$useState11 = React.useState(false),
|
|
129
|
+
_React$useState12 = _slicedToArray(_React$useState11, 2),
|
|
130
|
+
isTextareaResizing = _React$useState12[0],
|
|
131
|
+
setIsTextareaResizing = _React$useState12[1];
|
|
132
|
+
var _React$useState13 = React.useState(false),
|
|
133
|
+
_React$useState14 = _slicedToArray(_React$useState13, 2),
|
|
134
|
+
isTextareaResized = _React$useState14[0],
|
|
135
|
+
setIsTextareaResized = _React$useState14[1];
|
|
100
136
|
var debouncedOnChange = React.useRef(debounce(function (inputValue) {
|
|
101
137
|
return onChange && onChange(inputValue);
|
|
102
138
|
}, changeDelay));
|
|
103
139
|
var highlightedItem = React.useRef(null);
|
|
104
|
-
var
|
|
140
|
+
var containerRef = React.useRef(null);
|
|
141
|
+
var fieldRef = React.useRef(null);
|
|
142
|
+
var labelRef = React.useRef(null);
|
|
143
|
+
var resizerRef = React.useRef(null);
|
|
105
144
|
var correctPopularItems = React.useMemo(function () {
|
|
106
145
|
return popularItems.slice(0, MAX_POPULAR_ITEMS_LENGTH);
|
|
107
146
|
}, [popularItems]);
|
|
108
147
|
var isCompact = type === 'compact';
|
|
148
|
+
var isTextarea = textarea && !isCompact;
|
|
109
149
|
var showClearIcon = isCompact && !!searchQuery;
|
|
110
150
|
var showTextFieldSubmit = !hideIcon && !isCompact && !showLoader;
|
|
111
151
|
var showAdditionalElement = !hideIcon || showLoader || showClearIcon;
|
|
112
152
|
var showPopularItems = !!correctPopularItems.length;
|
|
153
|
+
var getFieldRef = function getFieldRef(node) {
|
|
154
|
+
if (!node) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
fieldRef.current = node;
|
|
158
|
+
};
|
|
159
|
+
var textareaResize = React.useCallback(function () {
|
|
160
|
+
if (!isTextarea || !fieldRef.current || !containerRef.current || isTextareaResized) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
fieldRef.current.style.height = "".concat(minTextareaHeight, "px");
|
|
164
|
+
var scrollHeight = fieldRef.current.scrollHeight;
|
|
165
|
+
var _window$getComputedSt = window.getComputedStyle(fieldRef.current),
|
|
166
|
+
paddingTop = _window$getComputedSt.paddingTop,
|
|
167
|
+
paddingBottom = _window$getComputedSt.paddingBottom;
|
|
168
|
+
var innerHeight = scrollHeight - parseFloat(paddingTop) - parseFloat(paddingBottom);
|
|
169
|
+
if (innerHeight >= TEXTAREA_MAX_HEIGHT) {
|
|
170
|
+
fieldRef.current.style.height = "".concat(TEXTAREA_MAX_HEIGHT, "px");
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
fieldRef.current.style.height = "".concat(innerHeight, "px");
|
|
174
|
+
}, [isTextareaResized, minTextareaHeight, isTextarea]);
|
|
113
175
|
var handleChange = React.useCallback(function (e) {
|
|
114
176
|
var _e$target$value = e.target.value,
|
|
115
177
|
inputValue = _e$target$value === void 0 ? '' : _e$target$value;
|
|
@@ -122,7 +184,8 @@ var Search = function Search(_ref) {
|
|
|
122
184
|
// @ts-ignore
|
|
123
185
|
debouncedOnChange.current(inputValue);
|
|
124
186
|
}
|
|
125
|
-
|
|
187
|
+
textareaResize();
|
|
188
|
+
}, [changeDelay, onChange, textareaResize]);
|
|
126
189
|
var handleHoverItem = React.useCallback(function (index) {
|
|
127
190
|
return function () {
|
|
128
191
|
setActiveIndex(index);
|
|
@@ -170,7 +233,7 @@ var Search = function Search(_ref) {
|
|
|
170
233
|
var handlePopularItemMouseUp = React.useCallback(function () {
|
|
171
234
|
var _a;
|
|
172
235
|
var chosenValue = popularItems[popularActiveIndex].title;
|
|
173
|
-
(_a =
|
|
236
|
+
(_a = fieldRef === null || fieldRef === void 0 ? void 0 : fieldRef.current) === null || _a === void 0 ? void 0 : _a.blur();
|
|
174
237
|
onPopularItemClick === null || onPopularItemClick === void 0 ? void 0 : onPopularItemClick(chosenValue);
|
|
175
238
|
}, [onPopularItemClick, popularActiveIndex, popularItems]);
|
|
176
239
|
var handleKeyDownPopularItems = React.useCallback(function (e) {
|
|
@@ -192,6 +255,7 @@ var Search = function Search(_ref) {
|
|
|
192
255
|
{
|
|
193
256
|
var currentHref = (_a = popularItems[popularActiveIndex]) === null || _a === void 0 ? void 0 : _a.href;
|
|
194
257
|
handlePopularItemMouseUp();
|
|
258
|
+
e.preventDefault();
|
|
195
259
|
if (currentHref) {
|
|
196
260
|
window.location.href = currentHref;
|
|
197
261
|
}
|
|
@@ -221,13 +285,17 @@ var Search = function Search(_ref) {
|
|
|
221
285
|
e.preventDefault();
|
|
222
286
|
break;
|
|
223
287
|
case e.key === 'Enter' && activeIndex === -1:
|
|
288
|
+
if (isTextarea && e.shiftKey) {
|
|
289
|
+
return false;
|
|
290
|
+
}
|
|
224
291
|
handleSearchSubmit();
|
|
292
|
+
e.preventDefault();
|
|
225
293
|
break;
|
|
226
294
|
default:
|
|
227
295
|
break;
|
|
228
296
|
}
|
|
229
297
|
return false;
|
|
230
|
-
}, [activeIndex, handleItemSubmit, handleSearchSubmit, items.length]);
|
|
298
|
+
}, [activeIndex, handleItemSubmit, handleSearchSubmit, items.length, isTextarea]);
|
|
231
299
|
var handleKeyDown = React.useCallback(function (e) {
|
|
232
300
|
if (showNotFound && showPopularItems) {
|
|
233
301
|
return handleKeyDownPopularItems(e);
|
|
@@ -239,8 +307,58 @@ var Search = function Search(_ref) {
|
|
|
239
307
|
!!debouncedOnChange.current && debouncedOnChange.current.cancel();
|
|
240
308
|
onChange === null || onChange === void 0 ? void 0 : onChange('');
|
|
241
309
|
setSearchQuery('');
|
|
242
|
-
(_a =
|
|
310
|
+
(_a = fieldRef === null || fieldRef === void 0 ? void 0 : fieldRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
311
|
+
};
|
|
312
|
+
var handleTextareaScroll = function handleTextareaScroll() {
|
|
313
|
+
if (!(fieldRef === null || fieldRef === void 0 ? void 0 : fieldRef.current) || !(labelRef === null || labelRef === void 0 ? void 0 : labelRef.current)) {
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
var scrollTop = fieldRef.current.scrollTop;
|
|
317
|
+
if (!scrollTop) {
|
|
318
|
+
labelRef.current.style.top = '';
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
labelRef.current.style.top = "".concat(DEFAULT_LABEL_TOP_POSITION - scrollTop, "px");
|
|
243
322
|
};
|
|
323
|
+
React.useEffect(function () {
|
|
324
|
+
textareaResize();
|
|
325
|
+
}, [textareaResize]);
|
|
326
|
+
React.useEffect(function () {
|
|
327
|
+
if (!resizerRef.current || !isTextarea || !showResizer) {
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
330
|
+
var originalHeight;
|
|
331
|
+
var originalCoordinateY;
|
|
332
|
+
var handleResize = throttle(function (moveEvent) {
|
|
333
|
+
var currentCoordinateY = moveEvent.clientY || moveEvent.touches[0].clientY;
|
|
334
|
+
var resizeHeight = originalHeight + (currentCoordinateY - originalCoordinateY);
|
|
335
|
+
var updatedHeight = resizeHeight < minTextareaHeight ? minTextareaHeight : resizeHeight;
|
|
336
|
+
setTextareaHeight(updatedHeight);
|
|
337
|
+
setIsTextareaResized(true);
|
|
338
|
+
}, throttleTime.resizeTextarea);
|
|
339
|
+
var _handleResizeCancel = function handleResizeCancel() {
|
|
340
|
+
setIsTextareaResizing(false);
|
|
341
|
+
window.removeEventListener('mousemove', handleResize);
|
|
342
|
+
window.removeEventListener('touchmove', handleResize);
|
|
343
|
+
window.removeEventListener('mouseup', _handleResizeCancel);
|
|
344
|
+
window.removeEventListener('touchend', _handleResizeCancel);
|
|
345
|
+
};
|
|
346
|
+
var handleStartResize = function handleStartResize(event) {
|
|
347
|
+
if (!fieldRef.current) {
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
350
|
+
setIsTextareaResizing(true);
|
|
351
|
+
event.preventDefault();
|
|
352
|
+
originalHeight = parseFloat(getComputedStyle(fieldRef.current).getPropertyValue('height').replace('px', ''));
|
|
353
|
+
originalCoordinateY = event.clientY || event.touches[0].clientY;
|
|
354
|
+
window.addEventListener('mousemove', handleResize);
|
|
355
|
+
window.addEventListener('touchmove', handleResize);
|
|
356
|
+
window.addEventListener('mouseup', _handleResizeCancel);
|
|
357
|
+
window.addEventListener('touchend', _handleResizeCancel);
|
|
358
|
+
};
|
|
359
|
+
resizerRef.current.addEventListener('mousedown', handleStartResize);
|
|
360
|
+
resizerRef.current.addEventListener('touchstart', handleStartResize);
|
|
361
|
+
}, [isTextarea, minTextareaHeight, showResizer]);
|
|
244
362
|
React.useEffect(function () {
|
|
245
363
|
return setSearchQuery(value);
|
|
246
364
|
}, [value]);
|
|
@@ -365,17 +483,14 @@ var Search = function Search(_ref) {
|
|
|
365
483
|
hasMargin: false
|
|
366
484
|
}, popularTitle || 'Популярные действия'), renderPopularItems())));
|
|
367
485
|
};
|
|
368
|
-
|
|
369
|
-
className: cn(
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
}), /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.control), {
|
|
377
|
-
className: cn('control', [classes === null || classes === void 0 ? void 0 : classes.control])
|
|
378
|
-
}), isCompact && renderSubmitButton(), /*#__PURE__*/React.createElement("input", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.searchField), {
|
|
486
|
+
var renderLabel = /*#__PURE__*/React.createElement("label", {
|
|
487
|
+
className: cn('label', [classes === null || classes === void 0 ? void 0 : classes.label]),
|
|
488
|
+
htmlFor: searchId,
|
|
489
|
+
ref: labelRef
|
|
490
|
+
}, label, required && /*#__PURE__*/React.createElement("span", {
|
|
491
|
+
className: cn('require-mark')
|
|
492
|
+
}, "*"));
|
|
493
|
+
var renderInput = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("input", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.searchField), {
|
|
379
494
|
id: searchId,
|
|
380
495
|
className: cn('field', {
|
|
381
496
|
filled: !!searchQuery,
|
|
@@ -391,13 +506,48 @@ var Search = function Search(_ref) {
|
|
|
391
506
|
disabled: disabled,
|
|
392
507
|
type: "text",
|
|
393
508
|
autoComplete: "off",
|
|
394
|
-
ref:
|
|
395
|
-
})), label &&
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
509
|
+
ref: getFieldRef
|
|
510
|
+
})), label && renderLabel);
|
|
511
|
+
var renderTextarea = /*#__PURE__*/React.createElement(React.Fragment, null, showResizer && /*#__PURE__*/React.createElement("div", _extends({
|
|
512
|
+
className: cn('resizer', [classes === null || classes === void 0 ? void 0 : classes.resizer]),
|
|
513
|
+
ref: resizerRef
|
|
514
|
+
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.resizer)), /*#__PURE__*/React.createElement(ResizeIcon, null)), /*#__PURE__*/React.createElement("div", {
|
|
515
|
+
className: cn('textarea-wrapper')
|
|
516
|
+
}, /*#__PURE__*/React.createElement("textarea", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.searchField), {
|
|
517
|
+
id: searchId,
|
|
518
|
+
className: cn('field', {
|
|
519
|
+
filled: !!searchQuery,
|
|
520
|
+
labeled: !!label
|
|
521
|
+
}, [classes === null || classes === void 0 ? void 0 : classes.input]),
|
|
522
|
+
style: {
|
|
523
|
+
height: "".concat(textareaHeight, "px")
|
|
524
|
+
},
|
|
525
|
+
placeholder: placeholder,
|
|
526
|
+
value: searchQuery,
|
|
527
|
+
onChange: handleChange,
|
|
528
|
+
onFocus: handleFocus,
|
|
529
|
+
onBlur: handleBlur,
|
|
530
|
+
onKeyDown: handleKeyDown,
|
|
531
|
+
onClick: handleClick,
|
|
532
|
+
onScroll: handleTextareaScroll,
|
|
533
|
+
autoComplete: "off",
|
|
534
|
+
ref: getFieldRef
|
|
535
|
+
})), label && renderLabel));
|
|
536
|
+
return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
537
|
+
className: cn({
|
|
538
|
+
open: isFocused,
|
|
539
|
+
disabled: disabled,
|
|
540
|
+
type: type,
|
|
541
|
+
textarea: isTextarea,
|
|
542
|
+
error: verification === Verification.ERROR,
|
|
543
|
+
success: verification === Verification.VALID
|
|
544
|
+
}, [className])
|
|
545
|
+
}), /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.control), {
|
|
546
|
+
className: cn('control', {
|
|
547
|
+
focused: isTextareaResizing
|
|
548
|
+
}, [classes === null || classes === void 0 ? void 0 : classes.control]),
|
|
549
|
+
ref: containerRef
|
|
550
|
+
}), isCompact && renderSubmitButton(), isTextarea ? renderTextarea : renderInput, showAdditionalElement && /*#__PURE__*/React.createElement("div", {
|
|
401
551
|
className: cn('icons')
|
|
402
552
|
}, showTextFieldSubmit && renderSubmitButton(), showLoader && /*#__PURE__*/React.createElement(Preloader, {
|
|
403
553
|
delay: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
h1,h2,h3,h4,h5{margin:0}@-webkit-keyframes listAppear{0%{opacity:0;-webkit-transform:translateY(-25px);transform:translateY(-25px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes listAppear{0%{opacity:0;-webkit-transform:translateY(-25px);transform:translateY(-25px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.mfui-search{-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--content);font-family:inherit;font-size:15px;line-height:24px;min-height:40px;position:relative;z-index:auto}.mfui-search__require-mark{color:var(--fury);font-size:20px;line-height:0;margin-left:1px}.mfui-search__control{border:1px solid;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;outline:none;position:relative;-webkit-transition:border-color .3s;transition:border-color .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;z-index:1}.mfui-search__field_labeled::-webkit-input-placeholder{color:var(--spbSky3);opacity:0;-webkit-transition:opacity .2s;transition:opacity .2s}.mfui-search__field_labeled::-moz-placeholder{color:var(--spbSky3);opacity:0;-moz-transition:opacity .2s;transition:opacity .2s}.mfui-search__field_labeled:-ms-input-placeholder{color:var(--spbSky3);opacity:0;-ms-transition:opacity .2s;transition:opacity .2s}.mfui-search__field_labeled::-ms-input-placeholder{color:var(--spbSky3);opacity:0;-ms-transition:opacity .2s;transition:opacity .2s}.mfui-search__field_labeled::placeholder{color:var(--spbSky3);opacity:0;-webkit-transition:opacity .2s;transition:opacity .2s}.mfui-search__field:focus::-webkit-input-placeholder{opacity:1}.mfui-search__field:focus::-moz-placeholder{opacity:1}.mfui-search__field:focus:-ms-input-placeholder{opacity:1}.mfui-search__field:focus::-ms-input-placeholder{opacity:1}.mfui-search__field:focus::placeholder{opacity:1}.mfui-search__field{display:block;position:relative;z-index:1;-webkit-box-flex:1;-ms-flex-positive:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;box-sizing:border-box;caret-color:var(--brandGreen);color:var(--content);cursor:text;flex-grow:1;font-family:inherit;font-size:100%;height:100%;line-height:25px;opacity:1;outline:none;overflow:auto;padding:0;width:100%}@media screen and (max-width:767px){.mfui-search__field{width:90%}}.mfui-search__label{color:var(--spbSky3);display:block;font-family:inherit;font-size:15px;line-height:24px;overflow:auto;pointer-events:none;position:absolute;-webkit-transition-duration:.2s,.01s;transition-duration:.2s,.01s;z-index:1}.mfui-search__list{background-color:var(--base);border-radius:12px;-webkit-box-shadow:0 4px 12px rgba(0,0,0,.08);box-shadow:0 4px 12px rgba(0,0,0,.08);display:none;left:-1px;position:absolute;right:-1px;top:calc(100% + 1px);z-index:0}.mfui-search__clear,.mfui-search__submit-button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;background-color:transparent;border:none;cursor:pointer;height:100%;justify-content:center;padding:0;text-align:center}.mfui-search__list-inner{-webkit-box-sizing:border-box;box-sizing:border-box;max-height:368px;overflow-y:auto;padding:16px}.mfui-search__list-item{background-color:var(--base);border-radius:16px;cursor:pointer;font-family:inherit;padding-bottom:12px;padding-top:12px}.mfui-search__list-item_paddings_large{padding-left:32px;padding-right:32px}.mfui-search__list-item_paddings_small{padding-left:12px;padding-right:12px}.mfui-search__popular-item{background-color:var(--base);border-radius:16px;cursor:pointer;min-height:48px;padding-left:12px;padding-right:16px;text-decoration:none}.mfui-search__popular-icon,.mfui-search__popular-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.mfui-search__popular-icon{-ms-flex-negative:0;flex-shrink:0;-webkit-box-pack:center;-ms-flex-pack:center;height:32px;justify-content:center;margin-right:16px;width:32px}.mfui-search__list-item_active,.mfui-search__popular-item_active{background-color:var(--spbSky0)}.mfui-search__item-title,.mfui-search__popular-item-title{position:relative;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;overflow:hidden;white-space:nowrap}.mfui-search__item-title:after,.mfui-search__popular-item-title:after{background:var(--base);bottom:0;content:"";-webkit-mask-image:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(var(--base)));-webkit-mask-image:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--base) 100%);mask-image:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(var(--spbSky0)));mask-image:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--spbSky0) 100%);position:absolute;right:0;top:0;width:40px}.mfui-search__list-item_active .mfui-search__item-title:after,.mfui-search__popular-item_active .mfui-search__popular-item-title:after{background:var(--spbSky0);-webkit-mask-image:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(var(--spbSky0)));-webkit-mask-image:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--spbSky0) 100%);mask-image:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(var(--spbSky0)));mask-image:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--spbSky0) 100%)}.mfui-search__highlighted-fragment{font-weight:700}.mfui-search__notice{font-size:12px;line-height:16px;margin-top:4px}.mfui-search__notice_error{color:var(--fury)}.mfui-search__notice_success{color:var(--brandGreen)}.mfui-search__icons{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%}.mfui-search__list_not-found{cursor:default}.mfui-search__not-found-text{background-color:var(--base);color:var(--spbSky3);font-family:inherit;padding:12px 32px}.mfui-search__not-found-text_show-popular{border-bottom:1px solid var(--spbSky2);padding:0 0 16px}.mfui-search__popular-title{padding-bottom:8px;padding-top:16px}.mfui-search_open{z-index:12}.mfui-search_open .mfui-search__list{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-name:listAppear;animation-name:listAppear;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;display:block}.mfui-search_type_textfield .mfui-search__control{background-color:var(--base);border-color:var(--spbSky2);border-radius:12px;height:60px;padding:0 16px}.mfui-search_type_textfield .mfui-search__control:hover{border-color:var(--content)}.mfui-search_type_textfield .mfui-search__label{top:17px}.mfui-search_type_textfield .mfui-search__field:focus+.mfui-search__label,.mfui-search_type_textfield .mfui-search__field_filled+.mfui-search__label{-webkit-transform:scale(.8) translate(-12.5%,-75%);transform:scale(.8) translate(-12.5%,-75%)}.mfui-search_type_textfield .mfui-search__field_labeled{padding-top:22px}.mfui-search_type_textfield .mfui-search__submit-icon{height:32px;width:32px;fill:var(--content)}.mfui-search_type_textfield.mfui-search_disabled .mfui-search__control{background-color:var(--spbSky1);border-color:var(--spbSky1)}.mfui-search_type_textfield.mfui-search_disabled .mfui-search__submit-icon{opacity:.5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mfui-search_type_compact .mfui-search__control{background-color:var(--spbSky0);border-color:var(--spbSky0);border-radius:24px;height:40px;padding:0 12px;-webkit-transition:background-color,border-color .3s;transition:background-color,border-color .3s}.mfui-search_type_compact .mfui-search__control:hover{background-color:var(--spbSky1)}.mfui-search_type_compact .mfui-search__field{height:100%;padding:8px 0 8px 12px}.mfui-search_type_compact .mfui-search__label{left:44px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.mfui-search_type_compact .mfui-search__field:focus+.mfui-search__label,.mfui-search_type_compact .mfui-search__field_filled+.mfui-search__label{opacity:0}.mfui-search_type_compact .mfui-search__submit-icon{height:20px;width:20px;fill:var(--spbSky3)}.mfui-search_type_compact .mfui-search__clear{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;background-color:transparent;border:none;cursor:pointer;height:24px;justify-content:center;margin-left:12px;padding:0;width:24px}.mfui-search_type_compact .mfui-search__clear-icon{height:24px;width:24px;fill:var(--spbSky3)}.mfui-search_type_compact .mfui-search__clear-icon:hover{fill:var(--content)}.mfui-search_type_compact .mfui-search__clear-icon:active{fill:var(--buttonDown)}.mfui-search_type_compact.mfui-search_open .mfui-search__control{background-color:var(--spbSky1)}.mfui-search_type_compact.mfui-search_open .mfui-search__submit-icon{fill:var(--content)}.mfui-search_disabled .mfui-search__control{cursor:default;pointer-events:none}.mfui-search_disabled .mfui-search__submit-icon{opacity:.5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mfui-search_error .mfui-search__control{border-color:var(--fury)}.mfui-search_success .mfui-search__control{border-color:var(--brandGreen)}
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}@-webkit-keyframes listAppear{0%{opacity:0;-webkit-transform:translateY(-25px);transform:translateY(-25px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes listAppear{0%{opacity:0;-webkit-transform:translateY(-25px);transform:translateY(-25px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.mfui-search{-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--content);font-family:inherit;font-size:15px;line-height:24px;min-height:40px;position:relative;z-index:auto}.mfui-search__require-mark{color:var(--fury);font-size:20px;line-height:0;margin-left:1px}.mfui-search__control{border:1px solid;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;outline:none;position:relative;-webkit-transition:border-color .3s;transition:border-color .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;z-index:1}.mfui-search__field_labeled::-webkit-input-placeholder{color:var(--spbSky3);opacity:0;-webkit-transition:opacity .2s;transition:opacity .2s}.mfui-search__field_labeled::-moz-placeholder{color:var(--spbSky3);opacity:0;-moz-transition:opacity .2s;transition:opacity .2s}.mfui-search__field_labeled:-ms-input-placeholder{color:var(--spbSky3);opacity:0;-ms-transition:opacity .2s;transition:opacity .2s}.mfui-search__field_labeled::-ms-input-placeholder{color:var(--spbSky3);opacity:0;-ms-transition:opacity .2s;transition:opacity .2s}.mfui-search__field_labeled::placeholder{color:var(--spbSky3);opacity:0;-webkit-transition:opacity .2s;transition:opacity .2s}.mfui-search__field:focus::-webkit-input-placeholder{opacity:1}.mfui-search__field:focus::-moz-placeholder{opacity:1}.mfui-search__field:focus:-ms-input-placeholder{opacity:1}.mfui-search__field:focus::-ms-input-placeholder{opacity:1}.mfui-search__field:focus::placeholder{opacity:1}.mfui-search__field{display:block;position:relative;z-index:1;-webkit-box-flex:1;-ms-flex-positive:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;box-sizing:border-box;caret-color:var(--brandGreen);color:var(--content);cursor:text;flex-grow:1;font-family:inherit;font-size:100%;height:100%;line-height:24px;opacity:1;outline:none;overflow:auto;padding:0;resize:none;width:100%}@media screen and (max-width:767px){.mfui-search__field{width:90%}}.mfui-search__label{color:var(--spbSky3);display:block;font-family:inherit;font-size:15px;line-height:24px;overflow:auto;pointer-events:none;position:absolute;-webkit-transition:scale .5s,top .01s,-webkit-transform .5s;transition:scale .5s,top .01s,-webkit-transform .5s;transition:transform .5s,scale .5s,top .01s;transition:transform .5s,scale .5s,top .01s,-webkit-transform .5s;z-index:1}.mfui-search__list{background-color:var(--base);border-radius:12px;-webkit-box-shadow:0 4px 12px rgba(0,0,0,.08);box-shadow:0 4px 12px rgba(0,0,0,.08);display:none;left:-1px;position:absolute;right:-1px;top:calc(100% + 1px);z-index:0}.mfui-search__clear,.mfui-search__submit-button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;background-color:transparent;border:none;cursor:pointer;height:100%;justify-content:center;padding:0;text-align:center}.mfui-search__list-inner{-webkit-box-sizing:border-box;box-sizing:border-box;max-height:368px;overflow-y:auto;padding:16px}.mfui-search__list-item{background-color:var(--base);border-radius:16px;cursor:pointer;font-family:inherit;padding-bottom:12px;padding-top:12px}.mfui-search__list-item_paddings_large{padding-left:32px;padding-right:32px}.mfui-search__list-item_paddings_small{padding-left:12px;padding-right:12px}.mfui-search__popular-item{background-color:var(--base);border-radius:16px;cursor:pointer;min-height:48px;padding-left:12px;padding-right:16px;text-decoration:none}.mfui-search__popular-icon,.mfui-search__popular-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.mfui-search__popular-icon{-ms-flex-negative:0;flex-shrink:0;-webkit-box-pack:center;-ms-flex-pack:center;height:32px;justify-content:center;margin-right:16px;width:32px}.mfui-search__list-item_active,.mfui-search__popular-item_active{background-color:var(--spbSky0)}.mfui-search__item-title,.mfui-search__popular-item-title{position:relative;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;overflow:hidden;white-space:nowrap}.mfui-search__item-title:after,.mfui-search__popular-item-title:after{background:var(--base);bottom:0;content:"";-webkit-mask-image:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(var(--base)));-webkit-mask-image:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--base) 100%);mask-image:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(var(--spbSky0)));mask-image:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--spbSky0) 100%);position:absolute;right:0;top:0;width:40px}.mfui-search__list-item_active .mfui-search__item-title:after,.mfui-search__popular-item_active .mfui-search__popular-item-title:after{background:var(--spbSky0);-webkit-mask-image:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(var(--spbSky0)));-webkit-mask-image:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--spbSky0) 100%);mask-image:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(var(--spbSky0)));mask-image:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--spbSky0) 100%)}.mfui-search__highlighted-fragment{font-weight:700}.mfui-search__notice{font-size:12px;line-height:16px;margin-top:4px}.mfui-search__notice_error{color:var(--fury)}.mfui-search__notice_success{color:var(--brandGreen)}.mfui-search__icons{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%}.mfui-search__list_not-found{cursor:default}.mfui-search__not-found-text{background-color:var(--base);color:var(--spbSky3);font-family:inherit;padding:12px 32px}.mfui-search__not-found-text_show-popular{border-bottom:1px solid var(--spbSky2);padding:0 0 16px}.mfui-search__popular-title{padding-bottom:8px;padding-top:16px}.mfui-search_open{z-index:12}.mfui-search_open .mfui-search__list{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-name:listAppear;animation-name:listAppear;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;display:block}.mfui-search_type_textfield .mfui-search__control{background-color:var(--base);border-color:var(--spbSky2);border-radius:12px;height:60px;padding:0 16px}.mfui-search_type_textfield .mfui-search__control:hover,.mfui-search_type_textfield .mfui-search__control_focused{border-color:var(--content)}.mfui-search_type_textfield .mfui-search__label{top:17px}.mfui-search_type_textfield .mfui-search__field:focus+.mfui-search__label,.mfui-search_type_textfield .mfui-search__field_filled+.mfui-search__label{-webkit-transform:scale(.8) translate(-12.5%,-75%);transform:scale(.8) translate(-12.5%,-75%);-webkit-transition:scale .2s,top .01s,-webkit-transform .2s;transition:scale .2s,top .01s,-webkit-transform .2s;transition:transform .2s,scale .2s,top .01s;transition:transform .2s,scale .2s,top .01s,-webkit-transform .2s}.mfui-search_type_textfield .mfui-search__field_labeled{padding-bottom:9px;padding-top:25px}.mfui-search_type_textfield .mfui-search__submit-icon{height:32px;width:32px;fill:var(--content)}.mfui-search_textarea .mfui-search__control{height:auto;min-height:60px}.mfui-search_textarea .mfui-search__field{-webkit-box-sizing:content-box;box-sizing:content-box;max-height:204px;padding-bottom:9px;padding-top:17px;scrollbar-color:var(--spbSky2) transparent;scrollbar-width:thin}.mfui-search_textarea .mfui-search__field_labeled{padding-bottom:9px;padding-top:25px}.mfui-search_textarea .mfui-search__icons{height:58px;margin-left:8px}.mfui-search_textarea .mfui-search__field_resized{-webkit-transition:height .1s;transition:height .1s;will-change:height}.mfui-search__textarea-wrapper{position:relative;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;overflow:hidden;width:100%}.mfui-search_type_textfield.mfui-search_disabled .mfui-search__control{background-color:var(--spbSky1);border-color:var(--spbSky1)}.mfui-search_type_textfield.mfui-search_disabled .mfui-search__submit-icon{opacity:.5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mfui-search_type_compact .mfui-search__control{background-color:var(--spbSky0);border-color:var(--spbSky0);border-radius:24px;height:40px;padding:0 12px;-webkit-transition:background-color,border-color .3s;transition:background-color,border-color .3s}.mfui-search_type_compact .mfui-search__control:hover{background-color:var(--spbSky1)}.mfui-search_type_compact .mfui-search__field{height:100%;padding:8px 0 8px 12px}.mfui-search_type_compact .mfui-search__label{left:44px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.mfui-search_type_compact .mfui-search__field:focus+.mfui-search__label,.mfui-search_type_compact .mfui-search__field_filled+.mfui-search__label{opacity:0}.mfui-search_type_compact .mfui-search__submit-icon{height:20px;width:20px;fill:var(--spbSky3)}.mfui-search_type_compact .mfui-search__clear{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;background-color:transparent;border:none;cursor:pointer;height:24px;justify-content:center;margin-left:12px;padding:0;width:24px}.mfui-search_type_compact .mfui-search__clear-icon{height:24px;width:24px;fill:var(--spbSky3)}.mfui-search_type_compact .mfui-search__clear-icon:hover{fill:var(--content)}.mfui-search_type_compact .mfui-search__clear-icon:active{fill:var(--buttonDown)}.mfui-search_type_compact.mfui-search_open .mfui-search__control{background-color:var(--spbSky1)}.mfui-search_type_compact.mfui-search_open .mfui-search__submit-icon{fill:var(--content)}.mfui-search_disabled .mfui-search__control{cursor:default;pointer-events:none}.mfui-search_disabled .mfui-search__submit-icon{opacity:.5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mfui-search_error .mfui-search__control{border-color:var(--fury)}.mfui-search_success .mfui-search__control{border-color:var(--brandGreen)}.mfui-search__resizer{bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;position:absolute;right:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-sizing:content-box;box-sizing:content-box;cursor:ns-resize;height:12px;justify-content:center;padding:4px;width:12px}.mfui-search__resizer svg{-webkit-transition:stroke .3s;transition:stroke .3s;stroke:var(--spbSky2)}.mfui-search__resizer:active svg,.mfui-search__resizer:hover svg{stroke:var(--spbSky3)}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import './Search.scss';
|
|
3
|
+
export declare const MinTextareaHeight: {
|
|
4
|
+
readonly ONE_ROW: 24;
|
|
5
|
+
readonly THREE_ROWS: number;
|
|
6
|
+
};
|
|
7
|
+
type MinTextareaHeightType = (typeof MinTextareaHeight)[keyof typeof MinTextareaHeight];
|
|
3
8
|
export declare const Verification: {
|
|
4
9
|
readonly VALID: "valid";
|
|
5
10
|
readonly ERROR: "error";
|
|
@@ -39,11 +44,14 @@ export interface ISearchProps {
|
|
|
39
44
|
notice?: Record<string, string>;
|
|
40
45
|
popularItem?: Record<string, string>;
|
|
41
46
|
clearButton?: Record<string, string>;
|
|
47
|
+
resizer?: Record<string, string>;
|
|
42
48
|
};
|
|
43
49
|
/** Значение */
|
|
44
50
|
value?: string;
|
|
45
51
|
/** Вид отображения */
|
|
46
52
|
type?: 'textfield' | 'compact';
|
|
53
|
+
/** Включить режим textarea */
|
|
54
|
+
textarea?: boolean;
|
|
47
55
|
/** Заголовок поля */
|
|
48
56
|
label?: string;
|
|
49
57
|
/** HTML идентификатор поля поиска */
|
|
@@ -77,6 +85,7 @@ export interface ISearchProps {
|
|
|
77
85
|
textNotFound?: string;
|
|
78
86
|
popularTitle?: string;
|
|
79
87
|
popularItem?: string;
|
|
88
|
+
resizer?: string;
|
|
80
89
|
};
|
|
81
90
|
/** Отображение загрузки */
|
|
82
91
|
showLoader?: boolean;
|
|
@@ -90,14 +99,18 @@ export interface ISearchProps {
|
|
|
90
99
|
popularTitle?: string;
|
|
91
100
|
/** Ссылка на элемент списка с результатами */
|
|
92
101
|
listRef?: React.Ref<HTMLDivElement>;
|
|
102
|
+
/** Минимальная высота textarea, px */
|
|
103
|
+
minTextareaHeight?: MinTextareaHeightType;
|
|
104
|
+
/** Показать хендлер для ресайза текстового поля */
|
|
105
|
+
showResizer?: boolean;
|
|
93
106
|
/** Обработчик изменения поля */
|
|
94
107
|
onChange?: (value: string) => void;
|
|
95
108
|
/** Обработчик нажатия на enter */
|
|
96
109
|
onSubmit?: (value: string) => void;
|
|
97
110
|
/** Обработчик выхода из фокуса */
|
|
98
|
-
onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;
|
|
111
|
+
onBlur?: (e: React.FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
|
|
99
112
|
/** Обработчик входа в фокус */
|
|
100
|
-
onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;
|
|
113
|
+
onFocus?: (e: React.FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
|
|
101
114
|
/** Обработчик нажатия на популярный элемент */
|
|
102
115
|
onPopularItemClick?: (popularItemValue?: string) => void;
|
|
103
116
|
}
|
|
@@ -4,11 +4,12 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports["default"] = exports.Verification = exports.SearchItemsPaddings = void 0;
|
|
7
|
+
exports["default"] = exports.Verification = exports.SearchItemsPaddings = exports.MinTextareaHeight = void 0;
|
|
8
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
require("core-js/modules/es.array.map.js");
|
|
11
11
|
require("core-js/modules/es.array.slice.js");
|
|
12
|
+
require("core-js/modules/es.parse-float.js");
|
|
12
13
|
require("core-js/modules/es.regexp.constructor.js");
|
|
13
14
|
require("core-js/modules/es.regexp.exec.js");
|
|
14
15
|
require("core-js/modules/es.regexp.sticky.js");
|
|
@@ -18,6 +19,8 @@ require("core-js/modules/es.string.split.js");
|
|
|
18
19
|
var React = _interopRequireWildcard(require("react"));
|
|
19
20
|
var _uiHelpers = require("@megafon/ui-helpers");
|
|
20
21
|
var _lodash = _interopRequireDefault(require("lodash.debounce"));
|
|
22
|
+
var _lodash2 = _interopRequireDefault(require("lodash.throttle"));
|
|
23
|
+
var _throttleTime = _interopRequireDefault(require("../../constants/throttleTime"));
|
|
21
24
|
var _Caption = _interopRequireDefault(require("../Caption/Caption"));
|
|
22
25
|
var _Header = _interopRequireDefault(require("../Header/Header"));
|
|
23
26
|
var _Preloader = _interopRequireDefault(require("../Preloader/Preloader"));
|
|
@@ -46,8 +49,25 @@ var ClearIcon = function ClearIcon(props) {
|
|
|
46
49
|
d: "M10 8.8L6.2 5 5 6.2 8.8 10 5 13.8 6.2 15l3.8-3.8 3.8 3.8 1.2-1.2-3.8-3.8L15 6.2 13.8 5 10 8.8z"
|
|
47
50
|
}));
|
|
48
51
|
};
|
|
52
|
+
var ResizeIcon = function ResizeIcon(props) {
|
|
53
|
+
return /*#__PURE__*/React.createElement("svg", (0, _extends2["default"])({
|
|
54
|
+
width: 12,
|
|
55
|
+
height: 12
|
|
56
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
57
|
+
d: "M1 11L11 1M7 11l4-4"
|
|
58
|
+
}));
|
|
59
|
+
};
|
|
60
|
+
var DEFAULT_ROW_COUNT = 3;
|
|
61
|
+
var MAX_ROW_COUNT = 6;
|
|
62
|
+
var TEXTAREA_ROW_HEIGHT = 24;
|
|
63
|
+
var TEXTAREA_MAX_HEIGHT = TEXTAREA_ROW_HEIGHT * MAX_ROW_COUNT;
|
|
64
|
+
var DEFAULT_LABEL_TOP_POSITION = 16;
|
|
49
65
|
var SEARCH_QUERY_REGEX = /[^A-Z-a-zА-ЯЁа-яё0-9]/g;
|
|
50
66
|
var MAX_POPULAR_ITEMS_LENGTH = 5;
|
|
67
|
+
var MinTextareaHeight = exports.MinTextareaHeight = {
|
|
68
|
+
ONE_ROW: TEXTAREA_ROW_HEIGHT,
|
|
69
|
+
THREE_ROWS: TEXTAREA_ROW_HEIGHT * DEFAULT_ROW_COUNT
|
|
70
|
+
};
|
|
51
71
|
var Verification = exports.Verification = {
|
|
52
72
|
VALID: 'valid',
|
|
53
73
|
ERROR: 'error'
|
|
@@ -78,6 +98,7 @@ var Search = function Search(_ref) {
|
|
|
78
98
|
classes = _ref.classes,
|
|
79
99
|
_ref$type = _ref.type,
|
|
80
100
|
type = _ref$type === void 0 ? 'textfield' : _ref$type,
|
|
101
|
+
textarea = _ref.textarea,
|
|
81
102
|
showLoader = _ref.showLoader,
|
|
82
103
|
showNotFound = _ref.showNotFound,
|
|
83
104
|
textNotFound = _ref.textNotFound,
|
|
@@ -85,6 +106,9 @@ var Search = function Search(_ref) {
|
|
|
85
106
|
popularItems = _ref$popularItems === void 0 ? [] : _ref$popularItems,
|
|
86
107
|
popularTitle = _ref.popularTitle,
|
|
87
108
|
listRef = _ref.listRef,
|
|
109
|
+
_ref$minTextareaHeigh = _ref.minTextareaHeight,
|
|
110
|
+
minTextareaHeight = _ref$minTextareaHeigh === void 0 ? MinTextareaHeight.ONE_ROW : _ref$minTextareaHeigh,
|
|
111
|
+
showResizer = _ref.showResizer,
|
|
88
112
|
onChange = _ref.onChange,
|
|
89
113
|
onSubmit = _ref.onSubmit,
|
|
90
114
|
onBlur = _ref.onBlur,
|
|
@@ -106,19 +130,57 @@ var Search = function Search(_ref) {
|
|
|
106
130
|
_React$useState8 = (0, _slicedToArray2["default"])(_React$useState7, 2),
|
|
107
131
|
popularActiveIndex = _React$useState8[0],
|
|
108
132
|
setPopularActiveIndex = _React$useState8[1];
|
|
133
|
+
var _React$useState9 = React.useState(TEXTAREA_ROW_HEIGHT),
|
|
134
|
+
_React$useState10 = (0, _slicedToArray2["default"])(_React$useState9, 2),
|
|
135
|
+
textareaHeight = _React$useState10[0],
|
|
136
|
+
setTextareaHeight = _React$useState10[1];
|
|
137
|
+
var _React$useState11 = React.useState(false),
|
|
138
|
+
_React$useState12 = (0, _slicedToArray2["default"])(_React$useState11, 2),
|
|
139
|
+
isTextareaResizing = _React$useState12[0],
|
|
140
|
+
setIsTextareaResizing = _React$useState12[1];
|
|
141
|
+
var _React$useState13 = React.useState(false),
|
|
142
|
+
_React$useState14 = (0, _slicedToArray2["default"])(_React$useState13, 2),
|
|
143
|
+
isTextareaResized = _React$useState14[0],
|
|
144
|
+
setIsTextareaResized = _React$useState14[1];
|
|
109
145
|
var debouncedOnChange = React.useRef((0, _lodash["default"])(function (inputValue) {
|
|
110
146
|
return onChange && onChange(inputValue);
|
|
111
147
|
}, changeDelay));
|
|
112
148
|
var highlightedItem = React.useRef(null);
|
|
113
|
-
var
|
|
149
|
+
var containerRef = React.useRef(null);
|
|
150
|
+
var fieldRef = React.useRef(null);
|
|
151
|
+
var labelRef = React.useRef(null);
|
|
152
|
+
var resizerRef = React.useRef(null);
|
|
114
153
|
var correctPopularItems = React.useMemo(function () {
|
|
115
154
|
return popularItems.slice(0, MAX_POPULAR_ITEMS_LENGTH);
|
|
116
155
|
}, [popularItems]);
|
|
117
156
|
var isCompact = type === 'compact';
|
|
157
|
+
var isTextarea = textarea && !isCompact;
|
|
118
158
|
var showClearIcon = isCompact && !!searchQuery;
|
|
119
159
|
var showTextFieldSubmit = !hideIcon && !isCompact && !showLoader;
|
|
120
160
|
var showAdditionalElement = !hideIcon || showLoader || showClearIcon;
|
|
121
161
|
var showPopularItems = !!correctPopularItems.length;
|
|
162
|
+
var getFieldRef = function getFieldRef(node) {
|
|
163
|
+
if (!node) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
fieldRef.current = node;
|
|
167
|
+
};
|
|
168
|
+
var textareaResize = React.useCallback(function () {
|
|
169
|
+
if (!isTextarea || !fieldRef.current || !containerRef.current || isTextareaResized) {
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
fieldRef.current.style.height = "".concat(minTextareaHeight, "px");
|
|
173
|
+
var scrollHeight = fieldRef.current.scrollHeight;
|
|
174
|
+
var _window$getComputedSt = window.getComputedStyle(fieldRef.current),
|
|
175
|
+
paddingTop = _window$getComputedSt.paddingTop,
|
|
176
|
+
paddingBottom = _window$getComputedSt.paddingBottom;
|
|
177
|
+
var innerHeight = scrollHeight - parseFloat(paddingTop) - parseFloat(paddingBottom);
|
|
178
|
+
if (innerHeight >= TEXTAREA_MAX_HEIGHT) {
|
|
179
|
+
fieldRef.current.style.height = "".concat(TEXTAREA_MAX_HEIGHT, "px");
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
fieldRef.current.style.height = "".concat(innerHeight, "px");
|
|
183
|
+
}, [isTextareaResized, minTextareaHeight, isTextarea]);
|
|
122
184
|
var handleChange = React.useCallback(function (e) {
|
|
123
185
|
var _e$target$value = e.target.value,
|
|
124
186
|
inputValue = _e$target$value === void 0 ? '' : _e$target$value;
|
|
@@ -131,7 +193,8 @@ var Search = function Search(_ref) {
|
|
|
131
193
|
// @ts-ignore
|
|
132
194
|
debouncedOnChange.current(inputValue);
|
|
133
195
|
}
|
|
134
|
-
|
|
196
|
+
textareaResize();
|
|
197
|
+
}, [changeDelay, onChange, textareaResize]);
|
|
135
198
|
var handleHoverItem = React.useCallback(function (index) {
|
|
136
199
|
return function () {
|
|
137
200
|
setActiveIndex(index);
|
|
@@ -179,7 +242,7 @@ var Search = function Search(_ref) {
|
|
|
179
242
|
var handlePopularItemMouseUp = React.useCallback(function () {
|
|
180
243
|
var _a;
|
|
181
244
|
var chosenValue = popularItems[popularActiveIndex].title;
|
|
182
|
-
(_a =
|
|
245
|
+
(_a = fieldRef === null || fieldRef === void 0 ? void 0 : fieldRef.current) === null || _a === void 0 ? void 0 : _a.blur();
|
|
183
246
|
onPopularItemClick === null || onPopularItemClick === void 0 ? void 0 : onPopularItemClick(chosenValue);
|
|
184
247
|
}, [onPopularItemClick, popularActiveIndex, popularItems]);
|
|
185
248
|
var handleKeyDownPopularItems = React.useCallback(function (e) {
|
|
@@ -201,6 +264,7 @@ var Search = function Search(_ref) {
|
|
|
201
264
|
{
|
|
202
265
|
var currentHref = (_a = popularItems[popularActiveIndex]) === null || _a === void 0 ? void 0 : _a.href;
|
|
203
266
|
handlePopularItemMouseUp();
|
|
267
|
+
e.preventDefault();
|
|
204
268
|
if (currentHref) {
|
|
205
269
|
window.location.href = currentHref;
|
|
206
270
|
}
|
|
@@ -230,13 +294,17 @@ var Search = function Search(_ref) {
|
|
|
230
294
|
e.preventDefault();
|
|
231
295
|
break;
|
|
232
296
|
case e.key === 'Enter' && activeIndex === -1:
|
|
297
|
+
if (isTextarea && e.shiftKey) {
|
|
298
|
+
return false;
|
|
299
|
+
}
|
|
233
300
|
handleSearchSubmit();
|
|
301
|
+
e.preventDefault();
|
|
234
302
|
break;
|
|
235
303
|
default:
|
|
236
304
|
break;
|
|
237
305
|
}
|
|
238
306
|
return false;
|
|
239
|
-
}, [activeIndex, handleItemSubmit, handleSearchSubmit, items.length]);
|
|
307
|
+
}, [activeIndex, handleItemSubmit, handleSearchSubmit, items.length, isTextarea]);
|
|
240
308
|
var handleKeyDown = React.useCallback(function (e) {
|
|
241
309
|
if (showNotFound && showPopularItems) {
|
|
242
310
|
return handleKeyDownPopularItems(e);
|
|
@@ -248,8 +316,58 @@ var Search = function Search(_ref) {
|
|
|
248
316
|
!!debouncedOnChange.current && debouncedOnChange.current.cancel();
|
|
249
317
|
onChange === null || onChange === void 0 ? void 0 : onChange('');
|
|
250
318
|
setSearchQuery('');
|
|
251
|
-
(_a =
|
|
319
|
+
(_a = fieldRef === null || fieldRef === void 0 ? void 0 : fieldRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
320
|
+
};
|
|
321
|
+
var handleTextareaScroll = function handleTextareaScroll() {
|
|
322
|
+
if (!(fieldRef === null || fieldRef === void 0 ? void 0 : fieldRef.current) || !(labelRef === null || labelRef === void 0 ? void 0 : labelRef.current)) {
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
325
|
+
var scrollTop = fieldRef.current.scrollTop;
|
|
326
|
+
if (!scrollTop) {
|
|
327
|
+
labelRef.current.style.top = '';
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
330
|
+
labelRef.current.style.top = "".concat(DEFAULT_LABEL_TOP_POSITION - scrollTop, "px");
|
|
252
331
|
};
|
|
332
|
+
React.useEffect(function () {
|
|
333
|
+
textareaResize();
|
|
334
|
+
}, [textareaResize]);
|
|
335
|
+
React.useEffect(function () {
|
|
336
|
+
if (!resizerRef.current || !isTextarea || !showResizer) {
|
|
337
|
+
return;
|
|
338
|
+
}
|
|
339
|
+
var originalHeight;
|
|
340
|
+
var originalCoordinateY;
|
|
341
|
+
var handleResize = (0, _lodash2["default"])(function (moveEvent) {
|
|
342
|
+
var currentCoordinateY = moveEvent.clientY || moveEvent.touches[0].clientY;
|
|
343
|
+
var resizeHeight = originalHeight + (currentCoordinateY - originalCoordinateY);
|
|
344
|
+
var updatedHeight = resizeHeight < minTextareaHeight ? minTextareaHeight : resizeHeight;
|
|
345
|
+
setTextareaHeight(updatedHeight);
|
|
346
|
+
setIsTextareaResized(true);
|
|
347
|
+
}, _throttleTime["default"].resizeTextarea);
|
|
348
|
+
var _handleResizeCancel = function handleResizeCancel() {
|
|
349
|
+
setIsTextareaResizing(false);
|
|
350
|
+
window.removeEventListener('mousemove', handleResize);
|
|
351
|
+
window.removeEventListener('touchmove', handleResize);
|
|
352
|
+
window.removeEventListener('mouseup', _handleResizeCancel);
|
|
353
|
+
window.removeEventListener('touchend', _handleResizeCancel);
|
|
354
|
+
};
|
|
355
|
+
var handleStartResize = function handleStartResize(event) {
|
|
356
|
+
if (!fieldRef.current) {
|
|
357
|
+
return;
|
|
358
|
+
}
|
|
359
|
+
setIsTextareaResizing(true);
|
|
360
|
+
event.preventDefault();
|
|
361
|
+
originalHeight = parseFloat(getComputedStyle(fieldRef.current).getPropertyValue('height').replace('px', ''));
|
|
362
|
+
originalCoordinateY = event.clientY || event.touches[0].clientY;
|
|
363
|
+
window.addEventListener('mousemove', handleResize);
|
|
364
|
+
window.addEventListener('touchmove', handleResize);
|
|
365
|
+
window.addEventListener('mouseup', _handleResizeCancel);
|
|
366
|
+
window.addEventListener('touchend', _handleResizeCancel);
|
|
367
|
+
};
|
|
368
|
+
resizerRef.current.addEventListener('mousedown', handleStartResize);
|
|
369
|
+
resizerRef.current.addEventListener('touchstart', handleStartResize);
|
|
370
|
+
}, [isTextarea, minTextareaHeight, showResizer]);
|
|
253
371
|
React.useEffect(function () {
|
|
254
372
|
return setSearchQuery(value);
|
|
255
373
|
}, [value]);
|
|
@@ -374,17 +492,14 @@ var Search = function Search(_ref) {
|
|
|
374
492
|
hasMargin: false
|
|
375
493
|
}, popularTitle || 'Популярные действия'), renderPopularItems())));
|
|
376
494
|
};
|
|
377
|
-
|
|
378
|
-
className: cn(
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
}), /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.control), {
|
|
386
|
-
className: cn('control', [classes === null || classes === void 0 ? void 0 : classes.control])
|
|
387
|
-
}), isCompact && renderSubmitButton(), /*#__PURE__*/React.createElement("input", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.searchField), {
|
|
495
|
+
var renderLabel = /*#__PURE__*/React.createElement("label", {
|
|
496
|
+
className: cn('label', [classes === null || classes === void 0 ? void 0 : classes.label]),
|
|
497
|
+
htmlFor: searchId,
|
|
498
|
+
ref: labelRef
|
|
499
|
+
}, label, required && /*#__PURE__*/React.createElement("span", {
|
|
500
|
+
className: cn('require-mark')
|
|
501
|
+
}, "*"));
|
|
502
|
+
var renderInput = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("input", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.searchField), {
|
|
388
503
|
id: searchId,
|
|
389
504
|
className: cn('field', {
|
|
390
505
|
filled: !!searchQuery,
|
|
@@ -400,13 +515,48 @@ var Search = function Search(_ref) {
|
|
|
400
515
|
disabled: disabled,
|
|
401
516
|
type: "text",
|
|
402
517
|
autoComplete: "off",
|
|
403
|
-
ref:
|
|
404
|
-
})), label &&
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
518
|
+
ref: getFieldRef
|
|
519
|
+
})), label && renderLabel);
|
|
520
|
+
var renderTextarea = /*#__PURE__*/React.createElement(React.Fragment, null, showResizer && /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({
|
|
521
|
+
className: cn('resizer', [classes === null || classes === void 0 ? void 0 : classes.resizer]),
|
|
522
|
+
ref: resizerRef
|
|
523
|
+
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.resizer)), /*#__PURE__*/React.createElement(ResizeIcon, null)), /*#__PURE__*/React.createElement("div", {
|
|
524
|
+
className: cn('textarea-wrapper')
|
|
525
|
+
}, /*#__PURE__*/React.createElement("textarea", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.searchField), {
|
|
526
|
+
id: searchId,
|
|
527
|
+
className: cn('field', {
|
|
528
|
+
filled: !!searchQuery,
|
|
529
|
+
labeled: !!label
|
|
530
|
+
}, [classes === null || classes === void 0 ? void 0 : classes.input]),
|
|
531
|
+
style: {
|
|
532
|
+
height: "".concat(textareaHeight, "px")
|
|
533
|
+
},
|
|
534
|
+
placeholder: placeholder,
|
|
535
|
+
value: searchQuery,
|
|
536
|
+
onChange: handleChange,
|
|
537
|
+
onFocus: handleFocus,
|
|
538
|
+
onBlur: handleBlur,
|
|
539
|
+
onKeyDown: handleKeyDown,
|
|
540
|
+
onClick: handleClick,
|
|
541
|
+
onScroll: handleTextareaScroll,
|
|
542
|
+
autoComplete: "off",
|
|
543
|
+
ref: getFieldRef
|
|
544
|
+
})), label && renderLabel));
|
|
545
|
+
return /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
546
|
+
className: cn({
|
|
547
|
+
open: isFocused,
|
|
548
|
+
disabled: disabled,
|
|
549
|
+
type: type,
|
|
550
|
+
textarea: isTextarea,
|
|
551
|
+
error: verification === Verification.ERROR,
|
|
552
|
+
success: verification === Verification.VALID
|
|
553
|
+
}, [className])
|
|
554
|
+
}), /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.control), {
|
|
555
|
+
className: cn('control', {
|
|
556
|
+
focused: isTextareaResizing
|
|
557
|
+
}, [classes === null || classes === void 0 ? void 0 : classes.control]),
|
|
558
|
+
ref: containerRef
|
|
559
|
+
}), isCompact && renderSubmitButton(), isTextarea ? renderTextarea : renderInput, showAdditionalElement && /*#__PURE__*/React.createElement("div", {
|
|
410
560
|
className: cn('icons')
|
|
411
561
|
}, showTextFieldSubmit && renderSubmitButton(), showLoader && /*#__PURE__*/React.createElement(_Preloader["default"], {
|
|
412
562
|
delay: false,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@megafon/ui-core",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.4.0",
|
|
4
4
|
"files": [
|
|
5
5
|
"dist",
|
|
6
6
|
"styles"
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"@babel/preset-env": "^7.8.6",
|
|
51
51
|
"@babel/preset-react": "^7.8.3",
|
|
52
52
|
"@babel/preset-typescript": "^7.8.3",
|
|
53
|
-
"@megafon/ui-icons": "^3.
|
|
53
|
+
"@megafon/ui-icons": "^3.3.0",
|
|
54
54
|
"@svgr/core": "^2.4.1",
|
|
55
55
|
"@testing-library/jest-dom": "^6.5.0",
|
|
56
56
|
"@testing-library/react": "^16.0.1",
|
|
@@ -104,5 +104,5 @@
|
|
|
104
104
|
"simplebar-react": "^3.2.5",
|
|
105
105
|
"swiper": "^11.1.1"
|
|
106
106
|
},
|
|
107
|
-
"gitHead": "
|
|
107
|
+
"gitHead": "1c60e4170d77c8e21323016d3f4554f66fa8cefb"
|
|
108
108
|
}
|