@wavemaker/angular-codegen 11.2.0-next.140957 → 11.2.0-next.140960
Sign up to get free protection for your applications and to get access to all the features.
- angular-codegen/angular-app/angular.json +2 -4
- angular-codegen/angular-app/package.json +3 -2
- angular-codegen/angular-app/src/assets/styles/css/wm-style.css +1 -1
- angular-codegen/angular-app/tsconfig.json +3 -0
- angular-codegen/dependencies/pipe-provider.cjs.js +88 -60
- angular-codegen/dependencies/transpilation-mobile.cjs.js +85 -64
- angular-codegen/dependencies/transpilation-web.cjs.js +85 -64
- angular-codegen/package.json +1 -1
@@ -98938,41 +98938,42 @@ const validateDataSourceCtx$1 = (ds, ctx) => {
|
|
98938
98938
|
* @param name name of the variable
|
98939
98939
|
* @param context scope of the variable
|
98940
98940
|
*/
|
98941
|
-
const processFilterExpBindNode$1 = (context, filterExpressions) => {
|
98941
|
+
const processFilterExpBindNode$1 = (context, filterExpressions, variable) => {
|
98942
98942
|
const destroyFn = context.registerDestroyListener ? context.registerDestroyListener.bind(context) : _.noop;
|
98943
98943
|
const filter$ = new Subject();
|
98944
98944
|
const bindFilExpObj = (obj, targetNodeKey) => {
|
98945
|
+
const listener = (newVal, oldVal) => {
|
98946
|
+
if ((newVal === oldVal && _.isUndefined(newVal)) || (_.isUndefined(newVal) && !_.isUndefined(oldVal))) {
|
98947
|
+
return;
|
98948
|
+
}
|
98949
|
+
// Skip cloning for blob column
|
98950
|
+
if (!_.includes(['blob', 'file'], obj.type)) {
|
98951
|
+
newVal = getClonedObject$1(newVal);
|
98952
|
+
}
|
98953
|
+
// backward compatibility: where we are allowing the user to bind complete object
|
98954
|
+
if (obj.target === 'dataBinding') {
|
98955
|
+
// remove the existing databinding element
|
98956
|
+
filterExpressions.rules = [];
|
98957
|
+
// now add all the returned values
|
98958
|
+
_.forEach(newVal, function (value, target) {
|
98959
|
+
filterExpressions.rules.push({
|
98960
|
+
'target': target,
|
98961
|
+
'value': value,
|
98962
|
+
'matchMode': obj.matchMode || 'startignorecase',
|
98963
|
+
'required': false,
|
98964
|
+
'type': ''
|
98965
|
+
});
|
98966
|
+
});
|
98967
|
+
}
|
98968
|
+
else {
|
98969
|
+
// setting value to the root node
|
98970
|
+
obj[targetNodeKey] = newVal;
|
98971
|
+
}
|
98972
|
+
filter$.next({ filterExpressions, newVal });
|
98973
|
+
};
|
98945
98974
|
if (stringStartsWith$1(obj[targetNodeKey], 'bind:')) {
|
98946
98975
|
// [Todo-CSP]: needs a check, where is this used
|
98947
|
-
destroyFn($watch$1(obj[targetNodeKey].replace('bind:', ''), context, {}, (
|
98948
|
-
if ((newVal === oldVal && _.isUndefined(newVal)) || (_.isUndefined(newVal) && !_.isUndefined(oldVal))) {
|
98949
|
-
return;
|
98950
|
-
}
|
98951
|
-
// Skip cloning for blob column
|
98952
|
-
if (!_.includes(['blob', 'file'], obj.type)) {
|
98953
|
-
newVal = getClonedObject$1(newVal);
|
98954
|
-
}
|
98955
|
-
// backward compatibility: where we are allowing the user to bind complete object
|
98956
|
-
if (obj.target === 'dataBinding') {
|
98957
|
-
// remove the existing databinding element
|
98958
|
-
filterExpressions.rules = [];
|
98959
|
-
// now add all the returned values
|
98960
|
-
_.forEach(newVal, function (value, target) {
|
98961
|
-
filterExpressions.rules.push({
|
98962
|
-
'target': target,
|
98963
|
-
'value': value,
|
98964
|
-
'matchMode': obj.matchMode || 'startignorecase',
|
98965
|
-
'required': false,
|
98966
|
-
'type': ''
|
98967
|
-
});
|
98968
|
-
});
|
98969
|
-
}
|
98970
|
-
else {
|
98971
|
-
// setting value to the root node
|
98972
|
-
obj[targetNodeKey] = newVal;
|
98973
|
-
}
|
98974
|
-
filter$.next({ filterExpressions, newVal });
|
98975
|
-
}, undefined, false, { arrayType: _.includes(['in', 'notin'], obj.matchMode) }));
|
98976
|
+
destroyFn($watch$1(obj[targetNodeKey].replace('bind:', ''), context, {}, variable ? variable.invokeOnFiltertExpressionChange.bind(variable, obj, targetNodeKey) : listener, undefined, false, { arrayType: _.includes(['in', 'notin'], obj.matchMode) }));
|
98976
98977
|
}
|
98977
98978
|
};
|
98978
98979
|
const traverseFilterExpressions = expressions => {
|
@@ -99081,6 +99082,13 @@ const addForIdAttributes$1 = (element) => {
|
|
99081
99082
|
setAttr$1(labelEl[0], 'for', widgetId);
|
99082
99083
|
}
|
99083
99084
|
}
|
99085
|
+
/*Adding aria-labelledby to radioset, checkboxset widgets*/
|
99086
|
+
const ulEl = element.querySelectorAll('ul');
|
99087
|
+
if (labelEl.length && ulEl.length && (ulEl[0].getAttribute('role') === 'radiogroup' || ulEl[0].getAttribute('role') === 'group')) {
|
99088
|
+
const widgetId = 'wm-group-label-' + generateGUId$1();
|
99089
|
+
setAttr$1(ulEl[0], 'aria-labelledby', widgetId);
|
99090
|
+
setAttr$1(labelEl[0], 'id', widgetId);
|
99091
|
+
}
|
99084
99092
|
};
|
99085
99093
|
/**
|
99086
99094
|
* This method is used to adjust the container position
|
@@ -100473,6 +100481,12 @@ let PaginationService$1 = class PaginationService {
|
|
100473
100481
|
fetchNextDatasetOnScroll(dataNavigator, parent) {
|
100474
100482
|
// Load next set of data only after the success of current call
|
100475
100483
|
if (!parent.variableInflight) {
|
100484
|
+
// Fix for [WMS-23263]: set 'isNextPageData' flag to true & 'isDataUpdatedByUser' to false as next page data is being rendered on Scroll
|
100485
|
+
if (parent.widgetType === 'wm-table') {
|
100486
|
+
// set isNextPageData flag to true as next page data is being rendered
|
100487
|
+
parent.gridOptions.setIsNextPageData(true);
|
100488
|
+
parent.gridOptions.setIsDataUpdatedByUser(false);
|
100489
|
+
}
|
100476
100490
|
dataNavigator.navigatePage('next');
|
100477
100491
|
}
|
100478
100492
|
}
|
@@ -125713,41 +125727,42 @@ const validateDataSourceCtx = (ds, ctx) => {
|
|
125713
125727
|
* @param name name of the variable
|
125714
125728
|
* @param context scope of the variable
|
125715
125729
|
*/
|
125716
|
-
const processFilterExpBindNode = (context, filterExpressions) => {
|
125730
|
+
const processFilterExpBindNode = (context, filterExpressions, variable) => {
|
125717
125731
|
const destroyFn = context.registerDestroyListener ? context.registerDestroyListener.bind(context) : _.noop;
|
125718
125732
|
const filter$ = new Subject$1();
|
125719
125733
|
const bindFilExpObj = (obj, targetNodeKey) => {
|
125734
|
+
const listener = (newVal, oldVal) => {
|
125735
|
+
if ((newVal === oldVal && _.isUndefined(newVal)) || (_.isUndefined(newVal) && !_.isUndefined(oldVal))) {
|
125736
|
+
return;
|
125737
|
+
}
|
125738
|
+
// Skip cloning for blob column
|
125739
|
+
if (!_.includes(['blob', 'file'], obj.type)) {
|
125740
|
+
newVal = getClonedObject(newVal);
|
125741
|
+
}
|
125742
|
+
// backward compatibility: where we are allowing the user to bind complete object
|
125743
|
+
if (obj.target === 'dataBinding') {
|
125744
|
+
// remove the existing databinding element
|
125745
|
+
filterExpressions.rules = [];
|
125746
|
+
// now add all the returned values
|
125747
|
+
_.forEach(newVal, function (value, target) {
|
125748
|
+
filterExpressions.rules.push({
|
125749
|
+
'target': target,
|
125750
|
+
'value': value,
|
125751
|
+
'matchMode': obj.matchMode || 'startignorecase',
|
125752
|
+
'required': false,
|
125753
|
+
'type': ''
|
125754
|
+
});
|
125755
|
+
});
|
125756
|
+
}
|
125757
|
+
else {
|
125758
|
+
// setting value to the root node
|
125759
|
+
obj[targetNodeKey] = newVal;
|
125760
|
+
}
|
125761
|
+
filter$.next({ filterExpressions, newVal });
|
125762
|
+
};
|
125720
125763
|
if (stringStartsWith(obj[targetNodeKey], 'bind:')) {
|
125721
125764
|
// [Todo-CSP]: needs a check, where is this used
|
125722
|
-
destroyFn($watch(obj[targetNodeKey].replace('bind:', ''), context, {}, (
|
125723
|
-
if ((newVal === oldVal && _.isUndefined(newVal)) || (_.isUndefined(newVal) && !_.isUndefined(oldVal))) {
|
125724
|
-
return;
|
125725
|
-
}
|
125726
|
-
// Skip cloning for blob column
|
125727
|
-
if (!_.includes(['blob', 'file'], obj.type)) {
|
125728
|
-
newVal = getClonedObject(newVal);
|
125729
|
-
}
|
125730
|
-
// backward compatibility: where we are allowing the user to bind complete object
|
125731
|
-
if (obj.target === 'dataBinding') {
|
125732
|
-
// remove the existing databinding element
|
125733
|
-
filterExpressions.rules = [];
|
125734
|
-
// now add all the returned values
|
125735
|
-
_.forEach(newVal, function (value, target) {
|
125736
|
-
filterExpressions.rules.push({
|
125737
|
-
'target': target,
|
125738
|
-
'value': value,
|
125739
|
-
'matchMode': obj.matchMode || 'startignorecase',
|
125740
|
-
'required': false,
|
125741
|
-
'type': ''
|
125742
|
-
});
|
125743
|
-
});
|
125744
|
-
}
|
125745
|
-
else {
|
125746
|
-
// setting value to the root node
|
125747
|
-
obj[targetNodeKey] = newVal;
|
125748
|
-
}
|
125749
|
-
filter$.next({ filterExpressions, newVal });
|
125750
|
-
}, undefined, false, { arrayType: _.includes(['in', 'notin'], obj.matchMode) }));
|
125765
|
+
destroyFn($watch(obj[targetNodeKey].replace('bind:', ''), context, {}, variable ? variable.invokeOnFiltertExpressionChange.bind(variable, obj, targetNodeKey) : listener, undefined, false, { arrayType: _.includes(['in', 'notin'], obj.matchMode) }));
|
125751
125766
|
}
|
125752
125767
|
};
|
125753
125768
|
const traverseFilterExpressions = expressions => {
|
@@ -125856,6 +125871,13 @@ const addForIdAttributes = (element) => {
|
|
125856
125871
|
setAttr(labelEl[0], 'for', widgetId);
|
125857
125872
|
}
|
125858
125873
|
}
|
125874
|
+
/*Adding aria-labelledby to radioset, checkboxset widgets*/
|
125875
|
+
const ulEl = element.querySelectorAll('ul');
|
125876
|
+
if (labelEl.length && ulEl.length && (ulEl[0].getAttribute('role') === 'radiogroup' || ulEl[0].getAttribute('role') === 'group')) {
|
125877
|
+
const widgetId = 'wm-group-label-' + generateGUId();
|
125878
|
+
setAttr(ulEl[0], 'aria-labelledby', widgetId);
|
125879
|
+
setAttr(labelEl[0], 'id', widgetId);
|
125880
|
+
}
|
125859
125881
|
};
|
125860
125882
|
/**
|
125861
125883
|
* This method is used to adjust the container position
|
@@ -127264,6 +127286,12 @@ class PaginationService {
|
|
127264
127286
|
fetchNextDatasetOnScroll(dataNavigator, parent) {
|
127265
127287
|
// Load next set of data only after the success of current call
|
127266
127288
|
if (!parent.variableInflight) {
|
127289
|
+
// Fix for [WMS-23263]: set 'isNextPageData' flag to true & 'isDataUpdatedByUser' to false as next page data is being rendered on Scroll
|
127290
|
+
if (parent.widgetType === 'wm-table') {
|
127291
|
+
// set isNextPageData flag to true as next page data is being rendered
|
127292
|
+
parent.gridOptions.setIsNextPageData(true);
|
127293
|
+
parent.gridOptions.setIsDataUpdatedByUser(false);
|
127294
|
+
}
|
127267
127295
|
dataNavigator.navigatePage('next');
|
127268
127296
|
}
|
127269
127297
|
}
|
@@ -58685,7 +58685,7 @@ const getFormWidgetTemplate = (widgetType, innerTmpl, attrs, options = {}) => {
|
|
58685
58685
|
tmpl = `<div wmCheckbox ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''}></div>`;
|
58686
58686
|
break;
|
58687
58687
|
case FormWidgetType.CHECKBOXSET:
|
58688
|
-
tmpl = `<ul wmCheckboxset ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''}></ul>`;
|
58688
|
+
tmpl = `<ul role="group" wmCheckboxset ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''}></ul>`;
|
58689
58689
|
break;
|
58690
58690
|
case FormWidgetType.CHIPS:
|
58691
58691
|
tmpl = `<ul wmChips role="input" debouncetime="${attrs.get('debouncetime')}" ${innerTmpl}></ul>`;
|
@@ -58709,7 +58709,7 @@ const getFormWidgetTemplate = (widgetType, innerTmpl, attrs, options = {}) => {
|
|
58709
58709
|
tmpl = `<wm-input ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} type="password" aria-label="Enter password" ${updateOnTmpl}></wm-input>`;
|
58710
58710
|
break;
|
58711
58711
|
case FormWidgetType.RADIOSET:
|
58712
|
-
tmpl = `<ul wmRadioset ${innerTmpl}></ul>`;
|
58712
|
+
tmpl = `<ul role="radiogroup" wmRadioset ${innerTmpl}></ul>`;
|
58713
58713
|
break;
|
58714
58714
|
case FormWidgetType.RATING:
|
58715
58715
|
tmpl = `<div wmRating ${innerTmpl}></div>`;
|
@@ -58731,10 +58731,10 @@ const getFormWidgetTemplate = (widgetType, innerTmpl, attrs, options = {}) => {
|
|
58731
58731
|
break;
|
58732
58732
|
case FormWidgetType.TEXT:
|
58733
58733
|
const inputType = options.inputType || 'inputtype';
|
58734
|
-
tmpl = `<wm-input ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} type="${attrs.get(inputType) || 'text'}"
|
58734
|
+
tmpl = `<wm-input ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} type="${attrs.get(inputType) || 'text'}" ${updateOnTmpl}></wm-input>`;
|
58735
58735
|
break;
|
58736
58736
|
case FormWidgetType.TEXTAREA:
|
58737
|
-
tmpl = `<wm-textarea ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} role="textbox"
|
58737
|
+
tmpl = `<wm-textarea ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} role="textbox" ${updateOnTmpl}></wm-textarea>`;
|
58738
58738
|
break;
|
58739
58739
|
case FormWidgetType.TIME:
|
58740
58740
|
tmpl = `<div wmTime ${attrs.get('required') === 'true' ? 'required=true' : ''} dataentrymode="${attrs.get('dataentrymode')}" ${innerTmpl}></div>`;
|
@@ -58763,7 +58763,7 @@ const getFormWidgetTemplate = (widgetType, innerTmpl, attrs, options = {}) => {
|
|
58763
58763
|
}
|
58764
58764
|
break;
|
58765
58765
|
default:
|
58766
|
-
tmpl = `<wm-input ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''}
|
58766
|
+
tmpl = `<wm-input ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} type="text" ${updateOnTmpl}></wm-input>`;
|
58767
58767
|
break;
|
58768
58768
|
}
|
58769
58769
|
return tmpl;
|
@@ -60572,41 +60572,42 @@ const validateDataSourceCtx = (ds, ctx) => {
|
|
60572
60572
|
* @param name name of the variable
|
60573
60573
|
* @param context scope of the variable
|
60574
60574
|
*/
|
60575
|
-
const processFilterExpBindNode = (context, filterExpressions) => {
|
60575
|
+
const processFilterExpBindNode = (context, filterExpressions, variable) => {
|
60576
60576
|
const destroyFn = context.registerDestroyListener ? context.registerDestroyListener.bind(context) : _.noop;
|
60577
60577
|
const filter$ = new Subject();
|
60578
60578
|
const bindFilExpObj = (obj, targetNodeKey) => {
|
60579
|
+
const listener = (newVal, oldVal) => {
|
60580
|
+
if ((newVal === oldVal && _.isUndefined(newVal)) || (_.isUndefined(newVal) && !_.isUndefined(oldVal))) {
|
60581
|
+
return;
|
60582
|
+
}
|
60583
|
+
// Skip cloning for blob column
|
60584
|
+
if (!_.includes(['blob', 'file'], obj.type)) {
|
60585
|
+
newVal = getClonedObject(newVal);
|
60586
|
+
}
|
60587
|
+
// backward compatibility: where we are allowing the user to bind complete object
|
60588
|
+
if (obj.target === 'dataBinding') {
|
60589
|
+
// remove the existing databinding element
|
60590
|
+
filterExpressions.rules = [];
|
60591
|
+
// now add all the returned values
|
60592
|
+
_.forEach(newVal, function (value, target) {
|
60593
|
+
filterExpressions.rules.push({
|
60594
|
+
'target': target,
|
60595
|
+
'value': value,
|
60596
|
+
'matchMode': obj.matchMode || 'startignorecase',
|
60597
|
+
'required': false,
|
60598
|
+
'type': ''
|
60599
|
+
});
|
60600
|
+
});
|
60601
|
+
}
|
60602
|
+
else {
|
60603
|
+
// setting value to the root node
|
60604
|
+
obj[targetNodeKey] = newVal;
|
60605
|
+
}
|
60606
|
+
filter$.next({ filterExpressions, newVal });
|
60607
|
+
};
|
60579
60608
|
if (stringStartsWith(obj[targetNodeKey], 'bind:')) {
|
60580
60609
|
// [Todo-CSP]: needs a check, where is this used
|
60581
|
-
destroyFn($watch(obj[targetNodeKey].replace('bind:', ''), context, {}, (
|
60582
|
-
if ((newVal === oldVal && _.isUndefined(newVal)) || (_.isUndefined(newVal) && !_.isUndefined(oldVal))) {
|
60583
|
-
return;
|
60584
|
-
}
|
60585
|
-
// Skip cloning for blob column
|
60586
|
-
if (!_.includes(['blob', 'file'], obj.type)) {
|
60587
|
-
newVal = getClonedObject(newVal);
|
60588
|
-
}
|
60589
|
-
// backward compatibility: where we are allowing the user to bind complete object
|
60590
|
-
if (obj.target === 'dataBinding') {
|
60591
|
-
// remove the existing databinding element
|
60592
|
-
filterExpressions.rules = [];
|
60593
|
-
// now add all the returned values
|
60594
|
-
_.forEach(newVal, function (value, target) {
|
60595
|
-
filterExpressions.rules.push({
|
60596
|
-
'target': target,
|
60597
|
-
'value': value,
|
60598
|
-
'matchMode': obj.matchMode || 'startignorecase',
|
60599
|
-
'required': false,
|
60600
|
-
'type': ''
|
60601
|
-
});
|
60602
|
-
});
|
60603
|
-
}
|
60604
|
-
else {
|
60605
|
-
// setting value to the root node
|
60606
|
-
obj[targetNodeKey] = newVal;
|
60607
|
-
}
|
60608
|
-
filter$.next({ filterExpressions, newVal });
|
60609
|
-
}, undefined, false, { arrayType: _.includes(['in', 'notin'], obj.matchMode) }));
|
60610
|
+
destroyFn($watch(obj[targetNodeKey].replace('bind:', ''), context, {}, variable ? variable.invokeOnFiltertExpressionChange.bind(variable, obj, targetNodeKey) : listener, undefined, false, { arrayType: _.includes(['in', 'notin'], obj.matchMode) }));
|
60610
60611
|
}
|
60611
60612
|
};
|
60612
60613
|
const traverseFilterExpressions = expressions => {
|
@@ -60715,6 +60716,13 @@ const addForIdAttributes = (element) => {
|
|
60715
60716
|
setAttr(labelEl[0], 'for', widgetId);
|
60716
60717
|
}
|
60717
60718
|
}
|
60719
|
+
/*Adding aria-labelledby to radioset, checkboxset widgets*/
|
60720
|
+
const ulEl = element.querySelectorAll('ul');
|
60721
|
+
if (labelEl.length && ulEl.length && (ulEl[0].getAttribute('role') === 'radiogroup' || ulEl[0].getAttribute('role') === 'group')) {
|
60722
|
+
const widgetId = 'wm-group-label-' + generateGUId();
|
60723
|
+
setAttr(ulEl[0], 'aria-labelledby', widgetId);
|
60724
|
+
setAttr(labelEl[0], 'id', widgetId);
|
60725
|
+
}
|
60718
60726
|
};
|
60719
60727
|
/**
|
60720
60728
|
* This method is used to adjust the container position
|
@@ -62107,6 +62115,12 @@ class PaginationService {
|
|
62107
62115
|
fetchNextDatasetOnScroll(dataNavigator, parent) {
|
62108
62116
|
// Load next set of data only after the success of current call
|
62109
62117
|
if (!parent.variableInflight) {
|
62118
|
+
// Fix for [WMS-23263]: set 'isNextPageData' flag to true & 'isDataUpdatedByUser' to false as next page data is being rendered on Scroll
|
62119
|
+
if (parent.widgetType === 'wm-table') {
|
62120
|
+
// set isNextPageData flag to true as next page data is being rendered
|
62121
|
+
parent.gridOptions.setIsNextPageData(true);
|
62122
|
+
parent.gridOptions.setIsDataUpdatedByUser(false);
|
62123
|
+
}
|
62110
62124
|
dataNavigator.navigatePage('next');
|
62111
62125
|
}
|
62112
62126
|
}
|
@@ -62841,13 +62855,13 @@ const scopeComponentStyles = (componentName, componentType, styles = '') => {
|
|
62841
62855
|
|
62842
62856
|
const carouselTagName = 'carousel';
|
62843
62857
|
const dataSetKey$5 = 'dataset';
|
62844
|
-
const idGen$
|
62858
|
+
const idGen$s = new IDGenerator('wm_carousel_ref_');
|
62845
62859
|
const isDynamicCarousel = node => node.attrs.find(attr => attr.name === 'type' && attr.value === 'dynamic');
|
62846
62860
|
register('wm-carousel', () => {
|
62847
62861
|
return {
|
62848
62862
|
pre: (attrs, shared) => {
|
62849
62863
|
// generating unique Id for the carousel
|
62850
|
-
const counter = idGen$
|
62864
|
+
const counter = idGen$s.nextUid();
|
62851
62865
|
shared.set('carousel_ref', counter);
|
62852
62866
|
return `<div class="app-carousel carousel"><${carouselTagName} wmCarousel #${counter}="wmCarousel" ${getAttrMarkup(attrs)} interval="0" [ngClass]="${counter}.navigationClass">`;
|
62853
62867
|
},
|
@@ -62947,12 +62961,12 @@ var marquee_build$1 = /*#__PURE__*/Object.freeze({
|
|
62947
62961
|
});
|
62948
62962
|
|
62949
62963
|
const tagName$1A = 'a';
|
62950
|
-
const idGen$
|
62964
|
+
const idGen$r = new IDGenerator('wm_anchor');
|
62951
62965
|
register('wm-anchor', () => {
|
62952
62966
|
return {
|
62953
62967
|
pre: (attrs) => {
|
62954
|
-
const counter = idGen$
|
62955
|
-
return `<${tagName$1A} wmAnchor #${counter}="wmAnchor" role="link" data-identifier="anchor" [attr.aria-label]="${counter}.hint || ${counter}.caption
|
62968
|
+
const counter = idGen$r.nextUid();
|
62969
|
+
return `<${tagName$1A} wmAnchor #${counter}="wmAnchor" role="link" data-identifier="anchor" [attr.aria-label]="${counter}.hint || ${counter}.caption" ${getAttrMarkup(attrs)}>`;
|
62956
62970
|
},
|
62957
62971
|
post: () => `</${tagName$1A}>`
|
62958
62972
|
};
|
@@ -62979,11 +62993,11 @@ var audio_build$1 = /*#__PURE__*/Object.freeze({
|
|
62979
62993
|
});
|
62980
62994
|
|
62981
62995
|
const tagName$1y = 'div';
|
62982
|
-
const idGen$
|
62996
|
+
const idGen$q = new IDGenerator('wm_html');
|
62983
62997
|
register('wm-html', () => {
|
62984
62998
|
return {
|
62985
62999
|
pre: (attrs) => {
|
62986
|
-
const counter = idGen$
|
63000
|
+
const counter = idGen$q.nextUid();
|
62987
63001
|
return `<${tagName$1y} wmHtml #${counter}="wmHtml" [attr.aria-label]="${counter}.hint || 'HTML content'" ${getAttrMarkup(attrs)}>`;
|
62988
63002
|
},
|
62989
63003
|
post: () => `</${tagName$1y}>`
|
@@ -63025,12 +63039,12 @@ var iframe_build$1 = /*#__PURE__*/Object.freeze({
|
|
63025
63039
|
});
|
63026
63040
|
|
63027
63041
|
const tagName$1v = 'label';
|
63028
|
-
const idGen$
|
63042
|
+
const idGen$p = new IDGenerator('wm_label');
|
63029
63043
|
register('wm-label', () => {
|
63030
63044
|
return {
|
63031
63045
|
pre: (attrs) => {
|
63032
|
-
const counter = idGen$
|
63033
|
-
return `<${tagName$1v} wmLabel #${counter}="wmLabel" [attr.aria-label]="${counter}.hint
|
63046
|
+
const counter = idGen$p.nextUid();
|
63047
|
+
return `<${tagName$1v} wmLabel #${counter}="wmLabel" [attr.aria-label]="${counter}.hint" ${getAttrMarkup(attrs)}>`;
|
63034
63048
|
},
|
63035
63049
|
post: () => `</${tagName$1v}>`
|
63036
63050
|
};
|
@@ -63043,11 +63057,11 @@ var label_build$1 = /*#__PURE__*/Object.freeze({
|
|
63043
63057
|
});
|
63044
63058
|
|
63045
63059
|
const tagName$1u = 'img';
|
63046
|
-
const idGen$
|
63060
|
+
const idGen$o = new IDGenerator('wm_picture');
|
63047
63061
|
register('wm-picture', () => {
|
63048
63062
|
return {
|
63049
63063
|
pre: (attrs) => {
|
63050
|
-
const counter = idGen$
|
63064
|
+
const counter = idGen$o.nextUid();
|
63051
63065
|
return `<${tagName$1u} wmPicture #${counter}="wmPicture" alt="image" wmImageCache="${attrs.get('offline') || 'true'}" [attr.aria-label]="${counter}.hint || 'Image'" ${getAttrMarkup(attrs)}>`;
|
63052
63066
|
}
|
63053
63067
|
};
|
@@ -63060,11 +63074,11 @@ var picture_build$1 = /*#__PURE__*/Object.freeze({
|
|
63060
63074
|
});
|
63061
63075
|
|
63062
63076
|
const tagName$1t = 'div';
|
63063
|
-
const idGen$
|
63077
|
+
const idGen$n = new IDGenerator('wm_spinner');
|
63064
63078
|
register('wm-spinner', () => {
|
63065
63079
|
return {
|
63066
63080
|
pre: (attrs) => {
|
63067
|
-
const counter = idGen$
|
63081
|
+
const counter = idGen$n.nextUid();
|
63068
63082
|
return `<${tagName$1t} wmSpinner #${counter}="wmSpinner" role="alert" [attr.aria-label]="${counter}.hint || 'Loading...'" aria-live="assertive" aria-busy="true" ${getAttrMarkup(attrs)}>`;
|
63069
63083
|
},
|
63070
63084
|
post: () => `</${tagName$1t}>`
|
@@ -63131,11 +63145,11 @@ var progressCircle_build$1 = /*#__PURE__*/Object.freeze({
|
|
63131
63145
|
});
|
63132
63146
|
|
63133
63147
|
const tagName$1q = 'div';
|
63134
|
-
const idGen$
|
63148
|
+
const idGen$m = new IDGenerator('wm_richtexteditor');
|
63135
63149
|
register('wm-richtexteditor', () => {
|
63136
63150
|
return {
|
63137
63151
|
pre: (attrs) => {
|
63138
|
-
const counter = idGen$
|
63152
|
+
const counter = idGen$m.nextUid();
|
63139
63153
|
return `<${tagName$1q} wmRichTextEditor #${counter}="wmRichTextEditor" role="textbox" [attr.aria-label]="${counter}.hint || 'Richtext editor'" ${getFormMarkupAttr(attrs)}>`;
|
63140
63154
|
},
|
63141
63155
|
post: () => `</${tagName$1q}>`
|
@@ -63248,13 +63262,13 @@ var chart_build$1 = /*#__PURE__*/Object.freeze({
|
|
63248
63262
|
|
63249
63263
|
const tagName$1i = 'div';
|
63250
63264
|
const dataSetKey$4 = 'dataset';
|
63251
|
-
const idGen$
|
63265
|
+
const idGen$l = new IDGenerator('wm_accordion_ref_');
|
63252
63266
|
const isDynamicAccordion = node => node.attrs.find(attr => attr.name === 'type' && attr.value === 'dynamic');
|
63253
63267
|
register('wm-accordion', () => {
|
63254
63268
|
return {
|
63255
63269
|
pre: (attrs, shared) => {
|
63256
63270
|
// generating unique Id for the accordion
|
63257
|
-
const counter = idGen$
|
63271
|
+
const counter = idGen$l.nextUid();
|
63258
63272
|
shared.set('accordion_ref', counter);
|
63259
63273
|
return `<${tagName$1i} wmAccordion #${counter}="wmAccordion" role="tablist" aria-multiselectable="true" ${getAttrMarkup(attrs)}>`;
|
63260
63274
|
},
|
@@ -63290,9 +63304,13 @@ var accordion_build$1 = /*#__PURE__*/Object.freeze({
|
|
63290
63304
|
});
|
63291
63305
|
|
63292
63306
|
const tagName$1h = 'div';
|
63307
|
+
const idGen$k = new IDGenerator('wm_accordionpane');
|
63293
63308
|
register('wm-accordionpane', () => {
|
63294
63309
|
return {
|
63295
|
-
pre: attrs =>
|
63310
|
+
pre: (attrs) => {
|
63311
|
+
const counter = idGen$k.nextUid();
|
63312
|
+
return `<${tagName$1h} #${counter}="wmAccordionPane" [attr.aria-expanded]="${counter}.isActive" wmAccordionPane partialContainer wm-navigable-element="true" role="tab" ${getAttrMarkup(attrs)}>`;
|
63313
|
+
},
|
63296
63314
|
post: () => `</${tagName$1h}>`
|
63297
63315
|
};
|
63298
63316
|
});
|
@@ -63365,7 +63383,7 @@ register('wm-panel', () => {
|
|
63365
63383
|
return {
|
63366
63384
|
pre: (attrs) => {
|
63367
63385
|
const counter = idGen$j.nextUid();
|
63368
|
-
return `<${tagName$1c} wmPanel #${counter}="wmPanel" partialContainer
|
63386
|
+
return `<${tagName$1c} wmPanel #${counter}="wmPanel" partialContainer wm-navigable-element="true" ${getAttrMarkup(attrs)}>`;
|
63369
63387
|
},
|
63370
63388
|
post: () => `</${tagName$1c}>`
|
63371
63389
|
};
|
@@ -63886,12 +63904,14 @@ const registerFormField = (isFormField) => {
|
|
63886
63904
|
const pCounter = (parent && parent.get('form_reference')) || 'form';
|
63887
63905
|
const widgetType = attrs.get('widget') || FormWidgetType.TEXT;
|
63888
63906
|
const dataRole = isFormField ? 'form-field' : 'filter-field';
|
63907
|
+
const formFieldErrorMsgId = 'wmform-field-error-' + generateGUId();
|
63889
63908
|
const validationMsg = isFormField ? `<p *ngIf="${counter}._control?.invalid && ${counter}._control?.touched && ${pCounter}.isUpdateMode"
|
63890
|
-
class="help-block text-danger" aria-hidden="false"
|
63891
|
-
aria-live="assertive" [textContent]="${counter}.validationmessage"></p>` : '';
|
63909
|
+
class="help-block text-danger" aria-hidden="false" role="alert"
|
63910
|
+
aria-live="assertive" [attr.aria-label]="${counter}.validationmessage" id="${formFieldErrorMsgId}"><span aria-hidden="true" [textContent]="${counter}.validationmessage"></span></p>` : '';
|
63892
63911
|
const eventsTmpl = widgetType === FormWidgetType.UPLOAD ? '' : getEventsTemplate(attrs);
|
63893
63912
|
const controlLayout = isMobileApp() ? 'col-xs-12' : 'col-sm-12';
|
63894
63913
|
const isInList = pCounter === (parentList && parentList.get('parent_form_reference'));
|
63914
|
+
attrs.set('__errormsg', formFieldErrorMsgId);
|
63895
63915
|
attrs.set('__widgetType', widgetType);
|
63896
63916
|
attrs.delete('widget');
|
63897
63917
|
shared.set('counter', counter);
|
@@ -63908,7 +63928,7 @@ const registerFormField = (isFormField) => {
|
|
63908
63928
|
[ngStyle]="{width: ${pCounter}.captionsize}" [ngClass]="{'text-danger': ${counter}._control?.invalid && ${counter}._control?.touched && ${pCounter}.isUpdateMode,
|
63909
63929
|
required: ${pCounter}.isUpdateMode && ${counter}.required}" [textContent]="${counter}.displayname"> </label>
|
63910
63930
|
<div [ngClass]="${counter}.displayname ? ${pCounter}._widgetClass : '${controlLayout}'">
|
63911
|
-
<label class="form-control-static app-label"
|
63931
|
+
<label class="form-control-static app-label" *ngIf="!(${pCounter}.isUpdateMode || ${counter}.viewmodewidget === 'default' || ${counter}.widgettype === 'upload')"
|
63912
63932
|
[hidden]="${pCounter}.isUpdateMode || ${counter}.viewmodewidget === 'default' || ${counter}.widgettype === 'upload'" [innerHTML]="${getCaptionByWidget(attrs, widgetType, counter)}"></label>
|
63913
63933
|
${getTemplate(attrs, widgetType, eventsTmpl, counter, pCounter, isInList)}
|
63914
63934
|
<span aria-hidden="true" *ngIf="${counter}.showPendingSpinner" class="form-field-spinner fa fa-circle-o-notch fa-spin form-control-feedback"></span>
|
@@ -64179,7 +64199,7 @@ register('wm-button', () => {
|
|
64179
64199
|
return {
|
64180
64200
|
pre: (attrs) => {
|
64181
64201
|
const counter = idGen$c.nextUid();
|
64182
|
-
return `<${tagName$P} wmButton #${counter}="wmButton" [attr.aria-label]="${counter}.hint || ${counter}.caption
|
64202
|
+
return `<${tagName$P} wmButton #${counter}="wmButton" [attr.aria-label]="${counter}.hint || ${counter}.caption" ${getAttrMarkup(attrs)}>`;
|
64183
64203
|
},
|
64184
64204
|
post: () => `</${tagName$P}>`
|
64185
64205
|
};
|
@@ -64208,7 +64228,7 @@ var checkbox_build$1 = /*#__PURE__*/Object.freeze({
|
|
64208
64228
|
const tagName$N = 'ul';
|
64209
64229
|
register('wm-checkboxset', () => {
|
64210
64230
|
return {
|
64211
|
-
pre: attrs => `<${tagName$N} wmCheckboxset ${getFormMarkupAttr(attrs)} ${getChildAttrs(attrs)} ${getNgModelAttr(attrs)}>`,
|
64231
|
+
pre: attrs => `<${tagName$N} role="group" wmCheckboxset ${getFormMarkupAttr(attrs)} ${getChildAttrs(attrs)} ${getNgModelAttr(attrs)}>`,
|
64212
64232
|
post: () => `</${tagName$N}>`
|
64213
64233
|
};
|
64214
64234
|
});
|
@@ -64250,7 +64270,7 @@ var number_build$1 = /*#__PURE__*/Object.freeze({
|
|
64250
64270
|
const tagName$K = 'ul';
|
64251
64271
|
register('wm-radioset', () => {
|
64252
64272
|
return {
|
64253
|
-
pre: attrs => `<${tagName$K} wmRadioset ${getFormMarkupAttr(attrs)} ${getChildAttrs(attrs)} ${getNgModelAttr(attrs)}>`,
|
64273
|
+
pre: attrs => `<${tagName$K} role="radiogroup" wmRadioset ${getFormMarkupAttr(attrs)} ${getChildAttrs(attrs)} ${getNgModelAttr(attrs)}>`,
|
64254
64274
|
post: () => `</${tagName$K}>`
|
64255
64275
|
};
|
64256
64276
|
});
|
@@ -64771,7 +64791,7 @@ register('wm-page', () => {
|
|
64771
64791
|
},
|
64772
64792
|
pre: (attrs) => {
|
64773
64793
|
const counter = idGen$8.nextUid();
|
64774
|
-
return `<${tagName$p} wmPage #${counter}="wmPage" data-role="pageContainer" [attr.aria-label]="${counter}.hint
|
64794
|
+
return `<${tagName$p} wmPage #${counter}="wmPage" data-role="pageContainer" [attr.aria-label]="${counter}.hint" ${getAttrMarkup(attrs)}>`;
|
64775
64795
|
},
|
64776
64796
|
post: () => `</${tagName$p}>`
|
64777
64797
|
};
|
@@ -64885,7 +64905,7 @@ register('wm-left-panel', () => {
|
|
64885
64905
|
return {
|
64886
64906
|
pre: (attrs) => {
|
64887
64907
|
const counter = idGen$4.nextUid();
|
64888
|
-
return `<${tagName$i} wmLeftPanel #${counter}="wmLeftPanel" partialContainer data-role="page-left-panel"
|
64908
|
+
return `<${tagName$i} wmLeftPanel #${counter}="wmLeftPanel" partialContainer data-role="page-left-panel" [attr.aria-label]="${counter}.hint || 'Left navigation panel'" wmSmoothscroll="${attrs.get('smoothscroll') || 'false'}" ${getAttrMarkup(attrs)}>`;
|
64889
64909
|
},
|
64890
64910
|
post: () => `</${tagName$i}>`
|
64891
64911
|
};
|
@@ -65393,12 +65413,13 @@ const tagName$5 = 'div';
|
|
65393
65413
|
const getRowExpansionActionTmpl = (attrs) => {
|
65394
65414
|
const tag = attrs.get('widget-type') === 'anchor' ? 'a' : 'button';
|
65395
65415
|
const directive = attrs.get('widget-type') === 'anchor' ? 'wmAnchor' : 'wmButton';
|
65416
|
+
const title = attrs.get('display-name') || attrs.get('title') || 'Collapse/Expand';
|
65396
65417
|
return `<ng-template #rowExpansionActionTmpl let-row="row">
|
65397
65418
|
<${tag} ${directive}
|
65398
65419
|
${getRowActionAttrs(attrs)}
|
65399
65420
|
class="${attrs.get('class')} row-expansion-button"
|
65400
65421
|
iconclass="${attrs.get('collapseicon')}"
|
65401
|
-
type="button"></${tag}>
|
65422
|
+
type="button" aria-label="${title}"></${tag}>
|
65402
65423
|
</ng-template>`;
|
65403
65424
|
};
|
65404
65425
|
register('wm-table-row', () => {
|