@autobest-ui/components 1.1.1 → 1.2.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.
Files changed (146) hide show
  1. package/README.md +10 -10
  2. package/esm/accordion/__stories__/style.scss +58 -58
  3. package/esm/affix/__stories__/style.scss +13 -13
  4. package/esm/affix/style/index.scss +34 -34
  5. package/esm/base.scss +42 -42
  6. package/esm/carousel/__stories__/style.scss +41 -41
  7. package/esm/carousel/index.d.ts +21 -13
  8. package/esm/carousel/index.js +77 -44
  9. package/esm/carousel/style/index.css +1 -1
  10. package/esm/carousel/style/index.scss +43 -37
  11. package/esm/checkbox/style/index.scss +117 -117
  12. package/esm/collapse/__stories__/style.scss +18 -18
  13. package/esm/collapse/style/index.scss +42 -42
  14. package/esm/confirm/style/index.scss +44 -44
  15. package/esm/date-picker/calendar/grid/index.scss +85 -85
  16. package/esm/date-picker/calendar/index.scss +57 -57
  17. package/esm/date-picker/style/index.scss +18 -18
  18. package/esm/drawer/style/index.scss +44 -44
  19. package/esm/ellipsis/style/index.scss +35 -35
  20. package/esm/guide/__stories__/style.scss +13 -13
  21. package/esm/guide/style/index.scss +17 -17
  22. package/esm/icon/__stories__/style.scss +39 -39
  23. package/esm/icon/style/index.scss +6 -6
  24. package/esm/index.d.ts +1 -1
  25. package/esm/input-number/style/index.scss +86 -86
  26. package/esm/lazy-image/__stories__/style.scss +9 -9
  27. package/esm/lazy-image/style/index.scss +24 -24
  28. package/esm/link-list/style/index.scss +125 -125
  29. package/esm/loading/style/index.scss +30 -30
  30. package/esm/loading-bar/style/index.scss +62 -62
  31. package/esm/loading-container/__stories__/style.scss +5 -5
  32. package/esm/loading-container/style/index.scss +27 -27
  33. package/esm/loading-icon/style/index.scss +23 -23
  34. package/esm/mask/style/index.scss +34 -34
  35. package/esm/message/style/index.scss +70 -70
  36. package/esm/modal/style/index.scss +112 -112
  37. package/esm/move/__stories__/style.scss +6 -6
  38. package/esm/move/style/index.scss +7 -7
  39. package/esm/popover/__stories__/style.scss +15 -15
  40. package/esm/popover/style/index.scss +59 -59
  41. package/esm/select/__stories__/style.scss +8 -8
  42. package/esm/select/style/index.scss +126 -126
  43. package/esm/show-more/style/index.scss +22 -22
  44. package/esm/skeleton/__stories__/style.scss +2 -2
  45. package/esm/skeleton/style/index.scss +26 -26
  46. package/esm/style.css +15 -15
  47. package/esm/table/__stories__/style.css +1 -1
  48. package/esm/table/__stories__/style.scss +33 -2
  49. package/esm/table/body/BodyRow.d.ts +13 -0
  50. package/esm/table/body/BodyRow.js +94 -0
  51. package/esm/table/body/CheckIcon.d.ts +16 -0
  52. package/esm/table/body/CheckIcon.js +35 -0
  53. package/esm/table/body/index.d.ts +24 -0
  54. package/esm/table/body/index.js +61 -0
  55. package/esm/table/header/CheckIcon.d.ts +13 -0
  56. package/esm/table/header/CheckIcon.js +37 -0
  57. package/esm/table/header/HeaderCell.d.ts +18 -0
  58. package/esm/table/{HeaderCell.js → header/HeaderCell.js} +11 -4
  59. package/esm/table/header/HeaderRow.d.ts +16 -0
  60. package/esm/table/header/HeaderRow.js +76 -0
  61. package/esm/table/index.d.ts +52 -27
  62. package/esm/table/index.js +178 -155
  63. package/esm/table/interface.d.ts +16 -3
  64. package/esm/table/style/index.css +1 -1
  65. package/esm/table/style/index.scss +51 -70
  66. package/esm/tabs/__stories__/style.scss +8 -8
  67. package/esm/tabs/style/index.css +1 -1
  68. package/esm/tabs/style/index.scss +62 -62
  69. package/esm/tooltip/style/index.scss +61 -61
  70. package/esm/trigger/style/index.scss +79 -79
  71. package/lib/accordion/__stories__/style.scss +58 -58
  72. package/lib/affix/__stories__/style.scss +13 -13
  73. package/lib/affix/style/index.scss +34 -34
  74. package/lib/base.scss +42 -42
  75. package/lib/carousel/__stories__/style.scss +41 -41
  76. package/lib/carousel/index.d.ts +21 -13
  77. package/lib/carousel/index.js +80 -45
  78. package/lib/carousel/style/index.css +1 -1
  79. package/lib/carousel/style/index.scss +43 -37
  80. package/lib/checkbox/style/index.scss +117 -117
  81. package/lib/collapse/__stories__/style.scss +18 -18
  82. package/lib/collapse/style/index.scss +42 -42
  83. package/lib/confirm/style/index.scss +44 -44
  84. package/lib/date-picker/calendar/grid/index.scss +85 -85
  85. package/lib/date-picker/calendar/index.scss +57 -57
  86. package/lib/date-picker/style/index.scss +18 -18
  87. package/lib/drawer/style/index.scss +44 -44
  88. package/lib/ellipsis/style/index.scss +35 -35
  89. package/lib/guide/__stories__/style.scss +13 -13
  90. package/lib/guide/style/index.scss +17 -17
  91. package/lib/icon/__stories__/style.scss +39 -39
  92. package/lib/icon/style/index.scss +6 -6
  93. package/lib/index.d.ts +1 -1
  94. package/lib/input-number/style/index.scss +86 -86
  95. package/lib/lazy-image/__stories__/style.scss +9 -9
  96. package/lib/lazy-image/style/index.scss +24 -24
  97. package/lib/link-list/style/index.scss +125 -125
  98. package/lib/loading/style/index.scss +30 -30
  99. package/lib/loading-bar/style/index.scss +62 -62
  100. package/lib/loading-container/__stories__/style.scss +5 -5
  101. package/lib/loading-container/style/index.scss +27 -27
  102. package/lib/loading-icon/style/index.scss +23 -23
  103. package/lib/mask/style/index.scss +34 -34
  104. package/lib/message/style/index.scss +70 -70
  105. package/lib/modal/style/index.scss +112 -112
  106. package/lib/move/__stories__/style.scss +6 -6
  107. package/lib/move/style/index.scss +7 -7
  108. package/lib/popover/__stories__/style.scss +15 -15
  109. package/lib/popover/style/index.scss +59 -59
  110. package/lib/select/__stories__/style.scss +8 -8
  111. package/lib/select/style/index.scss +126 -126
  112. package/lib/show-more/style/index.scss +22 -22
  113. package/lib/skeleton/__stories__/style.scss +2 -2
  114. package/lib/skeleton/style/index.scss +26 -26
  115. package/lib/style.css +15 -15
  116. package/lib/table/__stories__/style.css +1 -1
  117. package/lib/table/__stories__/style.scss +33 -2
  118. package/lib/table/body/BodyRow.d.ts +13 -0
  119. package/lib/table/body/BodyRow.js +108 -0
  120. package/lib/table/body/CheckIcon.d.ts +16 -0
  121. package/lib/table/body/CheckIcon.js +47 -0
  122. package/lib/table/body/index.d.ts +24 -0
  123. package/lib/table/body/index.js +73 -0
  124. package/lib/table/header/CheckIcon.d.ts +13 -0
  125. package/lib/table/header/CheckIcon.js +49 -0
  126. package/lib/table/header/HeaderCell.d.ts +18 -0
  127. package/lib/table/{HeaderCell.js → header/HeaderCell.js} +11 -4
  128. package/lib/table/header/HeaderRow.d.ts +16 -0
  129. package/lib/table/header/HeaderRow.js +89 -0
  130. package/lib/table/index.d.ts +52 -27
  131. package/lib/table/index.js +177 -155
  132. package/lib/table/interface.d.ts +16 -3
  133. package/lib/table/style/index.css +1 -1
  134. package/lib/table/style/index.scss +51 -70
  135. package/lib/tabs/__stories__/style.scss +8 -8
  136. package/lib/tabs/style/index.css +1 -1
  137. package/lib/tabs/style/index.scss +62 -62
  138. package/lib/tooltip/style/index.scss +61 -61
  139. package/lib/trigger/style/index.scss +79 -79
  140. package/package.json +2 -2
  141. package/esm/table/BodyCell.d.ts +0 -6
  142. package/esm/table/BodyCell.js +0 -12
  143. package/esm/table/HeaderCell.d.ts +0 -13
  144. package/lib/table/BodyCell.d.ts +0 -6
  145. package/lib/table/BodyCell.js +0 -22
  146. package/lib/table/HeaderCell.d.ts +0 -13
