purgetss 5.2.2 → 5.3.1
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/README.md +1 -1
- package/assets/images/class-completion-2.gif +0 -0
- package/bin/purgetss +1 -0
- package/dist/tailwind.tss +6425 -711
- package/docs/new-glossary.md +30 -28
- package/docs/whats-new/v5.2.1.md +1 -1
- package/docs/whats-new/v5.3.1.md +1850 -0
- package/index.js +291 -69
- package/lib/helpers.js +4981 -3192
- package/package.json +1 -1
- package/assets/images/class-completion.gif +0 -0
- package/old-index.js +0 -1980
package/index.js
CHANGED
|
@@ -16,6 +16,8 @@ module.exports.colores = colores;
|
|
|
16
16
|
const purgeLabel = colores.purgeLabel;
|
|
17
17
|
const helpers = require(path.resolve(__dirname, './lib/helpers'));
|
|
18
18
|
|
|
19
|
+
let purgingDebug = false;
|
|
20
|
+
|
|
19
21
|
const logger = {
|
|
20
22
|
info: function(...args) {
|
|
21
23
|
console.log(purgeLabel, args.join(' '));
|
|
@@ -42,7 +44,7 @@ const projectPurgeTSSFolder = cwd + '/purgetss';
|
|
|
42
44
|
const projectConfigJS = cwd + '/purgetss/config.js';
|
|
43
45
|
const projectTailwindTSS = cwd + '/purgetss/tailwind.tss';
|
|
44
46
|
const projectPurgeTSSFontsFolder = cwd + '/purgetss/fonts';
|
|
45
|
-
const
|
|
47
|
+
const projectFontAwesomeTSS = cwd + '/purgetss/fontawesome.tss';
|
|
46
48
|
|
|
47
49
|
// js icon modules
|
|
48
50
|
const srcLibFA = path.resolve(__dirname, './dist/fontawesome.js');
|
|
@@ -94,6 +96,7 @@ const srcMaterialDesignIconsTSSFile = path.resolve(__dirname, './dist/materialde
|
|
|
94
96
|
const srcConfigFile = path.resolve(__dirname, './lib/templates/purgetss.config.js');
|
|
95
97
|
|
|
96
98
|
const configFile = (fs.existsSync(projectConfigJS)) ? require(projectConfigJS) : require(srcConfigFile);
|
|
99
|
+
if (!configFile.purge) configFile.purge = { mode: 'all' };
|
|
97
100
|
const configOptions = (configFile.purge && configFile.purge.options) ? configFile.purge.options : false;
|
|
98
101
|
const srcJMKFile = (isInstalledGlobally) ? path.resolve(__dirname, './lib/templates/alloy.jmk') : path.resolve(__dirname, './lib/templates/alloy-local.jmk');
|
|
99
102
|
|
|
@@ -101,6 +104,7 @@ const srcJMKFile = (isInstalledGlobally) ? path.resolve(__dirname, './lib/templa
|
|
|
101
104
|
|
|
102
105
|
//! Command: purgetss
|
|
103
106
|
function purgeClasses(options) {
|
|
107
|
+
purgingDebug = options.debug;
|
|
104
108
|
if (alloyProject()) {
|
|
105
109
|
start();
|
|
106
110
|
|
|
@@ -495,7 +499,7 @@ function processCustomFontAwesomeTSS(CSSFile, templateTSS, resetTSS, fontFamilie
|
|
|
495
499
|
|
|
496
500
|
tssClasses += processFontawesomeStyles(data);
|
|
497
501
|
|
|
498
|
-
fs.writeFileSync(
|
|
502
|
+
fs.writeFileSync(projectFontAwesomeTSS, tssClasses, err => {
|
|
499
503
|
throw err;
|
|
500
504
|
});
|
|
501
505
|
|
|
@@ -762,9 +766,7 @@ function purgeCustomFonts(uniqueClasses, cleanUniqueClasses) {
|
|
|
762
766
|
if (fs.existsSync(cwd + '/purgetss/fonts.tss')) {
|
|
763
767
|
let purgedClasses = '\n// Custom Fonts styles\n';
|
|
764
768
|
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
purgedClasses += purgeFontIcons(sourceTSS, uniqueClasses, 'Purging Custom Fonts styles...', cleanUniqueClasses, []);
|
|
769
|
+
purgedClasses += purgeFontIcons(cwd + '/purgetss/fonts.tss', uniqueClasses, 'Purging Custom Fonts styles...', cleanUniqueClasses, []);
|
|
768
770
|
|
|
769
771
|
return (purgedClasses === '\n// Custom Fonts styles\n') ? '' : purgedClasses;
|
|
770
772
|
}
|
|
@@ -940,6 +942,8 @@ function getClassesOnlyFromXMLFiles() {
|
|
|
940
942
|
}
|
|
941
943
|
|
|
942
944
|
function getUniqueClasses() {
|
|
945
|
+
localStart();
|
|
946
|
+
|
|
943
947
|
let viewPaths = getViewPaths();
|
|
944
948
|
|
|
945
949
|
let allClasses = [];
|
|
@@ -965,6 +969,8 @@ function getUniqueClasses() {
|
|
|
965
969
|
}
|
|
966
970
|
});
|
|
967
971
|
|
|
972
|
+
localFinish('Get Unique Classes');
|
|
973
|
+
|
|
968
974
|
return uniqueClasses.sort();
|
|
969
975
|
}
|
|
970
976
|
|
|
@@ -986,6 +992,7 @@ function filterCharacters(uniqueClass) {
|
|
|
986
992
|
!uniqueClass.includes('=') &&
|
|
987
993
|
!uniqueClass.includes('L(') &&
|
|
988
994
|
!uniqueClass.endsWith(',') &&
|
|
995
|
+
!uniqueClass.endsWith('.') &&
|
|
989
996
|
!uniqueClass.endsWith('/');
|
|
990
997
|
}
|
|
991
998
|
|
|
@@ -993,21 +1000,25 @@ function filterCharacters(uniqueClass) {
|
|
|
993
1000
|
function buildCustomTailwind(message = 'file created!') {
|
|
994
1001
|
const defaultColors = require('tailwindcss/colors');
|
|
995
1002
|
const defaultTheme = require('tailwindcss/defaultTheme');
|
|
1003
|
+
const defaultThemeWidth = defaultTheme.width({ theme: () => (defaultTheme.spacing) });
|
|
1004
|
+
const defaultThemeHeight = defaultTheme.height({ theme: () => (defaultTheme.spacing) });
|
|
996
1005
|
|
|
997
1006
|
removeDeprecatedColors(defaultColors);
|
|
998
1007
|
|
|
999
1008
|
// !Prepare values
|
|
1000
1009
|
configFile.theme.extend = configFile.theme.extend ?? {};
|
|
1001
1010
|
|
|
1011
|
+
let tiResets = { full: '100%' };
|
|
1012
|
+
|
|
1002
1013
|
let allWidthsCombined = (configFile.theme.spacing)
|
|
1003
|
-
? { ...
|
|
1004
|
-
: { ...
|
|
1014
|
+
? { ...configFile.theme.spacing, ...tiResets }
|
|
1015
|
+
: { ...defaultThemeWidth };
|
|
1005
1016
|
let allHeightsCombined = (configFile.theme.spacing)
|
|
1006
|
-
? { ...
|
|
1007
|
-
: { ...
|
|
1017
|
+
? { ...configFile.theme.spacing, ...tiResets }
|
|
1018
|
+
: { ...defaultThemeHeight };
|
|
1008
1019
|
let allSpacingCombined = (configFile.theme.spacing)
|
|
1009
|
-
? { ...
|
|
1010
|
-
: { ...
|
|
1020
|
+
? { ...configFile.theme.spacing, ...tiResets }
|
|
1021
|
+
: { ...defaultThemeWidth, ...defaultThemeHeight };
|
|
1011
1022
|
|
|
1012
1023
|
let overwritten = {
|
|
1013
1024
|
width: configFile.theme.width ?? allWidthsCombined,
|
|
@@ -1019,20 +1030,20 @@ function buildCustomTailwind(message = 'file created!') {
|
|
|
1019
1030
|
//! Remove unnecessary values
|
|
1020
1031
|
removeFitMaxMin(overwritten);
|
|
1021
1032
|
|
|
1022
|
-
let base = {
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1033
|
+
let base = {
|
|
1034
|
+
colors: { ...overwritten.colors, ...configFile.theme.extend.colors },
|
|
1035
|
+
spacing: { ...overwritten.spacing, ...configFile.theme.extend.spacing },
|
|
1036
|
+
columns: { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10, 11: 11, 12: 12 },
|
|
1037
|
+
width: { ...overwritten.spacing, ...configFile.theme.extend.spacing, ...overwritten.width, ...configFile.theme.extend.width },
|
|
1038
|
+
height: { ...overwritten.spacing, ...configFile.theme.extend.spacing, ...overwritten.height, ...configFile.theme.extend.height },
|
|
1039
|
+
delay: { 0: '0ms', 25: '25ms', 50: '50ms', 250: '250ms', 350: '350ms', 400: '400ms', 450: '450ms', 600: '600ms', 800: '800ms', 900: '900ms', 2000: '2000ms', 3000: '3000ms', 4000: '4000ms', 5000: '5000ms' }
|
|
1040
|
+
};
|
|
1028
1041
|
|
|
1029
|
-
// Fix any '.333333%' value to '.333334%' to propertly fit the screen
|
|
1030
1042
|
fixPercentages(base.width);
|
|
1031
1043
|
fixPercentages(base.height);
|
|
1032
1044
|
fixPercentages(base.spacing);
|
|
1033
1045
|
|
|
1034
1046
|
let configThemeFile = {};
|
|
1035
|
-
|
|
1036
1047
|
//! Process custom Window, View and ImageView
|
|
1037
1048
|
configThemeFile.Window = (configFile.theme.Window && configFile.theme.Window.apply)
|
|
1038
1049
|
? _.merge({ apply: configFile.theme.Window.apply }, configFile.theme.Window)
|
|
@@ -1052,9 +1063,13 @@ function buildCustomTailwind(message = 'file created!') {
|
|
|
1052
1063
|
configThemeFile.height = base.height;
|
|
1053
1064
|
configThemeFile.width = base.width;
|
|
1054
1065
|
configThemeFile.margin = combineKeys(configFile.theme, base.spacing, 'margin');
|
|
1066
|
+
configThemeFile.margin2 = combineKeys(configFile.theme, base.spacing, 'margin');
|
|
1055
1067
|
|
|
1056
1068
|
//! Properties with constant values
|
|
1069
|
+
// configThemeFile.audioStreamType = {};
|
|
1070
|
+
// configThemeFile.category = {};
|
|
1057
1071
|
configThemeFile.accessibilityHidden = {};
|
|
1072
|
+
configThemeFile.accessoryType = {};
|
|
1058
1073
|
configThemeFile.activeIconIsMask = {};
|
|
1059
1074
|
configThemeFile.activityEnterTransition = {};
|
|
1060
1075
|
configThemeFile.activityExitTransition = {};
|
|
@@ -1066,6 +1081,8 @@ function buildCustomTailwind(message = 'file created!') {
|
|
|
1066
1081
|
configThemeFile.activitySharedElementReenterTransition = {};
|
|
1067
1082
|
configThemeFile.activitySharedElementReturnTransition = {};
|
|
1068
1083
|
configThemeFile.alertDialogStyle = {};
|
|
1084
|
+
configThemeFile.allowsBackForwardNavigationGestures = {};
|
|
1085
|
+
configThemeFile.allowsLinkPreview = {};
|
|
1069
1086
|
configThemeFile.allowsMultipleSelectionDuringEditing = {};
|
|
1070
1087
|
configThemeFile.allowsMultipleSelectionInteraction = {};
|
|
1071
1088
|
configThemeFile.allowsSelection = {};
|
|
@@ -1078,6 +1095,7 @@ function buildCustomTailwind(message = 'file created!') {
|
|
|
1078
1095
|
configThemeFile.autofillType = {};
|
|
1079
1096
|
configThemeFile.autoLink = {};
|
|
1080
1097
|
configThemeFile.autoreverse = {};
|
|
1098
|
+
configThemeFile.autorotate = {};
|
|
1081
1099
|
configThemeFile.backgroundBlendMode = {};
|
|
1082
1100
|
configThemeFile.backgroundLinearGradient = {};
|
|
1083
1101
|
configThemeFile.backgroundRadialGradient = {};
|
|
@@ -1085,14 +1103,26 @@ function buildCustomTailwind(message = 'file created!') {
|
|
|
1085
1103
|
configThemeFile.borderStyle = {};
|
|
1086
1104
|
configThemeFile.bubbleParent = {};
|
|
1087
1105
|
configThemeFile.buttonStyle = {};
|
|
1088
|
-
configThemeFile.
|
|
1106
|
+
configThemeFile.cacheMode = {};
|
|
1107
|
+
configThemeFile.cachePolicy = {};
|
|
1108
|
+
configThemeFile.calendarViewShown = {};
|
|
1109
|
+
configThemeFile.canCancelEvents = {};
|
|
1089
1110
|
configThemeFile.canDelete = {};
|
|
1111
|
+
configThemeFile.canEdit = {};
|
|
1112
|
+
configThemeFile.canInsert = {};
|
|
1113
|
+
configThemeFile.canMove = {};
|
|
1090
1114
|
configThemeFile.canScroll = {};
|
|
1091
1115
|
configThemeFile.caseInsensitiveSearch = {};
|
|
1116
|
+
configThemeFile.checkable = {};
|
|
1117
|
+
configThemeFile.clearButtonMode = {};
|
|
1118
|
+
configThemeFile.clearOnEdit = {};
|
|
1092
1119
|
configThemeFile.clipMode = {};
|
|
1120
|
+
configThemeFile.contentHeightAndWidth = {};
|
|
1121
|
+
configThemeFile.datePickerStyle = {};
|
|
1093
1122
|
configThemeFile.defaultItemTemplate = {};
|
|
1094
1123
|
configThemeFile.dimBackgroundForSearch = {};
|
|
1095
1124
|
configThemeFile.disableBounce = {};
|
|
1125
|
+
configThemeFile.disableContextMenu = {};
|
|
1096
1126
|
configThemeFile.displayCaps = {};
|
|
1097
1127
|
configThemeFile.displayHomeAsUp = {};
|
|
1098
1128
|
configThemeFile.displayUtilities = {};
|
|
@@ -1101,11 +1131,13 @@ function buildCustomTailwind(message = 'file created!') {
|
|
|
1101
1131
|
configThemeFile.drawerIndicatorEnabled = {};
|
|
1102
1132
|
configThemeFile.drawerLockMode = {};
|
|
1103
1133
|
configThemeFile.dropShadow = {};
|
|
1134
|
+
configThemeFile.duration = {};
|
|
1104
1135
|
configThemeFile.editable = {};
|
|
1105
1136
|
configThemeFile.editing = {};
|
|
1106
1137
|
configThemeFile.ellipsize = {};
|
|
1107
1138
|
configThemeFile.enableCopy = {};
|
|
1108
1139
|
configThemeFile.enabled = {};
|
|
1140
|
+
configThemeFile.enableJavascriptInterface = {};
|
|
1109
1141
|
configThemeFile.enableReturnKey = {};
|
|
1110
1142
|
configThemeFile.enableZoomControls = {};
|
|
1111
1143
|
configThemeFile.exitOnClose = {};
|
|
@@ -1116,15 +1148,25 @@ function buildCustomTailwind(message = 'file created!') {
|
|
|
1116
1148
|
configThemeFile.filterAnchored = {};
|
|
1117
1149
|
configThemeFile.filterAttribute = {};
|
|
1118
1150
|
configThemeFile.filterCaseInsensitive = {};
|
|
1151
|
+
configThemeFile.filterTouchesWhenObscured = {};
|
|
1152
|
+
configThemeFile.flags = {};
|
|
1119
1153
|
configThemeFile.flagSecure = {};
|
|
1120
1154
|
configThemeFile.flip = {};
|
|
1155
|
+
configThemeFile.focusable = {};
|
|
1121
1156
|
configThemeFile.fontStyle = {};
|
|
1122
1157
|
configThemeFile.footerDividersEnabled = {};
|
|
1158
|
+
configThemeFile.format24 = {};
|
|
1123
1159
|
configThemeFile.fullscreen = {};
|
|
1160
|
+
configThemeFile.gravity = {};
|
|
1124
1161
|
configThemeFile.gridColumnsStartEnd = {};
|
|
1125
1162
|
configThemeFile.gridFlow = {};
|
|
1126
1163
|
configThemeFile.gridSystem = {};
|
|
1164
|
+
configThemeFile.hasCheck = {};
|
|
1165
|
+
configThemeFile.hasChild = {};
|
|
1166
|
+
configThemeFile.hasDetail = {};
|
|
1127
1167
|
configThemeFile.headerDividersEnabled = {};
|
|
1168
|
+
configThemeFile.hiddenBehavior = {};
|
|
1169
|
+
configThemeFile.hideLoadIndicator = {};
|
|
1128
1170
|
configThemeFile.hidesBackButton = {};
|
|
1129
1171
|
configThemeFile.hidesBarsOnSwipe = {};
|
|
1130
1172
|
configThemeFile.hidesBarsOnTap = {};
|
|
@@ -1132,41 +1174,57 @@ function buildCustomTailwind(message = 'file created!') {
|
|
|
1132
1174
|
configThemeFile.hideSearchOnSelection = {};
|
|
1133
1175
|
configThemeFile.hideShadow = {};
|
|
1134
1176
|
configThemeFile.hidesSearchBarWhenScrolling = {};
|
|
1177
|
+
configThemeFile.hintType = {};
|
|
1135
1178
|
configThemeFile.hires = {};
|
|
1136
1179
|
configThemeFile.homeButtonEnabled = {};
|
|
1137
1180
|
configThemeFile.homeIndicatorAutoHidden = {};
|
|
1181
|
+
configThemeFile.horizontalWrap = {};
|
|
1138
1182
|
configThemeFile.html = {};
|
|
1183
|
+
configThemeFile.icon = {};
|
|
1139
1184
|
configThemeFile.iconified = {};
|
|
1140
1185
|
configThemeFile.iconifiedByDefault = {};
|
|
1141
1186
|
configThemeFile.iconIsMask = {};
|
|
1187
|
+
configThemeFile.ignoreSslError = {};
|
|
1188
|
+
configThemeFile.imageTouchFeedback = {};
|
|
1189
|
+
configThemeFile.includeFontPadding = {};
|
|
1142
1190
|
configThemeFile.includeOpaqueBars = {};
|
|
1191
|
+
configThemeFile.inputType = {};
|
|
1143
1192
|
configThemeFile.items = {};
|
|
1144
1193
|
configThemeFile.keepScreenOn = {};
|
|
1145
1194
|
configThemeFile.keepSectionsInSearch = {};
|
|
1146
1195
|
configThemeFile.keyboardAppearance = {};
|
|
1147
1196
|
configThemeFile.keyboardDismissMode = {};
|
|
1197
|
+
configThemeFile.keyboardDisplayRequiresUserAction = {};
|
|
1148
1198
|
configThemeFile.keyboardType = {};
|
|
1149
1199
|
configThemeFile.largeTitleDisplayMode = {};
|
|
1150
1200
|
configThemeFile.largeTitleEnabled = {};
|
|
1151
1201
|
configThemeFile.layout = {};
|
|
1152
1202
|
configThemeFile.lazyLoadingEnabled = {};
|
|
1203
|
+
configThemeFile.leftButtonMode = {};
|
|
1153
1204
|
configThemeFile.leftDrawerLockMode = {};
|
|
1205
|
+
configThemeFile.lightTouchEnabled = {};
|
|
1154
1206
|
configThemeFile.listViewStyle = {};
|
|
1155
1207
|
configThemeFile.loginKeyboardType = {};
|
|
1156
1208
|
configThemeFile.loginReturnKeyType = {};
|
|
1209
|
+
configThemeFile.mixedContentMode = {};
|
|
1157
1210
|
configThemeFile.modal = {};
|
|
1158
1211
|
configThemeFile.moveable = {};
|
|
1159
1212
|
configThemeFile.moving = {};
|
|
1213
|
+
configThemeFile.nativeSpinner = {};
|
|
1160
1214
|
configThemeFile.navBarHidden = {};
|
|
1215
|
+
configThemeFile.navigationMode = {};
|
|
1161
1216
|
configThemeFile.orientationModes = {};
|
|
1162
1217
|
configThemeFile.origin = {};
|
|
1163
1218
|
configThemeFile.overlayEnabled = {};
|
|
1219
|
+
configThemeFile.overrideCurrentAnimation = {};
|
|
1164
1220
|
configThemeFile.overScrollMode = {};
|
|
1165
1221
|
configThemeFile.pagingControl = {};
|
|
1166
1222
|
configThemeFile.pagingControlOnTop = {};
|
|
1167
1223
|
configThemeFile.passwordKeyboardType = {};
|
|
1224
|
+
configThemeFile.passwordMask = {};
|
|
1168
1225
|
configThemeFile.pickerType = {};
|
|
1169
1226
|
configThemeFile.placement = {};
|
|
1227
|
+
configThemeFile.pluginState = {};
|
|
1170
1228
|
configThemeFile.preventCornerOverlap = {};
|
|
1171
1229
|
configThemeFile.preventDefaultImage = {};
|
|
1172
1230
|
configThemeFile.previewActionStyle = {};
|
|
@@ -1176,14 +1234,15 @@ function buildCustomTailwind(message = 'file created!') {
|
|
|
1176
1234
|
configThemeFile.progressIndicatorLocation = {};
|
|
1177
1235
|
configThemeFile.progressIndicatorType = {};
|
|
1178
1236
|
configThemeFile.pruneSectionsOnEdit = {};
|
|
1179
|
-
configThemeFile.
|
|
1180
|
-
configThemeFile.
|
|
1237
|
+
configThemeFile.rDrawable = {};
|
|
1238
|
+
configThemeFile.requestedOrientation = {};
|
|
1181
1239
|
configThemeFile.resultsSeparatorStyle = {};
|
|
1182
1240
|
configThemeFile.returnKeyType = {};
|
|
1241
|
+
configThemeFile.reverse = {};
|
|
1242
|
+
configThemeFile.rightButtonMode = {};
|
|
1183
1243
|
configThemeFile.rightDrawerLockMode = {};
|
|
1184
|
-
configThemeFile.
|
|
1244
|
+
configThemeFile.scalesPageToFit = {};
|
|
1185
1245
|
configThemeFile.scrollable = {};
|
|
1186
|
-
configThemeFile.scrollableRegion = {};
|
|
1187
1246
|
configThemeFile.scrollIndicators = {};
|
|
1188
1247
|
configThemeFile.scrollIndicatorStyle = {};
|
|
1189
1248
|
configThemeFile.scrollingEnabled = {};
|
|
@@ -1192,19 +1251,23 @@ function buildCustomTailwind(message = 'file created!') {
|
|
|
1192
1251
|
configThemeFile.searchAsChild = {};
|
|
1193
1252
|
configThemeFile.searchBarStyle = {};
|
|
1194
1253
|
configThemeFile.searchHidden = {};
|
|
1195
|
-
configThemeFile.
|
|
1254
|
+
configThemeFile.selectionGranularity = {};
|
|
1255
|
+
configThemeFile.selectionOpens = {};
|
|
1196
1256
|
configThemeFile.selectionStyle = {};
|
|
1197
1257
|
configThemeFile.separatorStyle = {};
|
|
1198
1258
|
configThemeFile.shiftMode = {};
|
|
1199
1259
|
configThemeFile.showAsAction = {};
|
|
1200
1260
|
configThemeFile.showBookmark = {};
|
|
1201
1261
|
configThemeFile.showCancel = {};
|
|
1262
|
+
configThemeFile.showHorizontalScrollIndicator = {};
|
|
1202
1263
|
configThemeFile.showSearchBarInNavBar = {};
|
|
1203
1264
|
configThemeFile.showSelectionCheck = {};
|
|
1265
|
+
configThemeFile.showUndoRedoActions = {};
|
|
1204
1266
|
configThemeFile.showVerticalScrollIndicator = {};
|
|
1205
1267
|
configThemeFile.smoothScrollOnTabClick = {};
|
|
1206
1268
|
configThemeFile.statusBarStyle = {};
|
|
1207
1269
|
configThemeFile.submitEnabled = {};
|
|
1270
|
+
configThemeFile.suppressReturn = {};
|
|
1208
1271
|
configThemeFile.sustainedPerformanceMode = {};
|
|
1209
1272
|
configThemeFile.swipeToClose = {};
|
|
1210
1273
|
configThemeFile.switchStyle = {};
|
|
@@ -1226,70 +1289,117 @@ function buildCustomTailwind(message = 'file created!') {
|
|
|
1226
1289
|
configThemeFile.useCompatPadding = {};
|
|
1227
1290
|
configThemeFile.useSpinner = {};
|
|
1228
1291
|
configThemeFile.verticalAlign = {};
|
|
1292
|
+
configThemeFile.verticalBounce = {};
|
|
1293
|
+
configThemeFile.verticalMargin = {};
|
|
1229
1294
|
configThemeFile.viewShadow = {};
|
|
1295
|
+
configThemeFile.willHandleTouches = {};
|
|
1230
1296
|
configThemeFile.willScrollOnStatusTap = {};
|
|
1231
1297
|
configThemeFile.windowPixelFormat = {};
|
|
1232
1298
|
configThemeFile.windowSoftInputMode = {};
|
|
1233
1299
|
configThemeFile.wobble = {};
|
|
1234
1300
|
|
|
1235
1301
|
//! Configurable properties
|
|
1302
|
+
configThemeFile.activeTab = combineKeys(configFile.theme, base.columns, 'activeTab');
|
|
1303
|
+
configThemeFile.backgroundLeftCap = combineKeys(configFile.theme, base.spacing, 'backgroundLeftCap');
|
|
1304
|
+
configThemeFile.backgroundPaddingBottom = combineKeys(configFile.theme, base.height, 'backgroundPaddingBottom');
|
|
1305
|
+
configThemeFile.backgroundPaddingLeft = combineKeys(configFile.theme, base.spacing, 'backgroundPaddingLeft');
|
|
1306
|
+
configThemeFile.backgroundPaddingRight = combineKeys(configFile.theme, base.spacing, 'backgroundPaddingRight');
|
|
1307
|
+
configThemeFile.backgroundPaddingTop = combineKeys(configFile.theme, base.height, 'backgroundPaddingTop');
|
|
1308
|
+
configThemeFile.backgroundTopCap = combineKeys(configFile.theme, base.spacing, 'backgroundTopCap');
|
|
1236
1309
|
configThemeFile.borderRadius = combineKeys(configFile.theme, defaultBorderRadius, 'borderRadius');
|
|
1237
1310
|
configThemeFile.borderWidth = combineKeys(configFile.theme, defaultTheme.borderWidth, 'borderWidth');
|
|
1238
1311
|
configThemeFile.bottomNavigation = combineKeys(configFile.theme, base.spacing, 'bottomNavigation');
|
|
1312
|
+
configThemeFile.cacheSize = combineKeys(configFile.theme, base.columns, 'cacheSize');
|
|
1313
|
+
configThemeFile.columnCount = combineKeys(configFile.theme, base.columns, 'columnCount');
|
|
1314
|
+
configThemeFile.contentHeight = combineKeys(configFile.theme, base.height, 'contentHeight');
|
|
1315
|
+
configThemeFile.contentWidth = combineKeys(configFile.theme, base.width, 'contentWidth');
|
|
1316
|
+
configThemeFile.countDownDuration = combineKeys(configFile.theme, { ...base.delay, ...defaultTheme.transitionDuration }, 'countDownDuration');
|
|
1239
1317
|
configThemeFile.elevation = combineKeys(configFile.theme, base.spacing, 'elevation');
|
|
1240
1318
|
configThemeFile.fontFamily = combineKeys(configFile.theme, {}, 'fontFamily');
|
|
1241
1319
|
configThemeFile.fontSize = combineKeys(configFile.theme, defaultTheme.fontSize, 'fontSize');
|
|
1242
1320
|
configThemeFile.fontWeight = combineKeys(configFile.theme, defaultTheme.fontWeight, 'fontWeight');
|
|
1243
1321
|
configThemeFile.gap = combineKeys(configFile.theme, base.spacing, 'margin');
|
|
1322
|
+
configThemeFile.indentionLevel = combineKeys(configFile.theme, base.spacing, 'indentionLevel');
|
|
1323
|
+
configThemeFile.keyboardToolbarHeight = combineKeys(configFile.theme, base.height, 'keyboardToolbarHeight');
|
|
1324
|
+
configThemeFile.leftButtonPadding = combineKeys(configFile.theme, base.spacing, 'leftButtonPadding');
|
|
1244
1325
|
configThemeFile.leftWidth = combineKeys(configFile.theme, base.width, 'leftWidth');
|
|
1326
|
+
configThemeFile.lines = combineKeys(configFile.theme, base.columns, 'lines');
|
|
1245
1327
|
configThemeFile.maxElevation = combineKeys(configFile.theme, base.spacing, 'maxElevation');
|
|
1328
|
+
configThemeFile.maxLines = combineKeys(configFile.theme, base.columns, 'maxLines');
|
|
1246
1329
|
configThemeFile.maxRowHeight = combineKeys(configFile.theme, base.height, 'maxRowHeight');
|
|
1330
|
+
configThemeFile.maxZoomScale = combineKeys(configFile.theme, { ...{ 5: '.05', 10: '.10', 25: '.25' }, ...defaultTheme.scale }, 'maxZoomScale');
|
|
1331
|
+
configThemeFile.minimumFontSize = combineKeys(configFile.theme, defaultTheme.fontSize, 'minimumFontSize');
|
|
1247
1332
|
configThemeFile.minRowHeight = combineKeys(configFile.theme, base.height, 'minRowHeight');
|
|
1333
|
+
configThemeFile.minZoomScale = combineKeys(configFile.theme, { ...{ 5: '.05', 10: '.10', 25: '.25' }, ...defaultTheme.scale }, 'minZoomScale');
|
|
1334
|
+
configThemeFile.offsets = combineKeys(configFile.theme, base.height, 'offsets');
|
|
1248
1335
|
configThemeFile.opacity = combineKeys(configFile.theme, defaultTheme.opacity, 'opacity');
|
|
1249
1336
|
configThemeFile.padding = combineKeys(configFile.theme, base.spacing, 'padding');
|
|
1250
1337
|
configThemeFile.pagingControlAlpha = combineKeys(configFile.theme, defaultTheme.opacity, 'pagingControlAlpha');
|
|
1251
1338
|
configThemeFile.pagingControlHeight = combineKeys(configFile.theme, base.height, 'pagingControlHeight');
|
|
1252
|
-
configThemeFile.pagingControlTimeout = combineKeys(configFile.theme, { ...
|
|
1339
|
+
configThemeFile.pagingControlTimeout = combineKeys(configFile.theme, { ...base.delay, ...defaultTheme.transitionDelay }, 'pagingControlTimeout');
|
|
1340
|
+
configThemeFile.repeat = combineKeys(configFile.theme, base.columns, 'repeat');
|
|
1341
|
+
configThemeFile.repeatCount = combineKeys(configFile.theme, base.columns, 'repeatCount');
|
|
1342
|
+
configThemeFile.rightButtonPadding = combineKeys(configFile.theme, base.spacing, 'rightButtonPadding');
|
|
1253
1343
|
configThemeFile.rightWidth = combineKeys(configFile.theme, base.width, 'rightWidth');
|
|
1254
1344
|
configThemeFile.rotate = combineKeys(configFile.theme, defaultTheme.rotate, 'rotate');
|
|
1345
|
+
configThemeFile.rowCount = combineKeys(configFile.theme, base.columns, 'rowCount');
|
|
1255
1346
|
configThemeFile.rowHeight = combineKeys(configFile.theme, base.height, 'rowHeight');
|
|
1256
1347
|
configThemeFile.scale = combineKeys(configFile.theme, { ...{ 5: '.05', 10: '.10', 25: '.25' }, ...defaultTheme.scale }, 'scale');
|
|
1348
|
+
configThemeFile.sectionHeaderTopPadding = combineKeys(configFile.theme, base.height, 'sectionHeaderTopPadding');
|
|
1257
1349
|
configThemeFile.separatorHeight = combineKeys(configFile.theme, base.height, 'separatorHeight');
|
|
1258
1350
|
configThemeFile.shadowRadius = combineKeys(configFile.theme, base.spacing, 'shadowRadius');
|
|
1259
|
-
configThemeFile.
|
|
1260
|
-
configThemeFile.
|
|
1351
|
+
configThemeFile.timeout = combineKeys(configFile.theme, { ...base.delay, ...defaultTheme.transitionDelay }, 'timeout');
|
|
1352
|
+
configThemeFile.transitionDelay = combineKeys(configFile.theme, { ...base.delay, ...defaultTheme.transitionDelay }, 'transitionDelay');
|
|
1353
|
+
configThemeFile.transitionDuration = combineKeys(configFile.theme, { ...base.delay, ...defaultTheme.transitionDuration }, 'transitionDuration');
|
|
1261
1354
|
configThemeFile.zIndex = combineKeys(configFile.theme, defaultTheme.zIndex, 'zIndex');
|
|
1355
|
+
configThemeFile.zoomScale = combineKeys(configFile.theme, { ...{ 5: '.05', 10: '.10', 25: '.25' }, ...defaultTheme.scale }, 'zoomScale');
|
|
1262
1356
|
|
|
1263
1357
|
//! Color related properties
|
|
1264
1358
|
configThemeFile.activeTintColor = combineKeys(configFile.theme, base.colors, 'activeTintColor');
|
|
1265
1359
|
configThemeFile.activeTitleColor = combineKeys(configFile.theme, base.colors, 'activeTitleColor');
|
|
1266
1360
|
configThemeFile.backgroundColor = combineKeys(configFile.theme, base.colors, 'backgroundColor');
|
|
1361
|
+
configThemeFile.backgroundDisabledColor = combineKeys(configFile.theme, base.colors, 'backgroundDisabledColor');
|
|
1362
|
+
configThemeFile.backgroundFocusedColor = combineKeys(configFile.theme, base.colors, 'backgroundFocusedColor');
|
|
1267
1363
|
configThemeFile.backgroundGradient = combineKeys(configFile.theme, base.colors, 'backgroundGradient');
|
|
1268
1364
|
configThemeFile.backgroundSelectedColor = combineKeys(configFile.theme, base.colors, 'backgroundSelectedColor');
|
|
1365
|
+
configThemeFile.backgroundSelectedGradient = combineKeys(configFile.theme, base.colors, 'backgroundSelectedGradient');
|
|
1366
|
+
configThemeFile.badgeColor = combineKeys(configFile.theme, base.colors, 'badgeColor');
|
|
1269
1367
|
configThemeFile.barColor = combineKeys(configFile.theme, base.colors, 'barColor');
|
|
1270
1368
|
configThemeFile.borderColor = combineKeys(configFile.theme, base.colors, 'borderColor');
|
|
1271
1369
|
configThemeFile.currentPageIndicatorColor = combineKeys(configFile.theme, base.colors, 'currentPageIndicatorColor');
|
|
1370
|
+
configThemeFile.dateTimeColor = combineKeys(configFile.theme, base.colors, 'dateTimeColor');
|
|
1272
1371
|
configThemeFile.disabledColor = combineKeys(configFile.theme, base.colors, 'disabledColor');
|
|
1273
1372
|
configThemeFile.dropShadowColor = combineKeys(configFile.theme, base.colors, 'shadowColor');
|
|
1373
|
+
configThemeFile.highlightedColor = combineKeys(configFile.theme, base.colors, 'highlightedColor');
|
|
1274
1374
|
configThemeFile.hintTextColor = combineKeys(configFile.theme, base.colors, 'hintTextColor');
|
|
1375
|
+
configThemeFile.imageTouchFeedbackColor = combineKeys(configFile.theme, base.colors, 'imageTouchFeedbackColor');
|
|
1275
1376
|
configThemeFile.indicatorColor = combineKeys(configFile.theme, base.colors, 'indicatorColor');
|
|
1377
|
+
configThemeFile.keyboardToolbarColor = combineKeys(configFile.theme, base.colors, 'keyboardToolbarColor');
|
|
1276
1378
|
configThemeFile.navTintColor = combineKeys(configFile.theme, base.colors, 'navTintColor');
|
|
1379
|
+
configThemeFile.onTintColor = combineKeys(configFile.theme, base.colors, 'onTintColor');
|
|
1277
1380
|
configThemeFile.pageIndicatorColor = combineKeys(configFile.theme, base.colors, 'pageIndicatorColor');
|
|
1278
1381
|
configThemeFile.pagingControlColor = combineKeys(configFile.theme, base.colors, 'pagingControlColor');
|
|
1382
|
+
configThemeFile.placeholder = combineKeys(configFile.theme, base.colors, 'placeholder');
|
|
1383
|
+
configThemeFile.pullBackgroundColor = combineKeys(configFile.theme, base.colors, 'pullBackgroundColor');
|
|
1279
1384
|
configThemeFile.resultsBackgroundColor = combineKeys(configFile.theme, base.colors, 'resultsBackgroundColor');
|
|
1280
1385
|
configThemeFile.resultsSeparatorColor = combineKeys(configFile.theme, base.colors, 'resultsSeparatorColor');
|
|
1281
1386
|
configThemeFile.selectedButtonColor = combineKeys(configFile.theme, base.colors, 'selectedButtonColor');
|
|
1282
1387
|
configThemeFile.selectedColor = combineKeys(configFile.theme, base.colors, 'selectedColor');
|
|
1388
|
+
configThemeFile.selectedSubtitleColor = combineKeys(configFile.theme, base.colors, 'selectedSubtitleColor');
|
|
1283
1389
|
configThemeFile.selectedTextColor = combineKeys(configFile.theme, base.colors, 'selectedTextColor');
|
|
1284
1390
|
configThemeFile.separatorColor = combineKeys(configFile.theme, base.colors, 'separatorColor');
|
|
1391
|
+
configThemeFile.subtitleColor = combineKeys(configFile.theme, base.colors, 'subtitleColor');
|
|
1285
1392
|
configThemeFile.tabsBackgroundColor = combineKeys(configFile.theme, base.colors, 'tabsBackgroundColor');
|
|
1286
1393
|
configThemeFile.tabsBackgroundSelectedColor = combineKeys(configFile.theme, base.colors, 'tabsBackgroundSelectedColor');
|
|
1287
1394
|
configThemeFile.textColor = combineKeys(configFile.theme, base.colors, 'textColor');
|
|
1395
|
+
configThemeFile.thumbTintColor = combineKeys(configFile.theme, base.colors, 'thumbTintColor');
|
|
1288
1396
|
configThemeFile.tintColor = combineKeys(configFile.theme, base.colors, 'tintColor');
|
|
1289
1397
|
configThemeFile.titleAttributesColor = combineKeys(configFile.theme, base.colors, 'titleAttributesColor');
|
|
1290
1398
|
configThemeFile.titleAttributesShadowColor = combineKeys(configFile.theme, base.colors, 'titleAttributesShadowColor');
|
|
1291
1399
|
configThemeFile.titleColor = combineKeys(configFile.theme, base.colors, 'titleColor');
|
|
1400
|
+
configThemeFile.titleTextColor = combineKeys(configFile.theme, base.colors, 'titleTextColor');
|
|
1292
1401
|
configThemeFile.touchFeedbackColor = combineKeys(configFile.theme, base.colors, 'touchFeedbackColor');
|
|
1402
|
+
configThemeFile.trackTintColor = combineKeys(configFile.theme, base.colors, 'trackTintColor');
|
|
1293
1403
|
configThemeFile.viewShadowColor = combineKeys(configFile.theme, base.colors, 'viewShadowColor');
|
|
1294
1404
|
|
|
1295
1405
|
// !Some final cleanup
|
|
@@ -1383,10 +1493,16 @@ function createDefinitionsFile() {
|
|
|
1383
1493
|
classDefinitions += fs.readFileSync(cwd + '/purgetss/fonts.tss', 'utf8').replace(/\n\/\*\*\n([\s\S]*?)\*\/\n/g, '');
|
|
1384
1494
|
}
|
|
1385
1495
|
|
|
1386
|
-
if (fs.existsSync(
|
|
1387
|
-
classDefinitions += fs.readFileSync(
|
|
1496
|
+
if (fs.existsSync(projectFontAwesomeTSS)) {
|
|
1497
|
+
classDefinitions += fs.readFileSync(projectFontAwesomeTSS, 'utf8');
|
|
1498
|
+
} else {
|
|
1499
|
+
classDefinitions += fs.readFileSync(srcFontAwesomeTSSFile, 'utf8');
|
|
1388
1500
|
}
|
|
1389
1501
|
|
|
1502
|
+
classDefinitions += fs.readFileSync(srcFramework7FontTSSFile, 'utf8');
|
|
1503
|
+
|
|
1504
|
+
classDefinitions += fs.readFileSync(srcMaterialDesignIconsTSSFile, 'utf8');
|
|
1505
|
+
|
|
1390
1506
|
classDefinitions = classDefinitions
|
|
1391
1507
|
.replace(`'ImageView[platform=ios]': { hires: true }\n`, '')
|
|
1392
1508
|
.replace(`'View': { width: Ti.UI.SIZE, height: Ti.UI.SIZE }\n`, '')
|
|
@@ -1395,7 +1511,7 @@ function createDefinitionsFile() {
|
|
|
1395
1511
|
.replace(/{(.*)}/g, '{}')
|
|
1396
1512
|
.replace(/\[(.*)\]/g, '')
|
|
1397
1513
|
.replace(/\/\/(.*)\n/g, '')
|
|
1398
|
-
.replace(/\n
|
|
1514
|
+
.replace(/\n/g, '');
|
|
1399
1515
|
|
|
1400
1516
|
fs.writeFileSync(cwd + '/purgetss/definitions.css', `/* Class definitions */${classDefinitions}`);
|
|
1401
1517
|
|
|
@@ -1405,8 +1521,12 @@ function createDefinitionsFile() {
|
|
|
1405
1521
|
//! Build tailwind's custom values
|
|
1406
1522
|
function helperToBuildCustomTailwindClasses(key, value) {
|
|
1407
1523
|
switch (key) {
|
|
1524
|
+
// case 'audioStreamType':
|
|
1525
|
+
// case 'category':
|
|
1408
1526
|
case 'accessibilityHidden':
|
|
1527
|
+
case 'accessoryType':
|
|
1409
1528
|
case 'activeIconIsMask':
|
|
1529
|
+
case 'activeTab':
|
|
1410
1530
|
case 'activeTintColor':
|
|
1411
1531
|
case 'activeTitleColor':
|
|
1412
1532
|
case 'activityEnterTransition':
|
|
@@ -1419,6 +1539,8 @@ function helperToBuildCustomTailwindClasses(key, value) {
|
|
|
1419
1539
|
case 'activitySharedElementReenterTransition':
|
|
1420
1540
|
case 'activitySharedElementReturnTransition':
|
|
1421
1541
|
case 'alertDialogStyle':
|
|
1542
|
+
case 'allowsBackForwardNavigationGestures':
|
|
1543
|
+
case 'allowsLinkPreview':
|
|
1422
1544
|
case 'allowsMultipleSelectionDuringEditing':
|
|
1423
1545
|
case 'allowsMultipleSelectionInteraction':
|
|
1424
1546
|
case 'allowsSelection':
|
|
@@ -1431,13 +1553,24 @@ function helperToBuildCustomTailwindClasses(key, value) {
|
|
|
1431
1553
|
case 'autofillType':
|
|
1432
1554
|
case 'autoLink':
|
|
1433
1555
|
case 'autoreverse':
|
|
1556
|
+
case 'autorotate':
|
|
1434
1557
|
case 'backgroundBlendMode':
|
|
1435
1558
|
case 'backgroundColor':
|
|
1559
|
+
case 'backgroundDisabledColor':
|
|
1560
|
+
case 'backgroundFocusedColor':
|
|
1436
1561
|
case 'backgroundGradient':
|
|
1562
|
+
case 'backgroundLeftCap':
|
|
1437
1563
|
case 'backgroundLinearGradient':
|
|
1564
|
+
case 'backgroundPaddingBottom':
|
|
1565
|
+
case 'backgroundPaddingLeft':
|
|
1566
|
+
case 'backgroundPaddingRight':
|
|
1567
|
+
case 'backgroundPaddingTop':
|
|
1438
1568
|
case 'backgroundRadialGradient':
|
|
1439
1569
|
case 'backgroundRepeat':
|
|
1440
1570
|
case 'backgroundSelectedColor':
|
|
1571
|
+
case 'backgroundSelectedGradient':
|
|
1572
|
+
case 'backgroundTopCap':
|
|
1573
|
+
case 'badgeColor':
|
|
1441
1574
|
case 'barColor':
|
|
1442
1575
|
case 'borderColor':
|
|
1443
1576
|
case 'borderRadius':
|
|
@@ -1446,15 +1579,33 @@ function helperToBuildCustomTailwindClasses(key, value) {
|
|
|
1446
1579
|
case 'bottomNavigation':
|
|
1447
1580
|
case 'bubbleParent':
|
|
1448
1581
|
case 'buttonStyle':
|
|
1582
|
+
case 'cacheMode':
|
|
1583
|
+
case 'cachePolicy':
|
|
1449
1584
|
case 'cacheSize':
|
|
1585
|
+
case 'calendarViewShown':
|
|
1586
|
+
case 'canCancelEvents':
|
|
1450
1587
|
case 'canDelete':
|
|
1588
|
+
case 'canEdit':
|
|
1589
|
+
case 'canInsert':
|
|
1590
|
+
case 'canMove':
|
|
1451
1591
|
case 'canScroll':
|
|
1452
1592
|
case 'caseInsensitiveSearch':
|
|
1593
|
+
case 'checkable':
|
|
1594
|
+
case 'clearButtonMode':
|
|
1595
|
+
case 'clearOnEdit':
|
|
1453
1596
|
case 'clipMode':
|
|
1597
|
+
case 'columnCount':
|
|
1598
|
+
case 'contentHeight':
|
|
1599
|
+
case 'contentHeightAndWidth':
|
|
1600
|
+
case 'contentWidth':
|
|
1601
|
+
case 'countDownDuration':
|
|
1454
1602
|
case 'currentPageIndicatorColor':
|
|
1603
|
+
case 'datePickerStyle':
|
|
1604
|
+
case 'dateTimeColor':
|
|
1455
1605
|
case 'defaultItemTemplate':
|
|
1456
1606
|
case 'dimBackgroundForSearch':
|
|
1457
1607
|
case 'disableBounce':
|
|
1608
|
+
case 'disableContextMenu':
|
|
1458
1609
|
case 'disabledColor':
|
|
1459
1610
|
case 'displayCaps':
|
|
1460
1611
|
case 'displayHomeAsUp':
|
|
@@ -1465,12 +1616,14 @@ function helperToBuildCustomTailwindClasses(key, value) {
|
|
|
1465
1616
|
case 'drawerLockMode':
|
|
1466
1617
|
case 'dropShadow':
|
|
1467
1618
|
case 'dropShadowColor':
|
|
1619
|
+
case 'duration':
|
|
1468
1620
|
case 'editable':
|
|
1469
1621
|
case 'editing':
|
|
1470
1622
|
case 'elevation':
|
|
1471
1623
|
case 'ellipsize':
|
|
1472
1624
|
case 'enableCopy':
|
|
1473
1625
|
case 'enabled':
|
|
1626
|
+
case 'enableJavascriptInterface':
|
|
1474
1627
|
case 'enableReturnKey':
|
|
1475
1628
|
case 'enableZoomControls':
|
|
1476
1629
|
case 'exitOnClose':
|
|
@@ -1481,20 +1634,30 @@ function helperToBuildCustomTailwindClasses(key, value) {
|
|
|
1481
1634
|
case 'filterAnchored':
|
|
1482
1635
|
case 'filterAttribute':
|
|
1483
1636
|
case 'filterCaseInsensitive':
|
|
1637
|
+
case 'filterTouchesWhenObscured':
|
|
1638
|
+
case 'flags':
|
|
1484
1639
|
case 'flagSecure':
|
|
1485
1640
|
case 'flip':
|
|
1641
|
+
case 'focusable':
|
|
1486
1642
|
case 'fontFamily':
|
|
1487
1643
|
case 'fontSize':
|
|
1488
1644
|
case 'fontStyle':
|
|
1489
1645
|
case 'fontWeight':
|
|
1490
1646
|
case 'footerDividersEnabled':
|
|
1647
|
+
case 'format24':
|
|
1491
1648
|
case 'fullscreen':
|
|
1492
1649
|
case 'gap':
|
|
1650
|
+
case 'gravity':
|
|
1493
1651
|
case 'gridColumnsStartEnd':
|
|
1494
1652
|
case 'gridFlow':
|
|
1495
1653
|
case 'gridSystem':
|
|
1654
|
+
case 'hasCheck':
|
|
1655
|
+
case 'hasChild':
|
|
1656
|
+
case 'hasDetail':
|
|
1496
1657
|
case 'headerDividersEnabled':
|
|
1497
1658
|
case 'height':
|
|
1659
|
+
case 'hiddenBehavior':
|
|
1660
|
+
case 'hideLoadIndicator':
|
|
1498
1661
|
case 'hidesBackButton':
|
|
1499
1662
|
case 'hidesBarsOnSwipe':
|
|
1500
1663
|
case 'hidesBarsOnTap':
|
|
@@ -1502,44 +1665,72 @@ function helperToBuildCustomTailwindClasses(key, value) {
|
|
|
1502
1665
|
case 'hideSearchOnSelection':
|
|
1503
1666
|
case 'hideShadow':
|
|
1504
1667
|
case 'hidesSearchBarWhenScrolling':
|
|
1668
|
+
case 'highlightedColor':
|
|
1505
1669
|
case 'hintTextColor':
|
|
1670
|
+
case 'hintType':
|
|
1506
1671
|
case 'hires':
|
|
1507
1672
|
case 'homeButtonEnabled':
|
|
1508
1673
|
case 'homeIndicatorAutoHidden':
|
|
1674
|
+
case 'horizontalWrap':
|
|
1509
1675
|
case 'html':
|
|
1676
|
+
case 'icon':
|
|
1510
1677
|
case 'iconified':
|
|
1511
1678
|
case 'iconifiedByDefault':
|
|
1512
1679
|
case 'iconIsMask':
|
|
1680
|
+
case 'ignoreSslError':
|
|
1681
|
+
case 'imageTouchFeedback':
|
|
1682
|
+
case 'imageTouchFeedbackColor':
|
|
1683
|
+
case 'includeFontPadding':
|
|
1513
1684
|
case 'includeOpaqueBars':
|
|
1685
|
+
case 'indentionLevel':
|
|
1514
1686
|
case 'indicatorColor':
|
|
1687
|
+
case 'inputType':
|
|
1515
1688
|
case 'items':
|
|
1516
1689
|
case 'keepScreenOn':
|
|
1517
1690
|
case 'keepSectionsInSearch':
|
|
1518
1691
|
case 'keyboardAppearance':
|
|
1519
1692
|
case 'keyboardDismissMode':
|
|
1693
|
+
case 'keyboardDisplayRequiresUserAction':
|
|
1694
|
+
case 'keyboardToolbarColor':
|
|
1695
|
+
case 'keyboardToolbarHeight':
|
|
1520
1696
|
case 'keyboardType':
|
|
1521
1697
|
case 'largeTitleDisplayMode':
|
|
1522
1698
|
case 'largeTitleEnabled':
|
|
1523
1699
|
case 'layout':
|
|
1524
1700
|
case 'lazyLoadingEnabled':
|
|
1701
|
+
case 'leftButtonMode':
|
|
1702
|
+
case 'leftButtonPadding':
|
|
1525
1703
|
case 'leftDrawerLockMode':
|
|
1526
1704
|
case 'leftWidth':
|
|
1705
|
+
case 'lightTouchEnabled':
|
|
1706
|
+
case 'lines':
|
|
1527
1707
|
case 'listViewStyle':
|
|
1528
1708
|
case 'loginKeyboardType':
|
|
1529
1709
|
case 'loginReturnKeyType':
|
|
1530
1710
|
case 'margin':
|
|
1711
|
+
case 'margin2':
|
|
1531
1712
|
case 'maxElevation':
|
|
1713
|
+
case 'maxLines':
|
|
1532
1714
|
case 'maxRowHeight':
|
|
1715
|
+
case 'maxZoomScale':
|
|
1716
|
+
case 'minimumFontSize':
|
|
1533
1717
|
case 'minRowHeight':
|
|
1718
|
+
case 'minZoomScale':
|
|
1719
|
+
case 'mixedContentMode':
|
|
1534
1720
|
case 'modal':
|
|
1535
1721
|
case 'moveable':
|
|
1536
1722
|
case 'moving':
|
|
1723
|
+
case 'nativeSpinner':
|
|
1537
1724
|
case 'navBarHidden':
|
|
1725
|
+
case 'navigationMode':
|
|
1538
1726
|
case 'navTintColor':
|
|
1727
|
+
case 'offsets':
|
|
1728
|
+
case 'onTintColor':
|
|
1539
1729
|
case 'opacity':
|
|
1540
1730
|
case 'orientationModes':
|
|
1541
1731
|
case 'origin':
|
|
1542
1732
|
case 'overlayEnabled':
|
|
1733
|
+
case 'overrideCurrentAnimation':
|
|
1543
1734
|
case 'overScrollMode':
|
|
1544
1735
|
case 'padding':
|
|
1545
1736
|
case 'pageIndicatorColor':
|
|
@@ -1550,8 +1741,11 @@ function helperToBuildCustomTailwindClasses(key, value) {
|
|
|
1550
1741
|
case 'pagingControlOnTop':
|
|
1551
1742
|
case 'pagingControlTimeout':
|
|
1552
1743
|
case 'passwordKeyboardType':
|
|
1744
|
+
case 'passwordMask':
|
|
1553
1745
|
case 'pickerType':
|
|
1746
|
+
case 'placeholder':
|
|
1554
1747
|
case 'placement':
|
|
1748
|
+
case 'pluginState':
|
|
1555
1749
|
case 'preventCornerOverlap':
|
|
1556
1750
|
case 'preventDefaultImage':
|
|
1557
1751
|
case 'previewActionStyle':
|
|
@@ -1561,20 +1755,26 @@ function helperToBuildCustomTailwindClasses(key, value) {
|
|
|
1561
1755
|
case 'progressIndicatorLocation':
|
|
1562
1756
|
case 'progressIndicatorType':
|
|
1563
1757
|
case 'pruneSectionsOnEdit':
|
|
1758
|
+
case 'pullBackgroundColor':
|
|
1759
|
+
case 'rDrawable':
|
|
1564
1760
|
case 'repeat':
|
|
1565
|
-
case '
|
|
1761
|
+
case 'repeatCount':
|
|
1762
|
+
case 'requestedOrientation':
|
|
1566
1763
|
case 'resultsBackgroundColor':
|
|
1567
1764
|
case 'resultsSeparatorColor':
|
|
1568
1765
|
case 'resultsSeparatorStyle':
|
|
1569
1766
|
case 'returnKeyType':
|
|
1767
|
+
case 'reverse':
|
|
1768
|
+
case 'rightButtonMode':
|
|
1769
|
+
case 'rightButtonPadding':
|
|
1570
1770
|
case 'rightDrawerLockMode':
|
|
1571
1771
|
case 'rightWidth':
|
|
1572
1772
|
case 'rotate':
|
|
1573
|
-
case '
|
|
1773
|
+
case 'rowCount':
|
|
1574
1774
|
case 'rowHeight':
|
|
1575
1775
|
case 'scale':
|
|
1776
|
+
case 'scalesPageToFit':
|
|
1576
1777
|
case 'scrollable':
|
|
1577
|
-
case 'scrollableRegion':
|
|
1578
1778
|
case 'scrollIndicators':
|
|
1579
1779
|
case 'scrollIndicatorStyle':
|
|
1580
1780
|
case 'scrollingEnabled':
|
|
@@ -1586,7 +1786,10 @@ function helperToBuildCustomTailwindClasses(key, value) {
|
|
|
1586
1786
|
case 'sectionHeaderTopPadding':
|
|
1587
1787
|
case 'selectedButtonColor':
|
|
1588
1788
|
case 'selectedColor':
|
|
1789
|
+
case 'selectedSubtitleColor':
|
|
1589
1790
|
case 'selectedTextColor':
|
|
1791
|
+
case 'selectionGranularity':
|
|
1792
|
+
case 'selectionOpens':
|
|
1590
1793
|
case 'selectionStyle':
|
|
1591
1794
|
case 'separatorColor':
|
|
1592
1795
|
case 'separatorHeight':
|
|
@@ -1597,12 +1800,16 @@ function helperToBuildCustomTailwindClasses(key, value) {
|
|
|
1597
1800
|
case 'showAsAction':
|
|
1598
1801
|
case 'showBookmark':
|
|
1599
1802
|
case 'showCancel':
|
|
1803
|
+
case 'showHorizontalScrollIndicator':
|
|
1600
1804
|
case 'showSearchBarInNavBar':
|
|
1601
1805
|
case 'showSelectionCheck':
|
|
1806
|
+
case 'showUndoRedoActions':
|
|
1602
1807
|
case 'showVerticalScrollIndicator':
|
|
1603
1808
|
case 'smoothScrollOnTabClick':
|
|
1604
1809
|
case 'statusBarStyle':
|
|
1605
1810
|
case 'submitEnabled':
|
|
1811
|
+
case 'subtitleColor':
|
|
1812
|
+
case 'suppressReturn':
|
|
1606
1813
|
case 'sustainedPerformanceMode':
|
|
1607
1814
|
case 'swipeToClose':
|
|
1608
1815
|
case 'switchStyle':
|
|
@@ -1617,16 +1824,20 @@ function helperToBuildCustomTailwindClasses(key, value) {
|
|
|
1617
1824
|
case 'textAlign':
|
|
1618
1825
|
case 'textColor':
|
|
1619
1826
|
case 'theme':
|
|
1827
|
+
case 'thumbTintColor':
|
|
1620
1828
|
case 'tiMedia':
|
|
1829
|
+
case 'timeout':
|
|
1621
1830
|
case 'tintColor':
|
|
1622
1831
|
case 'titleAttributesColor':
|
|
1623
1832
|
case 'titleAttributesShadow':
|
|
1624
1833
|
case 'titleAttributesShadowColor':
|
|
1625
1834
|
case 'titleColor':
|
|
1835
|
+
case 'titleTextColor':
|
|
1626
1836
|
case 'toolbarEnabled':
|
|
1627
1837
|
case 'touchEnabled':
|
|
1628
1838
|
case 'touchFeedback':
|
|
1629
1839
|
case 'touchFeedbackColor':
|
|
1840
|
+
case 'trackTintColor':
|
|
1630
1841
|
case 'transition':
|
|
1631
1842
|
case 'transitionDelay':
|
|
1632
1843
|
case 'transitionDuration':
|
|
@@ -1634,14 +1845,18 @@ function helperToBuildCustomTailwindClasses(key, value) {
|
|
|
1634
1845
|
case 'useCompatPadding':
|
|
1635
1846
|
case 'useSpinner':
|
|
1636
1847
|
case 'verticalAlign':
|
|
1848
|
+
case 'verticalBounce':
|
|
1849
|
+
case 'verticalMargin':
|
|
1637
1850
|
case 'viewShadow':
|
|
1638
1851
|
case 'viewShadowColor':
|
|
1639
1852
|
case 'width':
|
|
1853
|
+
case 'willHandleTouches':
|
|
1640
1854
|
case 'willScrollOnStatusTap':
|
|
1641
1855
|
case 'windowPixelFormat':
|
|
1642
1856
|
case 'windowSoftInputMode':
|
|
1643
1857
|
case 'wobble':
|
|
1644
1858
|
case 'zIndex':
|
|
1859
|
+
case 'zoomScale':
|
|
1645
1860
|
return helpers[key](value);
|
|
1646
1861
|
|
|
1647
1862
|
default: return helpers.customRules(value, key);
|
|
@@ -1787,6 +2002,8 @@ function backupOriginalAppTss() {
|
|
|
1787
2002
|
|
|
1788
2003
|
//! Copy Reset template
|
|
1789
2004
|
function copyResetTemplateAnd_appTSS() {
|
|
2005
|
+
localStart();
|
|
2006
|
+
|
|
1790
2007
|
logger.info('Copying Reset styles...');
|
|
1791
2008
|
|
|
1792
2009
|
let tempPurged = fs.readFileSync(srcResetTSSFile, 'utf8');
|
|
@@ -1800,6 +2017,8 @@ function copyResetTemplateAnd_appTSS() {
|
|
|
1800
2017
|
}
|
|
1801
2018
|
}
|
|
1802
2019
|
|
|
2020
|
+
localFinish('Copying Reset and ' + chalk.yellow('_app.tss') + ' styles...');
|
|
2021
|
+
|
|
1803
2022
|
return tempPurged;
|
|
1804
2023
|
}
|
|
1805
2024
|
|
|
@@ -1814,15 +2033,28 @@ function finish(customMessage = 'Finished purging in') {
|
|
|
1814
2033
|
logger.info(customMessage, chalk.green(`${endTime.getSeconds()}s ${endTime.getMilliseconds()}ms`));
|
|
1815
2034
|
}
|
|
1816
2035
|
|
|
2036
|
+
let localStartTime;
|
|
2037
|
+
function localStart() {
|
|
2038
|
+
localStartTime = new Date();
|
|
2039
|
+
};
|
|
2040
|
+
|
|
2041
|
+
function localFinish(customMessage = 'Finished purging in') {
|
|
2042
|
+
let localEndTime = new Date(new Date() - localStartTime);
|
|
2043
|
+
if (purgingDebug) logger.info(customMessage, chalk.green(`${localEndTime.getSeconds()}s ${localEndTime.getMilliseconds()}ms`));
|
|
2044
|
+
}
|
|
2045
|
+
|
|
1817
2046
|
//! Purge Functions
|
|
1818
2047
|
//! Tailwind
|
|
1819
2048
|
function purgeTailwind(uniqueClasses) {
|
|
2049
|
+
localStart();
|
|
2050
|
+
|
|
1820
2051
|
let purgedClasses = '\n// Main styles\n';
|
|
1821
2052
|
let tailwindClasses = fs.readFileSync(projectTailwindTSS, 'utf8').split(/\r?\n/);
|
|
1822
2053
|
|
|
1823
2054
|
if (`// config.js file updated on: ${getFileUpdatedDate(projectConfigJS)}` !== tailwindClasses[6]) {
|
|
1824
2055
|
logger.info(chalk.yellow('config.js'), 'file updated!, rebuilding tailwind.tss...');
|
|
1825
2056
|
buildCustomTailwind('file updated!');
|
|
2057
|
+
createDefinitionsFile();
|
|
1826
2058
|
tailwindClasses = fs.readFileSync(projectTailwindTSS, 'utf8').split(/\r?\n/);
|
|
1827
2059
|
}
|
|
1828
2060
|
|
|
@@ -1942,6 +2174,10 @@ function purgeTailwind(uniqueClasses) {
|
|
|
1942
2174
|
// Add arbitrary values
|
|
1943
2175
|
purgedClasses += (arbitraryValues !== '\n// Styles with arbitrary values\n') ? arbitraryValues : '';
|
|
1944
2176
|
|
|
2177
|
+
let mensaje = 'Purging ' + chalk.yellow('Custom Tailwind') + ' styles...';
|
|
2178
|
+
|
|
2179
|
+
localFinish(mensaje);
|
|
2180
|
+
|
|
1945
2181
|
return purgedClasses;
|
|
1946
2182
|
}
|
|
1947
2183
|
|
|
@@ -1955,8 +2191,8 @@ function purgeFontAwesome(uniqueClasses, cleanUniqueClasses) {
|
|
|
1955
2191
|
let purgedClasses = '';
|
|
1956
2192
|
let purgingMessage = '';
|
|
1957
2193
|
|
|
1958
|
-
if (fs.existsSync(
|
|
1959
|
-
sourceFolder =
|
|
2194
|
+
if (fs.existsSync(projectFontAwesomeTSS)) {
|
|
2195
|
+
sourceFolder = projectFontAwesomeTSS;
|
|
1960
2196
|
purgedClasses = '\n// Pro/Beta Font Awesome styles\n';
|
|
1961
2197
|
purgingMessage = `Purging ${chalk.yellow('Pro/Beta Font Awesome')} styles...')`;
|
|
1962
2198
|
} else {
|
|
@@ -1965,9 +2201,7 @@ function purgeFontAwesome(uniqueClasses, cleanUniqueClasses) {
|
|
|
1965
2201
|
purgingMessage = `Purging Default Font Awesome styles...`;
|
|
1966
2202
|
}
|
|
1967
2203
|
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
purgedClasses += purgeFontIcons(sourceTSS, uniqueClasses, purgingMessage, cleanUniqueClasses, ['fa', 'fat', 'fas', 'fal', 'far', 'fab', 'fa-thin', 'fa-solid', 'fa-light', 'fa-regular', 'fa-brands', 'fontawesome', 'fontawesome-thin', 'fontawesome-solid', 'fontawesome-light', 'fontawesome-regular', 'fontawesome-brands']);
|
|
2204
|
+
purgedClasses += purgeFontIcons(sourceFolder, uniqueClasses, purgingMessage, cleanUniqueClasses, ['fa', 'fat', 'fas', 'fal', 'far', 'fab', 'fa-thin', 'fa-solid', 'fa-light', 'fa-regular', 'fa-brands', 'fontawesome', 'fontawesome-thin', 'fontawesome-solid', 'fontawesome-light', 'fontawesome-regular', 'fontawesome-brands']);
|
|
1971
2205
|
|
|
1972
2206
|
return (purgedClasses === '\n// Pro/Beta Font Awesome styles\n' || purgedClasses === '\n// Default Font Awesome styles\n') ? '' : purgedClasses;
|
|
1973
2207
|
}
|
|
@@ -1976,9 +2210,7 @@ function purgeFontAwesome(uniqueClasses, cleanUniqueClasses) {
|
|
|
1976
2210
|
function purgeMaterialDesign(uniqueClasses, cleanUniqueClasses) {
|
|
1977
2211
|
let purgedClasses = '\n// Material Design Icons styles\n';
|
|
1978
2212
|
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
purgedClasses += purgeFontIcons(sourceTSS, uniqueClasses, 'Purging Material Design Icons styles...', cleanUniqueClasses, ['md', 'mdo', 'mdr', 'mds', 'mdt', '.materialdesign', '.materialdesign-round', '.materialdesign-sharp', '.materialdesign-two-tone', '.materialdesign-outlined', '.material-icons', '.material-icons-round', '.material-icons-sharp', '.material-icons-two-tone', '.material-icons-outlined']);
|
|
2213
|
+
purgedClasses += purgeFontIcons(srcMaterialDesignIconsTSSFile, uniqueClasses, 'Purging Material Design Icons styles...', cleanUniqueClasses, ['md', 'mdo', 'mdr', 'mds', 'mdt', '.materialdesign', '.materialdesign-round', '.materialdesign-sharp', '.materialdesign-two-tone', '.materialdesign-outlined', '.material-icons', '.material-icons-round', '.material-icons-sharp', '.material-icons-two-tone', '.material-icons-outlined']);
|
|
1982
2214
|
|
|
1983
2215
|
return (purgedClasses === '\n// Material Design Icons styles\n') ? '' : purgedClasses;
|
|
1984
2216
|
}
|
|
@@ -1987,52 +2219,42 @@ function purgeMaterialDesign(uniqueClasses, cleanUniqueClasses) {
|
|
|
1987
2219
|
function purgeFramework7(uniqueClasses, cleanUniqueClasses) {
|
|
1988
2220
|
let purgedClasses = '\n// Framework7 styles\n';
|
|
1989
2221
|
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
purgedClasses += purgeFontIcons(sourceTSS, uniqueClasses, 'Purging Framework7 Icons styles...', cleanUniqueClasses, ['f7', 'f7i', 'framework7']);
|
|
2222
|
+
purgedClasses += purgeFontIcons(srcFramework7FontTSSFile, uniqueClasses, 'Purging Framework7 Icons styles...', cleanUniqueClasses, ['f7', 'f7i', 'framework7']);
|
|
1993
2223
|
|
|
1994
2224
|
return (purgedClasses === '\n// Framework7 styles\n') ? '' : purgedClasses;
|
|
1995
2225
|
}
|
|
1996
2226
|
|
|
1997
|
-
function purgeFontIcons(
|
|
2227
|
+
function purgeFontIcons(sourceFolder, uniqueClasses, message, cleanUniqueClasses, prefixes) {
|
|
2228
|
+
localStart();
|
|
2229
|
+
|
|
1998
2230
|
let purgedClasses = '';
|
|
1999
|
-
let
|
|
2000
|
-
|
|
2001
|
-
if (
|
|
2002
|
-
if (cleanUniqueClasses.some(element => prefixes.includes(element))) {
|
|
2003
|
-
logger.info(message);
|
|
2004
|
-
uniqueClasses.forEach(className => {
|
|
2005
|
-
let cleanClassName = cleanClassNameFn(className);
|
|
2006
|
-
if (soc.includes(`'.${cleanClassName}'`)) {
|
|
2007
|
-
sourceTSS.forEach(line => {
|
|
2008
|
-
if (line.startsWith(`'.${cleanClassName}'`)) {
|
|
2009
|
-
purgedClasses += helpers.checkPlatformAndDevice(line, uniqueClasses[uniqueClasses.indexOf(className)]);
|
|
2010
|
-
}
|
|
2011
|
-
});
|
|
2012
|
-
}
|
|
2013
|
-
});
|
|
2014
|
-
}
|
|
2015
|
-
} else {
|
|
2231
|
+
let sourceTSS = fs.readFileSync(sourceFolder, 'utf8');
|
|
2232
|
+
|
|
2233
|
+
if (cleanUniqueClasses.some(element => sourceTSS.includes(`'.${element}'`))) {
|
|
2016
2234
|
logger.info(message);
|
|
2235
|
+
let sourceTSSFile = sourceTSS.split(/\r?\n/);
|
|
2017
2236
|
uniqueClasses.forEach(className => {
|
|
2018
2237
|
let cleanClassName = cleanClassNameFn(className);
|
|
2019
|
-
if (
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
purgedClasses += helpers.checkPlatformAndDevice(line, uniqueClasses[uniqueClasses.indexOf(className)]);
|
|
2023
|
-
}
|
|
2024
|
-
});
|
|
2238
|
+
if (sourceTSS.includes(`'.${cleanClassName}'`)) {
|
|
2239
|
+
let newLine = _.filter(sourceTSSFile, s => s.indexOf(`'.${cleanClassName}'`) !== -1)[0];
|
|
2240
|
+
purgedClasses += helpers.checkPlatformAndDevice(newLine, className);
|
|
2025
2241
|
}
|
|
2026
2242
|
});
|
|
2027
2243
|
}
|
|
2028
2244
|
|
|
2245
|
+
localFinish(message);
|
|
2246
|
+
|
|
2029
2247
|
return purgedClasses;
|
|
2030
2248
|
}
|
|
2031
2249
|
|
|
2032
2250
|
function saveFile(file, data) {
|
|
2251
|
+
localStart();
|
|
2252
|
+
|
|
2033
2253
|
fs.writeFileSync(file, data, err => {
|
|
2034
2254
|
throw err;
|
|
2035
2255
|
});
|
|
2256
|
+
|
|
2257
|
+
localFinish(`Saving ${chalk.yellow('app.tss')}...`);
|
|
2036
2258
|
}
|
|
2037
2259
|
|
|
2038
2260
|
function createJMKFile() {
|