@kizmann/nano-ui 0.9.4 → 0.9.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. package/demos/builder.html +18 -8
  2. package/demos/overview.html +1 -1
  3. package/dist/nano-ui.css +1 -1
  4. package/dist/nano-ui.js +2 -2
  5. package/dist/nano-ui.js.map +1 -1
  6. package/dist/themes/dark.css +2 -0
  7. package/dist/themes/light.css +1 -1
  8. package/package.json +1 -1
  9. package/src/config/src/builder/builder.js +85 -16
  10. package/src/config/src/builder/builder.scss +9 -1
  11. package/src/config/src/config/config-next.js +16 -2
  12. package/src/datetimepicker/src/datetimepicker/datetimepicker.scss +2 -2
  13. package/src/empty/src/empty-icon/empty-icon.js +12 -0
  14. package/src/empty/src/empty-icon/empty-icon.scss +10 -0
  15. package/src/preview/src/preview/preview.js +19 -1
  16. package/src/preview/src/preview-image/preview-image.js +2 -1
  17. package/src/select/src/select/select.js +1 -1
  18. package/src/slider/src/slider/slider.scss +1 -6
  19. package/src/table/src/table/table.scss +4 -0
  20. package/src/tags/src/tags-item/tags-item.scss +1 -1
  21. package/themes/macos/alert/index.scss +1 -0
  22. package/themes/macos/alert/src/alert/alert.scss +26 -0
  23. package/themes/macos/button/index.scss +2 -0
  24. package/themes/macos/button/src/button/button.scss +46 -0
  25. package/themes/macos/button/src/button-group/button-group.scss +1 -0
  26. package/themes/macos/cascader/index.scss +2 -0
  27. package/themes/macos/cascader/src/cascader/cascader.scss +46 -0
  28. package/themes/macos/cascader/src/cascader-panel/cascader-panel.scss +14 -0
  29. package/themes/macos/checkbox/index.scss +2 -0
  30. package/themes/macos/checkbox/src/checkbox/checkbox.scss +44 -0
  31. package/themes/macos/checkbox/src/checkbox-group/checkbox-group.scss +1 -0
  32. package/themes/macos/collapse/index.scss +2 -0
  33. package/themes/macos/collapse/src/collapse/collapse.scss +21 -0
  34. package/themes/macos/collapse/src/collapse-item/collapse-item.scss +21 -0
  35. package/themes/macos/confirm/index.scss +1 -0
  36. package/themes/macos/confirm/src/confirm/confirm.scss +13 -0
  37. package/themes/macos/datepicker/index.scss +2 -0
  38. package/themes/macos/datepicker/src/datepicker/datepicker.scss +50 -0
  39. package/themes/macos/datepicker/src/datepicker-panel/datepicker-panel.scss +44 -0
  40. package/themes/macos/datetimepicker/index.scss +1 -0
  41. package/themes/macos/datetimepicker/src/datetimepicker/datetimepicker.scss +67 -0
  42. package/themes/macos/demo/index.scss +1 -0
  43. package/themes/macos/demo/src/demo/demo.scss +22 -0
  44. package/themes/macos/draggable/index.scss +9 -0
  45. package/themes/macos/draggable/src/draggrid/draggrid.scss +13 -0
  46. package/themes/macos/draggable/src/draggrid-item/draggrid-item.scss +65 -0
  47. package/themes/macos/draggable/src/draghandler/draghandler.scss +15 -0
  48. package/themes/macos/draggable/src/draglist/draglist.scss +13 -0
  49. package/themes/macos/draggable/src/draglist-item/draglist-item.scss +72 -0
  50. package/themes/macos/draggable/src/dropzone/dropzone.scss +13 -0
  51. package/themes/macos/durationpicker/index.scss +1 -0
  52. package/themes/macos/durationpicker/src/durationpicker/durationpicker.scss +52 -0
  53. package/themes/macos/empty/index.scss +1 -0
  54. package/themes/macos/empty/src/empty-icon/empty-icon.scss +13 -0
  55. package/themes/macos/file/index.scss +1 -0
  56. package/themes/macos/file/src/file/file.scss +38 -0
  57. package/themes/macos/form/index.scss +3 -0
  58. package/themes/macos/form/src/form/form.scss +1 -0
  59. package/themes/macos/form/src/form-group/form-group.scss +17 -0
  60. package/themes/macos/form/src/form-item/form-item.scss +29 -0
  61. package/themes/macos/index-dark.scss +41 -0
  62. package/themes/macos/index-light.scss +41 -0
  63. package/themes/macos/index.scss +41 -0
  64. package/themes/macos/info/index.scss +3 -0
  65. package/themes/macos/info/src/info/info.scss +5 -0
  66. package/themes/macos/info/src/info-column/info-column.scss +5 -0
  67. package/themes/macos/info/src/info-field/info-field.scss +5 -0
  68. package/themes/macos/input/index.scss +1 -0
  69. package/themes/macos/input/src/input/input.scss +38 -0
  70. package/themes/macos/input-number/index.scss +1 -0
  71. package/themes/macos/input-number/src/input-number/input-number.scss +47 -0
  72. package/themes/macos/loader/index.scss +1 -0
  73. package/themes/macos/loader/src/loader/loader.scss +21 -0
  74. package/themes/macos/map/index.scss +1 -0
  75. package/themes/macos/map/src/map/map.scss +1 -0
  76. package/themes/macos/modal/index.scss +1 -0
  77. package/themes/macos/modal/src/modal/modal.scss +34 -0
  78. package/themes/macos/notification/index.scss +1 -0
  79. package/themes/macos/notification/src/notification/notification.scss +24 -0
  80. package/themes/macos/paginator/index.scss +1 -0
  81. package/themes/macos/paginator/src/paginator/paginator.scss +5 -0
  82. package/themes/macos/popover/index.scss +1 -0
  83. package/themes/macos/popover/src/popover/popover.scss +83 -0
  84. package/themes/macos/radio/index.scss +2 -0
  85. package/themes/macos/radio/src/radio/radio.scss +45 -0
  86. package/themes/macos/radio/src/radio-group/radio-group.scss +1 -0
  87. package/themes/macos/rating/index.scss +1 -0
  88. package/themes/macos/rating/src/rating/rating.scss +18 -0
  89. package/themes/macos/resizer/index.scss +1 -0
  90. package/themes/macos/resizer/src/resizer/resizer.scss +5 -0
  91. package/themes/macos/root/image/empty-default.svg +30 -0
  92. package/themes/macos/root/image/empty-space.svg +34 -0
  93. package/themes/macos/root/image/star-default.svg +10 -0
  94. package/themes/macos/root/vars-dark.scss +220 -0
  95. package/themes/macos/root/vars-light.scss +220 -0
  96. package/themes/macos/root/vars.scss +220 -0
  97. package/themes/macos/scrollbar/index.scss +1 -0
  98. package/themes/macos/scrollbar/src/scrollbar/scrollbar.scss +6 -0
  99. package/themes/macos/select/index.scss +2 -0
  100. package/themes/macos/select/src/select/select.scss +48 -0
  101. package/themes/macos/select/src/select-option/select-option.scss +1 -0
  102. package/themes/macos/slider/index.scss +1 -0
  103. package/themes/macos/slider/src/slider/slider.scss +21 -0
  104. package/themes/macos/switch/index.scss +1 -0
  105. package/themes/macos/switch/src/switch/switch.scss +28 -0
  106. package/themes/macos/table/index.scss +4 -0
  107. package/themes/macos/table/src/table/table.scss +15 -0
  108. package/themes/macos/table/src/table-cell/table-cell.scss +50 -0
  109. package/themes/macos/table/src/table-column/table-column.scss +32 -0
  110. package/themes/macos/table/src/table-filter/table-filter.scss +1 -0
  111. package/themes/macos/tabs/index.scss +2 -0
  112. package/themes/macos/tabs/src/tabs/tabs.scss +21 -0
  113. package/themes/macos/tabs/src/tabs-item/tabs-item.scss +18 -0
  114. package/themes/macos/tags/index.scss +2 -0
  115. package/themes/macos/tags/src/tags/tags.scss +1 -0
  116. package/themes/macos/tags/src/tags-item/tags-item.scss +28 -0
  117. package/themes/macos/textarea/index.scss +1 -0
  118. package/themes/macos/textarea/src/textarea/textarea.scss +30 -0
  119. package/themes/macos/timepicker/index.scss +2 -0
  120. package/themes/macos/timepicker/src/timepicker/timepicker.scss +50 -0
  121. package/themes/macos/timepicker/src/timepicker-panel/timepicker-panel.scss +27 -0
  122. package/themes/macos/transfer/index.scss +1 -0
  123. package/themes/macos/transfer/src/transfer/transfer.scss +18 -0
  124. package/themes/macos/virtualscroller/index.scss +1 -0
  125. package/themes/macos/virtualscroller/src/virtualscroller/virtualscroller.scss +1 -0
  126. package/webpack.config.js +32 -86