@@ -1,23 +1,23 @@
1
- $namespace: ab-show-more;
2
-
3
- .#{$namespace} {
4
- &-ellipsis {
5
- white-space: nowrap;
6
- }
7
-
8
- &-btn {
9
- color: #4068b0;
10
- cursor: pointer;
11
- }
12
-
13
- &-text, &-hidden {
14
- visibility: hidden;
15
- height: 0;
16
- display: block;
17
- overflow: hidden;
18
- }
19
-
20
- &-hidden {
21
- width: 0;
22
- }
1
+ $namespace: ab-show-more;
2
+
3
+ .#{$namespace} {
4
+ &-ellipsis {
5
+ white-space: nowrap;
6
+ }
7
+
8
+ &-btn {
9
+ color: #4068b0;
10
+ cursor: pointer;
11
+ }
12
+
13
+ &-text, &-hidden {
14
+ visibility: hidden;
15
+ height: 0;
16
+ display: block;
17
+ overflow: hidden;
18
+ }
19
+
20
+ &-hidden {
21
+ width: 0;
22
+ }
23
23
  }
@@ -1,3 +1,3 @@
1
- .skeleton-demo {
2
- padding: .2rem;
1
+ .skeleton-demo {
2
+ padding: .2rem;
3
3
  }
@@ -1,27 +1,27 @@
1
- $namespace: ab-skeleton;
2
-
3
- .#{$namespace} {
4
- overflow: hidden;
5
-
6
- &-item {
7
- background: #f2f2f2;
8
- overflow: hidden;
9
- }
10
-
11
- &-active {
12
- .#{$namespace}-item {
13
- background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%);
14
- background-size: 400% 100%;
15
- animation: ab-skeleton-loading 1.4s ease infinite;
16
- }
17
- }
18
-
19
- @keyframes ab-skeleton-loading {
20
- 0% {
21
- background-position: 100% 50%;
22
- }
23
- 100% {
24
- background-position: 0 50%;
25
- }
26
- }
1
+ $namespace: ab-skeleton;
2
+
3
+ .#{$namespace} {
4
+ overflow: hidden;
5
+
6
+ &-item {
7
+ background: #f2f2f2;
8
+ overflow: hidden;
9
+ }
10
+
11
+ &-active {
12
+ .#{$namespace}-item {
13
+ background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%);
14
+ background-size: 400% 100%;
15
+ animation: ab-skeleton-loading 1.4s ease infinite;
16
+ }
17
+ }
18
+
19
+ @keyframes ab-skeleton-loading {
20
+ 0% {
21
+ background-position: 100% 50%;
22
+ }
23
+ 100% {
24
+ background-position: 0 50%;
25
+ }
26
+ }
27
27
  }
