forstok-ui-lib 6.18.1 → 6.18.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forstok-ui-lib",
3
- "version": "6.18.1",
3
+ "version": "6.18.3",
4
4
  "description": "Forstok UI Components Library",
5
5
  "path": "dist",
6
6
  "main": "dist/index.js",
@@ -0,0 +1,5 @@
1
+ <svg width="100%" height="100%" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M3.04591 11.603C1.88716 10.4435 1.3074 9.86449 1.09215 9.11224C0.876149 8.35998 1.06065 7.56123 1.42965 5.96447L1.6419 5.04346C1.95166 3.69945 2.10691 3.02745 2.56666 2.56694C3.02641 2.10644 3.69917 1.95194 5.04318 1.64219L5.96418 1.42919C7.56169 1.06093 8.3597 0.876433 9.11195 1.09168C9.86421 1.30769 10.4432 1.88744 11.602 3.0462L12.9745 4.41871C14.9927 6.43622 16 7.44423 16 8.69674C16 9.94999 14.992 10.958 12.9752 12.9748C10.9577 14.9923 9.94971 16.0003 8.69645 16.0003C7.44394 16.0003 6.43519 14.9923 4.41842 12.9755L3.04591 11.603Z" stroke="#086de0"/>
3
+ <path d="M11.0423 11.0434C11.4811 10.6031 11.5403 9.9506 11.1743 9.58384C10.8083 9.21709 10.1551 9.27709 9.71556 9.7166C9.27681 10.1561 8.62355 10.2153 8.25755 9.84935C7.89155 9.48334 7.9508 8.83009 8.3903 8.39134M8.3903 8.39134L8.1248 8.12583M8.3903 8.39134C8.63855 8.14233 8.95505 8.01633 9.2498 8.01858M11.3071 11.3081L11.0416 11.0426C10.7416 11.3434 10.3403 11.4664 9.99981 11.3959" stroke="#086de0" stroke-linecap="round"/>
4
+ <path d="M7.01599 7.21985C7.60178 6.63406 7.60178 5.6843 7.01599 5.09851C6.4302 4.51272 5.48044 4.51272 4.89465 5.09851C4.30886 5.6843 4.30886 6.63406 4.89465 7.21985C5.48044 7.80564 6.4302 7.80564 7.01599 7.21985Z" stroke="#086de0"/>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="100%" height="100%" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M3.04591 11.603C1.88716 10.4435 1.3074 9.86449 1.09215 9.11224C0.876149 8.35998 1.06065 7.56123 1.42965 5.96447L1.6419 5.04346C1.95166 3.69945 2.10691 3.02745 2.56666 2.56694C3.02641 2.10644 3.69917 1.95194 5.04318 1.64219L5.96418 1.42919C7.56169 1.06093 8.3597 0.876433 9.11195 1.09168C9.86421 1.30769 10.4432 1.88744 11.602 3.0462L12.9745 4.41871C14.9927 6.43622 16 7.44423 16 8.69674C16 9.94999 14.992 10.958 12.9752 12.9748C10.9577 14.9923 9.94971 16.0003 8.69645 16.0003C7.44394 16.0003 6.43519 14.9923 4.41842 12.9755L3.04591 11.603Z" stroke="black"/>
3
+ <path d="M11.0423 11.0434C11.4811 10.6031 11.5403 9.9506 11.1743 9.58384C10.8083 9.21709 10.1551 9.27709 9.71556 9.7166C9.27681 10.1561 8.62355 10.2153 8.25755 9.84935C7.89155 9.48334 7.9508 8.83009 8.3903 8.39134M8.3903 8.39134L8.1248 8.12583M8.3903 8.39134C8.63855 8.14233 8.95505 8.01633 9.2498 8.01858M11.3071 11.3081L11.0416 11.0426C10.7416 11.3434 10.3403 11.4664 9.99981 11.3959" stroke="black" stroke-linecap="round"/>
4
+ <path d="M7.01599 7.21985C7.60178 6.63406 7.60178 5.6843 7.01599 5.09851C6.4302 4.51272 5.48044 4.51272 4.89465 5.09851C4.30886 5.6843 4.30886 6.63406 4.89465 7.21985C5.48044 7.80564 6.4302 7.80564 7.01599 7.21985Z" stroke="black"/>
5
+ </svg>
@@ -3,6 +3,7 @@ import { ReactNode } from 'react';
3
3
  import { TMessage, TMessageFunction, TMessageQuestion } from '../../components/message/typed';