@@ -0,0 +1,48 @@
1
+ @import "../../../root/vars";
2
+
3
+ .n-select {
4
+ background: $color-form;
5
+ border: 1px solid $color-gray-15;
6
+ }
7
+
8
+ .n-select.n-disabled {
9
+ background: rgba($color-gray-15, 0.3);
10
+ }
11
+
12
+ .n-select__clear,
13
+ .n-select__angle {
14
+ color: $color-gray-60;
15
+ }
16
+
17
+ .n-select__clear i {
18
+ background: rgba($color-gray-15, 0.6);
19
+ }
20
+
21
+ .n-select__body,
22
+ .n-select__empty {
23
+ border: 1px solid $color-gray-15;
24
+ background: $color-form;
25
+ box-shadow: 0 1px 3px 1px rgba($color-shadow, 0.15);
26
+ }
27
+
28
+ .n-select__empty {
29
+ color: $color-gray-60;
30
+ }
31
+
32
+ @each $color, $values in $colors {
33
+
34
+ $-color-base: map_get($values, 'base');
35
+ $-color-light: map_get($values, 'light');
36
+ $-color-dark: map_get($values, 'dark');
37
+
38
+ .n-select--#{$color}:not(.n-disabled):hover,
39
+ .n-select--#{$color}:not(.n-disabled).n-focus {
40
+ border-color: $-color-base;
41
+ }
42
+
43
+ .n-select--#{$color} .n-select__item {
44
+ color: $color-foreground;
45
+ background: $-color-base;
46
+ }
47
+
48
+ }
@@ -0,0 +1 @@
1
+ @import "../../../root/vars";
@@ -0,0 +1 @@
1
+ @import "./src/slider/slider";
@@ -0,0 +1,21 @@
1
+ @import "../../../root/vars";
2
+
3
+ .n-slider__bar {
4
+ background: $color-gray-10;
5
+ }
6
+
7
+ .n-slider__range {
8
+ background: $color-primary;
9
+ }
10
+
11
+ .n-slider__handle {
12
+ background: $color-white;
13
+ border: 6px solid $color-primary;
14
+ box-shadow: 0 0 4px rgba($color-shadow, 0.15);
15
+ }
16
+
17
+ .n-slider__handle span {
18
+ color: $color-white;
19
+ background: rgba($color-black, 0.8);
20
+ }
21
+
@@ -0,0 +1 @@
1
+ @import "./src/switch/switch";
@@ -0,0 +1,28 @@
1
+ @import "../../../root/vars";
2
+
3
+ .n-switch__switch {
4
+ background: $color-gray-10;
5
+ border: 1px solid $color-gray-15;
6
+ }
7
+
8
+ .n-switch__switch span {
9
+ background: $color-white;
10
+ box-shadow: 0 1px 2px rgba($color-shadow, 0.15);
11
+ }
12
+
13
+ @each $color, $values in $colors {
14
+
15
+ $-color-base: map_get($values, 'base');
16
+ $-color-light: map_get($values, 'light');
17
+ $-color-dark: map_get($values, 'dark');
18
+
19
+ .n-switch--#{$color}:not(.n-disabled) .n-switch__switch {
20
+ background: $-color-base;
21
+ border-color: mix($-color-dark, $-color-base, 25%);
22
+ }
23
+
24
+ .n-switch--#{$color}:not(.n-disabled) .n-switch__label {
25
+ color: $-color-base;
26
+ }
27
+
28
+ }
@@ -0,0 +1,4 @@
1
+ @import "./src/table/table";
2
+ @import "./src/table-column/table-column";
3
+ @import "./src/table-cell/table-cell";
4
+ @import "./src/table-filter/table-filter";
@@ -0,0 +1,15 @@
1
+ @import "../../../root/vars";
2
+
3
+ .n-table {
4
+ box-shadow: inset 0 0 1px 1px $color-gray-15;
5
+ }
6
+
7
+ .n-table .n-draglist-item {
8
+ border-bottom: 1px solid $color-gray-10;
9
+ }
10
+
11
+ .n-table .n-table__header {
12
+ background: $color-form;
13
+ border: 1px solid $color-gray-15;
14
+ box-shadow: 0 0 3px rgba($color-shadow, 0.10);
15
+ }
@@ -0,0 +1,50 @@
1
+ @import "../../../root/vars";
2
+
3
+ .n-table-cell.n-changed:before {
4
+ content: '\00a0';
5
+ position: absolute;
6
+ top: -3px;
7
+ left: -3px;
8
+ display: block;
9
+ width: 0;
10
+ height: 0;
11
+ border: 3px solid transparent;
12
+ border-bottom-color: $color-danger;
13
+ transform: rotate(-45deg);
14
+ }
15
+
16
+ .n-table-cell--image > div {
17
+ background-color: $color-gray-05;
18
+ }
19
+
20
+ .n-table-cell--checkbox i {
21
+ background: $color-form;
22
+ border: 1px solid $color-gray-15;
23
+ }
24
+
25
+ .n-table-cell--checkbox.n-disabled i {
26
+ background:rgba($color-gray-15, 0.3);
27
+ }
28
+
29
+ @each $color, $values in $colors {
30
+
31
+ $-color-base: map_get($values, 'base');
32
+ $-color-light: map_get($values, 'light');
33
+ $-color-dark: map_get($values, 'dark');
34
+
35
+ .n-draglist--#{$color} .n-table-cell--checkbox.n-checked:not(.n-disabled) i,
36
+ .n-draglist--#{$color} .n-table-cell--checkbox.n-checked:not(.n-uncheck) i {
37
+ color: $color-white;
38
+ background: $-color-base;
39
+ border-color: $-color-base;
40
+ }
41
+
42
+ .n-draglist--#{$color} .n-table-cell--checkbox:not(.n-disabled):hover i {
43
+ border-color: $-color-light;
44
+ }
45
+
46
+ .n-draglist--#{$color} .n-table-cell--checkbox.n-checked:not(.n-disabled):hover i {
47
+ background: $-color-light;
48
+ }
49
+
50
+ }
@@ -0,0 +1,32 @@
1
+ @import "../../../root/vars";
2
+
3
+ .n-table__header .n-table-column {
4
+ border-left: 1px solid $color-gray-10;
5
+ border-right: 1px solid $color-gray-10;
6
+ }
7
+
8
+ .n-table-column.n-filtered .n-table-column__label {
9
+ color: $color-primary;
10
+ }
11
+
12
+ .n-table-column .n-table-column__sort > i:before {
13
+ border-top-color: rgba($color-gray-50, 0.5);
14
+ }
15
+
16
+ .n-table-column.n-sorted.n-desc .n-table-column__sort > i:before {
17
+ border-top-color: $color-primary;
18
+ }
19
+
20
+ .n-table-column .n-table-column__sort > i:after {
21
+ border-bottom-color: rgba($color-gray-50, 0.5);
22
+ }
23
+
24
+ .n-table-column.n-sorted.n-asc .n-table-column__sort > i:after {
25
+ border-bottom-color: $color-primary;
26
+ }
27
+
28
+ .n-table .n-table-column .n-table-column__filter > i {
29
+ color: $color-gray-60;
30
+ background: $color-gray-10;
31
+ }
32
+
@@ -0,0 +1 @@
1
+ @import "../../../root/vars";
@@ -0,0 +1,2 @@
1
+ @import "./src/tabs/tabs";
2
+ @import "./src/tabs-item/tabs-item";
@@ -0,0 +1,21 @@
1
+ @import "../../../root/vars";
2
+
3
+ .n-tabs__header:after {
4
+ border-bottom: 1px solid $color-gray-15;
5
+ }
6
+
7
+ .n-tabs__indicator {
8
+ background: $color-black;
9
+ }
10
+
11
+ @each $color, $values in $colors {
12
+
13
+ $-color-base: map_get($values, 'base');
14
+ $-color-light: map_get($values, 'light');
15
+ $-color-dark: map_get($values, 'dark');
16
+
17
+ .n-tabs--#{$color} .n-tabs__indicator {
18
+ background: $-color-base;
19
+ }
20
+
21
+ }
@@ -0,0 +1,18 @@
1
+ @import "../../../root/vars";
2
+
3
+ .n-tabs__tab-icon {
4
+ color: $color-gray-40;
5
+ }
6
+
7
+ @each $color, $values in $colors {
8
+
9
+ $-color-base: map_get($values, 'base');
10
+ $-color-light: map_get($values, 'light');
11
+ $-color-dark: map_get($values, 'dark');
12
+
13
+ .n-tabs--#{$color} .n-tabs__tab.n-active .n-tabs__tab-icon,
14
+ .n-tabs--#{$color} .n-tabs__tab.n-active .n-tabs__tab-label {
15
+ color: $-color-base;
16
+ }
17
+
18
+ }
@@ -0,0 +1,2 @@
1
+ @import "./src/tags/tags";
2
+ @import "./src/tags-item/tags-item";
@@ -0,0 +1 @@
1
+ @import "../../../root/vars";
@@ -0,0 +1,28 @@
1
+ @import "../../../root/vars";
2
+
3
+ @each $color, $values in $colors {
4
+
5
+ $-color-base: map_get($values, 'base');
6
+ $-color-light: map_get($values, 'light');
7
+ $-color-dark: map_get($values, 'dark');
8
+
9
+ .n-tags-item--color-#{$color} {
10
+ color: mix($-color-dark, $color-black, 70%);
11
+ background: rgba($-color-base, 0.25);
12
+ }
13
+ .n-tags-item--color-#{$color} i {
14
+ color: rgba($-color-base, 0.75);
15
+ }
16
+
17
+ }
18
+
19
+ @each $-tags-index, $-tags-color in $colors-tags {
20
+
21
+ .n-tags-item--color-#{$-tags-index} {
22
+ background: rgba($-tags-color, 0.15);
23
+ }
24
+ .n-tags-item--color-#{$-tags-index} i {
25
+ color: rgba($-tags-color, 0.75);
26
+ }
27
+
28
+ }
@@ -0,0 +1 @@
1
+ @import "./src/textarea/textarea";
@@ -0,0 +1,30 @@
1
+ @import "../../../root/vars";
2
+
3
+ .n-textarea textarea {
4
+ background: $color-form;
5
+ border: 1px solid $color-gray-15;
6
+ }
7
+
8
+ .n-textarea.n-disabled textarea {
9
+ background: rgba($color-gray-15, 0.3);
10
+ }
11
+
12
+ @each $color, $values in $colors {
13
+
14
+ $-color-base: map_get($values, 'base');
15
+ $-color-light: map_get($values, 'light');
16
+ $-color-dark: map_get($values, 'dark');
17
+
18
+ /**
19
+ * Button primary
20
+ */
21
+
22
+ .n-textarea--#{$color}:not(.n-disabled):hover textarea {
23
+ border-color: $-color-base;
24
+ }
25
+
26
+ .n-textarea--#{$color}:not(.n-disabled) textarea:focus{
27
+ border-color: $-color-light;
28
+ }
29
+
30
+ }
@@ -0,0 +1,2 @@
1
+ @import "./src/timepicker-panel/timepicker-panel";
2
+ @import "./src/timepicker/timepicker";
@@ -0,0 +1,50 @@
1
+ @import "../../../root/vars";
2
+
3
+ .n-timepicker {
4
+ background: $color-form;
5
+ border: 1px solid $color-gray-15;
6
+ }
7
+
8
+ .n-timepicker.n-disabled {
9
+ background: rgba($color-gray-15, 0.3);
10
+ }
11
+
12
+ .n-timepicker__seperator {
13
+ color: $color-gray-60;
14
+ }
15
+
16
+ .n-timepicker__clear,
17
+ .n-timepicker__angle {
18
+ color: $color-gray-60;
19
+ }
20
+
21
+ .n-timepicker__clear i {
22
+ background: rgba($color-gray-15, 0.6);
23
+ }
24
+
25
+ .n-timepicker__placeholder {
26
+ color: rgba($color-black, 0.5);
27
+ }
28
+
29
+ .n-timepicker__body,
30
+ .n-timepicker__empty {
31
+ background: $color-form;
32
+ box-shadow: 0 1px 3px 1px rgba($color-shadow, 0.15);
33
+ }
34
+
35
+ .n-timepicker__empty {
36
+ color: $color-gray-60;
37
+ }
38
+
39
+ @each $color, $values in $colors {
40
+
41
+ $-color-base: map_get($values, 'base');
42
+ $-color-light: map_get($values, 'light');
43
+ $-color-dark: map_get($values, 'dark');
44
+
45
+ .n-timepicker--#{$color}:not(.n-disabled):hover,
46
+ .n-timepicker--#{$color}:not(.n-disabled).n-focus {
47
+ border-color: $-color-base;
48
+ }
49
+
50
+ }
@@ -0,0 +1,27 @@
1
+ @import "../../../root/vars";
2
+
3
+ .n-timepicker-panel {
4
+ background: $color-form;
5
+ border: 1px solid $color-gray-10;
6
+ }
7
+
8
+ .n-timepicker-panel__header {
9
+ border-bottom: 1px solid $color-gray-10;
10
+ }
11
+
12
+ .n-timepicker-panel__panel:not(:last-child) {
13
+ border-right: 1px solid $color-gray-10;
14
+ }
15
+
16
+ @each $color, $values in $colors {
17
+
18
+ $-color-base: map_get($values, 'base');
19
+ $-color-light: map_get($values, 'light');
20
+ $-color-dark: map_get($values, 'dark');
21
+
22
+ .n-timepicker-panel--#{$color} .n-timepicker-panel__item.n-selected {
23
+ color: $color-white;
24
+ background: $-color-base;
25
+ }
26
+
27
+ }
@@ -0,0 +1 @@
1
+ @import "./src/transfer/transfer";
@@ -0,0 +1,18 @@
1
+ @import "../../../root/vars";
2
+
3
+ .n-transfer__panel {
4
+ border: 1px solid $color-gray-15;
5
+ }
6
+
7
+ .n-transfer__header {
8
+ border-bottom: 1px solid $color-gray-15;
9
+ }
10
+
11
+ .n-transfer__search {
12
+ background: $color-form;
13
+ border-bottom: 1px solid $color-gray-15;
14
+ }
15
+
16
+ .n-transfer__item-count {
17
+ color: $color-gray-60;
18
+ }
@@ -0,0 +1 @@
1
+ @import "./src/virtualscroller/virtualscroller";
@@ -0,0 +1 @@
1
+ @import "../../../root/vars";
package/webpack.config.js CHANGED
@@ -3,6 +3,13 @@ const webpack = require("webpack");
3
3
  const TerserPlugin = require("terser-webpack-plugin");