package/esm/style.css CHANGED
@@ -1,9 +1,9 @@
1
1
  a,abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,input,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,textarea,tfoot,th,thead,time,tr,ul,var,video{box-sizing:border-box}html{font-size:100px;font-family:Arial,sans-serif;touch-action:manipulation;-ms-touch-action:manipulation}@media only screen and (max-width:767px){html{font-size:100px}}body{font-size:.12rem;color:#333;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{text-decoration:none}input{outline:0}li,ul{padding:0;margin:0;list-style:none}
2
2
  .demo-accordion{margin:.5rem auto;width:5rem;display:flex;justify-content:center;flex-direction:column}.accordion-demo-wrap{width:3rem}.accordion-demo-text{height:.3rem}.accordion-demo-title{display:block;padding:.1rem 0;background-color:#b0b0b0;color:#f7f7f7;cursor:pointer}.accordion-demo-a-content>li{padding:.1rem 0;border-top:dotted 1px grey}.accordion-demo-a-content>li:first-child{border:none;cursor:pointer}.accordion-demo-a-content>li>a{color:#333}.accordion-demo-d-content{padding-left:.1rem}.accordion-demo-d-content .ab-collapse{padding-left:.2rem}.accordion-demo-d-title{background-color:grey;display:block;padding:.1rem 0;color:#f7f7f7;cursor:pointer}
3
- .ab-affix,.ab-affix-custom{z-index:100}.ab-affix-custom{position:fixed;transition:transform .2s cubic-bezier(.7,.3,.1,1)}.ab-affix-fade-appear,.ab-affix-fade-enter{transform:translate(0,-100%)}.ab-affix-fade-appear-active,.ab-affix-fade-enter-active{transform:translate(0,0)}.ab-affix-fade-exit{transform:translate(0,0)}.ab-affix-fade-exit-active{transform:translate(0,-100%)}.ab-affix-fade-exit-done{display:none}
4
3
  .affix-demo{height:200vh;overflow:auto;width:1000px;max-width:100%;margin:auto}.affix-demo .affix-wrap{height:500px;width:100%;background-color:#d1d5db}
5
- .ab-carousel{position:relative}.ab-carousel-content{position:relative;display:block;height:100%;width:100%;margin:0;padding:0;overflow:hidden}.ab-carousel-list{user-select:none;position:relative;top:0;left:0;display:block;overflow:hidden}.ab-carousel-slider{outline:0;overflow:hidden;float:left;display:none}.ab-carousel.ab-carousel-init .ab-carousel-slider{display:block}
4
+ .ab-affix,.ab-affix-custom{z-index:100}.ab-affix-custom{position:fixed;transition:transform .2s cubic-bezier(.7,.3,.1,1)}.ab-affix-fade-appear,.ab-affix-fade-enter{transform:translate(0,-100%)}.ab-affix-fade-appear-active,.ab-affix-fade-enter-active{transform:translate(0,0)}.ab-affix-fade-exit{transform:translate(0,0)}.ab-affix-fade-exit-active{transform:translate(0,-100%)}.ab-affix-fade-exit-done{display:none}
6
5
  .demo-carousel{margin:auto;position:relative}.demo-carousel p{display:flex;align-items:center;justify-content:center;font-size:32px;margin:0;color:#f3f4f6;height:225px;border-radius:3px}.ab-carousel{position:relative}.button-next,.button-prev{position:absolute;box-sizing:border-box;cursor:pointer;font-size:32px;top:50%;margin-top:-15px;width:30px;height:30px;color:#f3f4f6}.button-prev{left:5px;top:50%}.button-next{right:5px;top:50%}
6
+ .ab-carousel{position:relative;height:100%}.ab-carousel-content{position:relative;display:block;height:100%;width:100%;margin:0;padding:0;overflow:hidden}.ab-carousel-list{user-select:none;position:relative;top:0;left:0;display:block;overflow:hidden}.ab-carousel-slider{outline:0;overflow:hidden;display:none}.ab-carousel.ab-carousel-init .ab-carousel-slider{display:block}.ab-carousel.ab-carousel-hr .ab-carousel-slider{float:left}
7
7
  .ab-checkbox{display:inline-block;position:relative;font-size:0;cursor:pointer}.ab-checkbox-input{position:absolute;opacity:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:2}.ab-checkbox-inner{display:inline-block;position:relative;width:.16rem;height:.16rem;transition:all .3s;border:.02rem solid #b0b0b0;border-radius:.02rem;background-color:#fff}.ab-checkbox-icon{visibility:hidden;position:absolute;width:.06rem;height:.1rem;left:20%;top:40%;transform:rotate(45deg) scale(0) translate(-50%,-50%);transition:all .2s;border:.02rem solid #e84040;border-top:none;border-left:none}.ab-checkbox.ab-checkbox-checked .ab-checkbox-icon{visibility:visible;transform:rotate(45deg) scale(1) translate(-50%,-50%)}.ab-checkbox.ab-checkbox-disabled{cursor:not-allowed;color:rgba(0,0,0,.25)}.ab-checkbox.ab-checkbox-disabled .ab-checkbox-inner{border-color:#f0f0f0!important;background-color:#f5f5f5!important}.ab-checkbox.ab-checkbox-disabled .ab-checkbox-icon{border-color:#cecece}.ab-checkbox.ab-checkbox-disabled .ab-checkbox-content{text-decoration:none!important}.ab-checkbox-wrap{display:inline-block;position:relative;cursor:pointer}.ab-checkbox-wrap .ab-checkbox{position:absolute;transform:translateY(-50%);top:50%;left:0}.ab-checkbox-wrap:hover .ab-checkbox-content{text-decoration:underline}.ab-checkbox-content{padding-left:.24rem;display:inline-block}.ab-checkbox-wrap.ab-checkbox-reverse .ab-checkbox{left:auto;right:0}.ab-checkbox-wrap.ab-checkbox-reverse .ab-checkbox-content{padding-left:0;padding-right:.24rem}.ab-checkbox-wrap.ab-checkbox-disabled{cursor:not-allowed;color:rgba(0,0,0,.25)}.ab-checkbox-wrap.ab-checkbox-disabled .ab-checkbox-content{text-decoration:none!important}
8
8
  .demo-collapse{min-height:200px;padding:.2rem}.title-wrap{width:1rem;height:.4rem;background-color:#3b82f6;color:#f3f4f6}.title-wrap>strong{display:block;width:1rem;height:.2rem;background-color:#10b981;cursor:pointer}
9
9
  .ab-collapse{transform-origin:left top;transition:opacity .2s,height .2s}.ab-collapse-hidden{height:0;overflow:hidden}.ab-collapse-fade-enter{opacity:.8;overflow:hidden}.ab-collapse-fade-enter-active{opacity:1;overflow:hidden}.ab-collapse-fade-enter-done{opacity:1;overflow:initial}.ab-collapse-fade-exit{opacity:1;overflow:hidden}.ab-collapse-fade-exit-active{opacity:.8;overflow:hidden}.ab-collapse-fade-exit-done{display:none;overflow:initial}
@@ -12,37 +12,37 @@ a,abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd
12
12
  .ab-date-picker{position:relative}.ab-date-picker-input{outline:0;font-size:.14rem;padding:.04rem;width:1.44rem}.ab-date-picker-icon{position:absolute;right:.05rem;top:50%;transform:translateY(-50%)}
13
13
  .ab-drawer{position:fixed;z-index:101;background-color:#fff;overflow:auto;transition:transform .3s cubic-bezier(.7,.3,.1,1)}.ab-drawer-times{position:absolute;right:.17rem;font-size:.16rem;color:#b0b0b0;cursor:pointer;top:.11rem}.ab-drawer-times:hover{color:#333}.ab-drawer-tf-top{transform:translate(0,-100%)}.ab-drawer-tf-bottom{transform:translate(0,100%)}.ab-drawer-tf-left{transform:translate(-100%,0)}.ab-drawer-tf-right{transform:translate(100%,0)}.ab-drawer-hidden.ab-drawer,.ab-drawer-hidden.ab-mask{display:none}
14
14
  .ab-ellipsis{overflow:hidden;display:block;display:-webkit-box;-webkit-box-orient:vertical}.ab-ellipsis.ab-ellipsis-line1{-webkit-line-clamp:1}.ab-ellipsis.ab-ellipsis-line2{-webkit-line-clamp:2}.ab-ellipsis.ab-ellipsis-line3{-webkit-line-clamp:3}.ab-ellipsis.ab-ellipsis-line4{-webkit-line-clamp:4}.ab-ellipsis.ab-ellipsis-line5{-webkit-line-clamp:5}@media only screen and (max-width:767px){.ab-ellipsis.ab-ellipsis-line1{-webkit-line-clamp:unset}.ab-ellipsis.ab-ellipsis-line2{-webkit-line-clamp:unset}.ab-ellipsis.ab-ellipsis-line3{-webkit-line-clamp:unset}.ab-ellipsis.ab-ellipsis-line4{-webkit-line-clamp:unset}.ab-ellipsis.ab-ellipsis-line5{-webkit-line-clamp:unset}.ab-ellipsis.ab-ellipsis-m-line1{-webkit-line-clamp:1}.ab-ellipsis.ab-ellipsis-m-line2{-webkit-line-clamp:2}.ab-ellipsis.ab-ellipsis-m-line3{-webkit-line-clamp:3}.ab-ellipsis.ab-ellipsis-m-line4{-webkit-line-clamp:4}.ab-ellipsis.ab-ellipsis-m-line5{-webkit-line-clamp:5}}
15
- .ab-guide-mask.ab-mask{background-color:rgba(0,0,0,.7);z-index:4}.ab-guide-icon{position:absolute;z-index:5}.ab-guide-content{position:relative;z-index:6}
16
15
  .guide-demo .input{width:3rem}.guide-demo .btn{display:block;margin-top:.2rem;width:.8rem;height:.3rem;font-size:.16rem;text-align:center}
17
- .ab-icon,.ab-icon div,.ab-icon span,.ab-icon svg{display:block}
16
+ .ab-guide-mask.ab-mask{background-color:rgba(0,0,0,.7);z-index:4}.ab-guide-icon{position:absolute;z-index:5}.ab-guide-content{position:relative;z-index:6}
18
17
  .demo-icon-list{padding:.2rem .1rem;font-size:.12rem;display:flex;width:100%;flex-wrap:wrap}.demo-icon-list>li{padding:.1rem;border:1px solid #e0e0e0;margin:.05rem;display:flex;flex-direction:column;justify-content:center;align-items:center;background-color:#f3f4f6;min-width:1.2rem;min-height:1.5rem}.demo-icon-list>li svg{max-width:.5rem;height:.5rem}.demo-icon-list>li p{padding:0 5px;text-align:center;width:1rem;word-break:break-all}.demo-icon-list>li:hover{background-color:#e5e7eb}.demo-icon-list .demo-icon-name{padding-top:.15rem}
18
+ .ab-icon,.ab-icon div,.ab-icon span,.ab-icon svg{display:block}
19
19
  .ab-input-number{padding:.06rem .07rem;-webkit-appearance:none;outline:0;width:100%;border:1px solid #ccc;border-radius:2px;resize:none;font-size:.12rem;transition:all .3s;position:relative;background-color:transparent;z-index:2}.ab-input-number:focus{box-shadow:0 0 4px rgba(52,143,238,.8);border-color:rgba(52,143,238,.8)}.ab-input-number-wrap{position:relative;background-color:#fff;display:inline-block}.ab-input-number-button-wrap{position:absolute;user-select:none;top:50%;transform:translateY(-50%);right:.02rem}.ab-input-number-button{position:relative;width:.16rem;height:.1rem;overflow:hidden;background-color:#f1f1f1}.ab-input-number-button.ab-input-number-hover{background-color:#d0d0d0}.ab-input-number-button.ab-input-number-active{background-color:#787878}.ab-input-number-button.ab-input-number-active .ab-input-number-add{border-bottom-color:#fff}.ab-input-number-button.ab-input-number-active .ab-input-number-sub{border-top-color:#fff}.ab-input-number-button:first-child{margin-bottom:.02rem}.ab-input-number-add{position:absolute;top:-.01rem;left:.04rem;display:block;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#505050;border-left-color:transparent;border-width:.04rem;border-style:solid;width:0;height:0}.ab-input-number-sub{display:block;margin:.03rem 0 0 .04rem;border-top-color:#505050;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;border-width:.04rem;border-style:solid;width:0;height:0}
20
- .ab-lazy-image{transition:opacity .5s}.ab-lazy-image-loading{background:#f2f2f2;overflow:hidden}.ab-lazy-image-loading.ab-lazy-image-active{background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;animation:ab-skeleton-loading 1.4s ease infinite}@keyframes ab-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}
21
- .lazy-image-demo{margin-top:200vh}.lazy-image-demo img{display:block;width:400px;margin:.2rem}
22
20
  .ab-link-list-title{font-size:.16rem;margin:0 0;padding:0 0 .12rem 0;display:flex;justify-content:space-between;align-items:center}.ab-link-list-icon{display:none}.ab-link-list-content{flex-wrap:wrap;width:auto;margin-right:-.15rem}.ab-link-list-content.ab-link-list-col2>a,.ab-link-list-content.ab-link-list-col2>span{min-width:calc(100% / 2 - .15rem);max-width:calc(100% / 2 - .15rem)}.ab-link-list-content.ab-link-list-col4>a,.ab-link-list-content.ab-link-list-col4>span{min-width:calc(100% / 4 - .15rem);max-width:calc(100% / 4 - .15rem)}.ab-link-list-content.ab-link-list-col5>a,.ab-link-list-content.ab-link-list-col5>span{min-width:calc(100% / 5 - .15rem);max-width:calc(100% / 5 - .15rem)}.ab-link-list-content.ab-link-list-col6>a,.ab-link-list-content.ab-link-list-col6>span{min-width:calc(100% / 6 - .15rem);max-width:calc(100% / 6 - .15rem)}.ab-link-list-content.ab-link-list-col8>a,.ab-link-list-content.ab-link-list-col8>span{min-width:calc(100% / 8 - .15rem);max-width:calc(100% / 8 - .15rem)}.ab-link-list-content>a,.ab-link-list-content>span{cursor:pointer;border:.5px solid #d0d0d0;margin-bottom:8px;display:inline-block;justify-content:space-between;align-items:center;width:100%;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.085rem .15rem .085rem .12rem;color:#333;margin-right:.15rem}.ab-link-list-content>a:after,.ab-link-list-content>span:after{content:'>';position:absolute;right:.1rem;top:50%;transform:translateY(-50%);color:grey;font-size:.12rem}.ab-link-list-content>a:hover,.ab-link-list-content>span:hover{text-decoration:underline;color:#f97601}.ab-link-list-content>.ab-link-list-hidden{display:none}.ab-link-list-wrap-popover.ab-popover-wrap{max-width:3.5rem;min-width:3rem}.ab-link-list-sub-title{display:block;padding-bottom:.06rem;font-size:.12rem}.ab-link-list-sub-link{text-decoration:underline;color:#333;font-size:.12rem;padding:0 .05rem .05rem 0;display:inline-block}@media only screen and (max-width:767px){.ab-link-list-divider{border-bottom:1px solid #d0d0d0}.ab-link-list-body{height:0;width:0;overflow:hidden}.ab-link-list-body.ab-link-list-active{height:auto;width:auto}.ab-link-list-content>a,.ab-link-list-content>span{min-width:calc(50% - .15rem)!important;max-width:calc(50% - .15rem)!important}.ab-link-list-icon{font-weight:700;font-size:.22rem;cursor:pointer;width:.2rem;height:.2rem;display:flex;align-items:center;justify-content:center}}
21
+ .lazy-image-demo{margin-top:200vh}.lazy-image-demo img{display:block;width:400px;margin:.2rem}
22
+ .ab-lazy-image{transition:opacity .5s}.ab-lazy-image-loading{background:#f2f2f2;overflow:hidden}.ab-lazy-image-loading.ab-lazy-image-active{background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;animation:ab-skeleton-loading 1.4s ease infinite}@keyframes ab-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}
23
23
  .ab-loading-wrap{position:fixed;top:0;left:0;z-index:9999;background-color:rgba(255,255,255,.7);height:100%;width:100%}.ab-loading-wrap .ab-loading-content{position:absolute;left:50%;top:50%;display:block;width:.31rem;height:.31rem;transform:translate3d(-50%,-50%,0)}.ab-loading-wrap.ab-loading-rect-loading{background-color:rgba(0,0,0,.7)}.ab-loading-wrap.ab-loading-rect-loading .ab-loading-content{top:10%;width:1.6rem;height:.24rem}
24
24
  .ab-loading-bar{position:fixed;top:0;left:0;margin-bottom:-3px;height:3px;width:100%;z-index:999}@keyframes movingBar{0%{left:50%;right:50%}99.9%{left:0;right:0}100%{left:50%;right:50%}}@keyframes changeBar{0%{background-color:#0aa770}33.3%{background-color:#0aa770}33.33%{background-color:red}66.6%{background-color:#f987d6}66.66%{background-color:#f987d6}99.9%{background-color:#00bcd4}}.ab-loading-bar-bar{position:absolute;height:0;width:100%;text-indent:-9999px;background-color:#0aa770;animation:changeBar 2.25s infinite}.ab-loading-bar-bar:before{content:"";height:3px;position:absolute;left:50%;right:50%;background-color:inherit;animation:movingBar .75s infinite}
25
- .ab-loading-container{position:relative}.ab-loading-container-active{user-select:none;pointer-events:none}.ab-loading-container-icon-box{position:absolute;background-color:rgba(255,255,255,.7);top:0;left:0;z-index:4;display:block;width:100%;height:100%}.ab-loading-container-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0)}
26
25
  .loading-container-demo{margin:1rem;width:2rem;height:2rem;background:#b0b0b0}
26
+ .ab-loading-container{position:relative}.ab-loading-container-active{user-select:none;pointer-events:none}.ab-loading-container-icon-box{position:absolute;background-color:rgba(255,255,255,.7);top:0;left:0;z-index:4;display:block;width:100%;height:100%}.ab-loading-container-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0)}
27
27
  .ab-svg-loading{display:inline-block}.ab-svg-loading-icon{display:block;width:.31rem;height:.31rem;animation:loading 1s infinite linear reverse}@keyframes loading{0%{transform:rotate(0)}50%{transform:rotate(180deg)}100%{transform:rotate(360deg)}}
28
28
  .ab-mask{position:fixed;top:0;left:0;z-index:101;width:100%;height:100%;background-color:rgba(0,0,0,.45);transition:opacity .4s cubic-bezier(.7,.3,.1,1)}.ab-mask-fade-appear,.ab-mask-fade-enter{opacity:0}.ab-mask-fade-appear-active,.ab-mask-fade-enter-active,.ab-mask-fade-enter-done{opacity:1}.ab-mask-fade-exit{opacity:1}.ab-mask-fade-exit-active{opacity:0}.ab-mask-fade-exit-done{display:none}
29
29
  .ab-message-container{position:fixed;left:0;bottom:0}.ab-message-content{display:flex;align-items:center;justify-content:space-between;max-width:calc(100vw - .3rem);border-radius:.02rem;margin:.08rem .15rem;padding:.08rem;background-color:#333;color:#fff;box-shadow:0 .04rem .08rem #00000059;transition:opacity .3s}.ab-message-close{display:flex;align-items:center;justify-content:center;cursor:pointer;width:.2rem;height:.2rem;font-size:.2rem;margin-left:.08rem;color:#b0b0b0}.ab-message-close:hover{color:#fff}.ab-message-fade-appear,.ab-message-fade-enter{opacity:0}.ab-message-fade-appear-active,.ab-message-fade-enter-active,.ab-message-fade-enter-done{opacity:1}.ab-message-fade-exit{opacity:1}.ab-message-fade-exit-active{opacity:0}.ab-message-fade-exit-done{display:none}@media only screen and (max-width:767px){.ab-message-content{width:calc(100vw - .3rem);margin:.08rem .15rem}}
30
30
  .ab-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:101;overflow:auto;outline:0}.ab-modal.ab-modal-center{text-align:center}.ab-modal.ab-modal-center:before{display:inline-block;width:0;height:100%;vertical-align:middle;content:''}.ab-modal.ab-modal-center .ab-modal-content{top:0;text-align:left;display:inline-block;vertical-align:middle}.ab-modal-content{position:relative;background-color:#fff;max-width:calc(100vw - .3rem);margin-left:auto;margin-right:auto;overflow:auto;-webkit-overflow-scrolling:touch;transition:transform .3s,opacity .3s cubic-bezier(.7,.3,.1,1);z-index:101}.ab-modal-title{position:relative;width:100%}.ab-modal-title .ab-modal-times{top:50%;transform:translateY(-50%)}.ab-modal-times{position:absolute;top:.12rem;right:.12rem;font-size:.15rem;color:#b0b0b0;cursor:pointer}.ab-modal-times svg{display:block}.ab-modal-times:hover{color:#333}.ab-modal-hidden{display:none}@media only screen and (max-width:767px){.ab-modal-content{width:calc(100vw - .3rem)}}.ab-modal-fade-appear,.ab-modal-fade-enter{transform:translate3d(0,-30px,0);opacity:0}.ab-modal-fade-appear-active,.ab-modal-fade-enter-active{transform:translateZ(0);opacity:1}.ab-modal-fade-enter-done{transform:translateZ(0);opacity:1}.ab-modal-fade-exit{transform:translateZ(0);opacity:1}.ab-modal-fade-exit-active{transform:translate3d(0,-30px,0);opacity:0}.ab-modal-fade-exit-done{display:none}
31
- .ab-move{cursor:move;visibility:hidden;transform-origin:center center}
32
31
  .demo-move{margin:.2rem auto;width:500px;height:500px;border:5px solid #ccc}
33
- .ab-popover-wrap{background-color:#fff;background-clip:padding-box;box-shadow:0 2px 8px rgba(0,0,0,.15);padding:.08rem .11rem .05rem;min-width:210px;border-radius:4px}.ab-popover-inner{position:relative;width:100%;overflow:hidden;font-size:.12rem}.ab-popover-inner-expand{padding-right:.1rem}.ab-popover-arrow{position:absolute;display:block;width:8px;height:8px;border-top-color:transparent;border-left-color:transparent;border-style:solid;background-color:#fff;border-right-color:#fff;border-bottom-color:#fff;border-width:4px;box-shadow:3px 3px 7px rgba(0,0,0,.07)}.ab-popover-close{position:absolute;right:.02rem;top:.05rem;cursor:pointer;padding:0 .05rem;color:#bfbfbf;font-size:.2rem;line-height:1;z-index:2}.ab-popover-close:hover{color:#4a4a4a}@media only screen and (max-width:767px){.ab-popover-wrap{width:calc(100% - .3rem)}}
32
+ .ab-move{cursor:move;visibility:hidden;transform-origin:center center}
34
33
  .popover-demo{padding:80px 60px;width:465px;height:400px;margin:auto;position:relative}.popover-demo button{width:100px;display:inline-block}.popover-demo-tip{height:60px;width:100px}
34
+ .ab-popover-wrap{background-color:#fff;background-clip:padding-box;box-shadow:0 2px 8px rgba(0,0,0,.15);padding:.08rem .11rem .05rem;min-width:210px;border-radius:4px}.ab-popover-inner{position:relative;width:100%;overflow:hidden;font-size:.12rem}.ab-popover-inner-expand{padding-right:.1rem}.ab-popover-arrow{position:absolute;display:block;width:8px;height:8px;border-top-color:transparent;border-left-color:transparent;border-style:solid;background-color:#fff;border-right-color:#fff;border-bottom-color:#fff;border-width:4px;box-shadow:3px 3px 7px rgba(0,0,0,.07)}.ab-popover-close{position:absolute;right:.02rem;top:.05rem;cursor:pointer;padding:0 .05rem;color:#bfbfbf;font-size:.2rem;line-height:1;z-index:2}.ab-popover-close:hover{color:#4a4a4a}@media only screen and (max-width:767px){.ab-popover-wrap{width:calc(100% - .3rem)}}
35
35
 
36
-
37
- .ab-select-wrap{min-width:177px;background-color:#fff;background-clip:padding-box;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.15)}.ab-select-bottom,.ab-select-content,.ab-select-title{display:flex}.ab-select-title{padding:.09rem 0;background-color:transparent;cursor:context-menu;border-bottom:1px solid #d7d7d7;font-weight:700;color:#606060;font-size:.12rem;margin:0 .1rem}.ab-select-col{font-size:.12rem;padding-right:.07rem;flex:auto}.ab-select-col:last-child{padding-right:0}.ab-select-col>li{padding:.08rem .11rem;cursor:pointer}.ab-select-col>li:hover{background-color:#eee}.ab-select-col>li.ab-select-active{background-color:#e6f7ff}.ab-select-col>li.ab-select-unselect{background-color:transparent;cursor:context-menu}.ab-select-input-group{position:relative;overflow:hidden}.ab-select-input-control{-webkit-appearance:none;outline:0;user-select:none;width:100%;border:1px solid #ccc;border-radius:2px;resize:none;transition:all .2s;background-color:#fff;text-overflow:ellipsis;padding:.08rem .28rem .07rem .07rem;font-size:.14rem;white-space:nowrap;overflow:hidden;max-width:100%;cursor:pointer}.ab-select-input-control.ab-select-focused{box-shadow:0 0 4px rgba(52,143,238,.8);border-color:rgba(52,143,238,.8)}.ab-select-input-control.ab-select-empty{color:#888}.ab-select-input-control.error{background-color:#fffacd}.ab-select-icon{position:absolute;right:.21rem;top:50%;color:#ccc;font-size:0;transform:translate(100%,-50%);transition:transform .2s}.ab-select-icon svg{font-size:.12rem}.ab-select-active .ab-select-icon{transform:translate(100%,-50%) rotate(180deg)}@media only screen and (max-width:767px){.ab-select-content{display:block}.ab-select-input-control{padding:.1rem .05rem;font-size:.14rem}.ab-select-col{padding-right:0}}
38
36
  .select-demo{margin:10px auto;width:200px}.select-demo .select-group{width:1rem}
37
+ .ab-select-wrap{min-width:177px;background-color:#fff;background-clip:padding-box;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.15)}.ab-select-bottom,.ab-select-content,.ab-select-title{display:flex}.ab-select-title{padding:.09rem 0;background-color:transparent;cursor:context-menu;border-bottom:1px solid #d7d7d7;font-weight:700;color:#606060;font-size:.12rem;margin:0 .1rem}.ab-select-col{font-size:.12rem;padding-right:.07rem;flex:auto}.ab-select-col:last-child{padding-right:0}.ab-select-col>li{padding:.08rem .11rem;cursor:pointer}.ab-select-col>li:hover{background-color:#eee}.ab-select-col>li.ab-select-active{background-color:#e6f7ff}.ab-select-col>li.ab-select-unselect{background-color:transparent;cursor:context-menu}.ab-select-input-group{position:relative;overflow:hidden}.ab-select-input-control{-webkit-appearance:none;outline:0;user-select:none;width:100%;border:1px solid #ccc;border-radius:2px;resize:none;transition:all .2s;background-color:#fff;text-overflow:ellipsis;padding:.08rem .28rem .07rem .07rem;font-size:.14rem;white-space:nowrap;overflow:hidden;max-width:100%;cursor:pointer}.ab-select-input-control.ab-select-focused{box-shadow:0 0 4px rgba(52,143,238,.8);border-color:rgba(52,143,238,.8)}.ab-select-input-control.ab-select-empty{color:#888}.ab-select-input-control.error{background-color:#fffacd}.ab-select-icon{position:absolute;right:.21rem;top:50%;color:#ccc;font-size:0;transform:translate(100%,-50%);transition:transform .2s}.ab-select-icon svg{font-size:.12rem}.ab-select-active .ab-select-icon{transform:translate(100%,-50%) rotate(180deg)}@media only screen and (max-width:767px){.ab-select-content{display:block}.ab-select-input-control{padding:.1rem .05rem;font-size:.14rem}.ab-select-col{padding-right:0}}
39
38
  .ab-show-more-ellipsis{white-space:nowrap}.ab-show-more-btn{color:#4068b0;cursor:pointer}.ab-show-more-hidden,.ab-show-more-text{visibility:hidden;height:0;display:block;overflow:hidden}.ab-show-more-hidden{width:0}
40
- .ab-skeleton{overflow:hidden}.ab-skeleton-item{background:#f2f2f2;overflow:hidden}.ab-skeleton-active .ab-skeleton-item{background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;animation:ab-skeleton-loading 1.4s ease infinite}@keyframes ab-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}
39
+
41
40
  .skeleton-demo{padding:.2rem}
42
- .ab-table{overflow-x:auto}.ab-table table{border-spacing:0;width:100%;table-layout:fixed}.ab-table thead{background-color:#2b5797;color:#fff}.ab-table tbody tr:nth-child(2n){background-color:#f7f6f3}.ab-table-header{background-color:#2b5797;color:#fff;overflow:hidden}.ab-table-header table{width:calc(100% - .17rem)}.ab-table-body{overflow:auto scroll}.ab-table tr td,.ab-table tr th{padding:.16rem}.ab-table tr td.ab-table-checkbox,.ab-table tr th.ab-table-checkbox{width:.32rem;text-align:center;padding-left:.08rem;padding-right:.08rem}.ab-table-title{display:flex;align-items:center;text-align:left}.ab-table-title.ab-table-point{cursor:pointer}.ab-table-arrow{padding:0 .05rem}@media only screen and (max-width:767px){.ab-table-header table{width:100%}}
43
- .ab-table-body{height:120px}
44
- .ab-tabs{position:relative;display:flex}.ab-tabs-item{cursor:pointer}.ab-tabs-item.ab-tabs-active{font-weight:700}.ab-tabs-item.ab-tabs-disabled{cursor:not-allowed;opacity:.7}.ab-tabs-bar{position:absolute;background-color:#b22222;transition:all .25s;width:0;height:0;overflow:hidden;margin:0;padding:0}.ab-tabs-bottom,.ab-tabs-top{flex-direction:row}.ab-tabs-left,.ab-tabs-right{flex-direction:column}.ab-tabs-top>.ab-tabs-bar{bottom:0}.ab-tabs-bottom>.ab-tabs-bar{top:0}.ab-tabs-left>.ab-tabs-bar{right:0}.ab-tabs-right>.ab-tabs-bar{left:0}
41
+ .ab-skeleton{overflow:hidden}.ab-skeleton-item{background:#f2f2f2;overflow:hidden}.ab-skeleton-active .ab-skeleton-item{background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;animation:ab-skeleton-loading 1.4s ease infinite}@keyframes ab-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}
42
+ .table-demo thead{background-color:#2b5797;color:#fff}.table-demo tbody tr.ab-table-expand-row{background-color:#fafafa}.table-demo tbody tr:hover{background-color:#f3f3f3}.table-demo td,.table-demo th{padding:.16rem;border-bottom:1px solid #d0d0d0}.table-demo td.ab-table-checkbox,.table-demo th.ab-table-checkbox{padding:.16rem 0}.table-demo .merged-cell{border-left:1px solid #d0d0d0;border-right:1px solid #d0d0d0}.table-demo-expanded{font-size:.2rem}
43
+ .ab-table{overflow-x:auto}.ab-table table{border-spacing:0;width:100%;table-layout:fixed}.ab-table-header{overflow:hidden}.ab-table-header table{width:calc(100% - .17rem)}.ab-table-body{overflow:auto scroll}.ab-table-checkbox{width:.32rem;text-align:center}.ab-table-title{display:flex;align-items:center;text-align:left}.ab-table-title.ab-table-point{cursor:pointer}.ab-table-arrow{padding:0 .05rem}@media only screen and (max-width:767px){.ab-table-header table{width:100%}}
45
44
  .tabs-demo{width:500px;margin:20px auto}.tabs-demo .ab-tabs-item{padding:2px 6px}
45
+ .ab-tabs{position:relative;display:flex}.ab-tabs-item{cursor:pointer}.ab-tabs-item.ab-tabs-active{font-weight:700}.ab-tabs-item.ab-tabs-disabled{cursor:not-allowed;opacity:.7}.ab-tabs-bar{position:absolute;background-color:#b22222;transition:all .25s;width:0;height:0;overflow:hidden;margin:0;padding:0}.ab-tabs-bottom,.ab-tabs-top{flex-direction:row}.ab-tabs-bottom>.ab-tabs-bar,.ab-tabs-top>.ab-tabs-bar{left:0}.ab-tabs-left,.ab-tabs-right{flex-direction:column}.ab-tabs-left>.ab-tabs-bar,.ab-tabs-right>.ab-tabs-bar{top:0}.ab-tabs-top>.ab-tabs-bar{bottom:0}.ab-tabs-bottom>.ab-tabs-bar{top:0}.ab-tabs-left>.ab-tabs-bar{right:0}.ab-tabs-right>.ab-tabs-bar{left:0}
46
46
  .ab-tooltip-wrap{background-clip:padding-box;padding:.08rem .11rem .05rem;min-width:210px;border-radius:4px;line-height:1.4;border:1px solid #906c00;box-shadow:1px 1px 5px -1px #000;background-color:#fffaec}.ab-tooltip-inner{position:relative;width:100%;overflow:hidden;font-size:.12rem}.ab-tooltip-inner-expand{padding-right:.1rem}.ab-tooltip-arrow{position:absolute;display:block;width:8px;height:8px;border-top-color:transparent;border-left-color:transparent;border-style:solid;box-shadow:3px 3px 7px rgba(0,0,0,.07);background-color:#fffaec;border-right-color:#906c00;border-bottom-color:#906c00;border-width:1px}.ab-tooltip-close{position:absolute;right:.02rem;top:.05rem;cursor:pointer;padding:0 .05rem;color:#bfbfbf;font-size:.2rem;line-height:1;z-index:2}.ab-tooltip-close:hover{color:#4a4a4a}@media only screen and (max-width:767px){.ab-tooltip-wrap{width:calc(100% - .3rem)}}
47
47
  .ab-trigger-wrap{position:absolute;top:0;left:0;z-index:101}.ab-trigger-wrap.ab-trigger-hidden{display:none}.ab-trigger-mask{position:fixed;top:0;left:0;bottom:0;right:0;z-index:101;background-color:transparent;display:none}.ab-trigger-mask.ab-trigger-mask-show{display:block}.ab-trigger-fade-appear,.ab-trigger-fade-enter,.ab-trigger-fade-hr-appear,.ab-trigger-fade-hr-enter{opacity:0}.ab-trigger-fade-appear,.ab-trigger-fade-enter{transform:scale(.7)}.ab-trigger-fade-hr-appear,.ab-trigger-fade-hr-enter{opacity:0;transform:scaleY(.7)}.ab-trigger-fade-appear-active,.ab-trigger-fade-enter-active,.ab-trigger-fade-hr-appear-active,.ab-trigger-fade-hr-enter-active{opacity:1;transition:opacity .2s,transform .2s}.ab-trigger-fade-appear-active,.ab-trigger-fade-enter-active{transform:scale(1)}.ab-trigger-fade-hr-appear-active,.ab-trigger-fade-hr-enter-active{transform:scaleY(1)}.ab-trigger-fade-exit,.ab-trigger-fade-hr-exit{opacity:1}.ab-trigger-fade-exit-active,.ab-trigger-fade-hr-exit-active{opacity:0;transition:opacity .2s,transform .2s}.ab-trigger-fade-exit-active{transform:scale(.7)}.ab-trigger-fade-hr-exit-active{transform:scaleY(.7)}.ab-trigger-fade-exit-done,.ab-trigger-fade-hr-exit-done{display:none}
48
48
 
@@ -1 +1 @@
1
- .ab-table-body{height:120px}
1
+ .table-demo thead{background-color:#2b5797;color:#fff}.table-demo tbody tr.ab-table-expand-row{background-color:#fafafa}.table-demo tbody tr:hover{background-color:#f3f3f3}.table-demo td,.table-demo th{padding:.16rem;border-bottom:1px solid #d0d0d0}.table-demo td.ab-table-checkbox,.table-demo th.ab-table-checkbox{padding:.16rem 0}.table-demo .merged-cell{border-left:1px solid #d0d0d0;border-right:1px solid #d0d0d0}.table-demo-expanded{font-size:.2rem}
@@ -1,3 +1,34 @@
1
- .ab-table-body {
2
- height: 120px;
1
+ .table-demo {
2
+ thead {
3
+ background-color: #2b5797;
4
+ color: #fff;
5
+ }
6
+
7
+ tbody tr {
8
+ &.ab-table-expand-row {
9
+ background-color: #fafafa;
10
+ }
11
+
12
+ &:hover {
13
+ background-color: #f3f3f3;
14
+ }
15
+ }
16
+
17
+ th, td {
18
+ padding: .16rem;
19
+ border-bottom: 1px solid #D0D0D0;
20
+
21
+ &.ab-table-checkbox {
22
+ padding: .16rem 0;
23
+ }
24
+ }
25
+
26
+ .merged-cell {
27
+ border-left: 1px solid #D0D0D0;
28
+ border-right: 1px solid #D0D0D0;
29
+ }
30
+ }
31
+
32
+ .table-demo-expanded {
33
+ font-size: .2rem;
3
34
  }
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { Column } from '../interface';
3
+ export interface BodyRowProps<T> {
4
+ className?: string;
5
+ prefixCls: string;
6
+ rowData: T;
7
+ index: number;
8
+ columns: Column<T>[];
9
+ indent: number;
10
+ CheckCell: React.ReactElement;
11
+ }
12
+ declare function BodyRow<RowDataType>({ className, prefixCls: cls, rowData, index, columns, indent, CheckCell }: BodyRowProps<RowDataType>): JSX.Element;
13
+ export default BodyRow;
@@ -0,0 +1,94 @@
1
+ import _typeof from "@babel/runtime/helpers/esm/typeof";
2
+
3
+ var __assign = this && this.__assign || function () {
4
+ __assign = Object.assign || function (t) {
5
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
6
+ s = arguments[i];
7
+
8
+ for (var p in s) {
9
+ if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
10
+ }
11
+ }
12
+
13
+ return t;
14
+ };
15
+
16
+ return __assign.apply(this, arguments);
17
+ };
18
+
19
+ import React from 'react';
20
+ import classNames from 'classnames';
21
+ import { isEmptyArray } from '@autobest-ui/utils';
22
+
23
+ var getIndentCol = function getIndentCol(prefixCls, number) {
24
+ if (number === 0) {
25
+ return null;
26
+ }
27
+
28
+ return new Array(number).fill(false).map(function (_item, index) {
29
+ return React.createElement("td", {
30
+ key: index,
31
+ className: prefixCls + "-indent"
32
+ });
33
+ });
34
+ };
35
+
36
+ function BodyRow(_a) {
37
+ var className = _a.className,
38
+ cls = _a.prefixCls,
39
+ rowData = _a.rowData,
40
+ index = _a.index,
41
+ columns = _a.columns,
42
+ indent = _a.indent,
43
+ CheckCell = _a.CheckCell;
44
+ var indentCell = React.useMemo(function () {
45
+ return getIndentCol(cls, indent);
46
+ }, [cls, indent]);
47
+ var contentCells = [];
48
+ columns.forEach(function (col, colIndex) {
49
+ var renderer = (columns[colIndex] || {}).onRender;
50
+ var renderInfo = renderer ? renderer(rowData, index, colIndex) : rowData[col.dataIndex];
51
+ var cellProps = {};
52
+ var content;
53
+
54
+ if (renderInfo && _typeof(renderInfo) === 'object' && !Array.isArray(renderInfo) && !React.isValidElement(renderInfo)) {
55
+ var children = renderInfo.children,
56
+ props = renderInfo.props;
57
+ content = children;
58
+ cellProps = props;
59
+ } else {
60
+ content = renderInfo;
61
+ }
62
+
63
+ var colSpan = cellProps.colSpan,
64
+ rowSpan = cellProps.rowSpan,
65
+ className = cellProps.className;
66
+
67
+ var cellInfo = __assign(__assign({}, col), {
68
+ content: content,
69
+ colSpan: colSpan === undefined ? 1 : colSpan,
70
+ rowSpan: rowSpan === undefined ? 1 : rowSpan
71
+ });
72
+
73
+ if (cellInfo.colSpan === 0 || cellInfo.rowSpan === 0 || !cellInfo.content) {
74
+ return;
75
+ }
76
+
77
+ contentCells.push(React.createElement("td", {
78
+ className: className,
79
+ key: cellInfo.key,
80
+ colSpan: cellInfo.colSpan,
81
+ rowSpan: cellInfo.rowSpan
82
+ }, cellInfo.content));
83
+ });
84
+
85
+ if (!isEmptyArray(contentCells)) {
86
+ return React.createElement("tr", {
87
+ className: classNames(cls + "-row", className)
88
+ }, indentCell, CheckCell, contentCells);
89
+ }
90
+
91
+ return null;
92
+ }
93
+
94
+ export default BodyRow;
@@ -0,0 +1,16 @@
1
+ import React, { ReactText } from 'react';
2
+ export interface BodyRowSelectionInfo<T> {
3
+ checkIcon?: (checked: boolean, rowData: T, index: number) => React.ReactElement;
4
+ getDisabled?: (rowData: T) => boolean;
5
+ onSelect?: (checked: boolean, rowData: T) => void;
6
+ }
7
+ export interface BodyCheckIconProps<T> {
8
+ prefixCls: string;
9
+ rowData: T;
10
+ rowKey: ReactText;
11
+ rowIndex: number;
12
+ rowSelection: BodyRowSelectionInfo<T>;
13
+ selectedRowKeys: ReactText[];
14
+ }
15
+ declare const _default: React.NamedExoticComponent<BodyCheckIconProps<any>>;
16
+ export default _default;
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ import Checkbox from '../../checkbox';
3
+
4
+ function BodyCheckIcon(_a) {
5
+ var cls = _a.prefixCls,
6
+ rowData = _a.rowData,
7
+ rowKey = _a.rowKey,
8
+ rowIndex = _a.rowIndex,
9
+ selectedRowKeys = _a.selectedRowKeys,
10
+ _b = _a.rowSelection,
11
+ checkIcon = _b.checkIcon,
12
+ getDisabled = _b.getDisabled,
13
+ onSelect = _b.onSelect;
14
+ var checked = selectedRowKeys.includes(rowKey);
15
+
16
+ if (checkIcon) {
17
+ return React.createElement("td", null, checkIcon(checked, rowData, rowIndex));
18
+ }
19
+
20
+ var disabled = getDisabled(rowData);
21
+
22
+ var onCheckBoxChange = function onCheckBoxChange(checked) {
23
+ onSelect(checked, rowData);
24
+ };
25
+
26
+ return React.createElement("td", {
27
+ className: cls + "-checkbox"
28
+ }, React.createElement(Checkbox, {
29
+ checked: checked,
30
+ disabled: disabled,
31
+ onChange: onCheckBoxChange
32
+ }));
33
+ }
34
+
35
+ export default React.memo(BodyCheckIcon);
@@ -0,0 +1,24 @@
1
+ import React, { ReactText } from 'react';
2
+ import { BodyRowProps } from './BodyRow';
3
+ import { BodyCheckIconProps, BodyRowSelectionInfo } from './CheckIcon';
4
+ import { ColumnOnRenderReturnObjectInfo } from '../interface';
5
+ /**
6
+ * 可展开子列表
7
+ */
8
+ export interface TableExpandableInfo<T> {
9
+ expandedRowRender: (rowData: T, index: number) => React.ReactNode | React.ReactNode[] | ColumnOnRenderReturnObjectInfo;
10
+ }
11
+ export interface BodyProps<T> extends Pick<BodyRowProps<T>, 'prefixCls' | 'columns'>, Pick<BodyCheckIconProps<T>, 'selectedRowKeys'> {
12
+ /**
13
+ * 表格数据
14
+ */
15
+ dataSource: T[];
16
+ /**
17
+ * 子列表渲染(不赋值则没有子列表),详见Expandable
18
+ */
19
+ expandable?: TableExpandableInfo<T>;
20
+ getRowKey: (rowData: T) => ReactText;
21
+ rowSelection: BodyRowSelectionInfo<T>;
22
+ }
23
+ declare function Body<RowDataType>({ prefixCls, columns, dataSource, getRowKey, rowSelection, selectedRowKeys, expandable }: BodyProps<RowDataType>): JSX.Element;
24
+ export default Body;
@@ -0,0 +1,61 @@
1
+ import React from 'react';
2
+ import BodyRow from './BodyRow';
3
+ import CheckIcon from './CheckIcon';
4
+
5
+ var noop = function noop() {
6
+ return null;
7
+ };
8
+
9
+ function Body(_a) {
10
+ var prefixCls = _a.prefixCls,
11
+ columns = _a.columns,
12
+ dataSource = _a.dataSource,
13
+ getRowKey = _a.getRowKey,
14
+ rowSelection = _a.rowSelection,
15
+ selectedRowKeys = _a.selectedRowKeys,
16
+ expandable = _a.expandable;
17
+ var rows = [];
18
+ var expandedRowRenderer = expandable ? expandable.expandedRowRender : noop;
19
+ dataSource.forEach(function (row, rowIndex) {
20
+ var rowKey = getRowKey(row);
21
+ var CheckCell = rowSelection ? React.createElement(CheckIcon, {
22
+ prefixCls: prefixCls,
23
+ rowSelection: rowSelection,
24
+ rowKey: rowKey,
25
+ rowData: row,
26
+ rowIndex: rowIndex,
27
+ selectedRowKeys: selectedRowKeys
28
+ }) : null;
29
+ rows.push(React.createElement(BodyRow, {
30
+ key: rowKey,
31
+ prefixCls: prefixCls,
32
+ rowData: row,
33
+ index: rowIndex,
34
+ columns: columns,
35
+ CheckCell: CheckCell,
36
+ indent: 0
37
+ }));
38
+ var expandedRowKey = rowKey + " expanded";
39
+ var expandedColumns = [{
40
+ title: null,
41
+ key: expandedRowKey,
42
+ onRender: expandedRowRenderer
43
+ }];
44
+
45
+ if (expandable) {
46
+ rows.push(React.createElement(BodyRow, {
47
+ key: expandedRowKey,
48
+ className: prefixCls + "-expand-row",
49
+ prefixCls: prefixCls,
50
+ rowData: row,
51
+ index: rowIndex,
52
+ columns: expandedColumns,
53
+ CheckCell: null,
54
+ indent: CheckCell ? 1 : 0
55
+ }));
56
+ }
57
+ });
58
+ return React.createElement(React.Fragment, null, rows);
59
+ }
60
+
61
+ export default Body;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ export interface HeaderRowSelectionInfo {
3
+ checkIcon?: (checked: boolean, rowData: null, index: number) => React.ReactElement;
4
+ selectAllVisible?: boolean;
5
+ selectAllChecked: boolean;
6
+ onSelectAll?: (checked: boolean) => void;
7
+ }
8
+ interface HeaderCheckIconProps {
9
+ prefixCls: string;
10
+ rowSelection: HeaderRowSelectionInfo;
11
+ }
12
+ declare const _default: React.NamedExoticComponent<HeaderCheckIconProps>;
13
+ export default _default;
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+ import Checkbox from '../../checkbox';
3
+
4
+ function HeaderCheckIcon(_a) {
5
+ var cls = _a.prefixCls,
6
+ rowSelection = _a.rowSelection;
7
+
8
+ if (!rowSelection) {
9
+ return null;
10
+ }
11
+
12
+ if (!rowSelection.selectAllVisible) {
13
+ // 有勾选功能,但是没有全选功能,需有占位元素
14
+ return React.createElement("th", null, " ");
15
+ }
16
+
17
+ var checkIcon = rowSelection.checkIcon,
18
+ selectAllChecked = rowSelection.selectAllChecked,
19
+ onSelectAll = rowSelection.onSelectAll;
20
+
21
+ if (checkIcon) {
22
+ return React.createElement("th", null, checkIcon(selectAllChecked, null, -1));
23
+ }
24
+
25
+ var onCheckBoxChange = function onCheckBoxChange() {
26
+ onSelectAll(!selectAllChecked);
27
+ };
28
+
29
+ return React.createElement("th", {
30
+ className: cls + "-checkbox"
31
+ }, React.createElement(Checkbox, {
32
+ checked: selectAllChecked,
33
+ onChange: onCheckBoxChange
34
+ }));
35
+ }
36
+
37
+ export default React.memo(HeaderCheckIcon);
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { Column } from '../interface';
3
+ export interface HeaderCellProps<T> extends Column<T> {
4
+ prefixCls: string;
5
+ isSort: boolean;
6
+ isSortedDescending?: boolean;
7
+ onSort: (sortColumn: string) => void;
8
+ /**
9
+ * 自定义排序图标,若不传,则采用默认的排序图标
10
+ * @param isSortDesc
11
+ */
12
+ sortIcon?: (isSortDesc: boolean) => React.ReactNode;
13
+ }
14
+ export default class HeaderCell<RowDataType> extends React.PureComponent<HeaderCellProps<RowDataType>> {
15
+ onClick: () => void;
16
+ renderArrow: () => {};
17
+ render(): JSX.Element;
18
+ }
@@ -26,7 +26,7 @@ var __extends = this && this.__extends || function () {
26
26
 
27
27
  import React from 'react';
28
28
  import classNames from 'classnames';
29
- import Icon from '../icon';
29
+ import Icon from '../../icon';
30
30
 
31
31
  var HeaderCell =
32
32
  /** @class */
@@ -50,12 +50,17 @@ function (_super) {
50
50
  var _a = _this.props,
51
51
  prefixCls = _a.prefixCls,
52
52
  isSort = _a.isSort,
53
- isSortedDescending = _a.isSortedDescending;
53
+ isSortedDescending = _a.isSortedDescending,
54
+ sortIcon = _a.sortIcon;
54
55
 
55
56
  if (!isSort) {
56
57
  return null;
57
58
  }
58
59
 
60
+ if (sortIcon) {
61
+ return sortIcon(isSortedDescending);
62
+ }
63
+
59
64
  return React.createElement(Icon, {
60
65
  className: prefixCls + "-arrow",
61
66
  name: "arrow",
@@ -72,11 +77,13 @@ function (_super) {
72
77
 
73
78
  var _b = this.props,
74
79
  prefixCls = _b.prefixCls,
80
+ className = _b.className,
75
81
  title = _b.title,
76
82
  sortName = _b.sortName,
77
- fieldName = _b.fieldName;
83
+ colSpan = _b.colSpan;
78
84
  return React.createElement("th", {
79
- key: fieldName
85
+ className: className,
86
+ colSpan: colSpan
80
87
  }, React.createElement("div", {
81
88
  className: classNames(prefixCls + "-title", (_a = {}, _a[prefixCls + "-point"] = sortName, _a)),
82
89
  onClick: this.onClick
@@ -0,0 +1,16 @@
1
+ import { Column } from '../interface';
2
+ import { HeaderCellProps } from './HeaderCell';
3
+ import { HeaderRowSelectionInfo } from './CheckIcon';
4
+ export interface HeaderRowProps<T> extends Pick<HeaderCellProps<T>, 'sortName' | 'isSortedDescending' | 'sortIcon'> {
5
+ prefixCls: string;
6
+ columns: Column<T>[];
7
+ /**
8
+ * 点击表头触发的排序函数
9
+ * @param isSortedDescending
10
+ * @param sortName
11
+ */
12
+ onSortChange?: (isSortedDescending: boolean, sortName: string) => void;
13
+ rowSelection: HeaderRowSelectionInfo;
14
+ }
15
+ declare function HeaderRow<RowDataType>({ prefixCls: cls, columns, rowSelection, sortName, isSortedDescending, onSortChange, sortIcon }: HeaderRowProps<RowDataType>): JSX.Element;
16
+ export default HeaderRow;