@blackbaud/sky-addin-client 1.7.4 → 1.8.0
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/CHANGELOG.md +4 -0
- package/README.md +25 -1
- package/bundles/sky-addin-client.global-es2015.js +134 -4
- package/bundles/sky-addin-client.global-es2015.min.js +1 -1
- package/bundles/sky-addin-client.global.js +137 -4
- package/bundles/sky-addin-client.global.min.js +1 -1
- package/bundles/sky-addin-client.umd-es2015.js +134 -4
- package/bundles/sky-addin-client.umd-es2015.min.js +1 -1
- package/bundles/sky-addin-client.umd.js +137 -4
- package/bundles/sky-addin-client.umd.min.js +1 -1
- package/package.json +1 -1
- package/src/addin/addin-client.d.ts +33 -0
- package/src/addin/addin-client.js +124 -0
- package/src/addin/addin-client.js.map +1 -1
- package/src/addin/addin-client.spec.js +318 -0
- package/src/addin/addin-client.spec.js.map +1 -1
- package/src/addin/client-interfaces/addin-client-init-args.d.ts +6 -0
- package/src/addin/client-interfaces/addin-modal-config.d.ts +20 -0
- package/src/addin/client-interfaces/addin-type.d.ts +4 -0
- package/src/addin/client-interfaces/addin-type.js +3 -0
- package/src/addin/client-interfaces/addin-type.js.map +1 -0
- package/src/addin/client-interfaces/index.d.ts +1 -0
- package/src/addin/client-interfaces/index.js +1 -0
- package/src/addin/client-interfaces/index.js.map +1 -1
- package/src/addin/host-interfaces/addin-host-message.d.ts +5 -0
|
@@ -55,7 +55,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
55
55
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
56
56
|
__exportStar(__webpack_require__(2), exports);
|
|
57
57
|
__exportStar(__webpack_require__(3), exports);
|
|
58
|
-
__exportStar(__webpack_require__(
|
|
58
|
+
__exportStar(__webpack_require__(35), exports);
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
/***/ }),
|
|
@@ -91,6 +91,31 @@ const allowedOrigins = [
|
|
|
91
91
|
/^https\:\/\/[\w\-\.]+\.justgiving\.com$/,
|
|
92
92
|
/^https\:\/\/sky\.blackbaudcdn\.net$/
|
|
93
93
|
];
|
|
94
|
+
/**
|
|
95
|
+
* Add-in types recognized by this client. Typed as a record so that every
|
|
96
|
+
* AddinType must be listed here.
|
|
97
|
+
*/
|
|
98
|
+
const knownAddinTypes = {
|
|
99
|
+
'action-button': true,
|
|
100
|
+
'box': true,
|
|
101
|
+
'button': true,
|
|
102
|
+
'dataset': true,
|
|
103
|
+
'flyout': true,
|
|
104
|
+
'generic': true,
|
|
105
|
+
'modal': true,
|
|
106
|
+
'page': true,
|
|
107
|
+
'tab': true,
|
|
108
|
+
'tile': true,
|
|
109
|
+
'vertical-tab-form': true
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Inline declarations that make an element's background transparent. Inline styles
|
|
113
|
+
* are used rather than a style element so they are not blocked by a Content Security Policy.
|
|
114
|
+
*/
|
|
115
|
+
const transparentBackgroundDeclarations = [
|
|
116
|
+
{ property: 'background-color', value: 'transparent' },
|
|
117
|
+
{ property: 'background-image', value: 'none' }
|
|
118
|
+
];
|
|
94
119
|
/**
|
|
95
120
|
* Client for interacting with the parent page hosting the add-in.
|
|
96
121
|
*/
|
|
@@ -149,6 +174,14 @@ class AddinClient {
|
|
|
149
174
|
* The add-in client will throw an error if an event is attempted but not one the supported types.
|
|
150
175
|
*/
|
|
151
176
|
this.supportedEventTypes = [];
|
|
177
|
+
/**
|
|
178
|
+
* Indicates whether the client has been destroyed.
|
|
179
|
+
*/
|
|
180
|
+
this.destroyed = false;
|
|
181
|
+
/**
|
|
182
|
+
* Inline background declarations replaced by this client to make the document transparent.
|
|
183
|
+
*/
|
|
184
|
+
this.replacedBackgroundDeclarations = [];
|
|
152
185
|
/**
|
|
153
186
|
* Collection of regexs for our whitelist of host origins.
|
|
154
187
|
*/
|
|
@@ -170,6 +203,8 @@ class AddinClient {
|
|
|
170
203
|
if (this.heightChangeIntervalId) {
|
|
171
204
|
clearInterval(this.heightChangeIntervalId);
|
|
172
205
|
}
|
|
206
|
+
this.cleanupTransparentBackground();
|
|
207
|
+
this.destroyed = true;
|
|
173
208
|
}
|
|
174
209
|
/**
|
|
175
210
|
* Requests the host page to navigate.
|
|
@@ -401,6 +436,87 @@ class AddinClient {
|
|
|
401
436
|
}, []);
|
|
402
437
|
}
|
|
403
438
|
}
|
|
439
|
+
/**
|
|
440
|
+
* Applies the client-owned document transparency for a modal add-in.
|
|
441
|
+
* @param style The modal style from the ready args.
|
|
442
|
+
*/
|
|
443
|
+
applyModalStyle(style) {
|
|
444
|
+
if ((style === null || style === void 0 ? void 0 : style.transparentBackground) !== true) {
|
|
445
|
+
this.cleanupTransparentBackground();
|
|
446
|
+
return;
|
|
447
|
+
}
|
|
448
|
+
this.makeBackgroundTransparent(document.documentElement);
|
|
449
|
+
if (document.body) {
|
|
450
|
+
this.makeBackgroundTransparent(document.body);
|
|
451
|
+
}
|
|
452
|
+
else if (!this.bodyReadyHandler) {
|
|
453
|
+
// The body does not exist yet if ready is called while the document is still parsing.
|
|
454
|
+
this.bodyReadyHandler = () => {
|
|
455
|
+
this.bodyReadyHandler = undefined;
|
|
456
|
+
if (document.body) {
|
|
457
|
+
this.makeBackgroundTransparent(document.body);
|
|
458
|
+
}
|
|
459
|
+
};
|
|
460
|
+
document.addEventListener('DOMContentLoaded', this.bodyReadyHandler, { once: true });
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* Makes an element's background transparent with inline declarations, recording
|
|
465
|
+
* the declarations it replaces so they can be restored.
|
|
466
|
+
* @param element The element to make transparent.
|
|
467
|
+
*/
|
|
468
|
+
makeBackgroundTransparent(element) {
|
|
469
|
+
for (const declaration of transparentBackgroundDeclarations) {
|
|
470
|
+
const property = declaration.property;
|
|
471
|
+
const value = element.style.getPropertyValue(property);
|
|
472
|
+
const priority = element.style.getPropertyPriority(property);
|
|
473
|
+
// Leave an existing transparent declaration alone, whether it was set by this client
|
|
474
|
+
// on an earlier ready call or by the add-in itself.
|
|
475
|
+
if (value !== declaration.value || priority !== 'important') {
|
|
476
|
+
this.replacedBackgroundDeclarations.push({
|
|
477
|
+
element,
|
|
478
|
+
priority,
|
|
479
|
+
property,
|
|
480
|
+
transparentValue: declaration.value,
|
|
481
|
+
value
|
|
482
|
+
});
|
|
483
|
+
element.style.setProperty(property, declaration.value, 'important');
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
/**
|
|
488
|
+
* Restores document background declarations replaced by this client.
|
|
489
|
+
*/
|
|
490
|
+
cleanupTransparentBackground() {
|
|
491
|
+
if (this.bodyReadyHandler) {
|
|
492
|
+
document.removeEventListener('DOMContentLoaded', this.bodyReadyHandler);
|
|
493
|
+
this.bodyReadyHandler = undefined;
|
|
494
|
+
}
|
|
495
|
+
for (const replaced of this.replacedBackgroundDeclarations) {
|
|
496
|
+
const style = replaced.element.style;
|
|
497
|
+
// Don't restore over a declaration the add-in has changed since this client set it.
|
|
498
|
+
if (style.getPropertyValue(replaced.property) === replaced.transparentValue &&
|
|
499
|
+
style.getPropertyPriority(replaced.property) === 'important') {
|
|
500
|
+
if (replaced.value) {
|
|
501
|
+
style.setProperty(replaced.property, replaced.value, replaced.priority);
|
|
502
|
+
}
|
|
503
|
+
else {
|
|
504
|
+
style.removeProperty(replaced.property);
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
this.replacedBackgroundDeclarations = [];
|
|
509
|
+
}
|
|
510
|
+
/**
|
|
511
|
+
* Returns the add-in type provided by the host if this client recognizes it.
|
|
512
|
+
* @param addinType The add-in type provided by the host.
|
|
513
|
+
* @returns The add-in type, or undefined if it is missing or unrecognized.
|
|
514
|
+
*/
|
|
515
|
+
getKnownAddinType(addinType) {
|
|
516
|
+
if (typeof addinType === 'string' && knownAddinTypes.hasOwnProperty(addinType)) {
|
|
517
|
+
return addinType;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
404
520
|
/**
|
|
405
521
|
* Post a message to the host page informing it that the add-in is
|
|
406
522
|
* now started and listening for messages from the host.
|
|
@@ -468,9 +584,14 @@ class AddinClient {
|
|
|
468
584
|
this.supportedEventTypes = data.message.supportedEventTypes || [];
|
|
469
585
|
// Pass key data to the add-in for it to initiailze.
|
|
470
586
|
this.args.callbacks.init({
|
|
587
|
+
addinType: this.getKnownAddinType(data.message.addinType),
|
|
471
588
|
context: data.message.context,
|
|
472
589
|
envId: data.message.envId,
|
|
473
590
|
ready: (args) => {
|
|
591
|
+
var _a;
|
|
592
|
+
if (!this.destroyed) {
|
|
593
|
+
this.applyModalStyle((_a = args === null || args === void 0 ? void 0 : args.modalConfig) === null || _a === void 0 ? void 0 : _a.style);
|
|
594
|
+
}
|
|
474
595
|
// Do an immediate height check since the add-in may render something
|
|
475
596
|
// due to the context provided. No need to wait a full second to reflect.
|
|
476
597
|
this.checkForHeightChangesOfAddinContent();
|
|
@@ -776,6 +897,7 @@ __exportStar(__webpack_require__(30), exports);
|
|
|
776
897
|
__exportStar(__webpack_require__(31), exports);
|
|
777
898
|
__exportStar(__webpack_require__(32), exports);
|
|
778
899
|
__exportStar(__webpack_require__(33), exports);
|
|
900
|
+
__exportStar(__webpack_require__(34), exports);
|
|
779
901
|
|
|
780
902
|
|
|
781
903
|
/***/ }),
|
|
@@ -1088,6 +1210,14 @@ var AddinToastStyle;
|
|
|
1088
1210
|
|
|
1089
1211
|
/***/ }),
|
|
1090
1212
|
/* 34 */
|
|
1213
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
1214
|
+
|
|
1215
|
+
|
|
1216
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1217
|
+
|
|
1218
|
+
|
|
1219
|
+
/***/ }),
|
|
1220
|
+
/* 35 */
|
|
1091
1221
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
1092
1222
|
|
|
1093
1223
|
|
|
@@ -1106,12 +1236,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
1106
1236
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
1107
1237
|
};
|
|
1108
1238
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1109
|
-
__exportStar(__webpack_require__(35), exports);
|
|
1110
1239
|
__exportStar(__webpack_require__(36), exports);
|
|
1240
|
+
__exportStar(__webpack_require__(37), exports);
|
|
1111
1241
|
|
|
1112
1242
|
|
|
1113
1243
|
/***/ }),
|
|
1114
|
-
/*
|
|
1244
|
+
/* 36 */
|
|
1115
1245
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1116
1246
|
|
|
1117
1247
|
|
|
@@ -1119,7 +1249,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
1119
1249
|
|
|
1120
1250
|
|
|
1121
1251
|
/***/ }),
|
|
1122
|
-
/*
|
|
1252
|
+
/* 37 */
|
|
1123
1253
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1124
1254
|
|
|
1125
1255
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.BBSkyAddinClient=t():e.BBSkyAddinClient=t()}(self,(()=>(()=>{"use strict";var e={789:function(e,t,s){var o=this&&this.__createBinding||(Object.create?function(e,t,s,o){void 0===o&&(o=s);var i=Object.getOwnPropertyDescriptor(t,s);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,o,i)}:function(e,t,s,o){void 0===o&&(o=s),e[o]=t[s]}),i=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||o(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),i(s(983),t)},903:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AddinClient=void 0;const s=[/^https\:\/\/[\w\-\.]+\.blackbaud\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaud\-dev\.com$/,/^http\:\/\/[\w\-\.]+\.blackbaud\-dev\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaud\-test\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaudhosting\.com$/,/^https\:\/\/[\w\-\.]+\.bbcloudservices\.com$/,/^https\:\/\/localhost(\:[0-9]+)?$/,/^https\:\/\/secure[2|3|8]\.convio\.net$/,/^https\:\/\/testweb\.convio\.com$/,/^https\:\/\/[\w\-\.]+\.conviocloud\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaudcloud\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaudfaith\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaudportal\.com$/,/^https\:\/\/[\w\-\.]+\.bbk12\.com$/,/^https\:\/\/[\w\-\.]+\.mycampus\-app\.com$/,/^https\:\/\/[\w\-\.]+\.myschoolapp\.com$/,/^https\:\/\/[\w\-\.]+\.myschoolautomation\.com$/,/^https\:\/\/[\w\-\.]+\.myschooldemo\.com$/,/^https\:\/\/[\w\-\.]+\.myschooltraining\.com$/,/^https\:\/\/[\w\-\.]+\.justgiving\.com$/,/^https\:\/\/sky\.blackbaudcdn\.net$/];class o{static getQueryString(){return window.location.search}constructor(e){this.args=e,this.authTokenRequests=[],this.lastAuthTokenRequestId=0,this.modalRequests=[],this.lastModalRequestId=0,this.registeredAddinEvents={},this.sentEvents={},this.pendingSentEvents={},this.eventRequestId=0,this.supportedEventTypes=[],this.allowedOrigins=s,this.initConfig(e.config),this.windowMessageHandler=e=>{this.handleMessage(e)},window.addEventListener("message",this.windowMessageHandler),this.raiseAddinReadyMessage()}destroy(){window.removeEventListener("message",this.windowMessageHandler),this.heightChangeIntervalId&&clearInterval(this.heightChangeIntervalId)}navigate(e){this.postMessageToHostPage({message:{url:e.url},messageType:"navigate"})}getAuthToken(){return this.getUserIdentityToken()}getUserIdentityToken(){return new Promise(((e,t)=>{const s=++this.lastAuthTokenRequestId;this.authTokenRequests[s]={reject:t,resolve:e},this.postMessageToHostPage({message:{authTokenRequestId:s},messageType:"get-auth-token"})}))}showModal(e){return{modalClosed:new Promise(((t,s)=>{const o=++this.lastModalRequestId;this.modalRequests[o]={reject:s,resolve:t},this.postMessageToHostPage({message:{args:e,modalRequestId:o},messageType:"show-modal"})}))}}closeModal(e){this.postMessageToHostPage({message:e,messageType:"close-modal"})}openHelp(e){this.postMessageToHostPage({message:{helpKey:e.helpKey},messageType:"open-help"})}showToast(e){this.postMessageToHostPage({message:e,messageType:"show-toast"})}showFlyout(e){return{flyoutClosed:new Promise(((t,s)=>{e.defaultWidth=e.defaultWidth,e.maxWidth=e.maxWidth,e.minWidth=e.minWidth,this.flyoutRequest={reject:s,resolve:t},this.postMessageToHostPage({message:e,messageType:"show-flyout"})}))}}closeFlyout(){this.postMessageToHostPage({messageType:"close-flyout"})}showConfirm(e){return new Promise(((t,s)=>{this.confirmRequest={reject:s,resolve:t},this.postMessageToHostPage({message:e,messageType:"show-confirm"})}))}showError(e){this.postMessageToHostPage({message:e,messageType:"show-error"})}showWait(){this.postMessageToHostPage({messageType:"show-wait"})}hideWait(){this.postMessageToHostPage({messageType:"hide-wait"})}addEventHandler(e,t){this.registeredAddinEvents[e]=t}sendEvent(e){return new Promise(((t,s)=>{const o=e.type;this.supportedEventTypes.includes(o)||s("Event type not supported");const i=this.pendingSentEvents[o];i&&(clearTimeout(i.timeoutId),i.reject("Event cancelled"));const n=setTimeout((()=>{delete this.pendingSentEvents[o],this.postMessageToHostPage({message:{event:e,eventRequestId:this.eventRequestId},messageType:"client-event"}),this.sentEvents[this.eventRequestId]=t,this.eventRequestId++}),200);this.pendingSentEvents[o]={reject:s,timeoutId:n}}))}initConfig(e){var t;(null===(t=null==e?void 0:e.allowedOrigins)||void 0===t?void 0:t.length)>0&&(this.allowedOrigins=this.allowedOrigins.concat(e.allowedOrigins),this.allowedOrigins=this.allowedOrigins.reduce(((e,t)=>(e.find((e=>e.source===t.source))||e.push(t),e)),[]))}raiseAddinReadyMessage(){this.postMessageToHostPage({messageType:"ready"},"*")}handleModalClosedMessage(e){const t=this.modalRequests,s=e.modalRequestId;t[s].resolve(e.context),t[s]=void 0}handleAuthTokenMessage(e){const t=this.authTokenRequests,s=e.message.authTokenRequestId,o=t[s];switch(e.messageType){case"auth-token":const t=e.message.authToken;o.resolve(t);break;case"auth-token-fail":o.reject(e.message.reason)}t[s]=void 0}handleMessage(e){const t=e.data;if(t&&"bb-addin-host"===t.source)if("host-ready"===t.messageType)this.setKnownAllowedHostOrigin(e.origin),this.trackHeightChangesOfAddinContent(),this.supportedEventTypes=t.message.supportedEventTypes||[],this.args.callbacks.init({context:t.message.context,envId:t.message.envId,ready:e=>{this.checkForHeightChangesOfAddinContent(),this.postMessageToHostPage({message:e,messageType:"addin-ready"})},supportedEventTypes:this.supportedEventTypes,themeSettings:t.message.themeSettings});else if(this.isFromValidOrigin(e))switch(t.messageType){case"action-click":this.args.callbacks.actionClick&&this.args.callbacks.actionClick(t.message.reason);break;case"auth-token":case"auth-token-fail":this.handleAuthTokenMessage(t);break;case"modal-closed":this.handleModalClosedMessage(t.message);break;case"button-click":this.args.callbacks.buttonClick&&this.args.callbacks.buttonClick();break;case"update-context":this.args.callbacks.updateContext&&this.args.callbacks.updateContext(t.message);break;case"confirm-closed":this.confirmRequest&&(this.confirmRequest.resolve(t.message.reason),this.confirmRequest=void 0);break;case"flyout-closed":this.flyoutRequest&&(this.flyoutRequest.resolve(),this.flyoutRequest=void 0);break;case"flyout-next-click":this.args.callbacks.flyoutNextClick&&this.args.callbacks.flyoutNextClick();break;case"flyout-previous-click":this.args.callbacks.flyoutPreviousClick&&this.args.callbacks.flyoutPreviousClick();break;case"help-click":this.args.callbacks.helpClick&&this.args.callbacks.helpClick();break;case"inline-help-click":this.args.callbacks.inlineHelpClick&&this.args.callbacks.inlineHelpClick();break;case"settings-click":this.args.callbacks.settingsClick&&this.args.callbacks.settingsClick();break;case"theme-change":this.args.callbacks.themeChange&&this.args.callbacks.themeChange(t.message.themeSettings);break;case"host-event":this.processHostEvent(t.message);break;case"event-received":this.resolveClientEvent(t.message)}else this.warnInvalidOrigin()}setKnownAllowedHostOrigin(e){for(const t of this.allowedOrigins)if(t.test(e))return void(this.trustedOrigin=e)}checkForHeightChangesOfAddinContent(){const e=document.documentElement.offsetHeight;e!==this.lastPostedIframeHeight&&(this.lastPostedIframeHeight=e,this.postMessageToHostPage({message:{height:e+"px"},messageType:"height-change"}))}trackHeightChangesOfAddinContent(){this.heightChangeIntervalId=setInterval((()=>{this.checkForHeightChangesOfAddinContent()}),1e3)}postMessageToHostPage(e,t){e.source="bb-addin-client",e.addinId=this.getQueryVariable("addinId"),(t=t||this.trustedOrigin)?window.parent.postMessage(e,t):this.warnInvalidOrigin()}processHostEvent(e){const t=e.context,s=this.registeredAddinEvents[t.type];let o;o=s?this.isBlockingEventType(t.type)?new Promise((e=>{s(t.context,(t=>{e(t)}))})):new Promise((e=>{s(t.context),e(void 0)})):Promise.resolve(),o.then((t=>this.postEventReceivedMessage(e.eventRequestId,t)))}isBlockingEventType(e){switch(e){case"form-save":case"form-cancel":case"load-data":return!0}return!1}postEventReceivedMessage(e,t){this.postMessageToHostPage({message:{eventRequestId:e,data:t},messageType:"event-received"})}resolveClientEvent(e){const t=e.eventRequestId,s=this.sentEvents[t];s&&(s(),delete this.sentEvents[t])}isFromValidOrigin(e){return e.origin===this.trustedOrigin}warnInvalidOrigin(){console.warn("The origin is not trusted because the host-ready message has not been sent or because the host origin is not a whitelisted origin.")}getQueryVariable(e){const t=o.getQueryString().substring(1).split("&");for(const s of t){const t=s.split("=");if(decodeURIComponent(t[0])===e)return decodeURIComponent(t[1])}}}t.AddinClient=o},93:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},294:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},714:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},819:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinButtonStyle=void 0,(s=t.AddinButtonStyle||(t.AddinButtonStyle={}))[s.None=0]="None",s[s.Add=1]="Add",s[s.Edit=2]="Edit",s[s.Delete=3]="Delete"},676:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},233:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},455:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},407:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},75:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},258:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},413:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},954:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},663:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},542:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},610:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},95:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},581:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},342:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},790:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},212:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},88:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},90:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},948:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},468:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinConfirmButtonStyle=void 0,(s=t.AddinConfirmButtonStyle||(t.AddinConfirmButtonStyle={}))[s.Default=0]="Default",s[s.Primary=1]="Primary",s[s.Link=2]="Link"},756:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},545:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},993:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinTabSummaryStyle=void 0,(s=t.AddinTabSummaryStyle||(t.AddinTabSummaryStyle={}))[s.None=0]="None",s[s.Text=1]="Text"},518:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},590:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinTileSummaryStyle=void 0,(s=t.AddinTileSummaryStyle||(t.AddinTileSummaryStyle={}))[s.None=0]="None",s[s.Text=1]="Text",s[s.Check=2]="Check"},480:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinToastStyle=void 0,(s=t.AddinToastStyle||(t.AddinToastStyle={}))[s.Danger=0]="Danger",s[s.Info=1]="Info",s[s.Success=2]="Success",s[s.Warning=3]="Warning"},142:function(e,t,s){var o=this&&this.__createBinding||(Object.create?function(e,t,s,o){void 0===o&&(o=s);var i=Object.getOwnPropertyDescriptor(t,s);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,o,i)}:function(e,t,s,o){void 0===o&&(o=s),e[o]=t[s]}),i=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||o(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),i(s(93),t),i(s(294),t),i(s(714),t),i(s(819),t),i(s(676),t),i(s(233),t),i(s(455),t),i(s(407),t),i(s(75),t),i(s(258),t),i(s(413),t),i(s(954),t),i(s(663),t),i(s(542),t),i(s(610),t),i(s(95),t),i(s(581),t),i(s(342),t),i(s(790),t),i(s(212),t),i(s(88),t),i(s(90),t),i(s(948),t),i(s(756),t),i(s(468),t),i(s(545),t),i(s(993),t),i(s(518),t),i(s(590),t),i(s(480),t)},220:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},606:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},57:function(e,t,s){var o=this&&this.__createBinding||(Object.create?function(e,t,s,o){void 0===o&&(o=s);var i=Object.getOwnPropertyDescriptor(t,s);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,o,i)}:function(e,t,s,o){void 0===o&&(o=s),e[o]=t[s]}),i=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||o(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),i(s(220),t),i(s(606),t)},983:function(e,t,s){var o=this&&this.__createBinding||(Object.create?function(e,t,s,o){void 0===o&&(o=s);var i=Object.getOwnPropertyDescriptor(t,s);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,o,i)}:function(e,t,s,o){void 0===o&&(o=s),e[o]=t[s]}),i=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||o(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),i(s(903),t),i(s(142),t),i(s(57),t)}},t={};return function s(o){var i=t[o];if(void 0!==i)return i.exports;var n=t[o]={exports:{}};return e[o].call(n.exports,n,n.exports,s),n.exports}(789)})()));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.BBSkyAddinClient=t():e.BBSkyAddinClient=t()}(self,(()=>(()=>{"use strict";var e={789:function(e,t,s){var o=this&&this.__createBinding||(Object.create?function(e,t,s,o){void 0===o&&(o=s);var a=Object.getOwnPropertyDescriptor(t,s);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,o,a)}:function(e,t,s,o){void 0===o&&(o=s),e[o]=t[s]}),a=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||o(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),a(s(983),t)},903:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AddinClient=void 0;const s=[/^https\:\/\/[\w\-\.]+\.blackbaud\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaud\-dev\.com$/,/^http\:\/\/[\w\-\.]+\.blackbaud\-dev\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaud\-test\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaudhosting\.com$/,/^https\:\/\/[\w\-\.]+\.bbcloudservices\.com$/,/^https\:\/\/localhost(\:[0-9]+)?$/,/^https\:\/\/secure[2|3|8]\.convio\.net$/,/^https\:\/\/testweb\.convio\.com$/,/^https\:\/\/[\w\-\.]+\.conviocloud\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaudcloud\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaudfaith\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaudportal\.com$/,/^https\:\/\/[\w\-\.]+\.bbk12\.com$/,/^https\:\/\/[\w\-\.]+\.mycampus\-app\.com$/,/^https\:\/\/[\w\-\.]+\.myschoolapp\.com$/,/^https\:\/\/[\w\-\.]+\.myschoolautomation\.com$/,/^https\:\/\/[\w\-\.]+\.myschooldemo\.com$/,/^https\:\/\/[\w\-\.]+\.myschooltraining\.com$/,/^https\:\/\/[\w\-\.]+\.justgiving\.com$/,/^https\:\/\/sky\.blackbaudcdn\.net$/],o={"action-button":!0,box:!0,button:!0,dataset:!0,flyout:!0,generic:!0,modal:!0,page:!0,tab:!0,tile:!0,"vertical-tab-form":!0},a=[{property:"background-color",value:"transparent"},{property:"background-image",value:"none"}];class n{static getQueryString(){return window.location.search}constructor(e){this.args=e,this.authTokenRequests=[],this.lastAuthTokenRequestId=0,this.modalRequests=[],this.lastModalRequestId=0,this.registeredAddinEvents={},this.sentEvents={},this.pendingSentEvents={},this.eventRequestId=0,this.supportedEventTypes=[],this.destroyed=!1,this.replacedBackgroundDeclarations=[],this.allowedOrigins=s,this.initConfig(e.config),this.windowMessageHandler=e=>{this.handleMessage(e)},window.addEventListener("message",this.windowMessageHandler),this.raiseAddinReadyMessage()}destroy(){window.removeEventListener("message",this.windowMessageHandler),this.heightChangeIntervalId&&clearInterval(this.heightChangeIntervalId),this.cleanupTransparentBackground(),this.destroyed=!0}navigate(e){this.postMessageToHostPage({message:{url:e.url},messageType:"navigate"})}getAuthToken(){return this.getUserIdentityToken()}getUserIdentityToken(){return new Promise(((e,t)=>{const s=++this.lastAuthTokenRequestId;this.authTokenRequests[s]={reject:t,resolve:e},this.postMessageToHostPage({message:{authTokenRequestId:s},messageType:"get-auth-token"})}))}showModal(e){return{modalClosed:new Promise(((t,s)=>{const o=++this.lastModalRequestId;this.modalRequests[o]={reject:s,resolve:t},this.postMessageToHostPage({message:{args:e,modalRequestId:o},messageType:"show-modal"})}))}}closeModal(e){this.postMessageToHostPage({message:e,messageType:"close-modal"})}openHelp(e){this.postMessageToHostPage({message:{helpKey:e.helpKey},messageType:"open-help"})}showToast(e){this.postMessageToHostPage({message:e,messageType:"show-toast"})}showFlyout(e){return{flyoutClosed:new Promise(((t,s)=>{e.defaultWidth=e.defaultWidth,e.maxWidth=e.maxWidth,e.minWidth=e.minWidth,this.flyoutRequest={reject:s,resolve:t},this.postMessageToHostPage({message:e,messageType:"show-flyout"})}))}}closeFlyout(){this.postMessageToHostPage({messageType:"close-flyout"})}showConfirm(e){return new Promise(((t,s)=>{this.confirmRequest={reject:s,resolve:t},this.postMessageToHostPage({message:e,messageType:"show-confirm"})}))}showError(e){this.postMessageToHostPage({message:e,messageType:"show-error"})}showWait(){this.postMessageToHostPage({messageType:"show-wait"})}hideWait(){this.postMessageToHostPage({messageType:"hide-wait"})}addEventHandler(e,t){this.registeredAddinEvents[e]=t}sendEvent(e){return new Promise(((t,s)=>{const o=e.type;this.supportedEventTypes.includes(o)||s("Event type not supported");const a=this.pendingSentEvents[o];a&&(clearTimeout(a.timeoutId),a.reject("Event cancelled"));const n=setTimeout((()=>{delete this.pendingSentEvents[o],this.postMessageToHostPage({message:{event:e,eventRequestId:this.eventRequestId},messageType:"client-event"}),this.sentEvents[this.eventRequestId]=t,this.eventRequestId++}),200);this.pendingSentEvents[o]={reject:s,timeoutId:n}}))}initConfig(e){var t;(null===(t=null==e?void 0:e.allowedOrigins)||void 0===t?void 0:t.length)>0&&(this.allowedOrigins=this.allowedOrigins.concat(e.allowedOrigins),this.allowedOrigins=this.allowedOrigins.reduce(((e,t)=>(e.find((e=>e.source===t.source))||e.push(t),e)),[]))}applyModalStyle(e){!0===(null==e?void 0:e.transparentBackground)?(this.makeBackgroundTransparent(document.documentElement),document.body?this.makeBackgroundTransparent(document.body):this.bodyReadyHandler||(this.bodyReadyHandler=()=>{this.bodyReadyHandler=void 0,document.body&&this.makeBackgroundTransparent(document.body)},document.addEventListener("DOMContentLoaded",this.bodyReadyHandler,{once:!0}))):this.cleanupTransparentBackground()}makeBackgroundTransparent(e){for(const t of a){const s=t.property,o=e.style.getPropertyValue(s),a=e.style.getPropertyPriority(s);o===t.value&&"important"===a||(this.replacedBackgroundDeclarations.push({element:e,priority:a,property:s,transparentValue:t.value,value:o}),e.style.setProperty(s,t.value,"important"))}}cleanupTransparentBackground(){this.bodyReadyHandler&&(document.removeEventListener("DOMContentLoaded",this.bodyReadyHandler),this.bodyReadyHandler=void 0);for(const e of this.replacedBackgroundDeclarations){const t=e.element.style;t.getPropertyValue(e.property)===e.transparentValue&&"important"===t.getPropertyPriority(e.property)&&(e.value?t.setProperty(e.property,e.value,e.priority):t.removeProperty(e.property))}this.replacedBackgroundDeclarations=[]}getKnownAddinType(e){if("string"==typeof e&&o.hasOwnProperty(e))return e}raiseAddinReadyMessage(){this.postMessageToHostPage({messageType:"ready"},"*")}handleModalClosedMessage(e){const t=this.modalRequests,s=e.modalRequestId;t[s].resolve(e.context),t[s]=void 0}handleAuthTokenMessage(e){const t=this.authTokenRequests,s=e.message.authTokenRequestId,o=t[s];switch(e.messageType){case"auth-token":const t=e.message.authToken;o.resolve(t);break;case"auth-token-fail":o.reject(e.message.reason)}t[s]=void 0}handleMessage(e){const t=e.data;if(t&&"bb-addin-host"===t.source)if("host-ready"===t.messageType)this.setKnownAllowedHostOrigin(e.origin),this.trackHeightChangesOfAddinContent(),this.supportedEventTypes=t.message.supportedEventTypes||[],this.args.callbacks.init({addinType:this.getKnownAddinType(t.message.addinType),context:t.message.context,envId:t.message.envId,ready:e=>{var t;this.destroyed||this.applyModalStyle(null===(t=null==e?void 0:e.modalConfig)||void 0===t?void 0:t.style),this.checkForHeightChangesOfAddinContent(),this.postMessageToHostPage({message:e,messageType:"addin-ready"})},supportedEventTypes:this.supportedEventTypes,themeSettings:t.message.themeSettings});else if(this.isFromValidOrigin(e))switch(t.messageType){case"action-click":this.args.callbacks.actionClick&&this.args.callbacks.actionClick(t.message.reason);break;case"auth-token":case"auth-token-fail":this.handleAuthTokenMessage(t);break;case"modal-closed":this.handleModalClosedMessage(t.message);break;case"button-click":this.args.callbacks.buttonClick&&this.args.callbacks.buttonClick();break;case"update-context":this.args.callbacks.updateContext&&this.args.callbacks.updateContext(t.message);break;case"confirm-closed":this.confirmRequest&&(this.confirmRequest.resolve(t.message.reason),this.confirmRequest=void 0);break;case"flyout-closed":this.flyoutRequest&&(this.flyoutRequest.resolve(),this.flyoutRequest=void 0);break;case"flyout-next-click":this.args.callbacks.flyoutNextClick&&this.args.callbacks.flyoutNextClick();break;case"flyout-previous-click":this.args.callbacks.flyoutPreviousClick&&this.args.callbacks.flyoutPreviousClick();break;case"help-click":this.args.callbacks.helpClick&&this.args.callbacks.helpClick();break;case"inline-help-click":this.args.callbacks.inlineHelpClick&&this.args.callbacks.inlineHelpClick();break;case"settings-click":this.args.callbacks.settingsClick&&this.args.callbacks.settingsClick();break;case"theme-change":this.args.callbacks.themeChange&&this.args.callbacks.themeChange(t.message.themeSettings);break;case"host-event":this.processHostEvent(t.message);break;case"event-received":this.resolveClientEvent(t.message)}else this.warnInvalidOrigin()}setKnownAllowedHostOrigin(e){for(const t of this.allowedOrigins)if(t.test(e))return void(this.trustedOrigin=e)}checkForHeightChangesOfAddinContent(){const e=document.documentElement.offsetHeight;e!==this.lastPostedIframeHeight&&(this.lastPostedIframeHeight=e,this.postMessageToHostPage({message:{height:e+"px"},messageType:"height-change"}))}trackHeightChangesOfAddinContent(){this.heightChangeIntervalId=setInterval((()=>{this.checkForHeightChangesOfAddinContent()}),1e3)}postMessageToHostPage(e,t){e.source="bb-addin-client",e.addinId=this.getQueryVariable("addinId"),(t=t||this.trustedOrigin)?window.parent.postMessage(e,t):this.warnInvalidOrigin()}processHostEvent(e){const t=e.context,s=this.registeredAddinEvents[t.type];let o;o=s?this.isBlockingEventType(t.type)?new Promise((e=>{s(t.context,(t=>{e(t)}))})):new Promise((e=>{s(t.context),e(void 0)})):Promise.resolve(),o.then((t=>this.postEventReceivedMessage(e.eventRequestId,t)))}isBlockingEventType(e){switch(e){case"form-save":case"form-cancel":case"load-data":return!0}return!1}postEventReceivedMessage(e,t){this.postMessageToHostPage({message:{eventRequestId:e,data:t},messageType:"event-received"})}resolveClientEvent(e){const t=e.eventRequestId,s=this.sentEvents[t];s&&(s(),delete this.sentEvents[t])}isFromValidOrigin(e){return e.origin===this.trustedOrigin}warnInvalidOrigin(){console.warn("The origin is not trusted because the host-ready message has not been sent or because the host origin is not a whitelisted origin.")}getQueryVariable(e){const t=n.getQueryString().substring(1).split("&");for(const s of t){const t=s.split("=");if(decodeURIComponent(t[0])===e)return decodeURIComponent(t[1])}}}t.AddinClient=n},93:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},294:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},714:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},819:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinButtonStyle=void 0,(s=t.AddinButtonStyle||(t.AddinButtonStyle={}))[s.None=0]="None",s[s.Add=1]="Add",s[s.Edit=2]="Edit",s[s.Delete=3]="Delete"},676:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},233:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},455:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},407:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},75:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},258:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},413:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},954:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},663:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},542:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},610:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},95:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},581:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},342:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},790:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},212:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},88:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},90:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},948:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},468:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinConfirmButtonStyle=void 0,(s=t.AddinConfirmButtonStyle||(t.AddinConfirmButtonStyle={}))[s.Default=0]="Default",s[s.Primary=1]="Primary",s[s.Link=2]="Link"},756:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},545:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},993:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinTabSummaryStyle=void 0,(s=t.AddinTabSummaryStyle||(t.AddinTabSummaryStyle={}))[s.None=0]="None",s[s.Text=1]="Text"},518:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},590:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinTileSummaryStyle=void 0,(s=t.AddinTileSummaryStyle||(t.AddinTileSummaryStyle={}))[s.None=0]="None",s[s.Text=1]="Text",s[s.Check=2]="Check"},480:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinToastStyle=void 0,(s=t.AddinToastStyle||(t.AddinToastStyle={}))[s.Danger=0]="Danger",s[s.Info=1]="Info",s[s.Success=2]="Success",s[s.Warning=3]="Warning"},671:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},142:function(e,t,s){var o=this&&this.__createBinding||(Object.create?function(e,t,s,o){void 0===o&&(o=s);var a=Object.getOwnPropertyDescriptor(t,s);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,o,a)}:function(e,t,s,o){void 0===o&&(o=s),e[o]=t[s]}),a=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||o(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),a(s(93),t),a(s(294),t),a(s(714),t),a(s(819),t),a(s(676),t),a(s(233),t),a(s(455),t),a(s(407),t),a(s(75),t),a(s(258),t),a(s(413),t),a(s(954),t),a(s(663),t),a(s(542),t),a(s(610),t),a(s(95),t),a(s(581),t),a(s(342),t),a(s(790),t),a(s(212),t),a(s(88),t),a(s(90),t),a(s(948),t),a(s(756),t),a(s(468),t),a(s(545),t),a(s(993),t),a(s(518),t),a(s(590),t),a(s(480),t),a(s(671),t)},220:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},606:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},57:function(e,t,s){var o=this&&this.__createBinding||(Object.create?function(e,t,s,o){void 0===o&&(o=s);var a=Object.getOwnPropertyDescriptor(t,s);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,o,a)}:function(e,t,s,o){void 0===o&&(o=s),e[o]=t[s]}),a=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||o(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),a(s(220),t),a(s(606),t)},983:function(e,t,s){var o=this&&this.__createBinding||(Object.create?function(e,t,s,o){void 0===o&&(o=s);var a=Object.getOwnPropertyDescriptor(t,s);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,o,a)}:function(e,t,s,o){void 0===o&&(o=s),e[o]=t[s]}),a=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||o(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),a(s(903),t),a(s(142),t),a(s(57),t)}},t={};return function s(o){var a=t[o];if(void 0!==a)return a.exports;var n=t[o]={exports:{}};return e[o].call(n.exports,n,n.exports,s),n.exports}(789)})()));
|
|
@@ -55,7 +55,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
55
55
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
56
56
|
__exportStar(__webpack_require__(2), exports);
|
|
57
57
|
__exportStar(__webpack_require__(3), exports);
|
|
58
|
-
__exportStar(__webpack_require__(
|
|
58
|
+
__exportStar(__webpack_require__(35), exports);
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
/***/ }),
|
|
@@ -91,6 +91,31 @@ var allowedOrigins = [
|
|
|
91
91
|
/^https\:\/\/[\w\-\.]+\.justgiving\.com$/,
|
|
92
92
|
/^https\:\/\/sky\.blackbaudcdn\.net$/
|
|
93
93
|
];
|
|
94
|
+
/**
|
|
95
|
+
* Add-in types recognized by this client. Typed as a record so that every
|
|
96
|
+
* AddinType must be listed here.
|
|
97
|
+
*/
|
|
98
|
+
var knownAddinTypes = {
|
|
99
|
+
'action-button': true,
|
|
100
|
+
'box': true,
|
|
101
|
+
'button': true,
|
|
102
|
+
'dataset': true,
|
|
103
|
+
'flyout': true,
|
|
104
|
+
'generic': true,
|
|
105
|
+
'modal': true,
|
|
106
|
+
'page': true,
|
|
107
|
+
'tab': true,
|
|
108
|
+
'tile': true,
|
|
109
|
+
'vertical-tab-form': true
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Inline declarations that make an element's background transparent. Inline styles
|
|
113
|
+
* are used rather than a style element so they are not blocked by a Content Security Policy.
|
|
114
|
+
*/
|
|
115
|
+
var transparentBackgroundDeclarations = [
|
|
116
|
+
{ property: 'background-color', value: 'transparent' },
|
|
117
|
+
{ property: 'background-image', value: 'none' }
|
|
118
|
+
];
|
|
94
119
|
/**
|
|
95
120
|
* Client for interacting with the parent page hosting the add-in.
|
|
96
121
|
*/
|
|
@@ -143,6 +168,14 @@ var AddinClient = /** @class */ (function () {
|
|
|
143
168
|
* The add-in client will throw an error if an event is attempted but not one the supported types.
|
|
144
169
|
*/
|
|
145
170
|
this.supportedEventTypes = [];
|
|
171
|
+
/**
|
|
172
|
+
* Indicates whether the client has been destroyed.
|
|
173
|
+
*/
|
|
174
|
+
this.destroyed = false;
|
|
175
|
+
/**
|
|
176
|
+
* Inline background declarations replaced by this client to make the document transparent.
|
|
177
|
+
*/
|
|
178
|
+
this.replacedBackgroundDeclarations = [];
|
|
146
179
|
/**
|
|
147
180
|
* Collection of regexs for our whitelist of host origins.
|
|
148
181
|
*/
|
|
@@ -171,6 +204,8 @@ var AddinClient = /** @class */ (function () {
|
|
|
171
204
|
if (this.heightChangeIntervalId) {
|
|
172
205
|
clearInterval(this.heightChangeIntervalId);
|
|
173
206
|
}
|
|
207
|
+
this.cleanupTransparentBackground();
|
|
208
|
+
this.destroyed = true;
|
|
174
209
|
};
|
|
175
210
|
/**
|
|
176
211
|
* Requests the host page to navigate.
|
|
@@ -407,6 +442,90 @@ var AddinClient = /** @class */ (function () {
|
|
|
407
442
|
}, []);
|
|
408
443
|
}
|
|
409
444
|
};
|
|
445
|
+
/**
|
|
446
|
+
* Applies the client-owned document transparency for a modal add-in.
|
|
447
|
+
* @param style The modal style from the ready args.
|
|
448
|
+
*/
|
|
449
|
+
AddinClient.prototype.applyModalStyle = function (style) {
|
|
450
|
+
var _this = this;
|
|
451
|
+
if ((style === null || style === void 0 ? void 0 : style.transparentBackground) !== true) {
|
|
452
|
+
this.cleanupTransparentBackground();
|
|
453
|
+
return;
|
|
454
|
+
}
|
|
455
|
+
this.makeBackgroundTransparent(document.documentElement);
|
|
456
|
+
if (document.body) {
|
|
457
|
+
this.makeBackgroundTransparent(document.body);
|
|
458
|
+
}
|
|
459
|
+
else if (!this.bodyReadyHandler) {
|
|
460
|
+
// The body does not exist yet if ready is called while the document is still parsing.
|
|
461
|
+
this.bodyReadyHandler = function () {
|
|
462
|
+
_this.bodyReadyHandler = undefined;
|
|
463
|
+
if (document.body) {
|
|
464
|
+
_this.makeBackgroundTransparent(document.body);
|
|
465
|
+
}
|
|
466
|
+
};
|
|
467
|
+
document.addEventListener('DOMContentLoaded', this.bodyReadyHandler, { once: true });
|
|
468
|
+
}
|
|
469
|
+
};
|
|
470
|
+
/**
|
|
471
|
+
* Makes an element's background transparent with inline declarations, recording
|
|
472
|
+
* the declarations it replaces so they can be restored.
|
|
473
|
+
* @param element The element to make transparent.
|
|
474
|
+
*/
|
|
475
|
+
AddinClient.prototype.makeBackgroundTransparent = function (element) {
|
|
476
|
+
for (var _i = 0, transparentBackgroundDeclarations_1 = transparentBackgroundDeclarations; _i < transparentBackgroundDeclarations_1.length; _i++) {
|
|
477
|
+
var declaration = transparentBackgroundDeclarations_1[_i];
|
|
478
|
+
var property = declaration.property;
|
|
479
|
+
var value = element.style.getPropertyValue(property);
|
|
480
|
+
var priority = element.style.getPropertyPriority(property);
|
|
481
|
+
// Leave an existing transparent declaration alone, whether it was set by this client
|
|
482
|
+
// on an earlier ready call or by the add-in itself.
|
|
483
|
+
if (value !== declaration.value || priority !== 'important') {
|
|
484
|
+
this.replacedBackgroundDeclarations.push({
|
|
485
|
+
element: element,
|
|
486
|
+
priority: priority,
|
|
487
|
+
property: property,
|
|
488
|
+
transparentValue: declaration.value,
|
|
489
|
+
value: value
|
|
490
|
+
});
|
|
491
|
+
element.style.setProperty(property, declaration.value, 'important');
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
};
|
|
495
|
+
/**
|
|
496
|
+
* Restores document background declarations replaced by this client.
|
|
497
|
+
*/
|
|
498
|
+
AddinClient.prototype.cleanupTransparentBackground = function () {
|
|
499
|
+
if (this.bodyReadyHandler) {
|
|
500
|
+
document.removeEventListener('DOMContentLoaded', this.bodyReadyHandler);
|
|
501
|
+
this.bodyReadyHandler = undefined;
|
|
502
|
+
}
|
|
503
|
+
for (var _i = 0, _a = this.replacedBackgroundDeclarations; _i < _a.length; _i++) {
|
|
504
|
+
var replaced = _a[_i];
|
|
505
|
+
var style = replaced.element.style;
|
|
506
|
+
// Don't restore over a declaration the add-in has changed since this client set it.
|
|
507
|
+
if (style.getPropertyValue(replaced.property) === replaced.transparentValue &&
|
|
508
|
+
style.getPropertyPriority(replaced.property) === 'important') {
|
|
509
|
+
if (replaced.value) {
|
|
510
|
+
style.setProperty(replaced.property, replaced.value, replaced.priority);
|
|
511
|
+
}
|
|
512
|
+
else {
|
|
513
|
+
style.removeProperty(replaced.property);
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
this.replacedBackgroundDeclarations = [];
|
|
518
|
+
};
|
|
519
|
+
/**
|
|
520
|
+
* Returns the add-in type provided by the host if this client recognizes it.
|
|
521
|
+
* @param addinType The add-in type provided by the host.
|
|
522
|
+
* @returns The add-in type, or undefined if it is missing or unrecognized.
|
|
523
|
+
*/
|
|
524
|
+
AddinClient.prototype.getKnownAddinType = function (addinType) {
|
|
525
|
+
if (typeof addinType === 'string' && knownAddinTypes.hasOwnProperty(addinType)) {
|
|
526
|
+
return addinType;
|
|
527
|
+
}
|
|
528
|
+
};
|
|
410
529
|
/**
|
|
411
530
|
* Post a message to the host page informing it that the add-in is
|
|
412
531
|
* now started and listening for messages from the host.
|
|
@@ -475,9 +594,14 @@ var AddinClient = /** @class */ (function () {
|
|
|
475
594
|
this.supportedEventTypes = data.message.supportedEventTypes || [];
|
|
476
595
|
// Pass key data to the add-in for it to initiailze.
|
|
477
596
|
this.args.callbacks.init({
|
|
597
|
+
addinType: this.getKnownAddinType(data.message.addinType),
|
|
478
598
|
context: data.message.context,
|
|
479
599
|
envId: data.message.envId,
|
|
480
600
|
ready: function (args) {
|
|
601
|
+
var _a;
|
|
602
|
+
if (!_this.destroyed) {
|
|
603
|
+
_this.applyModalStyle((_a = args === null || args === void 0 ? void 0 : args.modalConfig) === null || _a === void 0 ? void 0 : _a.style);
|
|
604
|
+
}
|
|
481
605
|
// Do an immediate height check since the add-in may render something
|
|
482
606
|
// due to the context provided. No need to wait a full second to reflect.
|
|
483
607
|
_this.checkForHeightChangesOfAddinContent();
|
|
@@ -788,6 +912,7 @@ __exportStar(__webpack_require__(30), exports);
|
|
|
788
912
|
__exportStar(__webpack_require__(31), exports);
|
|
789
913
|
__exportStar(__webpack_require__(32), exports);
|
|
790
914
|
__exportStar(__webpack_require__(33), exports);
|
|
915
|
+
__exportStar(__webpack_require__(34), exports);
|
|
791
916
|
|
|
792
917
|
|
|
793
918
|
/***/ }),
|
|
@@ -1100,6 +1225,14 @@ var AddinToastStyle;
|
|
|
1100
1225
|
|
|
1101
1226
|
/***/ }),
|
|
1102
1227
|
/* 34 */
|
|
1228
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
1229
|
+
|
|
1230
|
+
|
|
1231
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1232
|
+
|
|
1233
|
+
|
|
1234
|
+
/***/ }),
|
|
1235
|
+
/* 35 */
|
|
1103
1236
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
1104
1237
|
|
|
1105
1238
|
|
|
@@ -1118,12 +1251,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
1118
1251
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
1119
1252
|
};
|
|
1120
1253
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1121
|
-
__exportStar(__webpack_require__(35), exports);
|
|
1122
1254
|
__exportStar(__webpack_require__(36), exports);
|
|
1255
|
+
__exportStar(__webpack_require__(37), exports);
|
|
1123
1256
|
|
|
1124
1257
|
|
|
1125
1258
|
/***/ }),
|
|
1126
|
-
/*
|
|
1259
|
+
/* 36 */
|
|
1127
1260
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1128
1261
|
|
|
1129
1262
|
|
|
@@ -1131,7 +1264,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
1131
1264
|
|
|
1132
1265
|
|
|
1133
1266
|
/***/ }),
|
|
1134
|
-
/*
|
|
1267
|
+
/* 37 */
|
|
1135
1268
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1136
1269
|
|
|
1137
1270
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.BBSkyAddinClient=t():e.BBSkyAddinClient=t()}(self,(()=>(()=>{"use strict";var e={789:function(e,t,s){var o=this&&this.__createBinding||(Object.create?function(e,t,s,o){void 0===o&&(o=s);var n=Object.getOwnPropertyDescriptor(t,s);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,o,n)}:function(e,t,s,o){void 0===o&&(o=s),e[o]=t[s]}),n=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||o(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(s(983),t)},903:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AddinClient=void 0;var s=[/^https\:\/\/[\w\-\.]+\.blackbaud\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaud\-dev\.com$/,/^http\:\/\/[\w\-\.]+\.blackbaud\-dev\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaud\-test\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaudhosting\.com$/,/^https\:\/\/[\w\-\.]+\.bbcloudservices\.com$/,/^https\:\/\/localhost(\:[0-9]+)?$/,/^https\:\/\/secure[2|3|8]\.convio\.net$/,/^https\:\/\/testweb\.convio\.com$/,/^https\:\/\/[\w\-\.]+\.conviocloud\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaudcloud\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaudfaith\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaudportal\.com$/,/^https\:\/\/[\w\-\.]+\.bbk12\.com$/,/^https\:\/\/[\w\-\.]+\.mycampus\-app\.com$/,/^https\:\/\/[\w\-\.]+\.myschoolapp\.com$/,/^https\:\/\/[\w\-\.]+\.myschoolautomation\.com$/,/^https\:\/\/[\w\-\.]+\.myschooldemo\.com$/,/^https\:\/\/[\w\-\.]+\.myschooltraining\.com$/,/^https\:\/\/[\w\-\.]+\.justgiving\.com$/,/^https\:\/\/sky\.blackbaudcdn\.net$/],o=function(){function e(e){var t=this;this.args=e,this.authTokenRequests=[],this.lastAuthTokenRequestId=0,this.modalRequests=[],this.lastModalRequestId=0,this.registeredAddinEvents={},this.sentEvents={},this.pendingSentEvents={},this.eventRequestId=0,this.supportedEventTypes=[],this.allowedOrigins=s,this.initConfig(e.config),this.windowMessageHandler=function(e){t.handleMessage(e)},window.addEventListener("message",this.windowMessageHandler),this.raiseAddinReadyMessage()}return e.getQueryString=function(){return window.location.search},e.prototype.destroy=function(){window.removeEventListener("message",this.windowMessageHandler),this.heightChangeIntervalId&&clearInterval(this.heightChangeIntervalId)},e.prototype.navigate=function(e){this.postMessageToHostPage({message:{url:e.url},messageType:"navigate"})},e.prototype.getAuthToken=function(){return this.getUserIdentityToken()},e.prototype.getUserIdentityToken=function(){var e=this;return new Promise((function(t,s){var o=++e.lastAuthTokenRequestId;e.authTokenRequests[o]={reject:s,resolve:t},e.postMessageToHostPage({message:{authTokenRequestId:o},messageType:"get-auth-token"})}))},e.prototype.showModal=function(e){var t=this;return{modalClosed:new Promise((function(s,o){var n=++t.lastModalRequestId;t.modalRequests[n]={reject:o,resolve:s},t.postMessageToHostPage({message:{args:e,modalRequestId:n},messageType:"show-modal"})}))}},e.prototype.closeModal=function(e){this.postMessageToHostPage({message:e,messageType:"close-modal"})},e.prototype.openHelp=function(e){this.postMessageToHostPage({message:{helpKey:e.helpKey},messageType:"open-help"})},e.prototype.showToast=function(e){this.postMessageToHostPage({message:e,messageType:"show-toast"})},e.prototype.showFlyout=function(e){var t=this;return{flyoutClosed:new Promise((function(s,o){e.defaultWidth=e.defaultWidth,e.maxWidth=e.maxWidth,e.minWidth=e.minWidth,t.flyoutRequest={reject:o,resolve:s},t.postMessageToHostPage({message:e,messageType:"show-flyout"})}))}},e.prototype.closeFlyout=function(){this.postMessageToHostPage({messageType:"close-flyout"})},e.prototype.showConfirm=function(e){var t=this;return new Promise((function(s,o){t.confirmRequest={reject:o,resolve:s},t.postMessageToHostPage({message:e,messageType:"show-confirm"})}))},e.prototype.showError=function(e){this.postMessageToHostPage({message:e,messageType:"show-error"})},e.prototype.showWait=function(){this.postMessageToHostPage({messageType:"show-wait"})},e.prototype.hideWait=function(){this.postMessageToHostPage({messageType:"hide-wait"})},e.prototype.addEventHandler=function(e,t){this.registeredAddinEvents[e]=t},e.prototype.sendEvent=function(e){var t=this;return new Promise((function(s,o){var n=e.type;t.supportedEventTypes.includes(n)||o("Event type not supported");var i=t.pendingSentEvents[n];i&&(clearTimeout(i.timeoutId),i.reject("Event cancelled"));var a=setTimeout((function(){delete t.pendingSentEvents[n],t.postMessageToHostPage({message:{event:e,eventRequestId:t.eventRequestId},messageType:"client-event"}),t.sentEvents[t.eventRequestId]=s,t.eventRequestId++}),200);t.pendingSentEvents[n]={reject:o,timeoutId:a}}))},e.prototype.initConfig=function(e){var t;(null===(t=null==e?void 0:e.allowedOrigins)||void 0===t?void 0:t.length)>0&&(this.allowedOrigins=this.allowedOrigins.concat(e.allowedOrigins),this.allowedOrigins=this.allowedOrigins.reduce((function(e,t){return e.find((function(e){return e.source===t.source}))||e.push(t),e}),[]))},e.prototype.raiseAddinReadyMessage=function(){this.postMessageToHostPage({messageType:"ready"},"*")},e.prototype.handleModalClosedMessage=function(e){var t=this.modalRequests,s=e.modalRequestId;t[s].resolve(e.context),t[s]=void 0},e.prototype.handleAuthTokenMessage=function(e){var t=this.authTokenRequests,s=e.message.authTokenRequestId,o=t[s];switch(e.messageType){case"auth-token":var n=e.message.authToken;o.resolve(n);break;case"auth-token-fail":o.reject(e.message.reason)}t[s]=void 0},e.prototype.handleMessage=function(e){var t=this,s=e.data;if(s&&"bb-addin-host"===s.source)if("host-ready"===s.messageType)this.setKnownAllowedHostOrigin(e.origin),this.trackHeightChangesOfAddinContent(),this.supportedEventTypes=s.message.supportedEventTypes||[],this.args.callbacks.init({context:s.message.context,envId:s.message.envId,ready:function(e){t.checkForHeightChangesOfAddinContent(),t.postMessageToHostPage({message:e,messageType:"addin-ready"})},supportedEventTypes:this.supportedEventTypes,themeSettings:s.message.themeSettings});else if(this.isFromValidOrigin(e))switch(s.messageType){case"action-click":this.args.callbacks.actionClick&&this.args.callbacks.actionClick(s.message.reason);break;case"auth-token":case"auth-token-fail":this.handleAuthTokenMessage(s);break;case"modal-closed":this.handleModalClosedMessage(s.message);break;case"button-click":this.args.callbacks.buttonClick&&this.args.callbacks.buttonClick();break;case"update-context":this.args.callbacks.updateContext&&this.args.callbacks.updateContext(s.message);break;case"confirm-closed":this.confirmRequest&&(this.confirmRequest.resolve(s.message.reason),this.confirmRequest=void 0);break;case"flyout-closed":this.flyoutRequest&&(this.flyoutRequest.resolve(),this.flyoutRequest=void 0);break;case"flyout-next-click":this.args.callbacks.flyoutNextClick&&this.args.callbacks.flyoutNextClick();break;case"flyout-previous-click":this.args.callbacks.flyoutPreviousClick&&this.args.callbacks.flyoutPreviousClick();break;case"help-click":this.args.callbacks.helpClick&&this.args.callbacks.helpClick();break;case"inline-help-click":this.args.callbacks.inlineHelpClick&&this.args.callbacks.inlineHelpClick();break;case"settings-click":this.args.callbacks.settingsClick&&this.args.callbacks.settingsClick();break;case"theme-change":this.args.callbacks.themeChange&&this.args.callbacks.themeChange(s.message.themeSettings);break;case"host-event":this.processHostEvent(s.message);break;case"event-received":this.resolveClientEvent(s.message)}else this.warnInvalidOrigin()},e.prototype.setKnownAllowedHostOrigin=function(e){for(var t=0,s=this.allowedOrigins;t<s.length;t++)if(s[t].test(e))return void(this.trustedOrigin=e)},e.prototype.checkForHeightChangesOfAddinContent=function(){var e=document.documentElement.offsetHeight;e!==this.lastPostedIframeHeight&&(this.lastPostedIframeHeight=e,this.postMessageToHostPage({message:{height:e+"px"},messageType:"height-change"}))},e.prototype.trackHeightChangesOfAddinContent=function(){var e=this;this.heightChangeIntervalId=setInterval((function(){e.checkForHeightChangesOfAddinContent()}),1e3)},e.prototype.postMessageToHostPage=function(e,t){e.source="bb-addin-client",e.addinId=this.getQueryVariable("addinId"),(t=t||this.trustedOrigin)?window.parent.postMessage(e,t):this.warnInvalidOrigin()},e.prototype.processHostEvent=function(e){var t=this,s=e.context,o=this.registeredAddinEvents[s.type];(o?this.isBlockingEventType(s.type)?new Promise((function(e){o(s.context,(function(t){e(t)}))})):new Promise((function(e){o(s.context),e(void 0)})):Promise.resolve()).then((function(s){return t.postEventReceivedMessage(e.eventRequestId,s)}))},e.prototype.isBlockingEventType=function(e){switch(e){case"form-save":case"form-cancel":case"load-data":return!0}return!1},e.prototype.postEventReceivedMessage=function(e,t){this.postMessageToHostPage({message:{eventRequestId:e,data:t},messageType:"event-received"})},e.prototype.resolveClientEvent=function(e){var t=e.eventRequestId,s=this.sentEvents[t];s&&(s(),delete this.sentEvents[t])},e.prototype.isFromValidOrigin=function(e){return e.origin===this.trustedOrigin},e.prototype.warnInvalidOrigin=function(){console.warn("The origin is not trusted because the host-ready message has not been sent or because the host origin is not a whitelisted origin.")},e.prototype.getQueryVariable=function(t){for(var s=0,o=e.getQueryString().substring(1).split("&");s<o.length;s++){var n=o[s].split("=");if(decodeURIComponent(n[0])===t)return decodeURIComponent(n[1])}},e}();t.AddinClient=o},93:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},294:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},714:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},819:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinButtonStyle=void 0,(s=t.AddinButtonStyle||(t.AddinButtonStyle={}))[s.None=0]="None",s[s.Add=1]="Add",s[s.Edit=2]="Edit",s[s.Delete=3]="Delete"},676:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},233:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},455:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},407:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},75:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},258:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},413:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},954:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},663:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},542:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},610:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},95:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},581:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},342:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},790:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},212:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},88:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},90:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},948:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},468:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinConfirmButtonStyle=void 0,(s=t.AddinConfirmButtonStyle||(t.AddinConfirmButtonStyle={}))[s.Default=0]="Default",s[s.Primary=1]="Primary",s[s.Link=2]="Link"},756:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},545:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},993:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinTabSummaryStyle=void 0,(s=t.AddinTabSummaryStyle||(t.AddinTabSummaryStyle={}))[s.None=0]="None",s[s.Text=1]="Text"},518:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},590:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinTileSummaryStyle=void 0,(s=t.AddinTileSummaryStyle||(t.AddinTileSummaryStyle={}))[s.None=0]="None",s[s.Text=1]="Text",s[s.Check=2]="Check"},480:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinToastStyle=void 0,(s=t.AddinToastStyle||(t.AddinToastStyle={}))[s.Danger=0]="Danger",s[s.Info=1]="Info",s[s.Success=2]="Success",s[s.Warning=3]="Warning"},142:function(e,t,s){var o=this&&this.__createBinding||(Object.create?function(e,t,s,o){void 0===o&&(o=s);var n=Object.getOwnPropertyDescriptor(t,s);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,o,n)}:function(e,t,s,o){void 0===o&&(o=s),e[o]=t[s]}),n=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||o(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(s(93),t),n(s(294),t),n(s(714),t),n(s(819),t),n(s(676),t),n(s(233),t),n(s(455),t),n(s(407),t),n(s(75),t),n(s(258),t),n(s(413),t),n(s(954),t),n(s(663),t),n(s(542),t),n(s(610),t),n(s(95),t),n(s(581),t),n(s(342),t),n(s(790),t),n(s(212),t),n(s(88),t),n(s(90),t),n(s(948),t),n(s(756),t),n(s(468),t),n(s(545),t),n(s(993),t),n(s(518),t),n(s(590),t),n(s(480),t)},220:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},606:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},57:function(e,t,s){var o=this&&this.__createBinding||(Object.create?function(e,t,s,o){void 0===o&&(o=s);var n=Object.getOwnPropertyDescriptor(t,s);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,o,n)}:function(e,t,s,o){void 0===o&&(o=s),e[o]=t[s]}),n=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||o(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(s(220),t),n(s(606),t)},983:function(e,t,s){var o=this&&this.__createBinding||(Object.create?function(e,t,s,o){void 0===o&&(o=s);var n=Object.getOwnPropertyDescriptor(t,s);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,o,n)}:function(e,t,s,o){void 0===o&&(o=s),e[o]=t[s]}),n=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||o(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(s(903),t),n(s(142),t),n(s(57),t)}},t={};return function s(o){var n=t[o];if(void 0!==n)return n.exports;var i=t[o]={exports:{}};return e[o].call(i.exports,i,i.exports,s),i.exports}(789)})()));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.BBSkyAddinClient=t():e.BBSkyAddinClient=t()}(self,(()=>(()=>{"use strict";var e={789:function(e,t,o){var s=this&&this.__createBinding||(Object.create?function(e,t,o,s){void 0===s&&(s=o);var n=Object.getOwnPropertyDescriptor(t,o);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,s,n)}:function(e,t,o,s){void 0===s&&(s=o),e[s]=t[o]}),n=this&&this.__exportStar||function(e,t){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(t,o)||s(t,e,o)};Object.defineProperty(t,"__esModule",{value:!0}),n(o(983),t)},903:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AddinClient=void 0;var o=[/^https\:\/\/[\w\-\.]+\.blackbaud\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaud\-dev\.com$/,/^http\:\/\/[\w\-\.]+\.blackbaud\-dev\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaud\-test\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaudhosting\.com$/,/^https\:\/\/[\w\-\.]+\.bbcloudservices\.com$/,/^https\:\/\/localhost(\:[0-9]+)?$/,/^https\:\/\/secure[2|3|8]\.convio\.net$/,/^https\:\/\/testweb\.convio\.com$/,/^https\:\/\/[\w\-\.]+\.conviocloud\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaudcloud\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaudfaith\.com$/,/^https\:\/\/[\w\-\.]+\.blackbaudportal\.com$/,/^https\:\/\/[\w\-\.]+\.bbk12\.com$/,/^https\:\/\/[\w\-\.]+\.mycampus\-app\.com$/,/^https\:\/\/[\w\-\.]+\.myschoolapp\.com$/,/^https\:\/\/[\w\-\.]+\.myschoolautomation\.com$/,/^https\:\/\/[\w\-\.]+\.myschooldemo\.com$/,/^https\:\/\/[\w\-\.]+\.myschooltraining\.com$/,/^https\:\/\/[\w\-\.]+\.justgiving\.com$/,/^https\:\/\/sky\.blackbaudcdn\.net$/],s={"action-button":!0,box:!0,button:!0,dataset:!0,flyout:!0,generic:!0,modal:!0,page:!0,tab:!0,tile:!0,"vertical-tab-form":!0},n=[{property:"background-color",value:"transparent"},{property:"background-image",value:"none"}],a=function(){function e(e){var t=this;this.args=e,this.authTokenRequests=[],this.lastAuthTokenRequestId=0,this.modalRequests=[],this.lastModalRequestId=0,this.registeredAddinEvents={},this.sentEvents={},this.pendingSentEvents={},this.eventRequestId=0,this.supportedEventTypes=[],this.destroyed=!1,this.replacedBackgroundDeclarations=[],this.allowedOrigins=o,this.initConfig(e.config),this.windowMessageHandler=function(e){t.handleMessage(e)},window.addEventListener("message",this.windowMessageHandler),this.raiseAddinReadyMessage()}return e.getQueryString=function(){return window.location.search},e.prototype.destroy=function(){window.removeEventListener("message",this.windowMessageHandler),this.heightChangeIntervalId&&clearInterval(this.heightChangeIntervalId),this.cleanupTransparentBackground(),this.destroyed=!0},e.prototype.navigate=function(e){this.postMessageToHostPage({message:{url:e.url},messageType:"navigate"})},e.prototype.getAuthToken=function(){return this.getUserIdentityToken()},e.prototype.getUserIdentityToken=function(){var e=this;return new Promise((function(t,o){var s=++e.lastAuthTokenRequestId;e.authTokenRequests[s]={reject:o,resolve:t},e.postMessageToHostPage({message:{authTokenRequestId:s},messageType:"get-auth-token"})}))},e.prototype.showModal=function(e){var t=this;return{modalClosed:new Promise((function(o,s){var n=++t.lastModalRequestId;t.modalRequests[n]={reject:s,resolve:o},t.postMessageToHostPage({message:{args:e,modalRequestId:n},messageType:"show-modal"})}))}},e.prototype.closeModal=function(e){this.postMessageToHostPage({message:e,messageType:"close-modal"})},e.prototype.openHelp=function(e){this.postMessageToHostPage({message:{helpKey:e.helpKey},messageType:"open-help"})},e.prototype.showToast=function(e){this.postMessageToHostPage({message:e,messageType:"show-toast"})},e.prototype.showFlyout=function(e){var t=this;return{flyoutClosed:new Promise((function(o,s){e.defaultWidth=e.defaultWidth,e.maxWidth=e.maxWidth,e.minWidth=e.minWidth,t.flyoutRequest={reject:s,resolve:o},t.postMessageToHostPage({message:e,messageType:"show-flyout"})}))}},e.prototype.closeFlyout=function(){this.postMessageToHostPage({messageType:"close-flyout"})},e.prototype.showConfirm=function(e){var t=this;return new Promise((function(o,s){t.confirmRequest={reject:s,resolve:o},t.postMessageToHostPage({message:e,messageType:"show-confirm"})}))},e.prototype.showError=function(e){this.postMessageToHostPage({message:e,messageType:"show-error"})},e.prototype.showWait=function(){this.postMessageToHostPage({messageType:"show-wait"})},e.prototype.hideWait=function(){this.postMessageToHostPage({messageType:"hide-wait"})},e.prototype.addEventHandler=function(e,t){this.registeredAddinEvents[e]=t},e.prototype.sendEvent=function(e){var t=this;return new Promise((function(o,s){var n=e.type;t.supportedEventTypes.includes(n)||s("Event type not supported");var a=t.pendingSentEvents[n];a&&(clearTimeout(a.timeoutId),a.reject("Event cancelled"));var i=setTimeout((function(){delete t.pendingSentEvents[n],t.postMessageToHostPage({message:{event:e,eventRequestId:t.eventRequestId},messageType:"client-event"}),t.sentEvents[t.eventRequestId]=o,t.eventRequestId++}),200);t.pendingSentEvents[n]={reject:s,timeoutId:i}}))},e.prototype.initConfig=function(e){var t;(null===(t=null==e?void 0:e.allowedOrigins)||void 0===t?void 0:t.length)>0&&(this.allowedOrigins=this.allowedOrigins.concat(e.allowedOrigins),this.allowedOrigins=this.allowedOrigins.reduce((function(e,t){return e.find((function(e){return e.source===t.source}))||e.push(t),e}),[]))},e.prototype.applyModalStyle=function(e){var t=this;!0===(null==e?void 0:e.transparentBackground)?(this.makeBackgroundTransparent(document.documentElement),document.body?this.makeBackgroundTransparent(document.body):this.bodyReadyHandler||(this.bodyReadyHandler=function(){t.bodyReadyHandler=void 0,document.body&&t.makeBackgroundTransparent(document.body)},document.addEventListener("DOMContentLoaded",this.bodyReadyHandler,{once:!0}))):this.cleanupTransparentBackground()},e.prototype.makeBackgroundTransparent=function(e){for(var t=0,o=n;t<o.length;t++){var s=o[t],a=s.property,i=e.style.getPropertyValue(a),r=e.style.getPropertyPriority(a);i===s.value&&"important"===r||(this.replacedBackgroundDeclarations.push({element:e,priority:r,property:a,transparentValue:s.value,value:i}),e.style.setProperty(a,s.value,"important"))}},e.prototype.cleanupTransparentBackground=function(){this.bodyReadyHandler&&(document.removeEventListener("DOMContentLoaded",this.bodyReadyHandler),this.bodyReadyHandler=void 0);for(var e=0,t=this.replacedBackgroundDeclarations;e<t.length;e++){var o=t[e],s=o.element.style;s.getPropertyValue(o.property)===o.transparentValue&&"important"===s.getPropertyPriority(o.property)&&(o.value?s.setProperty(o.property,o.value,o.priority):s.removeProperty(o.property))}this.replacedBackgroundDeclarations=[]},e.prototype.getKnownAddinType=function(e){if("string"==typeof e&&s.hasOwnProperty(e))return e},e.prototype.raiseAddinReadyMessage=function(){this.postMessageToHostPage({messageType:"ready"},"*")},e.prototype.handleModalClosedMessage=function(e){var t=this.modalRequests,o=e.modalRequestId;t[o].resolve(e.context),t[o]=void 0},e.prototype.handleAuthTokenMessage=function(e){var t=this.authTokenRequests,o=e.message.authTokenRequestId,s=t[o];switch(e.messageType){case"auth-token":var n=e.message.authToken;s.resolve(n);break;case"auth-token-fail":s.reject(e.message.reason)}t[o]=void 0},e.prototype.handleMessage=function(e){var t=this,o=e.data;if(o&&"bb-addin-host"===o.source)if("host-ready"===o.messageType)this.setKnownAllowedHostOrigin(e.origin),this.trackHeightChangesOfAddinContent(),this.supportedEventTypes=o.message.supportedEventTypes||[],this.args.callbacks.init({addinType:this.getKnownAddinType(o.message.addinType),context:o.message.context,envId:o.message.envId,ready:function(e){var o;t.destroyed||t.applyModalStyle(null===(o=null==e?void 0:e.modalConfig)||void 0===o?void 0:o.style),t.checkForHeightChangesOfAddinContent(),t.postMessageToHostPage({message:e,messageType:"addin-ready"})},supportedEventTypes:this.supportedEventTypes,themeSettings:o.message.themeSettings});else if(this.isFromValidOrigin(e))switch(o.messageType){case"action-click":this.args.callbacks.actionClick&&this.args.callbacks.actionClick(o.message.reason);break;case"auth-token":case"auth-token-fail":this.handleAuthTokenMessage(o);break;case"modal-closed":this.handleModalClosedMessage(o.message);break;case"button-click":this.args.callbacks.buttonClick&&this.args.callbacks.buttonClick();break;case"update-context":this.args.callbacks.updateContext&&this.args.callbacks.updateContext(o.message);break;case"confirm-closed":this.confirmRequest&&(this.confirmRequest.resolve(o.message.reason),this.confirmRequest=void 0);break;case"flyout-closed":this.flyoutRequest&&(this.flyoutRequest.resolve(),this.flyoutRequest=void 0);break;case"flyout-next-click":this.args.callbacks.flyoutNextClick&&this.args.callbacks.flyoutNextClick();break;case"flyout-previous-click":this.args.callbacks.flyoutPreviousClick&&this.args.callbacks.flyoutPreviousClick();break;case"help-click":this.args.callbacks.helpClick&&this.args.callbacks.helpClick();break;case"inline-help-click":this.args.callbacks.inlineHelpClick&&this.args.callbacks.inlineHelpClick();break;case"settings-click":this.args.callbacks.settingsClick&&this.args.callbacks.settingsClick();break;case"theme-change":this.args.callbacks.themeChange&&this.args.callbacks.themeChange(o.message.themeSettings);break;case"host-event":this.processHostEvent(o.message);break;case"event-received":this.resolveClientEvent(o.message)}else this.warnInvalidOrigin()},e.prototype.setKnownAllowedHostOrigin=function(e){for(var t=0,o=this.allowedOrigins;t<o.length;t++)if(o[t].test(e))return void(this.trustedOrigin=e)},e.prototype.checkForHeightChangesOfAddinContent=function(){var e=document.documentElement.offsetHeight;e!==this.lastPostedIframeHeight&&(this.lastPostedIframeHeight=e,this.postMessageToHostPage({message:{height:e+"px"},messageType:"height-change"}))},e.prototype.trackHeightChangesOfAddinContent=function(){var e=this;this.heightChangeIntervalId=setInterval((function(){e.checkForHeightChangesOfAddinContent()}),1e3)},e.prototype.postMessageToHostPage=function(e,t){e.source="bb-addin-client",e.addinId=this.getQueryVariable("addinId"),(t=t||this.trustedOrigin)?window.parent.postMessage(e,t):this.warnInvalidOrigin()},e.prototype.processHostEvent=function(e){var t=this,o=e.context,s=this.registeredAddinEvents[o.type];(s?this.isBlockingEventType(o.type)?new Promise((function(e){s(o.context,(function(t){e(t)}))})):new Promise((function(e){s(o.context),e(void 0)})):Promise.resolve()).then((function(o){return t.postEventReceivedMessage(e.eventRequestId,o)}))},e.prototype.isBlockingEventType=function(e){switch(e){case"form-save":case"form-cancel":case"load-data":return!0}return!1},e.prototype.postEventReceivedMessage=function(e,t){this.postMessageToHostPage({message:{eventRequestId:e,data:t},messageType:"event-received"})},e.prototype.resolveClientEvent=function(e){var t=e.eventRequestId,o=this.sentEvents[t];o&&(o(),delete this.sentEvents[t])},e.prototype.isFromValidOrigin=function(e){return e.origin===this.trustedOrigin},e.prototype.warnInvalidOrigin=function(){console.warn("The origin is not trusted because the host-ready message has not been sent or because the host origin is not a whitelisted origin.")},e.prototype.getQueryVariable=function(t){for(var o=0,s=e.getQueryString().substring(1).split("&");o<s.length;o++){var n=s[o].split("=");if(decodeURIComponent(n[0])===t)return decodeURIComponent(n[1])}},e}();t.AddinClient=a},93:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},294:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},714:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},819:(e,t)=>{var o;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinButtonStyle=void 0,(o=t.AddinButtonStyle||(t.AddinButtonStyle={}))[o.None=0]="None",o[o.Add=1]="Add",o[o.Edit=2]="Edit",o[o.Delete=3]="Delete"},676:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},233:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},455:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},407:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},75:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},258:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},413:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},954:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},663:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},542:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},610:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},95:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},581:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},342:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},790:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},212:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},88:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},90:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},948:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},468:(e,t)=>{var o;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinConfirmButtonStyle=void 0,(o=t.AddinConfirmButtonStyle||(t.AddinConfirmButtonStyle={}))[o.Default=0]="Default",o[o.Primary=1]="Primary",o[o.Link=2]="Link"},756:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},545:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},993:(e,t)=>{var o;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinTabSummaryStyle=void 0,(o=t.AddinTabSummaryStyle||(t.AddinTabSummaryStyle={}))[o.None=0]="None",o[o.Text=1]="Text"},518:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},590:(e,t)=>{var o;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinTileSummaryStyle=void 0,(o=t.AddinTileSummaryStyle||(t.AddinTileSummaryStyle={}))[o.None=0]="None",o[o.Text=1]="Text",o[o.Check=2]="Check"},480:(e,t)=>{var o;Object.defineProperty(t,"__esModule",{value:!0}),t.AddinToastStyle=void 0,(o=t.AddinToastStyle||(t.AddinToastStyle={}))[o.Danger=0]="Danger",o[o.Info=1]="Info",o[o.Success=2]="Success",o[o.Warning=3]="Warning"},671:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},142:function(e,t,o){var s=this&&this.__createBinding||(Object.create?function(e,t,o,s){void 0===s&&(s=o);var n=Object.getOwnPropertyDescriptor(t,o);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,s,n)}:function(e,t,o,s){void 0===s&&(s=o),e[s]=t[o]}),n=this&&this.__exportStar||function(e,t){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(t,o)||s(t,e,o)};Object.defineProperty(t,"__esModule",{value:!0}),n(o(93),t),n(o(294),t),n(o(714),t),n(o(819),t),n(o(676),t),n(o(233),t),n(o(455),t),n(o(407),t),n(o(75),t),n(o(258),t),n(o(413),t),n(o(954),t),n(o(663),t),n(o(542),t),n(o(610),t),n(o(95),t),n(o(581),t),n(o(342),t),n(o(790),t),n(o(212),t),n(o(88),t),n(o(90),t),n(o(948),t),n(o(756),t),n(o(468),t),n(o(545),t),n(o(993),t),n(o(518),t),n(o(590),t),n(o(480),t),n(o(671),t)},220:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},606:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},57:function(e,t,o){var s=this&&this.__createBinding||(Object.create?function(e,t,o,s){void 0===s&&(s=o);var n=Object.getOwnPropertyDescriptor(t,o);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,s,n)}:function(e,t,o,s){void 0===s&&(s=o),e[s]=t[o]}),n=this&&this.__exportStar||function(e,t){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(t,o)||s(t,e,o)};Object.defineProperty(t,"__esModule",{value:!0}),n(o(220),t),n(o(606),t)},983:function(e,t,o){var s=this&&this.__createBinding||(Object.create?function(e,t,o,s){void 0===s&&(s=o);var n=Object.getOwnPropertyDescriptor(t,o);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,s,n)}:function(e,t,o,s){void 0===s&&(s=o),e[s]=t[o]}),n=this&&this.__exportStar||function(e,t){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(t,o)||s(t,e,o)};Object.defineProperty(t,"__esModule",{value:!0}),n(o(903),t),n(o(142),t),n(o(57),t)}},t={};return function o(s){var n=t[s];if(void 0!==n)return n.exports;var a=t[s]={exports:{}};return e[s].call(a.exports,a,a.exports,o),a.exports}(789)})()));
|
package/package.json
CHANGED
|
@@ -96,6 +96,18 @@ export declare class AddinClient {
|
|
|
96
96
|
* The add-in client will throw an error if an event is attempted but not one the supported types.
|
|
97
97
|
*/
|
|
98
98
|
private supportedEventTypes;
|
|
99
|
+
/**
|
|
100
|
+
* Indicates whether the client has been destroyed.
|
|
101
|
+
*/
|
|
102
|
+
private destroyed;
|
|
103
|
+
/**
|
|
104
|
+
* Inline background declarations replaced by this client to make the document transparent.
|
|
105
|
+
*/
|
|
106
|
+
private replacedBackgroundDeclarations;
|
|
107
|
+
/**
|
|
108
|
+
* Handler waiting for the body to be parsed before making it transparent.
|
|
109
|
+
*/
|
|
110
|
+
private bodyReadyHandler;
|
|
99
111
|
/**
|
|
100
112
|
* Collection of regexs for our whitelist of host origins.
|
|
101
113
|
*/
|
|
@@ -193,6 +205,27 @@ export declare class AddinClient {
|
|
|
193
205
|
*/
|
|
194
206
|
sendEvent(args: AddinClientEventArgs): Promise<void>;
|
|
195
207
|
private initConfig;
|
|
208
|
+
/**
|
|
209
|
+
* Applies the client-owned document transparency for a modal add-in.
|
|
210
|
+
* @param style The modal style from the ready args.
|
|
211
|
+
*/
|
|
212
|
+
private applyModalStyle;
|
|
213
|
+
/**
|
|
214
|
+
* Makes an element's background transparent with inline declarations, recording
|
|
215
|
+
* the declarations it replaces so they can be restored.
|
|
216
|
+
* @param element The element to make transparent.
|
|
217
|
+
*/
|
|
218
|
+
private makeBackgroundTransparent;
|
|
219
|
+
/**
|
|
220
|
+
* Restores document background declarations replaced by this client.
|
|
221
|
+
*/
|
|
222
|
+
private cleanupTransparentBackground;
|
|
223
|
+
/**
|
|
224
|
+
* Returns the add-in type provided by the host if this client recognizes it.
|
|
225
|
+
* @param addinType The add-in type provided by the host.
|
|
226
|
+
* @returns The add-in type, or undefined if it is missing or unrecognized.
|
|
227
|
+
*/
|
|
228
|
+
private getKnownAddinType;
|
|
196
229
|
/**
|
|
197
230
|
* Post a message to the host page informing it that the add-in is
|
|
198
231
|
* now started and listening for messages from the host.
|