@wavemaker/angular-codegen 11.0.1-next.139045 → 11.0.1-next.139246
Sign up to get free protection for your applications and to get access to all the features.
- angular-codegen/angular-app/package-lock.json +32318 -52446
- angular-codegen/angular-app/package.json +17 -17
- angular-codegen/angular-app/src/assets/styles/css/wm-responsive.css +1 -1
- angular-codegen/angular-app/src/assets/styles/css/wm-style.css +1 -1
- angular-codegen/angular-app/src/assets/styles/fonts/wm-streamline-light-icon.eot +0 -0
- angular-codegen/angular-app/src/assets/styles/fonts/wm-streamline-light-icon.ttf +0 -0
- angular-codegen/angular-app/src/assets/styles/fonts/wm-streamline-light-icon.woff +0 -0
- angular-codegen/angular-app/src/assets/styles/fonts/wm-streamline-regular-icon.eot +0 -0
- angular-codegen/angular-app/src/assets/styles/fonts/wm-streamline-regular-icon.ttf +0 -0
- angular-codegen/angular-app/src/assets/styles/fonts/wm-streamline-regular-icon.woff +0 -0
- angular-codegen/dependencies/expression-parser.cjs.js +17761 -0
- angular-codegen/dependencies/pipe-provider.cjs.js +69032 -0
- angular-codegen/dependencies/transpilation-mobile.cjs.js +180 -51
- angular-codegen/dependencies/transpilation-web.cjs.js +180 -51
- angular-codegen/package.json +1 -1
- angular-codegen/src/codegen-cli.js +1 -1
- angular-codegen/src/expr-parser-utils.js +1 -0
- angular-codegen/src/gen-app-variables.js +1 -1
- angular-codegen/src/gen-components.js +1 -1
- angular-codegen/src/handlebar-helpers.js +1 -1
- angular-codegen/src/pages-util.js +1 -1
- angular-codegen/src/wm-utils.js +1 -1
- angular-codegen/templates/app.component.script.js.hbs +6 -1
- angular-codegen/templates/component.expressions.ts.hbs +3 -0
- angular-codegen/templates/expr-vs-fn.hbs +3 -0
- angular-codegen/templates/page/page.component.ts.hbs +7 -1
- angular-codegen/templates/partial/partial.component.ts.hbs +6 -0
- angular-codegen/templates/prefab/prefab.component.ts.hbs +6 -0
@@ -38622,9 +38622,12 @@ class ASTCompiler {
|
|
38622
38622
|
cleanup() {
|
38623
38623
|
this.ast = this.cAst = this.stmts = this.cStmts = this.declarations = this.pipes = this.pipeNameVsIsPureMap = undefined;
|
38624
38624
|
}
|
38625
|
-
compile() {
|
38625
|
+
compile(defOnly) {
|
38626
38626
|
this.extendCtxWithLocals();
|
38627
38627
|
this.addReturnStmt(this.build(this.ast));
|
38628
|
+
if (defOnly) {
|
38629
|
+
return { fnBody: this.fnBody(), fnArgs: this.fnArgs(), pipes: this.pipes };
|
38630
|
+
}
|
38628
38631
|
const fn = new Function(this.fnArgs(), this.fnBody());
|
38629
38632
|
let boundFn;
|
38630
38633
|
if (this.exprType === ExpressionType$1.Binding) {
|
@@ -38649,7 +38652,7 @@ var ExpressionType$1;
|
|
38649
38652
|
ExpressionType$$1[ExpressionType$$1["Binding"] = 0] = "Binding";
|
38650
38653
|
ExpressionType$$1[ExpressionType$$1["Action"] = 1] = "Action";
|
38651
38654
|
})(ExpressionType$1 || (ExpressionType$1 = {}));
|
38652
|
-
function $parseExpr(expr) {
|
38655
|
+
function $parseExpr(expr, defOnly) {
|
38653
38656
|
if (!pipeProvider) {
|
38654
38657
|
console.log('set pipe provider');
|
38655
38658
|
return noop$1$1;
|
@@ -38668,51 +38671,60 @@ function $parseExpr(expr) {
|
|
38668
38671
|
if (fn) {
|
38669
38672
|
return fn;
|
38670
38673
|
}
|
38671
|
-
const parser = new Parser$1(new Lexer);
|
38672
|
-
const ast = parser.parseBinding(expr, '', 0);
|
38673
38674
|
let boundFn;
|
38674
|
-
if (
|
38675
|
-
|
38676
|
-
boundFn = fn;
|
38675
|
+
if (!defOnly) {
|
38676
|
+
boundFn = getFnForBindExpr(expr);
|
38677
38677
|
}
|
38678
|
-
|
38679
|
-
|
38680
|
-
const
|
38681
|
-
|
38682
|
-
if (
|
38683
|
-
|
38684
|
-
|
38685
|
-
|
38686
|
-
|
38687
|
-
|
38688
|
-
|
38689
|
-
|
38690
|
-
|
38691
|
-
|
38692
|
-
|
38693
|
-
|
38694
|
-
|
38695
|
-
|
38696
|
-
|
38697
|
-
|
38678
|
+
// fallback to generate function in runtime. This will break if CSP is enabled
|
38679
|
+
if (!boundFn) {
|
38680
|
+
const parser = new Parser$1(new Lexer);
|
38681
|
+
const ast = parser.parseBinding(expr, '', 0);
|
38682
|
+
if (ast.errors.length) {
|
38683
|
+
fn = noop$1$1;
|
38684
|
+
boundFn = fn;
|
38685
|
+
}
|
38686
|
+
else {
|
38687
|
+
const pipeNameVsIsPureMap = pipeProvider.getPipeNameVsIsPureMap();
|
38688
|
+
const astCompiler = new ASTCompiler(ast.ast, ExpressionType$1.Binding, pipeNameVsIsPureMap);
|
38689
|
+
fn = astCompiler.compile(defOnly);
|
38690
|
+
if (defOnly) {
|
38691
|
+
return fn;
|
38692
|
+
}
|
38693
|
+
if (fn.usedPipes.length) {
|
38694
|
+
const pipeArgs = [];
|
38695
|
+
let hasPurePipe = false;
|
38696
|
+
for (const [pipeName] of fn.usedPipes) {
|
38697
|
+
const pipeInfo = pipeProvider.meta(pipeName);
|
38698
|
+
let pipeInstance;
|
38699
|
+
if (!pipeInfo) {
|
38700
|
+
pipeInstance = nullPipe;
|
38698
38701
|
}
|
38699
|
-
|
38700
|
-
|
38702
|
+
else {
|
38703
|
+
if (pipeInfo.pure) {
|
38704
|
+
hasPurePipe = true;
|
38705
|
+
pipeInstance = purePipes.get(pipeName);
|
38706
|
+
}
|
38707
|
+
if (!pipeInstance) {
|
38708
|
+
pipeInstance = pipeProvider.getInstance(pipeName);
|
38709
|
+
}
|
38710
|
+
if (pipeInfo.pure) {
|
38711
|
+
purePipes.set(pipeName, pipeInstance);
|
38712
|
+
}
|
38701
38713
|
}
|
38714
|
+
pipeArgs.push(pipeInstance);
|
38702
38715
|
}
|
38703
|
-
pipeArgs.
|
38716
|
+
pipeArgs.unshift(hasPurePipe ? new Map() : undefined);
|
38717
|
+
boundFn = fn.bind(undefined, ...pipeArgs);
|
38718
|
+
}
|
38719
|
+
else {
|
38720
|
+
boundFn = fn.bind(undefined, undefined);
|
38704
38721
|
}
|
38705
|
-
pipeArgs.unshift(hasPurePipe ? new Map() : undefined);
|
38706
|
-
boundFn = fn.bind(undefined, ...pipeArgs);
|
38707
|
-
}
|
38708
|
-
else {
|
38709
|
-
boundFn = fn.bind(undefined, undefined);
|
38710
38722
|
}
|
38711
38723
|
}
|
38712
38724
|
exprFnCache.set(expr, boundFn);
|
38713
38725
|
return boundFn;
|
38714
38726
|
}
|
38715
|
-
function $parseEvent(expr) {
|
38727
|
+
function $parseEvent(expr, defOnly) {
|
38716
38728
|
if (!isString$1(expr)) {
|
38717
38729
|
return noop$1$1;
|
38718
38730
|
}
|
@@ -38724,16 +38736,76 @@ function $parseEvent(expr) {
|
|
38724
38736
|
if (fn) {
|
38725
38737
|
return fn;
|
38726
38738
|
}
|
38727
|
-
|
38728
|
-
|
38729
|
-
|
38730
|
-
|
38739
|
+
if (!defOnly) {
|
38740
|
+
fn = getFnForEventExpr(expr) || noop$1$1;
|
38741
|
+
}
|
38742
|
+
// fallback to generate function in runtime. This will break if CSP is enabled
|
38743
|
+
if (!fn) {
|
38744
|
+
const parser = new Parser$1(new Lexer);
|
38745
|
+
const ast = parser.parseAction(expr, '', 0);
|
38746
|
+
if (ast.errors.length) {
|
38747
|
+
return noop$1$1;
|
38748
|
+
}
|
38749
|
+
const astCompiler = new ASTCompiler(ast.ast, ExpressionType$1.Action);
|
38750
|
+
fn = astCompiler.compile(defOnly);
|
38731
38751
|
}
|
38732
|
-
const astCompiler = new ASTCompiler(ast.ast, ExpressionType$1.Action);
|
38733
|
-
fn = astCompiler.compile();
|
38734
38752
|
eventFnCache.set(expr, fn);
|
38735
38753
|
return fn;
|
38736
38754
|
}
|
38755
|
+
const fnNameMap = new Map();
|
38756
|
+
const getFnByExpr = (expr) => fnNameMap.get(expr);
|
38757
|
+
const fnExecutor = (expr, exprType) => {
|
38758
|
+
let fn = getFnByExpr(expr);
|
38759
|
+
if (!fn) {
|
38760
|
+
console.warn('oops, didnt find fn for this expr', expr);
|
38761
|
+
return function () { };
|
38762
|
+
}
|
38763
|
+
const usedPipes = fn.usedPipes || [];
|
38764
|
+
if (exprType === ExpressionType$1.Binding) {
|
38765
|
+
fn = fn.bind(undefined, plus, minus, isDef, getPurePipeVal);
|
38766
|
+
}
|
38767
|
+
else {
|
38768
|
+
fn = fn.bind(undefined, plus, minus, isDef);
|
38769
|
+
}
|
38770
|
+
if (usedPipes.length) {
|
38771
|
+
const pipeArgs = [];
|
38772
|
+
let hasPurePipe = false;
|
38773
|
+
for (const [pipeName] of usedPipes) {
|
38774
|
+
const pipeInfo = pipeProvider.meta(pipeName);
|
38775
|
+
let pipeInstance;
|
38776
|
+
if (!pipeInfo) {
|
38777
|
+
pipeInstance = nullPipe;
|
38778
|
+
}
|
38779
|
+
else {
|
38780
|
+
if (pipeInfo.pure) {
|
38781
|
+
hasPurePipe = true;
|
38782
|
+
pipeInstance = purePipes.get(pipeName);
|
38783
|
+
}
|
38784
|
+
if (!pipeInstance) {
|
38785
|
+
pipeInstance = pipeProvider.getInstance(pipeName);
|
38786
|
+
}
|
38787
|
+
if (pipeInfo.pure) {
|
38788
|
+
purePipes.set(pipeName, pipeInstance);
|
38789
|
+
}
|
38790
|
+
}
|
38791
|
+
pipeArgs.push(pipeInstance);
|
38792
|
+
}
|
38793
|
+
pipeArgs.unshift(hasPurePipe ? new Map() : undefined);
|
38794
|
+
fn = fn.bind(undefined, ...pipeArgs);
|
38795
|
+
}
|
38796
|
+
else {
|
38797
|
+
if (exprType === ExpressionType$1.Binding) {
|
38798
|
+
fn = fn.bind(undefined, undefined);
|
38799
|
+
}
|
38800
|
+
}
|
38801
|
+
return fn;
|
38802
|
+
};
|
38803
|
+
const getFnForBindExpr = (expr) => {
|
38804
|
+
return fnExecutor(expr, ExpressionType$1.Binding);
|
38805
|
+
};
|
38806
|
+
const getFnForEventExpr = (expr) => {
|
38807
|
+
return fnExecutor(expr, ExpressionType$1.Action);
|
38808
|
+
};
|
38737
38809
|
|
38738
38810
|
const registry = new Map();
|
38739
38811
|
const watchIdGenerator = new IDGenerator('watch-id-');
|
@@ -38868,6 +38940,7 @@ var Operation;
|
|
38868
38940
|
Operation["IS_BOUND_TO_LOCALE"] = "isBoundToLocale";
|
38869
38941
|
Operation["GET_DEFAULT_LOCALE"] = "getDefaultLocale";
|
38870
38942
|
Operation["CANCEL"] = "cancel";
|
38943
|
+
Operation["SET_PAGINATION"] = "setPagination";
|
38871
38944
|
})(Operation || (Operation = {}));
|
38872
38945
|
const DataSource = {
|
38873
38946
|
Operation
|
@@ -39851,6 +39924,7 @@ const processFilterExpBindNode = (context, filterExpressions) => {
|
|
39851
39924
|
const filter$ = new Subject();
|
39852
39925
|
const bindFilExpObj = (obj, targetNodeKey) => {
|
39853
39926
|
if (stringStartsWith(obj[targetNodeKey], 'bind:')) {
|
39927
|
+
// [Todo-CSP]: needs a check, where is this used
|
39854
39928
|
destroyFn($watch(obj[targetNodeKey].replace('bind:', ''), context, {}, (newVal, oldVal) => {
|
39855
39929
|
if ((newVal === oldVal && _.isUndefined(newVal)) || (_.isUndefined(newVal) && !_.isUndefined(oldVal))) {
|
39856
39930
|
return;
|
@@ -40094,6 +40168,7 @@ const triggerItemAction = (scope, item) => {
|
|
40094
40168
|
const linkTarget = item.target;
|
40095
40169
|
if (itemAction) {
|
40096
40170
|
if (!scope.itemActionFn) {
|
40171
|
+
//[Todo-CSP]: This will not work as function will be dynamic
|
40097
40172
|
scope.itemActionFn = $parseEvent(itemAction);
|
40098
40173
|
}
|
40099
40174
|
scope.itemActionFn(scope.userDefinedExecutionContext, Object.create(item));
|
@@ -41205,6 +41280,16 @@ class PaginationService {
|
|
41205
41280
|
*/
|
41206
41281
|
updateFieldsOnPagination(parent, newVal) {
|
41207
41282
|
let fieldDefs = parent.widgetType === 'wm-table' ? parent.gridData : parent.fieldDefs;
|
41283
|
+
// remove the deleted row from the list
|
41284
|
+
if (parent.widgetType === 'wm-table' && (parent.gridOptions.isNavTypeScrollOrOndemand()) && parent.gridOptions.deletedRowIndex !== -1) {
|
41285
|
+
fieldDefs.splice(parent.gridOptions.deletedRowIndex, 1);
|
41286
|
+
parent.gridOptions.setDeletedRowIndex(-1);
|
41287
|
+
}
|
41288
|
+
// reset fieldDefs if last action performed is search or sort
|
41289
|
+
if (parent.widgetType === 'wm-table' && (parent.gridOptions.isNavTypeScrollOrOndemand()) && (parent.gridOptions.lastActionPerformed === parent.gridOptions.ACTIONS.SEARCH_OR_SORT || parent.gridOptions.lastActionPerformed === parent.gridOptions.ACTIONS.FILTER_CRITERIA)) {
|
41290
|
+
fieldDefs = [];
|
41291
|
+
parent.gridOptions.setCurrentPage(1);
|
41292
|
+
}
|
41208
41293
|
let currentPage = parent.currentPage;
|
41209
41294
|
const dataNavigator = parent.dataNavigator;
|
41210
41295
|
const pagesize = parent.pagesize;
|
@@ -41225,11 +41310,11 @@ class PaginationService {
|
|
41225
41310
|
newVal = [];
|
41226
41311
|
}
|
41227
41312
|
else if (dataNavigator.dataSize < currentPage * pagesize) {
|
41228
|
-
// if number of elements added to
|
41313
|
+
// if number of elements added to dataNavigator is less than product of currentPage and pageSize we only add elements extra elements added
|
41229
41314
|
itemsLength = dataNavigator.dataSize - fieldDefs.length;
|
41230
41315
|
}
|
41231
41316
|
else {
|
41232
|
-
// if number of elements added to
|
41317
|
+
// if number of elements added to dataNavigator is greater than product of currentPage and pageSize we add elements the extra elements in newVal
|
41233
41318
|
itemsLength = currentPage * pagesize - fieldDefs.length;
|
41234
41319
|
currentPage++;
|
41235
41320
|
}
|
@@ -41242,9 +41327,36 @@ class PaginationService {
|
|
41242
41327
|
}
|
41243
41328
|
newVal = itemsToPush;
|
41244
41329
|
}
|
41245
|
-
|
41330
|
+
// Add unique records to fieldDefs
|
41331
|
+
if (parent.widgetType === 'wm-table' && (parent.gridOptions.lastActionPerformed === parent.gridOptions.ACTIONS.DELETE || parent.gridOptions.lastActionPerformed === parent.gridOptions.ACTIONS.EDIT)) {
|
41332
|
+
fieldDefs = this.getUniqueRecordsInFieldDef(fieldDefs, newVal);
|
41333
|
+
}
|
41334
|
+
else {
|
41335
|
+
fieldDefs = [...fieldDefs, ...newVal];
|
41336
|
+
}
|
41246
41337
|
return [fieldDefs, currentPage];
|
41247
41338
|
}
|
41339
|
+
// Add the unique records to fieldDefs
|
41340
|
+
getUniqueRecordsInFieldDef(fieldDefs, newVal) {
|
41341
|
+
let flag = false;
|
41342
|
+
if (!fieldDefs.length) {
|
41343
|
+
fieldDefs = newVal;
|
41344
|
+
}
|
41345
|
+
else {
|
41346
|
+
newVal.forEach(function (newObj) {
|
41347
|
+
flag = false;
|
41348
|
+
fieldDefs.forEach(function (obj) {
|
41349
|
+
if (_.isEqual(newObj, obj)) {
|
41350
|
+
flag = true;
|
41351
|
+
}
|
41352
|
+
});
|
41353
|
+
if (flag === false) {
|
41354
|
+
fieldDefs.push(newObj);
|
41355
|
+
}
|
41356
|
+
});
|
41357
|
+
}
|
41358
|
+
return fieldDefs;
|
41359
|
+
}
|
41248
41360
|
/**
|
41249
41361
|
* @description
|
41250
41362
|
* This function registers scroll events on the scrollable el, if the page doesn't have a scroll el then wheel event is registered on the requested node
|
@@ -41287,6 +41399,9 @@ class PaginationService {
|
|
41287
41399
|
let scrollTop;
|
41288
41400
|
// scrollingElement is undefined for IE, safari. use body as target Element
|
41289
41401
|
target = target === document ? (target.scrollingElement || document.body) : target;
|
41402
|
+
if (parent.widgetType === 'wm-table' && parent.gridOptions.isNavTypeScrollOrOndemand()) {
|
41403
|
+
evt.stopPropagation();
|
41404
|
+
}
|
41290
41405
|
clientHeight = target.clientHeight;
|
41291
41406
|
totalHeight = target.scrollHeight;
|
41292
41407
|
scrollTop = target === document.body ? $(window).scrollTop() : target.scrollTop;
|
@@ -41301,6 +41416,9 @@ class PaginationService {
|
|
41301
41416
|
else {
|
41302
41417
|
// if there is no scrollable element register wheel event on ul element
|
41303
41418
|
$rootEl.on('wheel.scroll_evt', e => {
|
41419
|
+
if (parent.widgetType === 'wm-table' && parent.gridOptions.isNavTypeScrollOrOndemand()) {
|
41420
|
+
e.stopPropagation();
|
41421
|
+
}
|
41304
41422
|
if (e.originalEvent.deltaY > 0) {
|
41305
41423
|
$rootEl.off('wheel.scroll_evt');
|
41306
41424
|
this.debouncedFetchNextDatasetOnScroll(dataNavigator, debounceNum, parent)();
|
@@ -41409,7 +41527,7 @@ const DIALOG_MODULE = [...NGX_MODAL_MODULE, ...INPUT_MODULE, { from: '@wm/compon
|
|
41409
41527
|
const PAGINATION_MODULE = [...NG_FORM_MODULE, ...NGX_PAGINATION_MODULE, { from: '@wm/components/data/pagination', name: 'PaginationModule' }];
|
41410
41528
|
const SEARCH_MODULE = [...NG_FORM_MODULE, ...NGX_TYPE_HEAD_MODULE, { from: '@wm/components/basic/search', name: 'SearchModule' }];
|
41411
41529
|
const ACCORDION_MODULE = [{ from: '@wm/components/containers/accordion', name: 'AccordionModule' }];
|
41412
|
-
const LINEAR_LAYOUT_MODULE = [{ from: '
|
41530
|
+
const LINEAR_LAYOUT_MODULE = [{ from: '@wm/components/containers/linear-layout', name: 'LinearLayoutModule' }];
|
41413
41531
|
const ALERT_DIALOG_MODULE = [...DIALOG_MODULE, { from: '@wm/components/dialogs/alert-dialog', name: 'AlertDialogModule' }];
|
41414
41532
|
const BARCODE_SCANNER_MODULE = [{ from: '@wm/mobile/components/device/barcode-scanner', name: 'BarcodeScannerModule' }];
|
41415
41533
|
const MENU_MODULE = [...BASIC_MODULE, ...NGX_DROP_DOWN_MODULE, ...INPUT_MODULE, { from: '@wm/components/navigation/menu', name: 'MenuModule' }];
|
@@ -41766,7 +41884,7 @@ const getRequiredProviders = (nodeDef, providers, nodeAttrs) => {
|
|
41766
41884
|
}
|
41767
41885
|
});
|
41768
41886
|
};
|
41769
|
-
const ɵ11 = getRequiredProviders;
|
41887
|
+
const ɵ11$1 = getRequiredProviders;
|
41770
41888
|
const DIMENSION_PROPS = ['padding', 'borderwidth', 'margin'];
|
41771
41889
|
const SEPARATOR = ' ', UNSET = 'unset';
|
41772
41890
|
const setDimensionProp = (cssObj, key, nv) => {
|
@@ -42381,7 +42499,7 @@ var search_build$1 = /*#__PURE__*/Object.freeze({
|
|
42381
42499
|
const tagName$1m = 'div';
|
42382
42500
|
register('wm-tree', () => {
|
42383
42501
|
return {
|
42384
|
-
pre: attrs => `<${tagName$1m} wmTree
|
42502
|
+
pre: attrs => `<${tagName$1m} wmTree ${getAttrMarkup(attrs)}>`,
|
42385
42503
|
post: () => `</${tagName$1m}>`
|
42386
42504
|
};
|
42387
42505
|
});
|
@@ -44793,10 +44911,21 @@ var video_build$1 = /*#__PURE__*/Object.freeze({
|
|
44793
44911
|
});
|
44794
44912
|
|
44795
44913
|
const tagName$1 = 'div';
|
44914
|
+
const SPACING_KEY = 'parentLinearLayout.spacing';
|
44796
44915
|
register('wm-linearlayout', () => {
|
44797
44916
|
return {
|
44798
|
-
|
44799
|
-
|
44917
|
+
requires: ['wm-linearlayout'],
|
44918
|
+
pre: (attrs, shared, provider) => {
|
44919
|
+
let spacing = attrs.get('spacing');
|
44920
|
+
attrs.set('spacing', (!spacing || spacing === '0') && provider ? provider.get(SPACING_KEY) : spacing);
|
44921
|
+
return `<${tagName$1} wmLinearLayout ${getAttrMarkup(attrs)}>`;
|
44922
|
+
},
|
44923
|
+
post: () => `</${tagName$1}>`,
|
44924
|
+
provide: (attrs, shared) => {
|
44925
|
+
const provider = new Map();
|
44926
|
+
provider.set(SPACING_KEY, attrs.get('spacing'));
|
44927
|
+
return provider;
|
44928
|
+
}
|
44800
44929
|
};
|
44801
44930
|
});
|
44802
44931
|
var linearLayout_build = () => { };
|
@@ -44943,7 +45072,7 @@ exports.transpile = transpile;
|
|
44943
45072
|
exports.ɵ0 = ɵ0$h;
|
44944
45073
|
exports.ɵ1 = ɵ1$5;
|
44945
45074
|
exports.ɵ10 = ɵ10$1;
|
44946
|
-
exports.ɵ11 = ɵ11;
|
45075
|
+
exports.ɵ11 = ɵ11$1;
|
44947
45076
|
exports.ɵ12 = ɵ12;
|
44948
45077
|
exports.ɵ13 = ɵ13;
|
44949
45078
|
exports.ɵ14 = ɵ14;
|
angular-codegen/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
const codegen=require("./codegen"),{setCodegenPath:setCodegenPath}=require("./wm-utils"),{initTemplates:initTemplates}=require("./handlebar-helpers"),create=async(e,a,
|
1
|
+
const codegen=require("./codegen"),{setCodegenPath:setCodegenPath,initExpressionParser:initExpressionParser}=require("./wm-utils"),{initTemplates:initTemplates}=require("./handlebar-helpers"),create=async(e,a,n)=>{await codegen.createAppSkeleton(e,a,n)},generate=async(e,a,n,t)=>{await codegen.generateSources(e,a,n,t)},generateCodegenAngularApp=async(e,a,n,t,r)=>{setCodegenPath(r),initTemplates(),initExpressionParser(),await create(e,a,r),await generate(e,a,n,t)},generatePage=async(e,a,n,t)=>{setCodegenPath(t),initTemplates(),initExpressionParser(),await codegen.generatePage(e,a,n)};module.exports={create:create,generateCodegenAngularApp:generateCodegenAngularApp,generatePage:generatePage};
|
@@ -0,0 +1 @@
|
|
1
|
+
const{getHandlebarTemplate:getHandlebarTemplate,safeString:safeString}=require("./handlebar-helpers"),cheerio=require("cheerio");let processedPageExpr=[];const isDisplayExpressionAttr=e=>{return["displayexpression","displaylabel","displayimagesrc","nodelabel","nodeicon","nodechildren","nodeid","itemid","itemlabel","itemicon","itemaction","itembadge","itemchildren","itemlink","itemtarget","userrole","isactive"].includes(e)},checkIsCustomPipeExpression=function(e){let r=e.match(/(custom(\s*:))/g);return r&&r.length},updateBindExpressionForDisplayexpression=e=>{let r,t,n,s,i,a,o,l,p,c="";for(checkIsCustomPipeExpression(e)&&(e+=": __1"),e=e.replace(/\$\[data\[\$i\]/g,"$[__1"),n=0;n<e.length;n++)if(r=e[n],t=e[n+1],"$"===r&&"["===t){for(a=1,p=!1,o=!1,s=n+2;s<e.length;s++)if(" "!==(i=e[s])&&(p||(o='"'===e[s]||"'"===e[s],p=!0),"["===i?a++:"]"===i&&a--,!a)){l=e.substring(n+2,s),c+=o?"__1["+l+"]":l;break}n=s}else c+=r;return c},updateArrTypeExpr=(e,r,t)=>{let n=/\[\$i\]/g;return isArrayTypeProperty(r,t)?e.substr(0,e.lastIndexOf("[$i]")).replace("[$i]","[0]"):e.replace(n,"[0]")},isArrayTypeProperty=(e,r)=>{const t=r?r.attribs:{};return["dataset","dataoptions","customcolors"].includes(e)||"datavalue"===e&&void 0!==t.wmcheckbox||"selecteditem"===e&&void 0!==t.wmtable||"selecteditem"===e&&void 0!==t.wmlist||"datavalue"===e&&t.wmselect&&t.multiple},getFnForExpr=(e,r)=>{let t=e.replace(/"/g,'\\"');if(processedPageExpr.includes(e))return"";processedPageExpr.push(e);let n=(r=r||{}).isEvent,s=r.widgetNode,i=r.prop,a="";const o=require("../dependencies/expression-parser.cjs");let l;n?l=o.$parseEvent(e,!0):(-1!==e.indexOf("[$i]")&&(e=updateArrTypeExpr(e,i,s)),l=o.$parseExpr(e,!0));const p=safeString(l.fnArgs),c=safeString(l.fnBody),d=l.pipes||[];return d.forEach((e,r)=>{a+="["+e.reduce((e,r)=>"'"+e+"','"+r+"'")+"]"+(r<d.length?",":"")}),a=safeString(a),t=safeString(t),getHandlebarTemplate("expr-vs-fn")({expr:t,fnArgs:p,fnBody:c,fnPipes:a})+","},generateVariableExpressions=e=>{let r="";e=JSON.parse(e);const t=["onBefore","onBeforeUpdate","onResult","onBeforeOpen","onOpen","onBeforeMessageSend","onMessageReceive","onProgress","onError","onBeforeDatasetReady","onCanUpdate","onClick","onHide","onOk","onCancel","onBeforeClose","onClose","onTimerFire","onSuccess","onOnline","onOffline"];for(const n in e){const s=e[n];(s.dataBinding||[]).forEach(e=>{if(e.value&&e.value.startsWith("bind:")){const t=e.value.replace("bind:","");r+=getFnForExpr(t)}}),t.forEach(e=>{s[e]&&(r+=getFnForExpr(s[e],{isEvent:!0}))})}return r},generateExtraWidgetBindings=(e,r)=>{let t="";switch(r){case"wmalertdialog":t+=getFnForExpr("oktext");break;case"wmconfirmdialog":t+=getFnForExpr("oktext"),t+=getFnForExpr("canceltext");break;case"wmtable":t+=e.attribs.rowngclass?getFnForExpr(e.attribs.rowngclass):"";break;case"wmtablecolumn":t+=e.attribs["col-ng-class"]?getFnForExpr(e.attribs["col-ng-class"]):""}return t},isActionTypeNode=e=>["wmtableaction","wmtablerowaction","wmformaction"].some(r=>void 0!==e.attribs[r]),generatePageExpressions=(e,r,t)=>{let n,s,i="";const a=cheerio.load(e);if(processedPageExpr.length=0,a("*").each((e,r)=>{for(let e in r.attribs)e.endsWith(".bind")?(s=e.replace(".bind",""),n=r.attribs[e],isDisplayExpressionAttr(s)&&(n=updateBindExpressionForDisplayexpression(n),console.log("++++++++displayexpressoin binding updated",n)),i+=getFnForExpr(n,{prop:s,widgetNode:r})):e.endsWith(".event")?(s=e.replace(".event",""),n=r.attribs[e],i+=getFnForExpr(n,{isEvent:!0})):"displayexpression"===e?(n=r.attribs[e],i+=getFnForExpr(n)):"action"===e&&isActionTypeNode(r)&&(n=r.attribs[e],console.warn("<<<<<<<<found action node",n),i+=getFnForExpr(n));["wmalertdialog","wmconfirmdialog","wmtable","wmtablecolumn"].forEach(e=>{void 0!==r.attribs[e]&&(i+=generateExtraWidgetBindings(r,e))})}),i+=generateVariableExpressions(r),t){const e=(t=JSON.parse(t.toString())).properties||{};Object.keys(e).forEach(r=>{let t=e[r];"string"==typeof t.value&&t.value.startsWith("bind:")&&(i+=getFnForExpr(t.value.replace("bind:","")))})}return i};module.exports={generatePageExpressions:generatePageExpressions,generateVariableExpressions:generateVariableExpressions};
|
@@ -1 +1 @@
|
|
1
|
-
const{getHandlebarTemplate:getHandlebarTemplate,safeString:safeString}=require("./handlebar-helpers"),{readFile:readFile,writeFile:writeFile,getAppVariablesFilePath:getAppVariablesFilePath}=require("./wm-utils"),
|
1
|
+
const{getHandlebarTemplate:getHandlebarTemplate,safeString:safeString}=require("./handlebar-helpers"),{readFile:readFile,writeFile:writeFile,getAppVariablesFilePath:getAppVariablesFilePath,formatContents:formatContents}=require("./wm-utils"),{generateVariableExpressions:generateVariableExpressions}=require("./expr-parser-utils"),generateAppVariableExpressions=async(e,a)=>{const r=safeString(generateVariableExpressions(e)),t=getHandlebarTemplate("component-expressions")({expressions:r});await writeFile(`${a}/src/app/app.component.expressions.ts`,formatContents(t,"javascript"))},generateAppVariables=async(e,a)=>{const r=getHandlebarTemplate("component-variables");let t=await readFile(getAppVariablesFilePath(e),"utf8")||"{}";const s=r({variables:safeString(t)});await writeFile(`${a}/src/app/app.component.variables.ts`,s),await generateAppVariableExpressions(t,a)};module.exports={generateAppVariables:generateAppVariables};
|
@@ -1 +1 @@
|
|
1
|
-
const{createDir:createDir,writeFile:writeFile,isPrefabProject:isPrefabProject,getPagesDirPath:getPagesDirPath,formatContents:formatContents,getComponentName:getComponentName,getComponentModuleName:getComponentModuleName,getPrefabPagesDirPath:getPrefabPagesDirPath}=require("./wm-utils"),fs=require("fs"),cheerio=require("cheerio"),{getPageContents:getPageContents}=require("./pages-util"),{getHandlebarTemplate:getHandlebarTemplate,safeString:safeString}=require("./handlebar-helpers"),writeComponentHtmlFile=async(e,t,a)=>{const n=`${a}/${e}.component.html`;await writeFile(n,t.string)},writeComponentCssFile=async(e,t,a)=>{const n=`${a}/${e}.component.css`;await writeFile(n,t.string)},writeComponentVariablesFile=async(e,t,a,n)=>{let r=getHandlebarTemplate(e)({variables:a});await writeFile(`${n}/${t}.component.variables.ts`,formatContents(r))},writeComponentJsFile=async(e,t,a,n)=>{const r=getHandlebarTemplate(e)({jsContent:a});await writeFile(`${n}/${t}.component.script.js`,formatContents(r,"javascript"))},writeComponentTsFile=async(e,t,a,n)=>{let r=getHandlebarTemplate(e)({name:t,prefabName:a,componentName:getComponentName(t)});await writeFile(`${n}/${t}.component.ts`,r)},writePagePartialModuleTsFile=async(e,t,a,n,r,o,i=!1,s)=>{let m=getHandlebarTemplate(e)({name:t,componentName:getComponentName(t),moduleName:getComponentModuleName(t),requiredPartials:n,requiredPrefabs:r,requiredWMComponents:o,hasCustomElement:i,insidePrefab:!!s});await writeFile(`${a}/${t}.module.ts`,m)},writePrefabModuleTsFile=async(e,t,a,n=!1,r)=>{let o=getHandlebarTemplate("prefab-module-ts")({name:e,componentName:getComponentName(e),moduleName:getComponentModuleName(e),requiredPartials:r,requiredWMComponents:a,hasCustomElement:n});await writeFile(`${t}/${e}.module.ts`,o)},generateComponent=async(e,t,a,n,r,o)=>{await createDir(e,{recursive:!0});const{markup:i,styles:s,variables:m,script:l}=n;return Promise.all([writeComponentHtmlFile(t,safeString(i),e),writeComponentCssFile(t,safeString(s),e),writeComponentVariablesFile("component-variables",t,safeString(m),e),writeComponentJsFile(o,t,safeString(l),e),writeComponentTsFile(r,t,a,e)])},findRequiredPartials=e=>{const t={};return e("[partialContainer]").map((t,a)=>e(a).attr("content")).toArray().map(e=>({type:"PARTIAL",name:e.trim()})).filter(e=>!t[e.name]&&(t[e.name]=!0))},findRequiredPrefabs=e=>{const t={};return e("[wmPrefab]").map((t,a)=>e(a).attr("prefabname")).toArray().map(e=>({type:"PREFAB",name:e.trim()})).filter(e=>!t[e.name]&&(t[e.name]=!0))},generatePagePartialComponent=async(e,t,a,n,r,o,i)=>{let s,m,l
|
1
|
+
const{createDir:createDir,writeFile:writeFile,isPrefabProject:isPrefabProject,getPagesDirPath:getPagesDirPath,formatContents:formatContents,getComponentName:getComponentName,getComponentModuleName:getComponentModuleName,getPrefabPagesDirPath:getPrefabPagesDirPath}=require("./wm-utils"),fs=require("fs"),cheerio=require("cheerio"),{getPageContents:getPageContents}=require("./pages-util"),{getHandlebarTemplate:getHandlebarTemplate,safeString:safeString}=require("./handlebar-helpers"),writeComponentHtmlFile=async(e,t,a)=>{const n=`${a}/${e}.component.html`;await writeFile(n,t.string)},writeComponentCssFile=async(e,t,a)=>{const n=`${a}/${e}.component.css`;await writeFile(n,t.string)},writeComponentVariablesFile=async(e,t,a,n)=>{let r=getHandlebarTemplate(e)({variables:a});await writeFile(`${n}/${t}.component.variables.ts`,formatContents(r))},writeComponentJsFile=async(e,t,a,n)=>{const r=getHandlebarTemplate(e)({jsContent:a});await writeFile(`${n}/${t}.component.script.js`,formatContents(r,"javascript"))},writeComponentExpressionsFile=async(e,t,a,n)=>{const r=getHandlebarTemplate(e)({expressions:a});await writeFile(`${n}/${t}.component.expressions.ts`,formatContents(r,"javascript"))},writeComponentTsFile=async(e,t,a,n)=>{let r=getHandlebarTemplate(e)({name:t,prefabName:a,componentName:getComponentName(t)});await writeFile(`${n}/${t}.component.ts`,r)},writePagePartialModuleTsFile=async(e,t,a,n,r,o,i=!1,s)=>{let m=getHandlebarTemplate(e)({name:t,componentName:getComponentName(t),moduleName:getComponentModuleName(t),requiredPartials:n,requiredPrefabs:r,requiredWMComponents:o,hasCustomElement:i,insidePrefab:!!s});await writeFile(`${a}/${t}.module.ts`,m)},writePrefabModuleTsFile=async(e,t,a,n=!1,r)=>{let o=getHandlebarTemplate("prefab-module-ts")({name:e,componentName:getComponentName(e),moduleName:getComponentModuleName(e),requiredPartials:r,requiredWMComponents:a,hasCustomElement:n});await writeFile(`${t}/${e}.module.ts`,o)},generateComponent=async(e,t,a,n,r,o)=>{await createDir(e,{recursive:!0});const{markup:i,styles:s,variables:m,script:p,expressions:l}=n;return Promise.all([writeComponentHtmlFile(t,safeString(i),e),writeComponentCssFile(t,safeString(s),e),writeComponentVariablesFile("component-variables",t,safeString(m),e),writeComponentJsFile(o,t,safeString(p),e),writeComponentExpressionsFile("component-expressions",t,safeString(l),e),writeComponentTsFile(r,t,a,e)])},findRequiredPartials=e=>{const t={};return e("[partialContainer]").map((t,a)=>e(a).attr("content")).toArray().map(e=>({type:"PARTIAL",name:e.trim()})).filter(e=>!t[e.name]&&(t[e.name]=!0))},findRequiredPrefabs=e=>{const t={};return e("[wmPrefab]").map((t,a)=>e(a).attr("prefabname")).toArray().map(e=>({type:"PREFAB",name:e.trim()})).filter(e=>!t[e.name]&&(t[e.name]=!0))},generatePagePartialComponent=async(e,t,a,n,r,o,i)=>{let s,m,p,l;if("PAGE"===n?(l=`${r}/src/app/pages/${a}`,s="page-component-ts",m="page-component-script",p="page-module-ts"):(l=o?`${r}/partials/${a}`:`${r}/src/app/partials/${a}`,s="partial-component-ts",m="partial-component-script",p="partial-module-ts"),fs.existsSync(`${l}/${a}.component.ts`))return;let g=`${e}/${a}`;o&&(g=`${getPrefabPagesDirPath(i,o)}/${a}`);const c=await getPageContents(t,g,`${a}`,a,n);try{const n=cheerio.load(c.markup),g=findRequiredPartials(n),P=findRequiredPrefabs(n);for(const a of g)await generatePagePartialComponent(e,t,a.name,a.type,r,o,i);await generateComponent(l,a,void 0,c,s,m),await writePagePartialModuleTsFile(p,a,l,g,P,c.requiredWMComponents,c.hasCustomElement,o)}catch(e){throw console.log("failed in "+a),e}},generateComponents=async(e,t,a,n,r,o)=>{const i=getPagesDirPath(e);for(const a of n.keys()){const m="__self__"===a?`${i}/Main`:`${getPrefabPagesDirPath(e,a)}/Main`,p=await getPageContents(t,m,"Main",a,"PREFAB",n.get(a)),l=`${r}/src/app/prefabs/${a}`,g=cheerio.load(p.markup),c=findRequiredPartials(g);await generateComponent(l,a,a,p,"prefab-component-ts","prefab-component-script");const P=o[a];for(var s=0;s<P.length;s++)await generatePagePartialComponent(i,t,P[s].name,P[s].type,l,a,e);await writePrefabModuleTsFile(a,l,p.requiredWMComponents,p.hasCustomElement,c)}if(!isPrefabProject(t))for(let n of a)await generatePagePartialComponent(i,t,n.name,n.type,r,n.prefabName,e)};module.exports={generateComponents:generateComponents,generatePagePartialComponent:generatePagePartialComponent};
|
@@ -1 +1 @@
|
|
1
|
-
const Handlebars=require("handlebars"),fs=require("fs"),{getComponentName:getComponentName,isPrefabProject:isPrefabProject,getComponentModuleName:getComponentModuleName,getCodegenPath:getCodegenPath}=require("./wm-utils"),getPageRouteInfo=(e,t)=>{let n,a;if(null!==e){n="[AuthGuard]";for(const r of e)if(r.urlPattern.startsWith("/pages/")){r.urlPattern.split("/")[2]===t&&("Role"===r.permission?(n="[RoleGuard]",r.roles&&(a=JSON.stringify(r.roles))):"PermitAll"===r.permission&&(n=void 0))}}return`{\n path: '${t}',\n pathMatch: 'full',\n loadChildren: () => import('./pages/${t}/${t}.module').then(m => m.${getComponentModuleName(t)}),\n ${n?`canActivate: ${n},`:""}\n data : {\n ${a?`allowedRoles: ${a},`:""}\n pageName: '${t}'\n }\n }`};Handlebars.registerHelper("PageComponentsImportStmts",(e,t)=>{if(isPrefabProject(e))return"";const n=t.filter(e=>"PAGE"===e.type).map(e=>`import { ${getComponentName(e.name)} } from './pages/${e.name}/${e.name}.component';`).join("\n");return safeString(n)}),Handlebars.registerHelper("WMComponentsImportStmts",(e=[])=>{const t=e.map(e=>`import { ${e.name} as ${e.as||"WM_"+e.name} } from '${e.from}';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PartialModuleImportStmts",e=>{const t=e.filter(e=>"PARTIAL"===e.type).map(e=>`import { ${getComponentModuleName(e.name)} as Partial${getComponentModuleName(e.name)}} from '../../partials/${e.name}/${e.name}.module';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PrefabPartialModuleImportStmts",e=>{const t=e.filter(e=>"PARTIAL"===e.type).map(e=>`import { ${getComponentModuleName(e.name)} as Partial${getComponentModuleName(e.name)}} from './partials/${e.name}/${e.name}.module';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PartialModuleStmts",e=>{const t=e.filter(e=>"PARTIAL"===e.type).map(e=>"Partial"+getComponentModuleName(e.name)).join(",\n\t");return safeString(t)}),Handlebars.registerHelper("PrefabModuleImportStmts",e=>{const t=e.filter(e=>"PREFAB"===e.type).map(e=>`import { ${getComponentModuleName(e.name)} as Prefab${getComponentModuleName(e.name)} } from '../../prefabs/${e.name}/${e.name}.module';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PrefabModuleStmts",e=>{const t=e.filter(e=>"PREFAB"===e.type).map(e=>"Prefab"+getComponentModuleName(e.name)).join(",\n\t");return safeString(t)}),Handlebars.registerHelper("WMComponentModuleStmts",e=>{const t=e.map(e=>`${e.as||"WM_"+e.name}${e.forRoot?".forRoot()":""}`).join(",\n\t");return safeString(t)}),Handlebars.registerHelper("PartialComponentsImportStmts",e=>{const t=e.filter(e=>"PAGE"!==e.type).map(e=>`import { ${getComponentName(e.name)} } from './partials/${e.name}/${e.name}.component';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PrefabComponentsImportStmts",e=>{const t=[];for(const[n]of e.entries())t.push(`import { MainComponent as ${n}Component } from './prefabs/${n}/Main/Main.component';`);return safeString(t.join("\n"))}),Handlebars.registerHelper("RegisterComponents",(e,t,n)=>{let a=[];for(const[e]of n.entries())a.push(`ComponentRefProviderService.registerComponentRef('${e}', ComponentType.PREFAB, ${e}Component, null);`);return safeString(a.join("\n"))}),Handlebars.registerHelper("ComponentDeclarations",(e,t,n)=>{let a=[];for(const[e]of n.entries())a.push(`${e}Component`);return safeString(a.join(",\n\t"))}),Handlebars.registerHelper("RegisterPrefabConfig",e=>{const t=[];for(const[n,a]of e.entries())t.push(`registerPrefabConfig('${n}', ${a})`);return safeString(t.join("\n"))}),Handlebars.registerHelper("DefineHomePage",e=>isPrefabProject(e)?"prefab-preview":e.homePage),Handlebars.registerHelper("ImportPrefabPreviewComponent",e=>isPrefabProject(e)?safeString('import { PrefabPreviewComponent } from "@wm/runtime/base";'):""),Handlebars.registerHelper("DefineAppRoutes",(e,t,n)=>{const a=t.filter(e=>"PAGE"===e.type).map(e=>getPageRouteInfo(n,e.name));let r="";return r=isPrefabProject(e)?"{\n path: 'prefab-preview',\n resolve: appDependenciesResolve,\n component: PrefabPreviewComponent\n }":`{\n path: '',\n resolve: appDependenciesResolve,\n children: [\n ${a.join(",\n")}\n ]\n }`,safeString(`[\n {\n path: '',\n pathMatch: 'full',\n component: EmptyPageComponent,\n resolve: appDependenciesResolve\n },\n ${r},\n {\n path: "**",\n canActivate: [PageNotFoundGaurd],\n component: EmptyPageComponent\n }\n ]`)}),Handlebars.registerHelper("DefinePrefabModules",e=>`{ ${e} }`),Handlebars.registerHelper("DefinePartialModules",e=>`{ ${e} }`),Handlebars.registerHelper("DefinePrefabPartialModules",e=>`{ ${e} }`);const templates=new Map,initTemplates=()=>{const e=getCodegenPath()+"/templates/";templates.set("app-module-ts",Handlebars.compile(fs.readFileSync(e+"app.module.ts.hbs","utf-8"))),templates.set("app-codegen-module",Handlebars.compile(fs.readFileSync(e+"app-codegen.module.ts.hbs","utf-8"))),templates.set("app-prefabs-module",Handlebars.compile(fs.readFileSync(e+"app-prefabs.module.ts.hbs","utf-8"))),templates.set("prefab-config",Handlebars.compile(fs.readFileSync(e+"prefab/prefab-config.ts.hbs","utf-8"))),templates.set("app-routes",Handlebars.compile(fs.readFileSync(e+"app-routes.ts.hbs","utf-8"))),templates.set("lazy-module-routes",Handlebars.compile(fs.readFileSync(e+"lazy-module-routes.ts.hbs","utf-8"))),templates.set("wm-project-properties",Handlebars.compile(fs.readFileSync(e+"wm-project-properties.ts.hbs","utf-8"))),templates.set("component-variables",Handlebars.compile(fs.readFileSync(e+"component.variables.ts.hbs","utf-8"))),templates.set("app-component-script",Handlebars.compile(fs.readFileSync(e+"app.component.script.js.hbs","utf-8"))),templates.set("page-component-ts",Handlebars.compile(fs.readFileSync(e+"page/page.component.ts.hbs","utf-8"))),templates.set("page-component-script",Handlebars.compile(fs.readFileSync(e+"page/page.component.script.js.hbs","utf-8"))),templates.set("page-module-ts",Handlebars.compile(fs.readFileSync(e+"page/page.module.ts.hbs","utf-8"))),templates.set("partial-component-ts",Handlebars.compile(fs.readFileSync(e+"partial/partial.component.ts.hbs","utf-8"))),templates.set("partial-component-script",Handlebars.compile(fs.readFileSync(e+"partial/partial.component.script.js.hbs","utf-8"))),templates.set("partial-module-ts",Handlebars.compile(fs.readFileSync(e+"partial/partial.module.ts.hbs","utf-8"))),templates.set("prefab-component-ts",Handlebars.compile(fs.readFileSync(e+"prefab/prefab.component.ts.hbs","utf-8"))),templates.set("prefab-module-ts",Handlebars.compile(fs.readFileSync(e+"prefab/prefab.module.ts.hbs","utf-8"))),templates.set("prefab-component-script",Handlebars.compile(fs.readFileSync(e+"prefab/prefab.component.script.js.hbs","utf-8")))},getHandlebarTemplate=e=>templates.get(e),safeString=e=>new Handlebars.SafeString(e);module.exports={getHandlebarTemplate:getHandlebarTemplate,safeString:safeString,initTemplates:initTemplates};
|
1
|
+
const Handlebars=require("handlebars"),fs=require("fs"),{getComponentName:getComponentName,isPrefabProject:isPrefabProject,getComponentModuleName:getComponentModuleName,getCodegenPath:getCodegenPath}=require("./wm-utils"),getPageRouteInfo=(e,t)=>{let n,a;if(null!==e){n="[AuthGuard]";for(const r of e)if(r.urlPattern.startsWith("/pages/")){r.urlPattern.split("/")[2]===t&&("Role"===r.permission?(n="[RoleGuard]",r.roles&&(a=JSON.stringify(r.roles))):"PermitAll"===r.permission&&(n=void 0))}}return`{\n path: '${t}',\n pathMatch: 'full',\n loadChildren: () => import('./pages/${t}/${t}.module').then(m => m.${getComponentModuleName(t)}),\n ${n?`canActivate: ${n},`:""}\n data : {\n ${a?`allowedRoles: ${a},`:""}\n pageName: '${t}'\n }\n }`};Handlebars.registerHelper("PageComponentsImportStmts",(e,t)=>{if(isPrefabProject(e))return"";const n=t.filter(e=>"PAGE"===e.type).map(e=>`import { ${getComponentName(e.name)} } from './pages/${e.name}/${e.name}.component';`).join("\n");return safeString(n)}),Handlebars.registerHelper("WMComponentsImportStmts",(e=[])=>{const t=e.map(e=>`import { ${e.name} as ${e.as||"WM_"+e.name} } from '${e.from}';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PartialModuleImportStmts",e=>{const t=e.filter(e=>"PARTIAL"===e.type).map(e=>`import { ${getComponentModuleName(e.name)} as Partial${getComponentModuleName(e.name)}} from '../../partials/${e.name}/${e.name}.module';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PrefabPartialModuleImportStmts",e=>{const t=e.filter(e=>"PARTIAL"===e.type).map(e=>`import { ${getComponentModuleName(e.name)} as Partial${getComponentModuleName(e.name)}} from './partials/${e.name}/${e.name}.module';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PartialModuleStmts",e=>{const t=e.filter(e=>"PARTIAL"===e.type).map(e=>"Partial"+getComponentModuleName(e.name)).join(",\n\t");return safeString(t)}),Handlebars.registerHelper("PrefabModuleImportStmts",e=>{const t=e.filter(e=>"PREFAB"===e.type).map(e=>`import { ${getComponentModuleName(e.name)} as Prefab${getComponentModuleName(e.name)} } from '../../prefabs/${e.name}/${e.name}.module';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PrefabModuleStmts",e=>{const t=e.filter(e=>"PREFAB"===e.type).map(e=>"Prefab"+getComponentModuleName(e.name)).join(",\n\t");return safeString(t)}),Handlebars.registerHelper("WMComponentModuleStmts",e=>{const t=e.map(e=>`${e.as||"WM_"+e.name}${e.forRoot?".forRoot()":""}`).join(",\n\t");return safeString(t)}),Handlebars.registerHelper("PartialComponentsImportStmts",e=>{const t=e.filter(e=>"PAGE"!==e.type).map(e=>`import { ${getComponentName(e.name)} } from './partials/${e.name}/${e.name}.component';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PrefabComponentsImportStmts",e=>{const t=[];for(const[n]of e.entries())t.push(`import { MainComponent as ${n}Component } from './prefabs/${n}/Main/Main.component';`);return safeString(t.join("\n"))}),Handlebars.registerHelper("RegisterComponents",(e,t,n)=>{let a=[];for(const[e]of n.entries())a.push(`ComponentRefProviderService.registerComponentRef('${e}', ComponentType.PREFAB, ${e}Component, null);`);return safeString(a.join("\n"))}),Handlebars.registerHelper("ComponentDeclarations",(e,t,n)=>{let a=[];for(const[e]of n.entries())a.push(`${e}Component`);return safeString(a.join(",\n\t"))}),Handlebars.registerHelper("RegisterPrefabConfig",e=>{const t=[];for(const[n,a]of e.entries())t.push(`registerPrefabConfig('${n}', ${a})`);return safeString(t.join("\n"))}),Handlebars.registerHelper("DefineHomePage",e=>isPrefabProject(e)?"prefab-preview":e.homePage),Handlebars.registerHelper("ImportPrefabPreviewComponent",e=>isPrefabProject(e)?safeString('import { PrefabPreviewComponent } from "@wm/runtime/base";'):""),Handlebars.registerHelper("DefineAppRoutes",(e,t,n)=>{const a=t.filter(e=>"PAGE"===e.type).map(e=>getPageRouteInfo(n,e.name));let r="";return r=isPrefabProject(e)?"{\n path: 'prefab-preview',\n resolve: appDependenciesResolve,\n component: PrefabPreviewComponent\n }":`{\n path: '',\n resolve: appDependenciesResolve,\n children: [\n ${a.join(",\n")}\n ]\n }`,safeString(`[\n {\n path: '',\n pathMatch: 'full',\n component: EmptyPageComponent,\n resolve: appDependenciesResolve\n },\n ${r},\n {\n path: "**",\n canActivate: [PageNotFoundGaurd],\n component: EmptyPageComponent\n }\n ]`)}),Handlebars.registerHelper("DefinePrefabModules",e=>`{ ${e} }`),Handlebars.registerHelper("DefinePartialModules",e=>`{ ${e} }`),Handlebars.registerHelper("DefinePrefabPartialModules",e=>`{ ${e} }`);const templates=new Map,initTemplates=()=>{const e=getCodegenPath()+"/templates/";templates.set("app-module-ts",Handlebars.compile(fs.readFileSync(e+"app.module.ts.hbs","utf-8"))),templates.set("app-codegen-module",Handlebars.compile(fs.readFileSync(e+"app-codegen.module.ts.hbs","utf-8"))),templates.set("app-prefabs-module",Handlebars.compile(fs.readFileSync(e+"app-prefabs.module.ts.hbs","utf-8"))),templates.set("prefab-config",Handlebars.compile(fs.readFileSync(e+"prefab/prefab-config.ts.hbs","utf-8"))),templates.set("app-routes",Handlebars.compile(fs.readFileSync(e+"app-routes.ts.hbs","utf-8"))),templates.set("lazy-module-routes",Handlebars.compile(fs.readFileSync(e+"lazy-module-routes.ts.hbs","utf-8"))),templates.set("wm-project-properties",Handlebars.compile(fs.readFileSync(e+"wm-project-properties.ts.hbs","utf-8"))),templates.set("component-variables",Handlebars.compile(fs.readFileSync(e+"component.variables.ts.hbs","utf-8"))),templates.set("component-expressions",Handlebars.compile(fs.readFileSync(e+"component.expressions.ts.hbs","utf-8"))),templates.set("app-component-script",Handlebars.compile(fs.readFileSync(e+"app.component.script.js.hbs","utf-8"))),templates.set("page-component-ts",Handlebars.compile(fs.readFileSync(e+"page/page.component.ts.hbs","utf-8"))),templates.set("page-component-script",Handlebars.compile(fs.readFileSync(e+"page/page.component.script.js.hbs","utf-8"))),templates.set("page-module-ts",Handlebars.compile(fs.readFileSync(e+"page/page.module.ts.hbs","utf-8"))),templates.set("partial-component-ts",Handlebars.compile(fs.readFileSync(e+"partial/partial.component.ts.hbs","utf-8"))),templates.set("partial-component-script",Handlebars.compile(fs.readFileSync(e+"partial/partial.component.script.js.hbs","utf-8"))),templates.set("partial-module-ts",Handlebars.compile(fs.readFileSync(e+"partial/partial.module.ts.hbs","utf-8"))),templates.set("prefab-component-ts",Handlebars.compile(fs.readFileSync(e+"prefab/prefab.component.ts.hbs","utf-8"))),templates.set("prefab-module-ts",Handlebars.compile(fs.readFileSync(e+"prefab/prefab.module.ts.hbs","utf-8"))),templates.set("prefab-component-script",Handlebars.compile(fs.readFileSync(e+"prefab/prefab.component.script.js.hbs","utf-8"))),templates.set("expr-vs-fn",Handlebars.compile(fs.readFileSync(e+"expr-vs-fn.hbs","utf-8")))},getHandlebarTemplate=e=>templates.get(e),safeString=e=>new Handlebars.SafeString(e);module.exports={getHandlebarTemplate:getHandlebarTemplate,safeString:safeString,initTemplates:initTemplates};
|
@@ -1 +1 @@
|
|
1
|
-
global.$=require("jquery"),global._=require("lodash"),global._WM_APP_PROPERTIES={};const cheerio=require("cheerio"),{readFile:readFile,isMobileProject:isMobileProject}=require("./wm-utils"),nodePolyfill=require("node-window-polyfill").register(!1),getRequiredScripts=e=>{const
|
1
|
+
global.$=require("jquery"),global._=require("lodash"),global._WM_APP_PROPERTIES={};const cheerio=require("cheerio"),{generatePageExpressions:generatePageExpressions}=require("./expr-parser-utils"),{readFile:readFile,isMobileProject:isMobileProject}=require("./wm-utils"),nodePolyfill=require("node-window-polyfill").register(!1),getRequiredScripts=e=>{const r={wmCalendar:["./node_modules/fullcalendar/dist/fullcalendar.min.js"],wmChart:["./node_modules/d3/d3.min.js","./node_modules/@wavemaker.com/nvd3/build/nv.d3.min.js"],wmChips:["./node_modules/jquery-ui/ui/widgets/sortable.js"],wmList:["./node_modules/jquery-ui/ui/widgets/droppable.js","./node_modules/jquery-ui/ui/widgets/sortable.js"],wmRichtexteditor:["./node_modules/summernote/dist/summernote-lite.min.js"],wmTable:[global._WM_PACKAGE_PATH+"/scripts/datatable/datatable.js","./node_modules/jquery-ui/ui/widgets/resizable.js"]};let t=[];return _.each(r,(r,s)=>{e("["+s+"]").length>0&&(t=t.concat(r))}),t=t.map(e=>e.replace(/^(\.\/)/,"").replace(/\//g,"-")),_.uniq(t)},includesCustomElement=e=>{return cheerio.load(e)('[html-custom-element="true"]').length},getPageContents=async(e,r,t,s,i,o)=>{try{const l=`${r}/${t}`,a=await readFile(`${l}.html`,"utf8"),n=await readFile(`${l}.js`,"utf8"),u=await readFile(`${l}.css`,"utf8"),d=await readFile(`${l}.variables.json`,"utf8");let m;global._WM_APP_PROPERTIES=e,window=window||{},window._WM_APP_PROPERTIES=e;const p=(m=isMobileProject(e)?require("../dependencies/transpilation-mobile.cjs"):require("../dependencies/transpilation-web.cjs")).transpile(a),c=cheerio.load(p.markup),g=getRequiredScripts(c);return g.length>0&&(p.markup=p.markup.replace(">",` scripts-to-load="${g.join(",")}">`)),{markup:p.markup,script:n,styles:m.scopeComponentStyles(s,i,u),variables:d,expressions:generatePageExpressions(p.markup,d,o),requiredWMComponents:p.requiredWMComponents.filter(r=>!r.platformType||r.platformType===e.platformType),hasCustomElement:includesCustomElement(a)}}catch(e){throw console.error(`error occurred in transpilation of ${t}`,e),e}};module.exports={getPageContents:getPageContents};
|
angular-codegen/src/wm-utils.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
const util=require("util"),fs=require("fs"),rimraf=require("rimraf"),decodeUriComponent=require("decode-uri-component"),upperFirst=require("lodash/upperFirst"),tar=require("tar-fs"),prettier=require("prettier"),js_beautify=require("js-beautify"),path=require("path"),stat=util.promisify(fs.stat),createDir=util.promisify(fs.mkdir),createReadStream=util.promisify(fs.createReadStream),readFile=util.promisify(fs.readFile),writeFile=util.promisify(fs.writeFile),readDir=util.promisify(fs.readdir),rename=util.promisify(fs.rename),searchFileByName=(e,t,r)=>{if(!fs.existsSync(e))return;fs.readdirSync(e).forEach(a=>{const i=path.join(e,a);fs.lstatSync(i).isDirectory()?searchFileByName(i,t,r):t.test(i)&&r(i)})},deleteResource=async e=>stat(e).then(()=>new Promise((t,r)=>{rimraf(e,()=>t())}),()=>Promise.resolve()),getComponentName=e=>`${upperFirst(e)}Component`,getComponentModuleName=e=>`${upperFirst(e)}Module`,decodeURIComponent=e=>decodeUriComponent(e.replace(/\+/g," ")),createTar=(e,t)=>new Promise((r,a)=>{tar.pack(e).pipe(fs.createWriteStream(t)).on("finish",r)}),extractTar=(e,t)=>new Promise((r,a)=>{fs.createReadStream(e).pipe(tar.extract(t)).on("finish",r)}),getWebAppPath=e=>`${e}/src/main/webapp`,getPagesDirPath=e=>`${getWebAppPath(e)}/pages`,getPagesConfigPath=e=>`${getWebAppPath(e)}/pages/pages-config.json`,getPrefabsDirPath=e=>`${getWebAppPath(e)}/WEB-INF/prefabs`,getPrefabConfigPath=(e,t)=>`${getPrefabsDirPath(e)}/${t}/webapp/config.json`,getPrefabPagesDirPath=(e,t)=>`${getPrefabsDirPath(e)}/${t}/webapp/pages`,getSecurityConfigPath=e=>`${e}/services/securityService/designtime/intercept-urls.json`,getRolesConfigPath=e=>`${e}/services/securityService/designtime/roles.json`,getAuthInfoFilePath=e=>`${e}/services/securityService/designtime/auth-info.json`,getAppJsFilePath=e=>`${getWebAppPath(e)}/app.js`,getAppVariablesFilePath=e=>`${getWebAppPath(e)}/app.variables.json`,getWmProjectPropertiesFilePath=e=>`${e}/.wmproject.properties`,getIndexHtmlPath=e=>`${getWebAppPath(e)}/index.html`;let codegenPath="./node_modules/@wavemaker/angular-codegen";const setCodegenPath=e=>{e&&(codegenPath=e)},getCodegenPath=()=>codegenPath,formatContents=(e="",t)=>"javascript"===t?js_beautify(e,{}):prettier.format(e,{semi:!1,parser:"typescript",tabWidth:4}),isMobileProject=e=>"MOBILE"===e.platformType,isPrefabProject=e=>"PREFAB"===e.type,readFileSync=(e,t)=>{let r=fs.readFileSync(e);return t?JSON.parse(r):r};module.exports={stat:stat,createDir:createDir,createReadStream:createReadStream,readFile:readFile,writeFile:writeFile,deleteResource:deleteResource,getComponentName:getComponentName,getComponentModuleName:getComponentModuleName,decodeURIComponent:decodeURIComponent,createTar:createTar,extractTar:extractTar,readDir:readDir,rename:rename,searchFileByName:searchFileByName,getWebAppPath:getWebAppPath,getPagesDirPath:getPagesDirPath,getPagesConfigPath:getPagesConfigPath,getPrefabsDirPath:getPrefabsDirPath,getPrefabConfigPath:getPrefabConfigPath,getPrefabPagesDirPath:getPrefabPagesDirPath,getSecurityConfigPath:getSecurityConfigPath,getRolesConfigPath:getRolesConfigPath,getAuthInfoFilePath:getAuthInfoFilePath,getAppJsFilePath:getAppJsFilePath,getAppVariablesFilePath:getAppVariablesFilePath,getWmProjectPropertiesFilePath:getWmProjectPropertiesFilePath,getIndexHtmlPath:getIndexHtmlPath,formatContents:formatContents,isMobileProject:isMobileProject,isPrefabProject:isPrefabProject,readFileSync:readFileSync,getCodegenPath:getCodegenPath,setCodegenPath:setCodegenPath};
|
1
|
+
const util=require("util"),fs=require("fs"),rimraf=require("rimraf"),decodeUriComponent=require("decode-uri-component"),upperFirst=require("lodash/upperFirst"),tar=require("tar-fs"),prettier=require("prettier"),js_beautify=require("js-beautify"),path=require("path"),stat=util.promisify(fs.stat),createDir=util.promisify(fs.mkdir),createReadStream=util.promisify(fs.createReadStream),readFile=util.promisify(fs.readFile),writeFile=util.promisify(fs.writeFile),readDir=util.promisify(fs.readdir),rename=util.promisify(fs.rename),searchFileByName=(e,t,r)=>{if(!fs.existsSync(e))return;fs.readdirSync(e).forEach(a=>{const i=path.join(e,a);fs.lstatSync(i).isDirectory()?searchFileByName(i,t,r):t.test(i)&&r(i)})},deleteResource=async e=>stat(e).then(()=>new Promise((t,r)=>{rimraf(e,()=>t())}),()=>Promise.resolve()),getComponentName=e=>`${upperFirst(e)}Component`,getComponentModuleName=e=>`${upperFirst(e)}Module`,decodeURIComponent=e=>decodeUriComponent(e.replace(/\+/g," ")),createTar=(e,t)=>new Promise((r,a)=>{tar.pack(e).pipe(fs.createWriteStream(t)).on("finish",r)}),extractTar=(e,t)=>new Promise((r,a)=>{fs.createReadStream(e).pipe(tar.extract(t)).on("finish",r)}),getWebAppPath=e=>`${e}/src/main/webapp`,getPagesDirPath=e=>`${getWebAppPath(e)}/pages`,getPagesConfigPath=e=>`${getWebAppPath(e)}/pages/pages-config.json`,getPrefabsDirPath=e=>`${getWebAppPath(e)}/WEB-INF/prefabs`,getPrefabConfigPath=(e,t)=>`${getPrefabsDirPath(e)}/${t}/webapp/config.json`,getPrefabPagesDirPath=(e,t)=>`${getPrefabsDirPath(e)}/${t}/webapp/pages`,getSecurityConfigPath=e=>`${e}/services/securityService/designtime/intercept-urls.json`,getRolesConfigPath=e=>`${e}/services/securityService/designtime/roles.json`,getAuthInfoFilePath=e=>`${e}/services/securityService/designtime/auth-info.json`,getAppJsFilePath=e=>`${getWebAppPath(e)}/app.js`,getAppVariablesFilePath=e=>`${getWebAppPath(e)}/app.variables.json`,getWmProjectPropertiesFilePath=e=>`${e}/.wmproject.properties`,getIndexHtmlPath=e=>`${getWebAppPath(e)}/index.html`;let codegenPath="./node_modules/@wavemaker/angular-codegen";const setCodegenPath=e=>{e&&(codegenPath=e)},getCodegenPath=()=>codegenPath,formatContents=(e="",t)=>"javascript"===t?js_beautify(e,{}):prettier.format(e,{semi:!1,parser:"typescript",tabWidth:4}),isMobileProject=e=>"MOBILE"===e.platformType,isPrefabProject=e=>"PREFAB"===e.type,readFileSync=(e,t)=>{let r=fs.readFileSync(e);return t?JSON.parse(r):r},initExpressionParser=()=>{const e=require("../dependencies/expression-parser.cjs"),t=require("../dependencies/pipe-provider.cjs");e.setPipeProvider(new t.PipeProvider({},{get:()=>{}},{}))};module.exports={stat:stat,createDir:createDir,createReadStream:createReadStream,readFile:readFile,writeFile:writeFile,deleteResource:deleteResource,getComponentName:getComponentName,getComponentModuleName:getComponentModuleName,decodeURIComponent:decodeURIComponent,createTar:createTar,extractTar:extractTar,readDir:readDir,rename:rename,searchFileByName:searchFileByName,getWebAppPath:getWebAppPath,getPagesDirPath:getPagesDirPath,getPagesConfigPath:getPagesConfigPath,getPrefabsDirPath:getPrefabsDirPath,getPrefabConfigPath:getPrefabConfigPath,getPrefabPagesDirPath:getPrefabPagesDirPath,getSecurityConfigPath:getSecurityConfigPath,getRolesConfigPath:getRolesConfigPath,getAuthInfoFilePath:getAuthInfoFilePath,getAppJsFilePath:getAppJsFilePath,getAppVariablesFilePath:getAppVariablesFilePath,getWmProjectPropertiesFilePath:getWmProjectPropertiesFilePath,getIndexHtmlPath:getIndexHtmlPath,formatContents:formatContents,isMobileProject:isMobileProject,isPrefabProject:isPrefabProject,readFileSync:readFileSync,getCodegenPath:getCodegenPath,setCodegenPath:setCodegenPath,initExpressionParser:initExpressionParser};
|
@@ -4,6 +4,7 @@ import { UserDefinedExecutionContext } from '@wm/core';
|
|
4
4
|
|
5
5
|
import { initScript } from './{{name}}.component.script';
|
6
6
|
import { getVariables } from './{{name}}.component.variables';
|
7
|
+
import { expressionData } from './{{name}}.component.expressions';
|
7
8
|
|
8
9
|
import { BasePageComponent } from '@wm/runtime/base';
|
9
10
|
|
@@ -36,4 +37,9 @@ export class {{componentName}} extends BasePageComponent {
|
|
36
37
|
evalUserScript(Page, App, Utils) {
|
37
38
|
initScript(Page, App, Utils);
|
38
39
|
}
|
39
|
-
|
40
|
+
|
41
|
+
getExpressions() {
|
42
|
+
return expressionData;
|
43
|
+
}
|
44
|
+
|
45
|
+
}
|
@@ -4,6 +4,7 @@ import { UserDefinedExecutionContext } from '@wm/core';
|
|
4
4
|
|
5
5
|
import { initScript } from './{{name}}.component.script';
|
6
6
|
import { getVariables } from './{{name}}.component.variables';
|
7
|
+
import { expressionData } from './{{name}}.component.expressions';
|
7
8
|
|
8
9
|
import { BasePartialComponent } from '@wm/runtime/base';
|
9
10
|
|
@@ -36,4 +37,9 @@ export class {{componentName}} extends BasePartialComponent {
|
|
36
37
|
evalUserScript(Partial, App, Utils) {
|
37
38
|
initScript(Partial, App, Utils);
|
38
39
|
}
|
40
|
+
|
41
|
+
getExpressions() {
|
42
|
+
return expressionData;
|
43
|
+
}
|
44
|
+
|
39
45
|
}
|
@@ -4,6 +4,7 @@ import { UserDefinedExecutionContext } from '@wm/core';
|
|
4
4
|
|
5
5
|
import { initScript } from './{{name}}.component.script';
|
6
6
|
import { getVariables } from './{{name}}.component.variables';
|
7
|
+
import { expressionData } from './{{name}}.component.expressions';
|
7
8
|
|
8
9
|
import { BasePrefabComponent } from '@wm/runtime/base';
|
9
10
|
|
@@ -36,4 +37,9 @@ export class {{componentName}} extends BasePrefabComponent {
|
|
36
37
|
evalUserScript(Prefab, App, Utils) {
|
37
38
|
initScript(Prefab, App, Utils);
|
38
39
|
}
|
40
|
+
|
41
|
+
getExpressions() {
|
42
|
+
return expressionData;
|
43
|
+
}
|
44
|
+
|
39
45
|
}
|