@builttocreate/engine-utils 2.6.0-beta.12 → 2.6.0-beta.20
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/dist/constants/FieldTypes.js +0 -3
- package/dist/fieldHelper.js +0 -2
- package/dist/joyDocHelper.js +165 -2
- package/package.json +3 -3
|
@@ -7,7 +7,6 @@ exports["default"] = void 0;
|
|
|
7
7
|
// Display Fields
|
|
8
8
|
var uniqueId = 'uniqueId';
|
|
9
9
|
var image = 'image';
|
|
10
|
-
var file = 'file';
|
|
11
10
|
var richText = 'richText';
|
|
12
11
|
var block = 'block'; // Data Fields
|
|
13
12
|
|
|
@@ -27,7 +26,6 @@ var chart = 'chart';
|
|
|
27
26
|
var types = {
|
|
28
27
|
uniqueId: uniqueId,
|
|
29
28
|
image: image,
|
|
30
|
-
file: file,
|
|
31
29
|
block: block,
|
|
32
30
|
richText: richText,
|
|
33
31
|
text: text,
|
|
@@ -48,7 +46,6 @@ types.all = Object.keys(types);
|
|
|
48
46
|
types.titles = {
|
|
49
47
|
uniqueId: 'Auto Number',
|
|
50
48
|
image: 'Image',
|
|
51
|
-
file: 'File',
|
|
52
49
|
block: 'Display Text',
|
|
53
50
|
richText: 'Rich Text',
|
|
54
51
|
text: 'Short Text',
|
package/dist/fieldHelper.js
CHANGED
|
@@ -310,8 +310,6 @@ var isFieldEmpty = function isFieldEmpty(fieldType, fieldValue, fieldOptions) {
|
|
|
310
310
|
isEmpty = true;
|
|
311
311
|
} else if (fieldType === _FieldTypes["default"].image && (!fieldValue || fieldValue && fieldValue.length === 0)) {
|
|
312
312
|
isEmpty = true;
|
|
313
|
-
} else if (fieldType === _FieldTypes["default"].file && (!fieldValue || fieldValue && fieldValue.length === 0)) {
|
|
314
|
-
isEmpty = true;
|
|
315
313
|
} else if (fieldType === _FieldTypes["default"].chart && (!fieldValue || fieldValue && fieldValue.length === 0)) {
|
|
316
314
|
isEmpty = true;
|
|
317
315
|
} else if (fieldType === _FieldTypes["default"].table && (!fieldValue || fieldValue && fieldValue.filter(function (item) {
|
package/dist/joyDocHelper.js
CHANGED
|
@@ -5,7 +5,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.sortPages = exports.getPageOrder = exports.getDocumentFromTemplate = exports.getDefaultTemplate = exports.getDefaultJoyDocPage = exports.getDefaultJoyDocFile = exports.getDefaultJoyDoc = exports.getDefaultDocument = exports.getCleanedJoyDocPages = exports.getCleanedJoyDoc = exports.duplicateDocumentPage = exports.duplicate = exports["default"] = exports.cleanPageOrder = void 0;
|
|
8
|
+
exports.sortPages = exports.sortFieldPositionsByXAndYCoordinates = exports.mergeAssoicatedFieldPositionsForMobileView = exports.getPageOrder = exports.getDocumentFromTemplate = exports.getDefaultTemplate = exports.getDefaultJoyDocPage = exports.getDefaultJoyDocFile = exports.getDefaultJoyDoc = exports.getDefaultDocument = exports.getCleanedJoyDocPages = exports.getCleanedJoyDoc = exports.generateMobileViewPageFieldPositions = exports.generateMobileViewPage = exports.generateMobileViewFile = exports.duplicateDocumentPage = exports.duplicate = exports["default"] = exports.cleanPageOrder = void 0;
|
|
9
|
+
|
|
10
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
11
|
|
|
10
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
13
|
|
|
@@ -21,6 +23,10 @@ var _DocumentTypes = _interopRequireDefault(require("./constants/DocumentTypes")
|
|
|
21
23
|
|
|
22
24
|
var _FieldTypes = _interopRequireDefault(require("./constants/FieldTypes"));
|
|
23
25
|
|
|
26
|
+
var _FieldDisplayTypes = _interopRequireDefault(require("./constants/FieldDisplayTypes"));
|
|
27
|
+
|
|
28
|
+
var _FileViews = _interopRequireDefault(require("./constants/FileViews"));
|
|
29
|
+
|
|
24
30
|
var _tableHelper = require("./tableHelper");
|
|
25
31
|
|
|
26
32
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -610,8 +616,160 @@ var duplicateDocumentPage = function duplicateDocumentPage(doc, fileId, pageId)
|
|
|
610
616
|
doc: nextDoc
|
|
611
617
|
};
|
|
612
618
|
};
|
|
619
|
+
/**
|
|
620
|
+
* Generate the mobile view and add specific mobile view properties
|
|
621
|
+
*
|
|
622
|
+
* @param {Object} file //Full file object
|
|
623
|
+
* @returns {Object}
|
|
624
|
+
*/
|
|
625
|
+
|
|
613
626
|
|
|
614
627
|
exports.duplicateDocumentPage = duplicateDocumentPage;
|
|
628
|
+
|
|
629
|
+
var generateMobileViewFile = function generateMobileViewFile(file) {
|
|
630
|
+
return {
|
|
631
|
+
_id: (0, _generateObjectId["default"])(),
|
|
632
|
+
type: _FileViews["default"].mobile,
|
|
633
|
+
pages: (0, _toConsumableArray2["default"])(file.pages).map(function (page) {
|
|
634
|
+
var _id = page._id,
|
|
635
|
+
name = page.name,
|
|
636
|
+
identifier = page.identifier,
|
|
637
|
+
fieldPositions = page.fieldPositions;
|
|
638
|
+
return generateMobileViewPage({
|
|
639
|
+
_id: _id,
|
|
640
|
+
identifier: identifier,
|
|
641
|
+
name: name,
|
|
642
|
+
fieldPositions: fieldPositions
|
|
643
|
+
});
|
|
644
|
+
})
|
|
645
|
+
};
|
|
646
|
+
};
|
|
647
|
+
/**
|
|
648
|
+
* Apply the proper page defaults for a mobile view to existing page.
|
|
649
|
+
*
|
|
650
|
+
* @param {Object} page
|
|
651
|
+
* @returns {Objectg}
|
|
652
|
+
*/
|
|
653
|
+
|
|
654
|
+
|
|
655
|
+
exports.generateMobileViewFile = generateMobileViewFile;
|
|
656
|
+
|
|
657
|
+
var generateMobileViewPage = function generateMobileViewPage(page) {
|
|
658
|
+
return _objectSpread(_objectSpread({}, page), {}, {
|
|
659
|
+
fieldPositions: page.fieldPositions ? generateMobileViewPageFieldPositions(page.fieldPositions, page.rowHeight) : [],
|
|
660
|
+
rowHeight: 1,
|
|
661
|
+
cols: 1,
|
|
662
|
+
padding: 12,
|
|
663
|
+
width: 816,
|
|
664
|
+
height: 1056,
|
|
665
|
+
layout: _PageLayoutModes["default"].grid,
|
|
666
|
+
presentation: _FieldPresentationModes["default"].normal
|
|
667
|
+
});
|
|
668
|
+
};
|
|
669
|
+
|
|
670
|
+
exports.generateMobileViewPage = generateMobileViewPage;
|
|
671
|
+
|
|
672
|
+
var generateMobileViewPageFieldPositions = function generateMobileViewPageFieldPositions(fieldPositions, originalRowHeight) {
|
|
673
|
+
var mobileFieldPositions = [];
|
|
674
|
+
/**
|
|
675
|
+
* Step 1: Sort fieldPositions
|
|
676
|
+
*/
|
|
677
|
+
|
|
678
|
+
var sortedFieldPositions = sortFieldPositionsByXAndYCoordinates(fieldPositions);
|
|
679
|
+
sortedFieldPositions.forEach(function (joySpecFieldPosition) {
|
|
680
|
+
var mobileFieldPositionData = _objectSpread(_objectSpread({}, joySpecFieldPosition), {}, {
|
|
681
|
+
displayType: _FieldDisplayTypes["default"].original,
|
|
682
|
+
height: joySpecFieldPosition.height * (originalRowHeight || 1),
|
|
683
|
+
width: 1,
|
|
684
|
+
x: 0
|
|
685
|
+
});
|
|
686
|
+
/**
|
|
687
|
+
* Step 1.2 Hide chart lines on mobile
|
|
688
|
+
*/
|
|
689
|
+
|
|
690
|
+
|
|
691
|
+
if (joySpecFieldPosition.type === _FieldTypes["default"].chart) mobileFieldPositionData.primaryDisplayOnly = true;
|
|
692
|
+
mobileFieldPositions.push(mobileFieldPositionData);
|
|
693
|
+
});
|
|
694
|
+
return mergeAssoicatedFieldPositionsForMobileView(mobileFieldPositions);
|
|
695
|
+
};
|
|
696
|
+
/**
|
|
697
|
+
* Merge Field Positions assoicated with the same Field.
|
|
698
|
+
*
|
|
699
|
+
* Why do duplicate fields get created from fieldPositions
|
|
700
|
+
*
|
|
701
|
+
* The same field can get added twice because we may have multiple fieldPositions belonging
|
|
702
|
+
* to the same field. This can happen with dropdown, multiSelect, and table fields.
|
|
703
|
+
*
|
|
704
|
+
* Since the fields get generated by looping over the fieldPositions and not regular fields
|
|
705
|
+
* we may encounter the the same field multiple times because it has multiple fieldPositions.
|
|
706
|
+
*
|
|
707
|
+
* @param {Array} fields
|
|
708
|
+
* @returns {Array}
|
|
709
|
+
*/
|
|
710
|
+
|
|
711
|
+
|
|
712
|
+
exports.generateMobileViewPageFieldPositions = generateMobileViewPageFieldPositions;
|
|
713
|
+
|
|
714
|
+
var mergeAssoicatedFieldPositionsForMobileView = function mergeAssoicatedFieldPositionsForMobileView(fieldPositions) {
|
|
715
|
+
var filteredFieldPositions = [];
|
|
716
|
+
fieldPositions === null || fieldPositions === void 0 ? void 0 : fieldPositions.forEach(function (fieldPosition) {
|
|
717
|
+
var fieldPositionIndex = filteredFieldPositions.findIndex(function (filtered) {
|
|
718
|
+
var _filtered$field, _fieldPosition$field;
|
|
719
|
+
|
|
720
|
+
return (filtered === null || filtered === void 0 ? void 0 : (_filtered$field = filtered.field) === null || _filtered$field === void 0 ? void 0 : _filtered$field.toString()) === (fieldPosition === null || fieldPosition === void 0 ? void 0 : (_fieldPosition$field = fieldPosition.field) === null || _fieldPosition$field === void 0 ? void 0 : _fieldPosition$field.toString());
|
|
721
|
+
}); //Only add field to the list if it hasn't already been added
|
|
722
|
+
|
|
723
|
+
if (fieldPositionIndex === -1) filteredFieldPositions.push(fieldPosition);
|
|
724
|
+
});
|
|
725
|
+
return filteredFieldPositions;
|
|
726
|
+
};
|
|
727
|
+
/**
|
|
728
|
+
* Sort fields by their y and x coordinates
|
|
729
|
+
*
|
|
730
|
+
* For example:
|
|
731
|
+
* [
|
|
732
|
+
* { "y": 3, "x": 4 },
|
|
733
|
+
* { "y": 3, "x": 1 },
|
|
734
|
+
* { "y": 2, "x": 0 },
|
|
735
|
+
* { "y": 1, "x": 5.22 },
|
|
736
|
+
* { "y": 1, "x": 10 },
|
|
737
|
+
* { "y": 1, "x": 0 },
|
|
738
|
+
* ]
|
|
739
|
+
* will become the following after sort
|
|
740
|
+
* [
|
|
741
|
+
* { "y": 1, "x": 0 },
|
|
742
|
+
* { "y": 1, "x": 5.22 },
|
|
743
|
+
* { "y": 1, "x": 10 },
|
|
744
|
+
* { "y": 2, "x": 0 },
|
|
745
|
+
* { "y": 3, "x": 1 },
|
|
746
|
+
* { "y": 3, "x": 4 }
|
|
747
|
+
* ];
|
|
748
|
+
*
|
|
749
|
+
* @param {Array} fieldPositions
|
|
750
|
+
* @returns {Array}
|
|
751
|
+
*/
|
|
752
|
+
|
|
753
|
+
|
|
754
|
+
exports.mergeAssoicatedFieldPositionsForMobileView = mergeAssoicatedFieldPositionsForMobileView;
|
|
755
|
+
|
|
756
|
+
var sortFieldPositionsByXAndYCoordinates = function sortFieldPositionsByXAndYCoordinates(fieldPositions) {
|
|
757
|
+
var sortedFieldPositions = (0, _toConsumableArray2["default"])(fieldPositions);
|
|
758
|
+
sortedFieldPositions.sort(function (a, b) {
|
|
759
|
+
if (a.y === b.y) {
|
|
760
|
+
return a.x - b.x;
|
|
761
|
+
} else if (a.y > b.y) {
|
|
762
|
+
return 1;
|
|
763
|
+
} else if (a.y < b.y) {
|
|
764
|
+
return -1;
|
|
765
|
+
} else {
|
|
766
|
+
return 0;
|
|
767
|
+
}
|
|
768
|
+
});
|
|
769
|
+
return sortedFieldPositions;
|
|
770
|
+
};
|
|
771
|
+
|
|
772
|
+
exports.sortFieldPositionsByXAndYCoordinates = sortFieldPositionsByXAndYCoordinates;
|
|
615
773
|
var _default = {
|
|
616
774
|
getDefaultJoyDocPage: getDefaultJoyDocPage,
|
|
617
775
|
getDefaultJoyDocFile: getDefaultJoyDocFile,
|
|
@@ -624,6 +782,11 @@ var _default = {
|
|
|
624
782
|
duplicate: duplicate,
|
|
625
783
|
duplicateDocumentPage: duplicateDocumentPage,
|
|
626
784
|
getPageOrder: getPageOrder,
|
|
627
|
-
sortPages: sortPages
|
|
785
|
+
sortPages: sortPages,
|
|
786
|
+
sortFieldPositionsByXAndYCoordinates: sortFieldPositionsByXAndYCoordinates,
|
|
787
|
+
mergeAssoicatedFieldPositionsForMobileView: mergeAssoicatedFieldPositionsForMobileView,
|
|
788
|
+
generateMobileViewFile: generateMobileViewFile,
|
|
789
|
+
generateMobileViewPage: generateMobileViewPage,
|
|
790
|
+
generateMobileViewPageFieldPositions: generateMobileViewPageFieldPositions
|
|
628
791
|
};
|
|
629
792
|
exports["default"] = _default;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@builttocreate/engine-utils",
|
|
3
|
-
"version": "2.6.0-beta.
|
|
3
|
+
"version": "2.6.0-beta.20",
|
|
4
4
|
"description": "Utility library for common logic shared across web and mobile",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"files": [
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"clean": "rm -rf dist",
|
|
12
12
|
"build-src": "NODE_ENV=production babel src --out-dir dist --extensions '.js,.jsx' --ignore 'src/testUtils/*','src/**/*.stories.js','src/**/*.test.js','src/lib/**/*.test.js','src/**/__snapshots__','src/**/__mocks__'",
|
|
13
13
|
"build": "npm run clean && npm run build-src",
|
|
14
|
-
"
|
|
14
|
+
"prepare": "npm run build",
|
|
15
15
|
"publish-beta": "npm publish --tag beta",
|
|
16
16
|
"test": "jest",
|
|
17
17
|
"test-watch": "jest --watch",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"type": "git",
|
|
24
24
|
"url": "git+https://github.com/zionlabs/engine-utils.git"
|
|
25
25
|
},
|
|
26
|
-
"author": "
|
|
26
|
+
"author": "Joyfill Team",
|
|
27
27
|
"license": "ISC",
|
|
28
28
|
"bugs": {
|
|
29
29
|
"url": "https://github.com/zionlabs/engine-utils/issues"
|