@wavemaker/angular-app 11.15.0-rc.6403 → 11.15.1-1.64726
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dependencies/custom-widgets-bundle.cjs.js +7 -7
- package/dependencies/pipe-provider.cjs.js +166 -388
- package/dependencies/transpilation-web.cjs.js +87 -196
- package/dependency-report.html +1 -1
- package/npm-shrinkwrap.json +780 -642
- package/package-lock.json +780 -642
- package/package.json +5 -5
|
@@ -35443,6 +35443,7 @@ const LIVE_ACTION_DIRECTIVE = [{ from: '@wm/components/data/form', name: 'LiveAc
|
|
|
35443
35443
|
const DEPENDS_ON_DIRECTIVE = [{ from: '@wm/components/data/form', name: 'DependsonDirective' }];
|
|
35444
35444
|
const LIVE_FILTER_DIRECTIVE = [{ from: '@wm/components/data/form', name: 'LiveFilterDirective' }];
|
|
35445
35445
|
const LIVE_FORM_DIRECTIVE = [{ from: '@wm/components/data/form', name: 'LiveFormDirective' }];
|
|
35446
|
+
const CAPTION_POSITION_DIRECTIVE = [{ from: '@wm/components/input/caption-position', name: 'CaptionPositionDirective' }];
|
|
35446
35447
|
const FORM_COMPONENT = [
|
|
35447
35448
|
...NG_FORM_MODULE,
|
|
35448
35449
|
...NG_REACTIVE_FORM_MODULE,
|
|
@@ -35453,6 +35454,7 @@ const FORM_COMPONENT = [
|
|
|
35453
35454
|
...DEPENDS_ON_DIRECTIVE,
|
|
35454
35455
|
...LIVE_FILTER_DIRECTIVE,
|
|
35455
35456
|
...LIVE_FORM_DIRECTIVE,
|
|
35457
|
+
...CAPTION_POSITION_DIRECTIVE,
|
|
35456
35458
|
{ from: '@wm/components/data/form', name: 'FormComponent' }
|
|
35457
35459
|
];
|
|
35458
35460
|
const COMPOSITE_DIRECTIVE = [{ from: '@wm/components/input/composite', name: 'CompositeDirective' }, { from: '@wm/components/input/caption-position', name: 'CaptionPositionDirective' }];
|
|
@@ -37811,7 +37813,7 @@ function requireDom () {
|
|
|
37811
37813
|
ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]="DOMString size error"),2);
|
|
37812
37814
|
var HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]="Hierarchy request error"),3);
|
|
37813
37815
|
ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]="Wrong document"),4);
|
|
37814
|
-
ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]="Invalid character"),5);
|
|
37816
|
+
var INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]="Invalid character"),5);
|
|
37815
37817
|
ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]="No data allowed"),6);
|
|
37816
37818
|
ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]="No modification allowed"),7);
|
|
37817
37819
|
var NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]="Not found"),8);
|
|
@@ -38892,7 +38894,22 @@ function requireDom () {
|
|
|
38892
38894
|
node.appendData(data);
|
|
38893
38895
|
return node;
|
|
38894
38896
|
},
|
|
38897
|
+
/**
|
|
38898
|
+
* Returns a new CDATASection node whose data is `data`.
|
|
38899
|
+
*
|
|
38900
|
+
* __This implementation differs from the specification:__
|
|
38901
|
+
* - calling this method on an HTML document does not throw `NotSupportedError`.
|
|
38902
|
+
*
|
|
38903
|
+
* @param {string} data
|
|
38904
|
+
* @returns {CDATASection}
|
|
38905
|
+
* @throws DOMException with code `INVALID_CHARACTER_ERR` if `data` contains `"]]>"`.
|
|
38906
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Document/createCDATASection
|
|
38907
|
+
* @see https://dom.spec.whatwg.org/#dom-document-createcdatasection
|
|
38908
|
+
*/
|
|
38895
38909
|
createCDATASection : function(data){
|
|
38910
|
+
if (data.indexOf(']]>') !== -1) {
|
|
38911
|
+
throw new DOMException(INVALID_CHARACTER_ERR, 'data contains "]]>"');
|
|
38912
|
+
}
|
|
38896
38913
|
var node = new CDATASection();
|
|
38897
38914
|
node.ownerDocument = this;
|
|
38898
38915
|
node.appendData(data);
|
|
@@ -39150,6 +39167,20 @@ function requireDom () {
|
|
|
39150
39167
|
ProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;
|
|
39151
39168
|
_extends(ProcessingInstruction,Node);
|
|
39152
39169
|
function XMLSerializer(){}
|
|
39170
|
+
/**
|
|
39171
|
+
* Returns the result of serializing `node` to XML.
|
|
39172
|
+
*
|
|
39173
|
+
* __This implementation differs from the specification:__
|
|
39174
|
+
* - CDATASection nodes whose data contains `]]>` are serialized by splitting the section
|
|
39175
|
+
* at each `]]>` occurrence (following W3C DOM Level 3 Core `split-cdata-sections`
|
|
39176
|
+
* default behaviour). A configurable option is not yet implemented.
|
|
39177
|
+
*
|
|
39178
|
+
* @param {Node} node
|
|
39179
|
+
* @param {boolean} [isHtml]
|
|
39180
|
+
* @param {function} [nodeFilter]
|
|
39181
|
+
* @returns {string}
|
|
39182
|
+
* @see https://html.spec.whatwg.org/#dom-xmlserializer-serializetostring
|
|
39183
|
+
*/
|
|
39153
39184
|
XMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){
|
|
39154
39185
|
return nodeSerializeToString.call(node,isHtml,nodeFilter);
|
|
39155
39186
|
};
|
|
@@ -39368,7 +39399,7 @@ function requireDom () {
|
|
|
39368
39399
|
.replace(/[<&>]/g,_xmlEncoder)
|
|
39369
39400
|
);
|
|
39370
39401
|
case CDATA_SECTION_NODE:
|
|
39371
|
-
return buf.push(
|
|
39402
|
+
return buf.push('<![CDATA[', node.data.replace(/]]>/g, ']]]]><![CDATA[>'), ']]>');
|
|
39372
39403
|
case COMMENT_NODE:
|
|
39373
39404
|
return buf.push( "<!--",node.data,"-->");
|
|
39374
39405
|
case DOCUMENT_TYPE_NODE:
|
|
@@ -42348,7 +42379,7 @@ function requireSax () {
|
|
|
42348
42379
|
function parseInstruction(source,start,domBuilder){
|
|
42349
42380
|
var end = source.indexOf('?>',start);
|
|
42350
42381
|
if(end){
|
|
42351
|
-
var match = source.substring(start,end).match(/^<\?(\S*)\s*([\s\S]*?)
|
|
42382
|
+
var match = source.substring(start,end).match(/^<\?(\S*)\s*([\s\S]*?)$/);
|
|
42352
42383
|
if(match){
|
|
42353
42384
|
match[0].length;
|
|
42354
42385
|
domBuilder.processingInstruction(match[1], match[2]) ;
|
|
@@ -49235,7 +49266,7 @@ function requireMomentTimezone () {
|
|
|
49235
49266
|
hasRequiredMomentTimezone = 1;
|
|
49236
49267
|
(function (module) {
|
|
49237
49268
|
//! moment-timezone.js
|
|
49238
|
-
//! version : 0.6.
|
|
49269
|
+
//! version : 0.6.1
|
|
49239
49270
|
//! Copyright (c) JS Foundation and other contributors
|
|
49240
49271
|
//! license : MIT
|
|
49241
49272
|
//! github.com/moment/moment-timezone
|
|
@@ -49261,7 +49292,7 @@ function requireMomentTimezone () {
|
|
|
49261
49292
|
// return moment;
|
|
49262
49293
|
// }
|
|
49263
49294
|
|
|
49264
|
-
var VERSION = "0.6.
|
|
49295
|
+
var VERSION = "0.6.1",
|
|
49265
49296
|
zones = {},
|
|
49266
49297
|
links = {},
|
|
49267
49298
|
countries = {},
|
|
@@ -99712,11 +99743,11 @@ const getRowActionAttrs = attrs => {
|
|
|
99712
99743
|
return tmpl;
|
|
99713
99744
|
};
|
|
99714
99745
|
|
|
99715
|
-
const $RAF = window.requestAnimationFrame;
|
|
99746
|
+
const $RAF$1 = window.requestAnimationFrame;
|
|
99716
99747
|
const $RAFQueue = [];
|
|
99717
99748
|
const invokeLater = fn => {
|
|
99718
99749
|
if (!$RAFQueue.length) {
|
|
99719
|
-
$RAF(() => {
|
|
99750
|
+
$RAF$1(() => {
|
|
99720
99751
|
$RAFQueue.forEach(f => f());
|
|
99721
99752
|
$RAFQueue.length = 0;
|
|
99722
99753
|
});
|
|
@@ -100274,223 +100305,83 @@ const getFnForEventExpr = (expr) => {
|
|
|
100274
100305
|
return fnExecutor(expr, ExpressionType.Action);
|
|
100275
100306
|
};
|
|
100276
100307
|
|
|
100277
|
-
// Constants
|
|
100278
|
-
const WIDGET_ID_REGEX = /^(widget-[^_]+)/;
|
|
100279
|
-
const WIDGET_PROPERTY_REGEX = /^widget-[^_]+_(.+)$/;
|
|
100280
|
-
const ARRAY_INDEX_PLACEHOLDER = '[$i]';
|
|
100281
|
-
const ARRAY_INDEX_ZERO = '[0]';
|
|
100282
100308
|
const registry = new Map();
|
|
100283
100309
|
const watchIdGenerator = new IDGenerator('watch-id-');
|
|
100284
|
-
const FIRST_TIME_WATCH =
|
|
100285
|
-
|
|
100286
|
-
* Extracts widget ID from identifier (e.g., "widget-id23_eventsource" -> "widget-id23")
|
|
100287
|
-
*/
|
|
100288
|
-
const getWidgetId = (identifier) => {
|
|
100289
|
-
if (!identifier || typeof identifier !== 'string') {
|
|
100290
|
-
return null;
|
|
100291
|
-
}
|
|
100292
|
-
const match = identifier.match(WIDGET_ID_REGEX);
|
|
100293
|
-
return match ? match[1] : null;
|
|
100294
|
-
};
|
|
100295
|
-
/**
|
|
100296
|
-
* Extracts property name from identifier (e.g., "widget-id23_eventsource" -> "eventsource")
|
|
100297
|
-
*/
|
|
100298
|
-
const getPropertyName = (identifier) => {
|
|
100299
|
-
if (!identifier || typeof identifier !== 'string') {
|
|
100300
|
-
return identifier;
|
|
100301
|
-
}
|
|
100302
|
-
const match = identifier.match(WIDGET_PROPERTY_REGEX);
|
|
100303
|
-
return match ? match[1] : identifier;
|
|
100304
|
-
};
|
|
100305
|
-
/**
|
|
100306
|
-
* Array consumer wrapper for array-based expressions
|
|
100307
|
-
*/
|
|
100310
|
+
const FIRST_TIME_WATCH = {};
|
|
100311
|
+
Object.freeze(FIRST_TIME_WATCH);
|
|
100308
100312
|
const arrayConsumer = (listenerFn, restExpr, newVal, oldVal) => {
|
|
100309
|
-
|
|
100310
|
-
|
|
100311
|
-
|
|
100312
|
-
|
|
100313
|
-
|
|
100314
|
-
|
|
100315
|
-
|
|
100313
|
+
let data = newVal, formattedData;
|
|
100314
|
+
if (isArray(data)) {
|
|
100315
|
+
formattedData = data.map(function (datum) {
|
|
100316
|
+
return findValueOf(datum, restExpr);
|
|
100317
|
+
});
|
|
100318
|
+
// If resulting structure is an array of array, flatten it
|
|
100319
|
+
if (isArray(formattedData[0])) {
|
|
100320
|
+
formattedData = flatten$1(formattedData);
|
|
100321
|
+
}
|
|
100322
|
+
listenerFn(formattedData, oldVal);
|
|
100316
100323
|
}
|
|
100317
|
-
listenerFn(formattedData, oldVal);
|
|
100318
100324
|
};
|
|
100319
|
-
|
|
100320
|
-
|
|
100321
|
-
|
|
100322
|
-
|
|
100323
|
-
const regex = /\[\$i\]/g;
|
|
100325
|
+
const getUpdatedWatcInfo = (expr, acceptsArray, listener) => {
|
|
100326
|
+
// listener doesn't accept array
|
|
100327
|
+
// replace all `[$i]` with `[0]` and return the expression
|
|
100328
|
+
let regex = /\[\$i\]/g, $I = '[$i]', $0 = '[0]';
|
|
100324
100329
|
if (!acceptsArray) {
|
|
100325
100330
|
return {
|
|
100326
|
-
expr: expr.replace(regex,
|
|
100327
|
-
listener
|
|
100331
|
+
'expr': expr.replace(regex, $0),
|
|
100332
|
+
'listener': listener
|
|
100328
100333
|
};
|
|
100329
100334
|
}
|
|
100330
|
-
|
|
100331
|
-
|
|
100332
|
-
|
|
100333
|
-
|
|
100334
|
-
|
|
100335
|
-
|
|
100335
|
+
// listener accepts array
|
|
100336
|
+
// replace all except the last `[$i]` with `[0]` and return the expression.
|
|
100337
|
+
var index = expr.lastIndexOf($I), _expr = expr.substr(0, index).replace($I, $0), restExpr = expr.substr(index + 5), arrayConsumerFn = listener;
|
|
100338
|
+
if (restExpr) {
|
|
100339
|
+
arrayConsumerFn = arrayConsumer.bind(undefined, listener, restExpr);
|
|
100340
|
+
}
|
|
100336
100341
|
return {
|
|
100337
|
-
expr:
|
|
100338
|
-
listener: arrayConsumerFn
|
|
100342
|
+
'expr': _expr,
|
|
100343
|
+
'listener': arrayConsumerFn
|
|
100339
100344
|
};
|
|
100340
100345
|
};
|
|
100341
|
-
/**
|
|
100342
|
-
* Determines if an expression is static (doesn't need to be watched)
|
|
100343
|
-
*/
|
|
100344
|
-
const STATIC_EXPRESSION_NAMES = [
|
|
100345
|
-
"row.getProperty('investment')",
|
|
100346
|
-
"row.getProperty('factsheetLink')",
|
|
100347
|
-
"row.getProperty('isRebalanceEligible')"
|
|
100348
|
-
];
|
|
100349
|
-
const isStaticExpression = (expr) => {
|
|
100350
|
-
if (typeof expr !== 'string') {
|
|
100351
|
-
return false;
|
|
100352
|
-
}
|
|
100353
|
-
const trimmedExpr = expr.trim();
|
|
100354
|
-
// Expressions that always evaluate to localization strings
|
|
100355
|
-
// if (trimmedExpr.includes('appLocale')) {
|
|
100356
|
-
// return true;
|
|
100357
|
-
// }
|
|
100358
|
-
// Hard-coded static expression names
|
|
100359
|
-
if (STATIC_EXPRESSION_NAMES.includes(trimmedExpr)) {
|
|
100360
|
-
return true;
|
|
100361
|
-
}
|
|
100362
|
-
return false;
|
|
100363
|
-
};
|
|
100364
|
-
/**
|
|
100365
|
-
* Gets the scope type from the scope object
|
|
100366
|
-
*/
|
|
100367
|
-
const getScopeType = ($scope) => {
|
|
100368
|
-
if (!$scope) {
|
|
100369
|
-
return null;
|
|
100370
|
-
}
|
|
100371
|
-
if ($scope.pageName)
|
|
100372
|
-
return 'Page';
|
|
100373
|
-
if ($scope.prefabName)
|
|
100374
|
-
return 'Prefab';
|
|
100375
|
-
if ($scope.partialName)
|
|
100376
|
-
return 'Partial';
|
|
100377
|
-
// Check for App scope
|
|
100378
|
-
if ($scope.Variables !== undefined &&
|
|
100379
|
-
$scope.Actions !== undefined &&
|
|
100380
|
-
!$scope.pageName &&
|
|
100381
|
-
!$scope.prefabName &&
|
|
100382
|
-
!$scope.partialName) {
|
|
100383
|
-
return 'App';
|
|
100384
|
-
}
|
|
100385
|
-
if ($scope.constructor?.name === 'AppRef') {
|
|
100386
|
-
return 'App';
|
|
100387
|
-
}
|
|
100388
|
-
return null;
|
|
100389
|
-
};
|
|
100390
|
-
/**
|
|
100391
|
-
* Gets scope name based on scope type
|
|
100392
|
-
*/
|
|
100393
|
-
const getScopeName = ($scope, scopeType) => {
|
|
100394
|
-
if (!scopeType || !$scope) {
|
|
100395
|
-
return null;
|
|
100396
|
-
}
|
|
100397
|
-
switch (scopeType) {
|
|
100398
|
-
case 'Prefab': return $scope.prefabName || null;
|
|
100399
|
-
case 'Partial': return $scope.partialName || null;
|
|
100400
|
-
case 'Page': return $scope.pageName || null;
|
|
100401
|
-
default: return null;
|
|
100402
|
-
}
|
|
100403
|
-
};
|
|
100404
|
-
/**
|
|
100405
|
-
* Main watch function
|
|
100406
|
-
*/
|
|
100407
100346
|
const $watch = (expr, $scope, $locals, listener, identifier = watchIdGenerator.nextUid(), doNotClone = false, config = {}, isMuted) => {
|
|
100408
|
-
|
|
100409
|
-
|
|
100410
|
-
const watchInfo = getUpdatedWatchInfo(expr, config.arrayType || config.isList || false, listener);
|
|
100347
|
+
if (expr.indexOf('[$i]') !== -1) {
|
|
100348
|
+
let watchInfo = getUpdatedWatcInfo(expr, config && (config.arrayType || config.isList), listener);
|
|
100411
100349
|
expr = watchInfo.expr;
|
|
100412
100350
|
listener = watchInfo.listener;
|
|
100413
100351
|
}
|
|
100414
|
-
// Handle static expressions
|
|
100415
|
-
if (isStaticExpression(expr)) {
|
|
100416
|
-
try {
|
|
100417
|
-
const fn = $parseExpr(expr);
|
|
100418
|
-
const staticValue = fn($scope, $locals);
|
|
100419
|
-
listener(staticValue, FIRST_TIME_WATCH);
|
|
100420
|
-
}
|
|
100421
|
-
catch (e) {
|
|
100422
|
-
console.warn(`Error evaluating static expression '${expr}':`, e);
|
|
100423
|
-
listener(undefined, FIRST_TIME_WATCH);
|
|
100424
|
-
}
|
|
100425
|
-
return () => { }; // No-op unsubscribe
|
|
100426
|
-
}
|
|
100427
100352
|
const fn = $parseExpr();
|
|
100428
|
-
|
|
100429
|
-
|
|
100430
|
-
const destroyFn = () => $unwatch(identifier);
|
|
100431
|
-
const watchInfo = {
|
|
100432
|
-
fn: fn.bind(null, $scope, $locals),
|
|
100353
|
+
registry.set(identifier, {
|
|
100354
|
+
fn: fn.bind(expr, $scope, $locals),
|
|
100433
100355
|
listener,
|
|
100434
100356
|
expr,
|
|
100435
100357
|
last: FIRST_TIME_WATCH,
|
|
100436
100358
|
doNotClone,
|
|
100437
|
-
isMuted
|
|
100438
|
-
|
|
100439
|
-
|
|
100440
|
-
destroyFn
|
|
100441
|
-
};
|
|
100442
|
-
// Store in registry
|
|
100443
|
-
const widgetId = getWidgetId(identifier);
|
|
100444
|
-
if (widgetId) {
|
|
100445
|
-
const propertyName = getPropertyName(identifier);
|
|
100446
|
-
if (!registry.has(widgetId)) {
|
|
100447
|
-
registry.set(widgetId, {});
|
|
100448
|
-
}
|
|
100449
|
-
const widgetGroup = registry.get(widgetId);
|
|
100450
|
-
widgetGroup[propertyName] = watchInfo;
|
|
100451
|
-
}
|
|
100452
|
-
else {
|
|
100453
|
-
registry.set(identifier, watchInfo);
|
|
100454
|
-
}
|
|
100455
|
-
return destroyFn;
|
|
100359
|
+
isMuted: isMuted
|
|
100360
|
+
});
|
|
100361
|
+
return () => $unwatch(identifier);
|
|
100456
100362
|
};
|
|
100457
|
-
|
|
100458
|
-
|
|
100459
|
-
|
|
100460
|
-
const $
|
|
100461
|
-
|
|
100462
|
-
|
|
100463
|
-
|
|
100464
|
-
|
|
100465
|
-
|
|
100466
|
-
|
|
100467
|
-
|
|
100468
|
-
if (watchInfo) {
|
|
100469
|
-
delete widgetGroup[propertyName];
|
|
100470
|
-
// Clean up empty widget groups
|
|
100471
|
-
if (Object.keys(widgetGroup).length === 0) {
|
|
100472
|
-
registry.delete(widgetId);
|
|
100473
|
-
}
|
|
100474
|
-
return true;
|
|
100475
|
-
}
|
|
100363
|
+
const $unwatch = identifier => registry.delete(identifier);
|
|
100364
|
+
window.watchRegistry = registry;
|
|
100365
|
+
window.__WM_DEBUG_WATCHERS__ = false;
|
|
100366
|
+
/*export const $invokeWatchers = (force?: boolean, ignoreMuted?: boolean) => {
|
|
100367
|
+
if (force) {
|
|
100368
|
+
triggerWatchers(ignoreMuted);
|
|
100369
|
+
} else {
|
|
100370
|
+
|
|
100371
|
+
if (skipWatchers) {
|
|
100372
|
+
skipWatchers = false;
|
|
100373
|
+
return;
|
|
100476
100374
|
}
|
|
100375
|
+
debouncedTriggerWatchers();
|
|
100477
100376
|
}
|
|
100478
|
-
|
|
100479
|
-
if (registry.has(identifier)) {
|
|
100480
|
-
registry.delete(identifier);
|
|
100481
|
-
return true;
|
|
100482
|
-
}
|
|
100483
|
-
return false;
|
|
100484
|
-
};
|
|
100377
|
+
};*/
|
|
100485
100378
|
const $appDigest = (() => {
|
|
100486
|
-
return (force
|
|
100379
|
+
return (force) => {
|
|
100487
100380
|
{
|
|
100488
100381
|
return;
|
|
100489
100382
|
}
|
|
100490
100383
|
};
|
|
100491
100384
|
})();
|
|
100492
|
-
// Export registry for debugging
|
|
100493
|
-
window.watchRegistry = registry;
|
|
100494
100385
|
|
|
100495
100386
|
var ComponentType;
|
|
100496
100387
|
(function (ComponentType) {
|
|
@@ -105944,10 +105835,10 @@ var tableRow_build$1 = /*#__PURE__*/Object.freeze({
|
|
|
105944
105835
|
|
|
105945
105836
|
const tagName$6 = 'div';
|
|
105946
105837
|
const getSaveCancelTemplate = () => {
|
|
105947
|
-
return `<button type="button" aria-label="Save edit icon" class="save row-action-button btn app-button btn-transparent save-edit-row-button hidden" title="Save">
|
|
105838
|
+
return `<button type="button" aria-label="Save edit icon" class="save row-action-button btn app-button btn-transparent save-edit-row-button hidden" title="{{appLocale?.LABEL_SAVE || 'Save'}}">
|
|
105948
105839
|
<i class="wi wi-done" aria-hidden="true"></i>
|
|
105949
105840
|
</button>
|
|
105950
|
-
<button type="button" aria-label="Cancel edit icon" class="cancel row-action-button btn app-button btn-transparent cancel-edit-row-button hidden" title="Cancel">
|
|
105841
|
+
<button type="button" aria-label="Cancel edit icon" class="cancel row-action-button btn app-button btn-transparent cancel-edit-row-button hidden" title="{{appLocale?.LABEL_CANCEL || 'Cancel'}}">
|
|
105951
105842
|
<i class="wi wi-cancel" aria-hidden="true"></i>
|
|
105952
105843
|
</button>`;
|
|
105953
105844
|
};
|
package/dependency-report.html
CHANGED