4
4
  const MiniCssExtractPlugin = require("mini-css-extract-plugin");
5
5
 
6
+ let themes = {
7
+ './src/index.scss': './nano-ui.css',
8
+ './docs/src/scss/index.scss': '../docs/dist/docs.css',
9
+ './themes/macos/index-dark.scss': './themes/dark.css',
10
+ './themes/macos/index-light.scss': './themes/light.css',
11
+ }
12
+
6
13
  let config = {
7
14
  entry: ["./src/index.js"],
8
15
  module: {
@@ -34,14 +41,14 @@ let config = {
34
41
  plugins: []
35
42
  };
36
43
 
37
- let style = {
38
- entry: ["./src/index.scss"],
44
+ let themeFn = (entry, target) => ({
45
+ entry: [entry],
39
46
  module: {
40
47
  rules: [
41
48
  {
42
49
  test: /\.scss$/,
43
50
  include: [
44
- path.resolve('src')
51
+ path.resolve(entry.replace(/\/[^\/]+\.scss$/, ''))
45
52
  ],
46
53
  use: [
47
54
  MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader', 'sass-loader'
@@ -52,56 +59,14 @@ let style = {
52
59
  },
53
60
  plugins: [
54
61
  new MiniCssExtractPlugin({
55
- filename: 'nano-ui.css'
62
+ filename: target
56
63
  })
57
- ]
58
- };
59
-
60
- let light = {
61
- entry: ["./themes/light/index.scss"],
62
- module: {
63
- rules: [
64
- {
65
- test: /\.scss$/,
66
- include: [
67
- path.resolve('themes')
68
- ],
69
- use: [
70
- MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader', 'sass-loader'
71
- ]
72
- }
73
- ],
74
-
75
- },
76
- plugins: [
77
- new MiniCssExtractPlugin({
78
- filename: 'light.css'
79
- })
80
- ]
81
- };
82
-
83
- let docs = {
84
- entry: ["./docs/src/scss/index.scss"],
85
- module: {
86
- rules: [
87
- {
88
- test: /\.scss$/,
89
- include: [
90
- path.resolve('./docs/src')
91
- ],
92
- use: [
93
- MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader', 'sass-loader'
94
- ]
95
- }
96
- ],
97
-
98
- },
99
- plugins: [
100
- new MiniCssExtractPlugin({
101
- filename: './dist/docs.css'
102
- })
103
- ]
104
- };
64
+ ],
65
+ output: {
66
+ filename: ".ignore.js",
67
+ path: path.resolve(__dirname, "dist"),
68
+ }
69
+ });
105
70
 
106
71
  module.exports = function (env, argv) {
107
72
 
@@ -130,36 +95,15 @@ module.exports = function (env, argv) {
130
95
 
131
96
  }, config);
132
97
 
133
- let stylePackage = Object.assign({
134
-
135
- output: {
136
- filename: ".ignore.js",
137
- path: path.resolve(__dirname, "dist"),
138
- }
139
-
140
- }, style);
98
+ let themeList = [];
141
99
 
142
- let lightPackage = Object.assign({
143
-
144
- output: {
145
- filename: ".ignore.js",
146
- path: path.resolve(__dirname, "dist/themes"),
147
- }
148
-
149
- }, light);
150
-
151
- let docsPackage = Object.assign({
152
-
153
- output: {
154
- filename: "./dist/.ignore.js",
155
- path: path.resolve(__dirname, "docs"),
156
- }
157
-
158
- }, docs);
100
+ Object.keys(themes).forEach((key, index) => {
101
+ themeList[index] = themeFn(key, themes[key]);
102
+ });
159
103
 
160
104
  if ( argv.mode === 'development' ) {
161
105
  return [
162
- bundlerPackage, stylePackage, lightPackage, docsPackage
106
+ bundlerPackage, ...themeList
163
107
  ];
164
108
  }
165
109
 
@@ -168,13 +112,14 @@ module.exports = function (env, argv) {
168
112
  });
169
113
 
170
114
  bundlerPackage.plugins.push(loaderOptions);
171
- stylePackage.plugins.push(loaderOptions);
172
- lightPackage.plugins.push(loaderOptions);
173
- docsPackage.plugins.push(loaderOptions);
115
+
116
+ themeList.forEach((cfg) => {
117
+ cfg.plugins.push(loaderOptions);
118
+ });
174
119
 
175
120
  let terserOptions = {
176
121
  mangle: true
177
- }
122
+ };
178
123
 
179
124
  let terser = new TerserPlugin({
180
125
  terserOptions, extractComments: false,
@@ -187,11 +132,12 @@ module.exports = function (env, argv) {
187
132
  optimization.minimizer.push(terser);
188
133
 
189
134
  bundlerPackage.optimization = optimization;
190
- stylePackage.optimization = optimization;
191
- lightPackage.optimization = optimization;
192
- docsPackage.optimization = optimization;
135
+
136
+ themeList.forEach((cfg) => {
137
+ cfg.optimization = optimization;
138
+ });
193
139
 
194
140
  return [
195
- bundlerPackage, stylePackage, lightPackage, docsPackage
141
+ bundlerPackage, ...themeList
196
142
  ];
197
143
  }