@xuda.io/runtime-bundle 1.0.922 → 1.0.924

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.
@@ -0,0 +1 @@
1
+ const new_node_id=(type,app_id)=>{var last12uuid=crypto.randomUUID().split("-")[4];if(type){var menuAbbreviated=abbreviate(type.replaceAll("_",""));return`${app_id.substr(app_id.length-3)}_${menuAbbreviated}_${last12uuid}`}return app_id.substr(app_id.length-3)+"_"+last12uuid};export const createDoc=function({_id,uid,menuType,checkedInUserName,app_id,parentId,properties,studio_meta={},minimal=false}={}){if(!_id){_id=new_node_id(menuType,app_id)}var doc={_id:_id,stat:3,docType:"studio",docDate:Date.now(),ts:Date.now(),order_ts:Date.now(),studio_meta:{...{created:Date.now(),createdByUid:uid,checkedInUserId:uid,checkedInUserName:checkedInUserName,parentId:parentId||menuType},...studio_meta},properties:properties||{}};if(minimal)return doc;if(menuType){switch(menuType){case"table":if(!doc.tableIndexes)doc.tableIndexes=[];if(!doc.tableFields)doc.tableFields=[];break;case"alert":if(!doc.alertData)doc.alertData={};break;case"javascript":if(!doc.scriptData)doc.scriptData={};break;case"folder":break;case"route":if(!doc.routeMenu)doc.routeMenu={};break;case"api":if(!doc.scriptData)doc.scriptData={};case"component":if(!doc.progUi)doc.progUi=[{id:"root",type:"element",tagName:properties.renderType==="form"?"xu-single-view":"xu-multi-view",attributes:{},children:[]}];default:if(!doc.progDataSource)doc.progDataSource={dataSourceType:""};if(!doc.progFields)doc.progFields=[];if(!doc.progEvents)doc.progEvents=[];break}}return doc};const abbreviate=word=>{if(word.length<=3){return word}let abbreviation=word[0];const vowels="aeiou";for(let i=1;i<word.length&&abbreviation.length<3;i++){if(!vowels.includes(word[i].toLowerCase())){abbreviation+=word[i]}}if(abbreviation.length<3){abbreviation=word.substring(0,3)}return abbreviation};export const valid_menuType=["globals","table","get_data","set_data","batch","alert","javascript","folder","route","api","component"];
@@ -0,0 +1,105 @@
1
+ const new_node_id = (type, app_id) => {
2
+ var last12uuid = crypto.randomUUID().split('-')[4];
3
+
4
+ if (type) {
5
+ var menuAbbreviated = abbreviate(type.replaceAll('_', ''));
6
+ return `${app_id.substr(app_id.length - 3)}_${menuAbbreviated}_${last12uuid}`;
7
+ }
8
+
9
+ return app_id.substr(app_id.length - 3) + '_' + last12uuid;
10
+ };
11
+
12
+ export const createDoc = function ({ _id, uid, menuType, checkedInUserName, app_id, parentId, properties, studio_meta = {}, minimal = false } = {}) {
13
+ if (!_id) {
14
+ _id = new_node_id(menuType, app_id);
15
+ }
16
+
17
+ var doc = {
18
+ _id,
19
+ stat: 3,
20
+ docType: 'studio',
21
+ docDate: Date.now(),
22
+ ts: Date.now(),
23
+ order_ts: Date.now(),
24
+ studio_meta: {
25
+ ...{
26
+ created: Date.now(),
27
+ createdByUid: uid,
28
+ checkedInUserId: uid,
29
+ checkedInUserName,
30
+ parentId: parentId || menuType,
31
+ },
32
+ ...studio_meta,
33
+ },
34
+ properties: properties || {},
35
+ };
36
+
37
+ if (minimal) return doc;
38
+
39
+ if (menuType) {
40
+ switch (menuType) {
41
+ case 'table':
42
+ if (!doc.tableIndexes) doc.tableIndexes = [];
43
+ if (!doc.tableFields) doc.tableFields = [];
44
+ break;
45
+
46
+ case 'alert':
47
+ if (!doc.alertData) doc.alertData = {};
48
+ break;
49
+
50
+ case 'javascript':
51
+ if (!doc.scriptData) doc.scriptData = {};
52
+ break;
53
+
54
+ case 'folder':
55
+ break;
56
+
57
+ case 'route':
58
+ if (!doc.routeMenu) doc.routeMenu = {};
59
+ break;
60
+ case 'api':
61
+ if (!doc.scriptData) doc.scriptData = {};
62
+
63
+ case 'component':
64
+ if (!doc.progUi) doc.progUi = [{ id: 'root', type: 'element', tagName: properties.renderType === 'form' ? 'xu-single-view' : 'xu-multi-view', attributes: {}, children: [] }];
65
+
66
+ default:
67
+ //get_data, set_data, batch
68
+ if (!doc.progDataSource)
69
+ doc.progDataSource = {
70
+ dataSourceType: '',
71
+ };
72
+ if (!doc.progFields) doc.progFields = [];
73
+ if (!doc.progEvents) doc.progEvents = [];
74
+
75
+ break;
76
+ }
77
+ }
78
+
79
+ return doc;
80
+ };
81
+
82
+ const abbreviate = (word) => {
83
+ if (word.length <= 3) {
84
+ return word;
85
+ }
86
+
87
+ // Remove vowels except the first letter
88
+ let abbreviation = word[0];
89
+ const vowels = 'aeiou';
90
+
91
+ for (let i = 1; i < word.length && abbreviation.length < 3; i++) {
92
+ if (!vowels.includes(word[i].toLowerCase())) {
93
+ abbreviation += word[i];
94
+ }
95
+ }
96
+
97
+ // If the abbreviation is still less than 3 letters, pad it with the remaining letters
98
+ if (abbreviation.length < 3) {
99
+ abbreviation = word.substring(0, 3);
100
+ }
101
+
102
+ return abbreviation;
103
+ };
104
+
105
+ export const valid_menuType = ['globals', 'table', 'get_data', 'set_data', 'batch', 'alert', 'javascript', 'folder', 'route', 'api', 'component'];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xuda.io/runtime-bundle",
3
- "version": "1.0.922",
3
+ "version": "1.0.924",
4
4
  "description": "The Xuda Runtime Bundle refers to a collection of scripts and libraries packaged together to provide the necessary runtime environment for executing plugins or components in the Xuda platform. ",
5
5
  "scripts": {
6
6
  "pub": "npm version patch --force && npm publish --access public"