forstok-ui-lib 6.18.0 → 6.18.2

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.0",
3
+ "version": "6.18.2",
4
4
  "description": "Forstok UI Components Library",
5
5
  "path": "dist",
6
6
  "main": "dist/index.js",
@@ -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
@@ -456,30 +457,30 @@ export const evScrollTo = (el?: HTMLElement, range?: number) => {
456
457
  }
457
458
  }
458
459
 
459
- export const evHighlight = (ids: number[]) => {
460
+ export const evHighlight = (ids?: string[]|number[]) => {
460
461
  if (!ids?.length) {
461
- return;
462
+ return false
462
463
  }
463
- const timer = Math.ceil(ids.length/10)*10 <= 10 ? 30 : (Math.ceil(ids.length/10)*10 >= 200 ? 200 : Math.ceil(ids.length/10)*10);
464
+ const timer: number = Math.ceil(ids.length/10)*10 <= 10 ? 30 : (Math.ceil(ids.length/10)*10 >= 200 ? 200 : Math.ceil(ids.length/10)*10)
464
465
  setTimeout(() => {
465
- const contentHightlightedEls = document.querySelectorAll('._refMasterTableBodyContent.is-highlighted') as NodeListOf<HTMLElement>;
466
+ const contentHightlightedEls = document.querySelectorAll('._refMasterTableBodyContent.is-highlighted') as NodeListOf<HTMLElement>
466
467
  if (contentHightlightedEls?.length) {
467
468
  for (const contentHightlightedEl of contentHightlightedEls) {
468
- contentHightlightedEl.classList.remove('is-highlighted');
469
+ contentHightlightedEl.classList.remove('is-highlighted')
469
470
  }
470
471
  }
471
- for(let i = 0; i < ids.length; i++) {
472
- const id = ids[i];
473
- const el = document.querySelector(`#row-${id}`) as HTMLElement;
472
+ for (let i = 0; i < ids.length; i++) {
473
+ const id = ids[i]
474
+ const el = document.querySelector(`#row-${id}`) as HTMLElement
474
475
  if (el) {
475
- el.classList.add('is-highlighted');
476
+ el.classList.add('is-highlighted')
476
477
  setTimeout(() => {
477
- el.classList.remove('is-highlighted');
478
+ el.classList.remove('is-highlighted')
478
479
  }, 1888)
479
480
  }
480
- if(i === (ids.length - 1)) {
481
- const firstEl = document.querySelector(`#row-${ids[0]}`) as HTMLElement;
482
- firstEl && evScrollTo(firstEl, 140);
481
+ if (i === (ids.length - 1)) {
482
+ const firstEl = document.querySelector(`#row-${ids[0]}`) as HTMLElement
483
+ firstEl && evScrollTo(firstEl, 140)
483
484
  }
484
485
  }
485
486
  }, timer)
@@ -690,4 +691,139 @@ export const generateAddress = (address?: TObject | null) => {
690
691
  result = firstLine + secondLine + thirdLine + lastLine
691
692
  }
692
693
  return result
694
+ }
695
+
696
+ export const evRemoveActiveButton = () => {
697
+ const nextButtonEl = document.querySelector('#btn-active-red') as HTMLButtonElement
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 }
693
829
  }