dash-button-web 0.0.23-beta.2 → 0.0.23-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/app-globals-V2Kpy_OQ.js +5 -0
- package/dist/cjs/dash-button_4.cjs.entry.js +10847 -0
- package/dist/cjs/{index-BfwSK14n.js → index-DcvBej9f.js} +122 -4
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/web-compnont.cjs.js +3 -3
- package/dist/collection/collection-manifest.json +11 -3
- package/dist/collection/components/my-component/dash-button.js +76 -87
- package/dist/collection/services/config.js +3 -4
- package/dist/collection/services/menu.js +3 -4
- package/dist/components/dash-button.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/loading-component.js +1 -0
- package/dist/components/loading-component2.js +1 -0
- package/dist/components/notification-component.js +1 -0
- package/dist/components/notification-component2.js +1 -0
- package/dist/components/notification-table.js +1 -0
- package/dist/components/notification-table2.js +2 -0
- package/dist/esm/app-globals-DQuL1Twl.js +3 -0
- package/dist/esm/dash-button_4.entry.js +10842 -0
- package/dist/esm/{index-6_Ga3Eox.js → index-p0GxQx6x.js} +122 -4
- package/dist/esm/loader.js +4 -4
- package/dist/esm/web-compnont.js +4 -4
- package/dist/types/components/my-component/dash-button.d.ts +2 -1
- package/dist/types/components.d.ts +9 -0
- package/dist/web-compnont/p-4944d054.entry.js +3 -0
- package/dist/web-compnont/p-p0GxQx6x.js +3 -0
- package/dist/web-compnont/web-compnont.esm.js +1 -1
- package/package.json +1 -1
- package/dist/cjs/app-globals-cd54EKuF.js +0 -15
- package/dist/cjs/dash-button.cjs.entry.js +0 -4314
- package/dist/collection/assets/ice-notification-component/ice-notification-component.esm.js +0 -1
- package/dist/collection/assets/ice-notification-component/index.esm.js +0 -1
- package/dist/collection/assets/ice-notification-component/p-CYEcl3gx.js +0 -2
- package/dist/collection/assets/ice-notification-component/p-Cd2FMJAb.js +0 -1
- package/dist/collection/assets/ice-notification-component/p-cf3fb8a3.entry.js +0 -2
- package/dist/collection/global/app.js +0 -7
- package/dist/esm/app-globals-B2hgy9FG.js +0 -13
- package/dist/esm/dash-button.entry.js +0 -4312
- package/dist/types/global/app.d.ts +0 -2
- package/dist/web-compnont/assets/ice-notification-component/ice-notification-component.esm.js +0 -1
- package/dist/web-compnont/assets/ice-notification-component/index.esm.js +0 -1
- package/dist/web-compnont/assets/ice-notification-component/p-CYEcl3gx.js +0 -2
- package/dist/web-compnont/assets/ice-notification-component/p-Cd2FMJAb.js +0 -1
- package/dist/web-compnont/assets/ice-notification-component/p-DQuL1Twl.js +0 -1
- package/dist/web-compnont/assets/ice-notification-component/p-cf3fb8a3.entry.js +0 -2
- package/dist/web-compnont/p-6_Ga3Eox.js +0 -3
- package/dist/web-compnont/p-7de50cbc.entry.js +0 -1
- package/dist/web-compnont/p-DiU1T8CW.js +0 -1
- /package/dist/{collection/assets/ice-notification-component → web-compnont}/p-DQuL1Twl.js +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const NAMESPACE = 'web-compnont';
|
|
4
|
-
const BUILD = /* web-compnont */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", lazyLoad: true, propChangeCallback:
|
|
4
|
+
const BUILD = /* web-compnont */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", lazyLoad: true, propChangeCallback: true, state: true, updatable: true};
|
|
5
5
|
|
|
6
6
|
/*
|
|
7
7
|
Stencil Client Platform v4.45.0 | MIT Licensed | https://stenciljs.com
|
|
@@ -200,7 +200,6 @@ var flush = () => {
|
|
|
200
200
|
};
|
|
201
201
|
var nextTick = (cb) => promiseResolve().then(cb);
|
|
202
202
|
var writeTask = /* @__PURE__ */ queueTask(queueDomWrites, true);
|
|
203
|
-
var setAssetPath = (path) => plt.$resourcesUrl$ = path;
|
|
204
203
|
|
|
205
204
|
// src/utils/style.ts
|
|
206
205
|
function createStyleSheetIfNeededAndSupported(styles2) {
|
|
@@ -444,6 +443,31 @@ var newVNode = (tag, text) => {
|
|
|
444
443
|
var Host = {};
|
|
445
444
|
var isHost = (node) => node && node.$tag$ === Host;
|
|
446
445
|
|
|
446
|
+
// src/runtime/normalize-watchers.ts
|
|
447
|
+
var normalizeWatchers = (raw) => {
|
|
448
|
+
if (!raw) return void 0;
|
|
449
|
+
const keys = Object.keys(raw);
|
|
450
|
+
if (keys.length === 0) return void 0;
|
|
451
|
+
let hasLegacy = false;
|
|
452
|
+
for (const propName of keys) {
|
|
453
|
+
if (hasLegacy) break;
|
|
454
|
+
for (const h2 of raw[propName]) {
|
|
455
|
+
if (typeof h2 === "string") {
|
|
456
|
+
hasLegacy = true;
|
|
457
|
+
break;
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
if (!hasLegacy) return raw;
|
|
462
|
+
const out = {};
|
|
463
|
+
for (const propName of keys) {
|
|
464
|
+
out[propName] = raw[propName].map(
|
|
465
|
+
(h2) => typeof h2 === "string" ? { [h2]: 0 } : h2
|
|
466
|
+
);
|
|
467
|
+
}
|
|
468
|
+
return out;
|
|
469
|
+
};
|
|
470
|
+
|
|
447
471
|
// src/runtime/parse-property-value.ts
|
|
448
472
|
var parsePropertyValue = (propValue, propType, isFormAssociated) => {
|
|
449
473
|
if (propValue != null && !isComplexType(propValue)) {
|
|
@@ -452,6 +476,9 @@ var parsePropertyValue = (propValue, propType, isFormAssociated) => {
|
|
|
452
476
|
return propValue === "false" ? false : propValue === "" || !!propValue;
|
|
453
477
|
}
|
|
454
478
|
}
|
|
479
|
+
if (propType & 2 /* Number */) {
|
|
480
|
+
return typeof propValue === "string" ? parseFloat(propValue) : typeof propValue === "number" ? propValue : NaN;
|
|
481
|
+
}
|
|
455
482
|
if (propType & 1 /* String */) {
|
|
456
483
|
return String(propValue);
|
|
457
484
|
}
|
|
@@ -463,6 +490,21 @@ var getElement = (ref) => {
|
|
|
463
490
|
var _a;
|
|
464
491
|
return (_a = getHostRef(ref)) == null ? void 0 : _a.$hostElement$ ;
|
|
465
492
|
};
|
|
493
|
+
|
|
494
|
+
// src/runtime/event-emitter.ts
|
|
495
|
+
var createEvent = (ref, name, flags) => {
|
|
496
|
+
const elm = getElement(ref);
|
|
497
|
+
return {
|
|
498
|
+
emit: (detail) => {
|
|
499
|
+
return emitEvent(elm, name, {
|
|
500
|
+
bubbles: true,
|
|
501
|
+
composed: true,
|
|
502
|
+
cancelable: true,
|
|
503
|
+
detail
|
|
504
|
+
});
|
|
505
|
+
}
|
|
506
|
+
};
|
|
507
|
+
};
|
|
466
508
|
var emitEvent = (elm, name, opts) => {
|
|
467
509
|
const ev = plt.ce(name, opts);
|
|
468
510
|
elm.dispatchEvent(ev);
|
|
@@ -503,7 +545,11 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
|
|
|
503
545
|
}
|
|
504
546
|
}
|
|
505
547
|
}
|
|
506
|
-
} else if (memberName === "key") ; else if (
|
|
548
|
+
} else if (memberName === "key") ; else if (memberName === "ref") {
|
|
549
|
+
if (newValue) {
|
|
550
|
+
queueRefAttachment(newValue, elm);
|
|
551
|
+
}
|
|
552
|
+
} else if ((!isProp ) && memberName[0] === "o" && memberName[1] === "n") {
|
|
507
553
|
if (memberName[2] === "-") {
|
|
508
554
|
memberName = memberName.slice(3);
|
|
509
555
|
} else if (isMemberInElement(win, ln)) {
|
|
@@ -640,6 +686,8 @@ function sortedAttrNames(attrNames) {
|
|
|
640
686
|
}
|
|
641
687
|
var hostTagName;
|
|
642
688
|
var isSvgMode = false;
|
|
689
|
+
var refCallbacksToRemove = [];
|
|
690
|
+
var refCallbacksToAttach = [];
|
|
643
691
|
var createElm = (oldParentVNode, newParentVNode, childIndex) => {
|
|
644
692
|
const newVNode2 = newParentVNode.$children$[childIndex];
|
|
645
693
|
let i2 = 0;
|
|
@@ -708,6 +756,7 @@ var removeVnodes = (vnodes, startIdx, endIdx) => {
|
|
|
708
756
|
const vnode = vnodes[index];
|
|
709
757
|
if (vnode) {
|
|
710
758
|
const elm = vnode.$elm$;
|
|
759
|
+
nullifyVNodeRefs(vnode);
|
|
711
760
|
if (elm) {
|
|
712
761
|
elm.remove();
|
|
713
762
|
}
|
|
@@ -844,6 +893,27 @@ var patch = (oldVNode, newVNode2, isInitialRender = false) => {
|
|
|
844
893
|
elm.data = text;
|
|
845
894
|
}
|
|
846
895
|
};
|
|
896
|
+
var nullifyVNodeRefs = (vNode) => {
|
|
897
|
+
{
|
|
898
|
+
if (vNode.$attrs$ && vNode.$attrs$.ref) {
|
|
899
|
+
refCallbacksToRemove.push(() => vNode.$attrs$.ref(null));
|
|
900
|
+
}
|
|
901
|
+
vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);
|
|
902
|
+
}
|
|
903
|
+
};
|
|
904
|
+
var queueRefAttachment = (refCallback, elm) => {
|
|
905
|
+
{
|
|
906
|
+
refCallbacksToAttach.push(() => refCallback(elm));
|
|
907
|
+
}
|
|
908
|
+
};
|
|
909
|
+
var flushQueuedRefCallbacks = () => {
|
|
910
|
+
{
|
|
911
|
+
refCallbacksToRemove.forEach((cb) => cb());
|
|
912
|
+
refCallbacksToRemove.length = 0;
|
|
913
|
+
refCallbacksToAttach.forEach((cb) => cb());
|
|
914
|
+
refCallbacksToAttach.length = 0;
|
|
915
|
+
}
|
|
916
|
+
};
|
|
847
917
|
var insertBefore = (parent, newNode, reference, isInitialLoad) => {
|
|
848
918
|
{
|
|
849
919
|
return parent == null ? void 0 : parent.insertBefore(newNode, reference);
|
|
@@ -867,6 +937,7 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
|
|
|
867
937
|
hostRef.$vnode$ = rootVnode;
|
|
868
938
|
rootVnode.$elm$ = oldVNode.$elm$ = hostElm.shadowRoot || hostElm ;
|
|
869
939
|
patch(oldVNode, rootVnode, isInitialLoad);
|
|
940
|
+
flushQueuedRefCallbacks();
|
|
870
941
|
};
|
|
871
942
|
|
|
872
943
|
// src/runtime/update-component.ts
|
|
@@ -1045,6 +1116,7 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
|
|
|
1045
1116
|
`Couldn't find host element for "${cmpMeta.$tagName$}" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/stenciljs/core/issues/5457).`
|
|
1046
1117
|
);
|
|
1047
1118
|
}
|
|
1119
|
+
const elm = hostRef.$hostElement$ ;
|
|
1048
1120
|
const oldVal = hostRef.$instanceValues$.get(propName);
|
|
1049
1121
|
const flags = hostRef.$flags$;
|
|
1050
1122
|
const instance = hostRef.$lazyInstance$ ;
|
|
@@ -1055,6 +1127,27 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
|
|
|
1055
1127
|
const didValueChange = newVal !== oldVal && !areBothNaN;
|
|
1056
1128
|
if ((!(flags & 8 /* isConstructingInstance */) || oldVal === void 0) && didValueChange) {
|
|
1057
1129
|
hostRef.$instanceValues$.set(propName, newVal);
|
|
1130
|
+
if (cmpMeta.$watchers$) {
|
|
1131
|
+
const watchMethods = cmpMeta.$watchers$[propName];
|
|
1132
|
+
if (watchMethods) {
|
|
1133
|
+
watchMethods.map((watcher) => {
|
|
1134
|
+
try {
|
|
1135
|
+
const [[watchMethodName, watcherFlags]] = Object.entries(watcher);
|
|
1136
|
+
if (flags & 128 /* isWatchReady */ || watcherFlags & 1 /* Immediate */) {
|
|
1137
|
+
if (!instance) {
|
|
1138
|
+
hostRef.$fetchedCbList$.push(() => {
|
|
1139
|
+
hostRef.$lazyInstance$[watchMethodName](newVal, oldVal, propName);
|
|
1140
|
+
});
|
|
1141
|
+
} else {
|
|
1142
|
+
instance[watchMethodName](newVal, oldVal, propName);
|
|
1143
|
+
}
|
|
1144
|
+
}
|
|
1145
|
+
} catch (e) {
|
|
1146
|
+
consoleError(e, elm);
|
|
1147
|
+
}
|
|
1148
|
+
});
|
|
1149
|
+
}
|
|
1150
|
+
}
|
|
1058
1151
|
if (flags & 2 /* hasRendered */) {
|
|
1059
1152
|
if (instance.componentShouldUpdate) {
|
|
1060
1153
|
const shouldUpdate = instance.componentShouldUpdate(newVal, oldVal, propName);
|
|
@@ -1072,6 +1165,17 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
|
|
|
1072
1165
|
var _a, _b;
|
|
1073
1166
|
const prototype = Cstr.prototype;
|
|
1074
1167
|
if (cmpMeta.$members$ || BUILD.propChangeCallback) {
|
|
1168
|
+
{
|
|
1169
|
+
if (Cstr.watchers && !cmpMeta.$watchers$) {
|
|
1170
|
+
cmpMeta.$watchers$ = normalizeWatchers(Cstr.watchers);
|
|
1171
|
+
}
|
|
1172
|
+
if (Cstr.deserializers && !cmpMeta.$deserializers$) {
|
|
1173
|
+
cmpMeta.$deserializers$ = Cstr.deserializers;
|
|
1174
|
+
}
|
|
1175
|
+
if (Cstr.serializers && !cmpMeta.$serializers$) {
|
|
1176
|
+
cmpMeta.$serializers$ = Cstr.serializers;
|
|
1177
|
+
}
|
|
1178
|
+
}
|
|
1075
1179
|
const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
|
|
1076
1180
|
members.map(([memberName, [memberFlags]]) => {
|
|
1077
1181
|
if ((memberFlags & 31 /* Prop */ || (flags & 2 /* proxyState */) && memberFlags & 32 /* State */)) {
|
|
@@ -1237,6 +1341,11 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
|
|
|
1237
1341
|
throw new Error(`Constructor for "${cmpMeta.$tagName$}#${hostRef.$modeName$}" was not found`);
|
|
1238
1342
|
}
|
|
1239
1343
|
if (!Cstr.isProxied) {
|
|
1344
|
+
{
|
|
1345
|
+
cmpMeta.$watchers$ = normalizeWatchers(Cstr.watchers);
|
|
1346
|
+
cmpMeta.$serializers$ = Cstr.serializers;
|
|
1347
|
+
cmpMeta.$deserializers$ = Cstr.deserializers;
|
|
1348
|
+
}
|
|
1240
1349
|
proxyComponent(Cstr, cmpMeta, 2 /* proxyState */);
|
|
1241
1350
|
Cstr.isProxied = true;
|
|
1242
1351
|
}
|
|
@@ -1252,6 +1361,9 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
|
|
|
1252
1361
|
{
|
|
1253
1362
|
hostRef.$flags$ &= -9 /* isConstructingInstance */;
|
|
1254
1363
|
}
|
|
1364
|
+
{
|
|
1365
|
+
hostRef.$flags$ |= 128 /* isWatchReady */;
|
|
1366
|
+
}
|
|
1255
1367
|
endNewInstance();
|
|
1256
1368
|
{
|
|
1257
1369
|
fireConnectedCallback(hostRef.$lazyInstance$, elm);
|
|
@@ -1385,6 +1497,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
1385
1497
|
plt.$resourcesUrl$ = new URL(options.resourcesUrl || "./", win.document.baseURI).href;
|
|
1386
1498
|
lazyBundles.map((lazyBundle) => {
|
|
1387
1499
|
lazyBundle[1].map((compactMeta) => {
|
|
1500
|
+
var _a2, _b;
|
|
1388
1501
|
const cmpMeta = {
|
|
1389
1502
|
$flags$: compactMeta[0],
|
|
1390
1503
|
$tagName$: compactMeta[1],
|
|
@@ -1394,6 +1507,11 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
1394
1507
|
{
|
|
1395
1508
|
cmpMeta.$members$ = compactMeta[2];
|
|
1396
1509
|
}
|
|
1510
|
+
{
|
|
1511
|
+
cmpMeta.$watchers$ = normalizeWatchers(compactMeta[4]);
|
|
1512
|
+
cmpMeta.$serializers$ = (_a2 = compactMeta[5]) != null ? _a2 : {};
|
|
1513
|
+
cmpMeta.$deserializers$ = (_b = compactMeta[6]) != null ? _b : {};
|
|
1514
|
+
}
|
|
1397
1515
|
const tagName = transformTag(cmpMeta.$tagName$);
|
|
1398
1516
|
const HostElement = class extends HTMLElement {
|
|
1399
1517
|
["s-p"];
|
|
@@ -1499,9 +1617,9 @@ function transformTag(tag) {
|
|
|
1499
1617
|
}
|
|
1500
1618
|
|
|
1501
1619
|
exports.bootstrapLazy = bootstrapLazy;
|
|
1620
|
+
exports.createEvent = createEvent;
|
|
1502
1621
|
exports.getElement = getElement;
|
|
1503
1622
|
exports.h = h;
|
|
1504
1623
|
exports.promiseResolve = promiseResolve;
|
|
1505
1624
|
exports.registerInstance = registerInstance;
|
|
1506
|
-
exports.setAssetPath = setAssetPath;
|
|
1507
1625
|
exports.setNonce = setNonce;
|
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
4
|
-
var appGlobals = require('./app-globals-
|
|
3
|
+
var index = require('./index-DcvBej9f.js');
|
|
4
|
+
var appGlobals = require('./app-globals-V2Kpy_OQ.js');
|
|
5
5
|
|
|
6
6
|
const defineCustomElements = async (win, options) => {
|
|
7
7
|
if (typeof window === 'undefined') return undefined;
|
|
8
8
|
await appGlobals.globalScripts();
|
|
9
|
-
return index.bootstrapLazy([["dash-
|
|
9
|
+
return index.bootstrapLazy([["dash-button_4.cjs",[[513,"dash-button",{"showPostLoginText":[4,"show-post-login-text"],"silentCheckSso":[4,"silent-check-sso"],"redirectUri":[1,"redirect-uri"],"authMethod":[1,"auth-method"],"portalApiUrl":[1,"portal-api-url"],"plmUrl":[1,"plm-url"],"showUnauthorizedModal":[4,"show-unauthorized-modal"],"primaryColor":[1,"primary-color"],"accentColor":[1,"accent-color"],"showNotification":[4,"show-notification"],"notificationPosition":[1,"notification-position"],"keycloak":[32],"isAuth":[32],"givenUserName":[32],"silentCheckSsoRedirectUri":[32],"appList":[32],"avatarSvg":[32],"isLoading":[32],"config":[32],"localMenuLinks":[32],"organizationUrl":[32],"isRestricted":[32]}],[513,"notification-component",{"owner":[1],"applicationId":[1,"application-id"],"maxRecords":[2,"max-records"],"listUrl":[1,"list-url"],"displayType":[1,"display-type"],"notificationUrl":[1,"notification-url"],"socketConnect":[4,"socket-connect"],"socketUrl":[1,"socket-url"],"showModal":[32]},null,{"showModal":[{"ownerChanged":0}]}],[513,"notification-table",{"owner":[1],"applicationId":[1,"application-id"],"maxRecords":[2,"max-records"],"listUrl":[1,"list-url"],"displayType":[1,"display-type"],"notificationUrl":[1,"notification-url"],"socketConnect":[4,"socket-connect"],"socketUrl":[1,"socket-url"],"showTable":[32],"loading":[32],"newCount":[32],"notificationList":[32],"markingRead":[32],"pageNumber":[32],"totalRecords":[32],"search":[32],"searching":[32],"showSearchBar":[32],"categoryList":[32],"statusList":[32]},null,{"owner":[{"ownerChanged":0}]}],[513,"loading-component",{"show":[4],"size":[1]}]]]], options);
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
exports.setNonce = index.setNonce;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
4
|
-
var appGlobals = require('./app-globals-
|
|
3
|
+
var index = require('./index-DcvBej9f.js');
|
|
4
|
+
var appGlobals = require('./app-globals-V2Kpy_OQ.js');
|
|
5
5
|
|
|
6
6
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
7
7
|
/*
|
|
@@ -19,7 +19,7 @@ var patchBrowser = () => {
|
|
|
19
19
|
|
|
20
20
|
patchBrowser().then(async (options) => {
|
|
21
21
|
await appGlobals.globalScripts();
|
|
22
|
-
return index.bootstrapLazy([["dash-
|
|
22
|
+
return index.bootstrapLazy([["dash-button_4.cjs",[[513,"dash-button",{"showPostLoginText":[4,"show-post-login-text"],"silentCheckSso":[4,"silent-check-sso"],"redirectUri":[1,"redirect-uri"],"authMethod":[1,"auth-method"],"portalApiUrl":[1,"portal-api-url"],"plmUrl":[1,"plm-url"],"showUnauthorizedModal":[4,"show-unauthorized-modal"],"primaryColor":[1,"primary-color"],"accentColor":[1,"accent-color"],"showNotification":[4,"show-notification"],"notificationPosition":[1,"notification-position"],"keycloak":[32],"isAuth":[32],"givenUserName":[32],"silentCheckSsoRedirectUri":[32],"appList":[32],"avatarSvg":[32],"isLoading":[32],"config":[32],"localMenuLinks":[32],"organizationUrl":[32],"isRestricted":[32]}],[513,"notification-component",{"owner":[1],"applicationId":[1,"application-id"],"maxRecords":[2,"max-records"],"listUrl":[1,"list-url"],"displayType":[1,"display-type"],"notificationUrl":[1,"notification-url"],"socketConnect":[4,"socket-connect"],"socketUrl":[1,"socket-url"],"showModal":[32]},null,{"showModal":[{"ownerChanged":0}]}],[513,"notification-table",{"owner":[1],"applicationId":[1,"application-id"],"maxRecords":[2,"max-records"],"listUrl":[1,"list-url"],"displayType":[1,"display-type"],"notificationUrl":[1,"notification-url"],"socketConnect":[4,"socket-connect"],"socketUrl":[1,"socket-url"],"showTable":[32],"loading":[32],"newCount":[32],"notificationList":[32],"markingRead":[32],"pageNumber":[32],"totalRecords":[32],"search":[32],"searching":[32],"showSearchBar":[32],"categoryList":[32],"statusList":[32]},null,{"owner":[{"ownerChanged":0}]}],[513,"loading-component",{"show":[4],"size":[1]}]]]], options);
|
|
23
23
|
});
|
|
24
24
|
|
|
25
25
|
exports.setNonce = index.setNonce;
|
|
@@ -8,7 +8,15 @@
|
|
|
8
8
|
"version": "4.45.0",
|
|
9
9
|
"typescriptVersion": "5.8.3"
|
|
10
10
|
},
|
|
11
|
-
"collections": [
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
"collections": [
|
|
12
|
+
{
|
|
13
|
+
"name": "ice-notification-component",
|
|
14
|
+
"tags": [
|
|
15
|
+
"loading-component",
|
|
16
|
+
"notification-component",
|
|
17
|
+
"notification-table"
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"bundles": []
|
|
14
22
|
}
|
|
@@ -3,72 +3,43 @@ import Keycloak from "keycloak-js";
|
|
|
3
3
|
import { toSvg } from "jdenticon";
|
|
4
4
|
import { configService } from "../../services/config";
|
|
5
5
|
import { menuService } from "../../services/menu";
|
|
6
|
+
import "ice-notification-component";
|
|
6
7
|
export class DashButtonComponent {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const path = event.composedPath();
|
|
31
|
-
// Ensure this click originated from inside the notification module
|
|
32
|
-
const isInsideNotification = path.some((target) => target && target.tagName === 'NOTIFICATION-COMPONENT');
|
|
33
|
-
// If the click is outside the notification module (e.g., somewhere else in dash-button), exit early
|
|
34
|
-
if (!isInsideNotification) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
// 2. Identify the specific link element inside the path array
|
|
38
|
-
const clickedLink = path.find((target) => target && (target.tagName === 'A' || (typeof target.hasAttribute === 'function' && target.hasAttribute('href'))));
|
|
39
|
-
if (clickedLink) {
|
|
40
|
-
const destinationUrl = clickedLink.getAttribute('href');
|
|
41
|
-
if (destinationUrl) {
|
|
42
|
-
// Prevent the default behavior ONLY for the notification component links
|
|
43
|
-
event.preventDefault();
|
|
44
|
-
event.stopPropagation();
|
|
45
|
-
// Check if the link contains the unique class name
|
|
46
|
-
const isHomeIconLink = clickedLink.classList.contains('button-link');
|
|
47
|
-
if (isHomeIconLink) {
|
|
48
|
-
console.log('Notification module home link intercepted. Opening in new tab:', destinationUrl);
|
|
49
|
-
window.open(destinationUrl, '_blank', 'noopener,noreferrer');
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
console.log('Notification module standard link intercepted. Navigating in current view:', destinationUrl);
|
|
53
|
-
window.location.href = destinationUrl;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
}
|
|
8
|
+
el;
|
|
9
|
+
showPostLoginText = false;
|
|
10
|
+
silentCheckSso = false;
|
|
11
|
+
redirectUri;
|
|
12
|
+
authMethod = "check-sso";
|
|
13
|
+
portalApiUrl = "";
|
|
14
|
+
plmUrl = "https://productlicensemanager-zdzw.cloud.zdzw-project.com";
|
|
15
|
+
showUnauthorizedModal = false;
|
|
16
|
+
primaryColor = "";
|
|
17
|
+
accentColor = "";
|
|
18
|
+
showNotification = true;
|
|
19
|
+
notificationPosition = "left";
|
|
20
|
+
keycloak = null;
|
|
21
|
+
isAuth = false;
|
|
22
|
+
givenUserName = "";
|
|
23
|
+
silentCheckSsoRedirectUri = window.location.origin + '/assets/verificar-sso.html';
|
|
24
|
+
appList = [];
|
|
25
|
+
avatarSvg = toSvg("init-avatar", 40);
|
|
26
|
+
isLoading = false;
|
|
27
|
+
config;
|
|
28
|
+
localMenuLinks;
|
|
29
|
+
organizationUrl;
|
|
30
|
+
isRestricted = false;
|
|
59
31
|
async componentWillLoad() {
|
|
60
|
-
var _a, _b, _c, _d;
|
|
61
32
|
// Fetch config from API
|
|
62
33
|
this.config = await configService.fetchConfig(this.portalApiUrl);
|
|
63
34
|
console.log(this.config);
|
|
64
35
|
if (!this.config)
|
|
65
36
|
return; // prevent Keycloak init if fetch failed
|
|
66
37
|
// render will show spinner
|
|
67
|
-
if (
|
|
38
|
+
if (this.config?.loading?.isLoading) {
|
|
68
39
|
this.isLoading = true;
|
|
69
40
|
setTimeout(() => {
|
|
70
41
|
this.isLoading = false;
|
|
71
|
-
},
|
|
42
|
+
}, this.config?.loading?.duration);
|
|
72
43
|
}
|
|
73
44
|
// Initialize Keycloak
|
|
74
45
|
this.keycloak = new Keycloak({
|
|
@@ -99,34 +70,32 @@ export class DashButtonComponent {
|
|
|
99
70
|
checkLoginIframe: false,
|
|
100
71
|
silentCheckSsoRedirectUri: this.silentCheckSso ? this.silentCheckSsoRedirectUri : '',
|
|
101
72
|
}).then((res) => {
|
|
102
|
-
var _a, _b, _c;
|
|
103
73
|
if (res) {
|
|
104
74
|
this.isAuth = true;
|
|
105
75
|
localStorage.setItem("keycloak", JSON.stringify(this.keycloak));
|
|
106
76
|
// document.cookie = "DASH_BTN=" + JSON.parse(localStorage.getItem('keycloak')).token;
|
|
107
|
-
document.cookie = this.config.cookieName + "=" + JSON.parse(
|
|
77
|
+
document.cookie = this.config.cookieName + "=" + JSON.parse(localStorage.getItem('keycloak') ?? '{}').token;
|
|
108
78
|
// Set userName
|
|
109
|
-
this.givenUserName = JSON.parse(
|
|
79
|
+
this.givenUserName = JSON.parse(localStorage.getItem('keycloak') ?? '{}').idTokenParsed.preferred_username;
|
|
110
80
|
// Set user avatar
|
|
111
|
-
this.avatarSvg = toSvg(JSON.parse(
|
|
81
|
+
this.avatarSvg = toSvg(JSON.parse(localStorage.getItem('keycloak') ?? '{}').idTokenParsed.sub, 40);
|
|
112
82
|
}
|
|
113
83
|
});
|
|
114
84
|
}
|
|
115
85
|
async loadOrganizationUrlAndLinks() {
|
|
116
|
-
var _a, _b, _c;
|
|
117
86
|
// Read org URL safely
|
|
118
87
|
try {
|
|
119
88
|
const kc = JSON.parse(localStorage.getItem("keycloak") || "{}");
|
|
120
|
-
this.organizationUrl =
|
|
89
|
+
this.organizationUrl = kc?.idTokenParsed?.organizationUrl || null;
|
|
121
90
|
}
|
|
122
|
-
catch
|
|
91
|
+
catch {
|
|
123
92
|
this.organizationUrl = null;
|
|
124
93
|
}
|
|
125
94
|
// If no organization, do nothing
|
|
126
95
|
if (!this.organizationUrl)
|
|
127
96
|
return;
|
|
128
97
|
// If config or menu not ready, skip
|
|
129
|
-
if (!
|
|
98
|
+
if (!this.config?.menu?.local)
|
|
130
99
|
return;
|
|
131
100
|
// Only load when custom menu is NOT enabled
|
|
132
101
|
if (!this.config.menu.local.enableCustomLocalMenu) {
|
|
@@ -143,26 +112,25 @@ export class DashButtonComponent {
|
|
|
143
112
|
// Then, check the token's organization URL
|
|
144
113
|
// Finally, check against dashbutton configuration: allowedGlobalDomain and whitelistedUrls
|
|
145
114
|
validateAppAccessByUrl() {
|
|
146
|
-
var _a, _b, _c, _d, _e, _f;
|
|
147
115
|
const normalizeUrl = (url) => url.replace(/\/+$/, '');
|
|
148
116
|
const currentUrl = normalizeUrl(window.location.href);
|
|
149
117
|
const currentOrigin = normalizeUrl(window.location.origin);
|
|
150
|
-
const globalLinks =
|
|
151
|
-
const allowedGlobalDomain =
|
|
152
|
-
const whitelistedUrls =
|
|
118
|
+
const globalLinks = this.config?.menu?.global?.links || [];
|
|
119
|
+
const allowedGlobalDomain = this.config?.allowedGlobalDomain || '';
|
|
120
|
+
const whitelistedUrls = this.config?.whitelistedUrls || '';
|
|
153
121
|
// First, check global links
|
|
154
122
|
const matchGlobal = globalLinks.some(link => {
|
|
155
123
|
try {
|
|
156
124
|
const linkOrigin = normalizeUrl(new URL(link.url).origin);
|
|
157
125
|
return currentOrigin === linkOrigin;
|
|
158
126
|
}
|
|
159
|
-
catch
|
|
127
|
+
catch {
|
|
160
128
|
return false;
|
|
161
129
|
}
|
|
162
130
|
});
|
|
163
131
|
// Then check the token organization URL
|
|
164
|
-
const tokenParsed =
|
|
165
|
-
const allowedOrg = tokenParsed
|
|
132
|
+
const tokenParsed = this.keycloak?.tokenParsed;
|
|
133
|
+
const allowedOrg = tokenParsed?.organizationUrl;
|
|
166
134
|
const matchOrganization = allowedOrg && currentUrl.includes(normalizeUrl(allowedOrg));
|
|
167
135
|
// Check allowedGlobalDomain (single domain)
|
|
168
136
|
const matchAllowedDomain = allowedGlobalDomain &&
|
|
@@ -197,34 +165,33 @@ export class DashButtonComponent {
|
|
|
197
165
|
appModal.style.display = "none";
|
|
198
166
|
}
|
|
199
167
|
renderNotificationComponent() {
|
|
200
|
-
|
|
201
|
-
const
|
|
202
|
-
const
|
|
203
|
-
const orgUrlRaw = (token === null || token === void 0 ? void 0 : token.organizationUrl) || '';
|
|
168
|
+
const token = this.keycloak?.idTokenParsed;
|
|
169
|
+
const owner = token?.preferred_username || token?.sub || '';
|
|
170
|
+
const orgUrlRaw = token?.organizationUrl || '';
|
|
204
171
|
const orgHost = orgUrlRaw
|
|
205
172
|
? new URL(orgUrlRaw.startsWith('http') ? orgUrlRaw : `https://${orgUrlRaw}`).hostname
|
|
206
173
|
: '';
|
|
207
174
|
return orgHost && owner ? (h("notification-component", { owner: owner, "max-records": 10, "display-type": "icon", "notification-url": `https://notifications.${orgHost}/notifications-api`, "socket-connect": true, "socket-url": `wss://repository.${orgHost}/socket`, "list-url": `https://notifications.${orgHost}/notifications` })) : null;
|
|
208
175
|
}
|
|
209
176
|
render() {
|
|
210
|
-
|
|
211
|
-
return h("div", { key: 'a2d1650d96fcbbfa5128da4315e70dc0c2682dfd' }, h("div", { key: '975ab012c618442f627f00a9ee29773c08d55824' }, (() => {
|
|
212
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
177
|
+
return h("div", { key: '5392d18f5e9bb3f0da2d3bbe825a5ebcdccde248' }, h("div", { key: 'dd8eba2ec617565792ae1f7cd2730856ca246ef4' }, (() => {
|
|
213
178
|
// GLOBAL LOADING SPINNER
|
|
214
179
|
if (this.isLoading) {
|
|
215
180
|
return (h("a", { id: "login-btn", class: "button button-link" }, h("div", { class: "lds-ring" }, h("div", null), h("div", null), h("div", null), h("div", null))));
|
|
216
181
|
}
|
|
217
182
|
if (this.isRestricted) {
|
|
218
|
-
return (h("div", { class: "restricted-overlay" }, h("div", { class: "restricted-card" }, h("div", { class: "restricted-icon" }, h("i", { class: "fa-solid fa-shield-halved" })), h("h2", null, "Access Restricted"), h("p", { class: "restricted-message" }, "You do not have permission to access this application. Please contact your administrator if you believe this is an error."),
|
|
183
|
+
return (h("div", { class: "restricted-overlay" }, h("div", { class: "restricted-card" }, h("div", { class: "restricted-icon" }, h("i", { class: "fa-solid fa-shield-halved" })), h("h2", null, "Access Restricted"), h("p", { class: "restricted-message" }, "You do not have permission to access this application. Please contact your administrator if you believe this is an error."), this.config?.menu?.global?.links?.length > 0 && (h("div", { class: "restricted-links" }, h("h4", null, "Publicly Available Modules"), h("div", { class: "link-grid" }, this.config.menu.global.links.map(item => (h("a", { href: item.url, target: "_blank", class: "restricted-link" }, h("i", { class: item.icon }), h("span", null, item.name))))))), h("div", { class: "restricted-actions" }, this.config?.defaultLink?.url && (h("a", { href: this.config.defaultLink.url, target: "_blank", class: "btn-primary" }, "Go to Portal")), h("button", { class: "btn-danger", onClick: this.logout.bind(this) }, "Logout")))));
|
|
219
184
|
}
|
|
220
185
|
if (this.isAuth && this.showPostLoginText) {
|
|
221
186
|
return (h("a", { style: { background: this.primaryColor != undefined ? this.primaryColor : "" }, href: this.redirectUri, id: "login-btn", class: "button button-link" }, h("span", { style: { color: this.accentColor != undefined ? this.accentColor : "" }, class: "button-text button-text-full-width" }, "Go to Dashboard")));
|
|
222
187
|
}
|
|
223
188
|
else if (this.isAuth) {
|
|
224
|
-
return (h("div", { class: "profile-actions", style: { display: "inline-flex", alignItems: "center", gap: "15px" } }, this.
|
|
189
|
+
return (h("div", { class: "profile-actions", style: { display: "inline-flex", alignItems: "center", gap: "15px" } }, this.showNotification &&
|
|
190
|
+
this.notificationPosition !== "right" &&
|
|
191
|
+
this.renderNotificationComponent(), h("div", { id: "profile-btn", class: "dropdown" }, h("button", { style: { background: this.primaryColor != undefined ? this.primaryColor : "" }, type: "button", class: "button" }, h("span", { class: "button-profile" }, JSON.parse(localStorage.getItem('keycloak') ?? '{}').idTokenParsed.imageUrl ?
|
|
225
192
|
h("img", { class: "profile-image", src: "https://s-damith.github.io/test-avatar/images/e24da9c5-0b1f-46fa-82cd-7c711c77b5c7.png" })
|
|
226
193
|
:
|
|
227
|
-
h("div", { innerHTML: this.avatarSvg })), h("span", { style: { color: this.accentColor != undefined ? this.accentColor : "" }, id: "given-name", class: "button-text" }, this.givenUserName), h("div", { class: "button-icon" }, (this.config.menuViewType == "grid") ? h("i", { class: "fa-solid fa-grip-vertical" }) : h("i", { class: "fa-solid fa-bars" }))), h("div", { class: "dropdown-content" }, h("div", { class: "dropdown-user-profile" }, h("div", { class: "username" }, "@", this.givenUserName), h("div", { class: "first-last-name" }, JSON.parse(
|
|
194
|
+
h("div", { innerHTML: this.avatarSvg })), h("span", { style: { color: this.accentColor != undefined ? this.accentColor : "" }, id: "given-name", class: "button-text" }, this.givenUserName), h("div", { class: "button-icon" }, (this.config.menuViewType == "grid") ? h("i", { class: "fa-solid fa-grip-vertical" }) : h("i", { class: "fa-solid fa-bars" }))), h("div", { class: "dropdown-content" }, h("div", { class: "dropdown-user-profile" }, h("div", { class: "username" }, "@", this.givenUserName), h("div", { class: "first-last-name" }, JSON.parse(localStorage.getItem('keycloak') ?? '{}').idTokenParsed.name)), (this.config.menuViewType == "grid") ? (h("div", null, h("div", { class: "grid-view-menu" }, this.config.menu.global.links.map(item => {
|
|
228
195
|
return (h("a", { href: item.url, target: '_blank', class: "grid-view-link" }, h("i", { class: item.icon + " fa-2x" }), h("div", { class: "grid-view-link-text" }, item.name)));
|
|
229
196
|
})), this.config.menu.global.links.length != 0 && h("hr", { class: "solid" }), h("div", { class: "grid-view-menu", style: this.config.menu.global.links.length === 0
|
|
230
197
|
? { marginBottom: '12px' }
|
|
@@ -232,20 +199,22 @@ export class DashButtonComponent {
|
|
|
232
199
|
// List View
|
|
233
200
|
h("div", { class: "dropdown-content-link" }, this.config.menu.global.links.map(item => {
|
|
234
201
|
return (h("a", { href: item.url, target: '_blank', id: "applications-btn" }, h("i", { class: item.icon + " menu-bar-icons" }), item.name));
|
|
235
|
-
}), h("a", { onClick: this.showModal.bind(this), id: "applications-btn" }, h("i", { class: "fa-regular fa-window-restore menu-bar-icons" }), "Modules"), h("a", { href: this.config.defaultLink.url, target: '_blank', id: "applications-btn" }, h("i", { class: "fa-solid fa-globe menu-bar-icons" }), this.config.defaultLink.name), h("a", { onClick: this.logout.bind(this), id: "logout-btn" }, h("i", { class: "fa-solid fa-right-from-bracket menu-bar-icons" }), "Logout"))))), this.
|
|
202
|
+
}), h("a", { onClick: this.showModal.bind(this), id: "applications-btn" }, h("i", { class: "fa-regular fa-window-restore menu-bar-icons" }), "Modules"), h("a", { href: this.config.defaultLink.url, target: '_blank', id: "applications-btn" }, h("i", { class: "fa-solid fa-globe menu-bar-icons" }), this.config.defaultLink.name), h("a", { onClick: this.logout.bind(this), id: "logout-btn" }, h("i", { class: "fa-solid fa-right-from-bracket menu-bar-icons" }), "Logout"))))), this.showNotification &&
|
|
203
|
+
this.notificationPosition === "right" &&
|
|
204
|
+
this.renderNotificationComponent()));
|
|
236
205
|
}
|
|
237
206
|
else {
|
|
238
207
|
return (h("button", { style: { background: this.primaryColor != undefined ? this.primaryColor : "" }, onClick: this.login.bind(this), id: "login-btn", type: "button", class: "button" }, h("span", { style: { color: this.accentColor != undefined ? this.accentColor : "" }, class: "button-text" }, "Login")));
|
|
239
208
|
}
|
|
240
|
-
})()), h("div", { key: '
|
|
209
|
+
})()), h("div", { key: '911c2410357a5b9fdca6ecac4410ebd2d1dea6a0', id: "appListModal", class: "modal" }, h("div", { key: 'e4632e2880737a55d32bd5182e0ab4a6c4872308', class: "modal-content" }, h("span", { key: '3359530f1025b26458722383162e3518d08addf3', onClick: this.closeModal.bind(this), class: "close" }, "\u00D7"), h("div", { key: 'c10e1945b9da4659ce0db7d50bc8abd9958d99f7', class: "box" }, h("input", { key: '30c89d437922ca3d12f317251b6bb70bdaeb4e29', type: "radio", class: "tab-toggle", name: "tab-toggle", id: "tab1", checked: true }), h("ul", { key: '3d1b9f617ac830649a4aa02b3b9f1dc316ee37e2', class: "tab-list" }, h("li", { key: '6a35788848f0d7230b20496216eaa1592a217a6f', class: "tab-item" }, h("label", { key: '1bbfb40306554cac6c0cce67e68ff431100d09f2', class: "tab-trigger", htmlFor: "tab1" }, h("i", { key: 'f2d8c926954757117e38d53c5168fa43ebcadb86', class: "fa-solid fa-table-list menu-bar-icons" }), " ", this.config.menu.local.name))), h("div", { key: '1c70c602c899a82599a5979b386eb7a21492232c', class: "tab-container" }, h("div", { key: '78a7980c56844ad275b5c76f5610382791a10b86', class: "tab-content" }, h("div", { key: 'ea005145b48c03956ff477fc81a681e4b9fd123d', class: "modal-body" }, !this.config?.menu?.local?.enableCustomLocalMenu ? (
|
|
241
210
|
// <div>{this.localMenuLinks}</div>
|
|
242
|
-
|
|
211
|
+
this.localMenuLinks?.map((app, index) => {
|
|
243
212
|
const isDisabled = !app.url;
|
|
244
213
|
return (h("a", { key: index, class: "external-app-link", href: isDisabled ? undefined : app.url, target: isDisabled ? undefined : "_blank", rel: isDisabled ? undefined : "noopener noreferrer", onClick: isDisabled ? (e) => e.preventDefault() : undefined }, h("div", { class: "modal-app" }, h("div", null, app.name))));
|
|
245
|
-
})) : (
|
|
246
|
-
(
|
|
247
|
-
(
|
|
248
|
-
(
|
|
214
|
+
})) : (this.config.menu.local.links?.map((app, index) => (h("a", { key: index, class: "external-app-link", target: "_blank", rel: "noopener noreferrer", href: app.url }, h("div", { class: "modal-app" }, h("div", null, app.name)))))), !this.organizationUrl ? (h("div", null, h("h3", { class: "gray-text" }, "Organization Domain URL not set"), h("p", { class: "gray-text" }, "Please set your Organization Domain URL on the Portal profile page."))) : (((!this.config?.menu?.local?.enableCustomLocalMenu &&
|
|
215
|
+
(this.localMenuLinks?.length ?? 0) === 0) ||
|
|
216
|
+
(this.config?.menu?.local?.enableCustomLocalMenu &&
|
|
217
|
+
(this.config?.menu?.local?.links?.length ?? 0) === 0)) && (h("div", null, h("h3", { class: "gray-text" }, "No installed ", this.config?.menu?.local?.name || "menu", " found."), h("p", { class: "gray-text" }, "Please contact administration.")))))))))), h("div", { key: 'd2c499ba4bd4d09e17960b170e36baac18b807ae', id: "appPermissionErrorModal", class: "modal" }, h("div", { key: '834c6c3a8ef38367d50edb86c87eea6926813929', class: "modal-content" }, h("img", { key: 'ac28c1c69c57dac9fbf5fb87923f71afc3c8253e', src: "data:image/png;base64,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" }), h("h2", { key: '404c7eb189b4ad09885e01bc8b98a483a50a2fd4', class: "green-text margin-b" }, "You don't have permission to access this application."), h("h3", { key: 'f06e629f3832ea7b5e73f8daeb40900b0342fa07', class: "green-text" }, "Please contact the administration."), (this.config.defaultLink.url && this.showUnauthorizedModal) ?
|
|
249
218
|
h("div", null, h("h4", { class: "gray-text" }, "You will be automatically redirected to the portal."), h("div", { id: "countdown" }, h("div", { id: "countdown-number" }), h("svg", null, h("circle", { r: "18", cx: "20", cy: "20" }))))
|
|
250
219
|
: h("div", null))));
|
|
251
220
|
}
|
|
@@ -442,6 +411,26 @@ export class DashButtonComponent {
|
|
|
442
411
|
"attribute": "accent-color",
|
|
443
412
|
"defaultValue": "\"\""
|
|
444
413
|
},
|
|
414
|
+
"showNotification": {
|
|
415
|
+
"type": "boolean",
|
|
416
|
+
"mutable": false,
|
|
417
|
+
"complexType": {
|
|
418
|
+
"original": "boolean",
|
|
419
|
+
"resolved": "boolean",
|
|
420
|
+
"references": {}
|
|
421
|
+
},
|
|
422
|
+
"required": false,
|
|
423
|
+
"optional": false,
|
|
424
|
+
"docs": {
|
|
425
|
+
"tags": [],
|
|
426
|
+
"text": ""
|
|
427
|
+
},
|
|
428
|
+
"getter": false,
|
|
429
|
+
"setter": false,
|
|
430
|
+
"reflect": false,
|
|
431
|
+
"attribute": "show-notification",
|
|
432
|
+
"defaultValue": "true"
|
|
433
|
+
},
|
|
445
434
|
"notificationPosition": {
|
|
446
435
|
"type": "string",
|
|
447
436
|
"mutable": false,
|