4
4
  import { TObject } from '../../typeds/base.typed';
5
5
  import { errorTitle } from './helper';
6
+ import { THeadProps } from '../../typeds';
6
7
 
7
8
  export const getStorage = (name: string, type: string = 'string', defaultVal?: any, loadName: string = 'load') => {
8
9
  let result: any
@@ -695,4 +696,134 @@ export const generateAddress = (address?: TObject | null) => {
695
696
  export const evRemoveActiveButton = () => {
696
697
  const nextButtonEl = document.querySelector('#btn-active-red') as HTMLButtonElement
697
698
  nextButtonEl && nextButtonEl.removeAttribute('id')
699
+ }
700
+
701
+ export const evCheckAllValidationByHeader = (data: any[], headerColumns: THeadProps[]) => {
702
+ let isError = false
703
+ const validByHeader = (key: string, valuex: any, idx?: number, title = null) => {
704
+ const __idx = idx || 0
705
+ const validHeaderKeyFilter = headerColumns.filter(header => (header.key === key && header.validations))
706
+ if (validHeaderKeyFilter.length) {
707
+ const head = validHeaderKeyFilter[__idx]
708
+ const type = head.typeData || 'String'
709
+ const _value = generateValue(type, valuex)
710
+ const valid = validateByApproveJs(head, _value, title || '')
711
+ return valid
712
+ }
713
+ return { approved: true }
714
+ }
715
+
716
+ const newData = []
717
+ for (let x=0; x<data.length; x++) {
718
+ const _data = data[x]
719
+ const keys = Object.keys(_data)
720
+
721
+ for (const key of keys) {
722
+ let _valid: TObject = { approved: true }
723
+ if (Array.isArray(_data[key])) {
724
+ for (let i = 0; i < _data[key].length; i++) {
725
+ const _dataArr = _data[key][i]
726
+ const keysArr = Object.keys(_dataArr)
727
+ for (const keyArr of keysArr) {
728
+ if (Array.isArray(_dataArr[keyArr])) {
729
+ for (let z = 0; z < _dataArr[keyArr].length; z++) {
730
+ const _dataArrArr = _dataArr[keyArr][z]
731
+ const keysArrArr = Object.keys(_dataArrArr)
732
+ for (const keyArrArr of keysArrArr) {
733
+ _valid = validByHeader(keyArrArr, _dataArrArr[keyArrArr])
734
+ if (!_valid.approved) {
735
+ _dataArrArr[`${keyArr}_error`] = _valid.errors[0]
736
+ if (!isError) {
737
+ isError = true
738
+ }
739
+ }
740
+ if (keyArrArr.indexOf('_error') !== -1 && !isError) {
741
+ isError = true
742
+ }
743
+ }
744
+ }
745
+ } else {
746
+ _valid = validByHeader(keyArr, _dataArr[keyArr])
747
+ if (!_valid.approved) {
748
+ _dataArr[`${keyArr}_error`] = _valid.errors[0]
749
+ if (!isError) {
750
+ isError = true
751
+ }
752
+ }
753
+ if (keyArr.indexOf('_error') !== -1 && !isError) {
754
+ isError = true
755
+ }
756
+ }
757
+ }
758
+ }
759
+ } else {
760
+ _valid = validByHeader(key, _data[key])
761
+ if (!_valid.approved) {
762
+ _data[`${key}_error`] = _valid.errors[0]
763
+ if (!isError) {
764
+ isError = true
765
+ }
766
+ }
767
+ if (key.indexOf('_error') !== -1 && !isError) {
768
+ isError = true
769
+ }
770
+ }
771
+ }
772
+ newData.push(_data)
773
+ }
774
+ return { error: isError, data: newData }
775
+ }
776
+
777
+ export const evCheckAllValidationByHeaderWithVariant = (newData: any[], headerColumns: THeadProps[]) => {
778
+ let isError = false
779
+
780
+ const validByHeader = (key: string, valuex: any, idx?: number, content?: any) => {
781
+ const __idx = idx || 0
782
+ const validHeaderKeyFilter = headerColumns.filter(header => (header.key === key && header.validations))
783
+ if (validHeaderKeyFilter.length) {
784
+ const head = validHeaderKeyFilter[__idx]
785
+ const type = head.typeData || 'String'
786
+ const _value = generateValue(type, valuex)
787
+ const valid = validateByApproveJs(head, _value, undefined, evGenerateValueMatch(head.validations, content))
788
+ return valid
789
+ }
790
+ return { approved: true }
791
+ }
792
+
793
+ let _newData = [...newData]
794
+ for (let x=0; x<_newData.length; x++) {
795
+ let _data = _newData[x]
796
+ let keys = Object.keys(_data)
797
+
798
+ for (const key of keys) {
799
+ if (Array.isArray(_data[key]) && _data[key].length && typeof _data[key][0] === 'object') {
800
+ for (let i = 0; i < _data[key].length; i++){
801
+ const _dataArr = _data[key][i]
802
+ const keysArr = Object.keys(_dataArr)
803
+ for (const keyArr of keysArr) {
804
+ if (!Array.isArray(_dataArr[keyArr])) {
805
+ const _key = `${key}-${keyArr}`,
806
+ valid = validByHeader(_key, _dataArr[keyArr], undefined, _dataArr)
807
+ if (!valid.approved) {
808
+ _dataArr[`${keyArr}_error`] = valid.errors[0]
809
+ if (!isError) {
810
+ isError = true
811
+ }
812
+ }
813
+ }
814
+ }
815
+ }
816
+ } else {
817
+ const valid = validByHeader(key, _data[key], undefined, _data)
818
+ if (!valid.approved) {
819
+ _data[`${key}_error`] = valid.errors[0]
820
+ if (!isError) {
821
+ isError = true
822
+ }
823
+ }
824
+ }
825
+ }
826
+ _newData.splice(x, 1, _data)
827
+ }
828
+ return { error: isError, data: _newData }
698
829
  }
@@ -60,6 +60,8 @@ import IconOrderLeftNav from '../../assets/images/navs/left/order.svg'
60
60
  import IconProductActiveLeftNav from '../../assets/images/navs/left/products-active.svg'
61
61
  import IconInventoryActiveLeftNav from '../../assets/images/navs/left/inventory-active.svg'
62
62
  import IconOrderActiveLeftNav from '../../assets/images/navs/left/order-active.svg'
63
+ import IconPriceLeftNav from '../../assets/images/navs/left/price.svg';
64
+ import IconPriceActiveLeftNav from '../../assets/images/navs/left/price-active.svg';
63
65
  import IconWarningChat from '../../assets/images/icons/warning-agent.svg';
64
66
  import IconCheckChat from '../../assets/images/icons/check.svg';
65
67
  import IconCheckChatBlue from '../../assets/images/icons/check-blue.svg';
@@ -527,6 +529,20 @@ const getIconContainerStyled = ({ $mode, $name, $width, onClick }:{ $mode?: stri
527
529
  }
528
530
  `
529
531
  break;
532
+ case 'price-left-nav':
533
+ style += `
534
+ &:before {
535
+ content: url(${IconPriceLeftNav});
536
+ }
537
+ `
538
+ break;
539
+ case 'price-active-left-nav':
540
+ style += `
541
+ &:before {
542
+ content: url(${IconPriceActiveLeftNav});
543
+ }
544
+ `
545
+ break;
530
546
  case 'warning-chat':
531
547
  style += `
532
548
  &:before {