@blackbaud/sky-addin-client 1.7.3 → 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 +7 -0
- package/README.md +25 -1
- package/bundles/sky-addin-client.global-es2015.js +136 -5
- package/bundles/sky-addin-client.global-es2015.min.js +1 -1
- package/bundles/sky-addin-client.global.js +139 -5
- package/bundles/sky-addin-client.global.min.js +1 -1
- package/bundles/sky-addin-client.umd-es2015.js +136 -5
- package/bundles/sky-addin-client.umd-es2015.min.js +1 -1
- package/bundles/sky-addin-client.umd.js +139 -5
- 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 +126 -1
- package/src/addin/addin-client.js.map +1 -1
- package/src/addin/addin-client.spec.js +323 -4
- 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
|
/***/ }),
|
|
@@ -88,7 +88,33 @@ const allowedOrigins = [
|
|
|
88
88
|
/^https\:\/\/[\w\-\.]+\.myschoolautomation\.com$/,
|
|
89
89
|
/^https\:\/\/[\w\-\.]+\.myschooldemo\.com$/,
|
|
90
90
|
/^https\:\/\/[\w\-\.]+\.myschooltraining\.com$/,
|
|
91
|
-
/^https\:\/\/[\w\-\.]+\.justgiving\.com
|
|
91
|
+
/^https\:\/\/[\w\-\.]+\.justgiving\.com$/,
|
|
92
|
+
/^https\:\/\/sky\.blackbaudcdn\.net$/
|
|
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' }
|
|
92
118
|
];
|
|
93
119
|
/**
|
|
94
120
|
* Client for interacting with the parent page hosting the add-in.
|
|
@@ -148,6 +174,14 @@ class AddinClient {
|
|
|
148
174
|
* The add-in client will throw an error if an event is attempted but not one the supported types.
|
|
149
175
|
*/
|
|
150
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 = [];
|
|
151
185
|
/**
|
|
152
186
|
* Collection of regexs for our whitelist of host origins.
|
|
153
187
|
*/
|
|
@@ -169,6 +203,8 @@ class AddinClient {
|
|
|
169
203
|
if (this.heightChangeIntervalId) {
|
|
170
204
|
clearInterval(this.heightChangeIntervalId);
|
|
171
205
|
}
|
|
206
|
+
this.cleanupTransparentBackground();
|
|
207
|
+
this.destroyed = true;
|
|
172
208
|
}
|
|
173
209
|
/**
|
|
174
210
|
* Requests the host page to navigate.
|
|
@@ -400,6 +436,87 @@ class AddinClient {
|
|
|
400
436
|
}, []);
|
|
401
437
|
}
|
|
402
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
|
+
}
|
|
403
520
|
/**
|
|
404
521
|
* Post a message to the host page informing it that the add-in is
|
|
405
522
|
* now started and listening for messages from the host.
|
|
@@ -467,9 +584,14 @@ class AddinClient {
|
|
|
467
584
|
this.supportedEventTypes = data.message.supportedEventTypes || [];
|
|
468
585
|
// Pass key data to the add-in for it to initiailze.
|
|
469
586
|
this.args.callbacks.init({
|
|
587
|
+
addinType: this.getKnownAddinType(data.message.addinType),
|
|
470
588
|
context: data.message.context,
|
|
471
589
|
envId: data.message.envId,
|
|
472
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
|
+
}
|
|
473
595
|
// Do an immediate height check since the add-in may render something
|
|
474
596
|
// due to the context provided. No need to wait a full second to reflect.
|
|
475
597
|
this.checkForHeightChangesOfAddinContent();
|
|
@@ -775,6 +897,7 @@ __exportStar(__webpack_require__(30), exports);
|
|
|
775
897
|
__exportStar(__webpack_require__(31), exports);
|
|
776
898
|
__exportStar(__webpack_require__(32), exports);
|
|
777
899
|
__exportStar(__webpack_require__(33), exports);
|
|
900
|
+
__exportStar(__webpack_require__(34), exports);
|
|
778
901
|
|
|
779
902
|
|
|
780
903
|
/***/ }),
|
|
@@ -1087,6 +1210,14 @@ var AddinToastStyle;
|
|
|
1087
1210
|
|
|
1088
1211
|
/***/ }),
|
|
1089
1212
|
/* 34 */
|
|
1213
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
1214
|
+
|
|
1215
|
+
|
|
1216
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1217
|
+
|
|
1218
|
+
|
|
1219
|
+
/***/ }),
|
|
1220
|
+
/* 35 */
|
|
1090
1221
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
1091
1222
|
|
|
1092
1223
|
|
|
@@ -1105,12 +1236,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
1105
1236
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
1106
1237
|
};
|
|
1107
1238
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1108
|
-
__exportStar(__webpack_require__(35), exports);
|
|
1109
1239
|
__exportStar(__webpack_require__(36), exports);
|
|
1240
|
+
__exportStar(__webpack_require__(37), exports);
|
|
1110
1241
|
|
|
1111
1242
|
|
|
1112
1243
|
/***/ }),
|
|
1113
|
-
/*
|
|
1244
|
+
/* 36 */
|
|
1114
1245
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1115
1246
|
|
|
1116
1247
|
|
|
@@ -1118,7 +1249,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
1118
1249
|
|
|
1119
1250
|
|
|
1120
1251
|
/***/ }),
|
|
1121
|
-
/*
|
|
1252
|
+
/* 37 */
|
|
1122
1253
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1123
1254
|
|
|
1124
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$/];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
|
/***/ }),
|
|
@@ -88,7 +88,33 @@ var allowedOrigins = [
|
|
|
88
88
|
/^https\:\/\/[\w\-\.]+\.myschoolautomation\.com$/,
|
|
89
89
|
/^https\:\/\/[\w\-\.]+\.myschooldemo\.com$/,
|
|
90
90
|
/^https\:\/\/[\w\-\.]+\.myschooltraining\.com$/,
|
|
91
|
-
/^https\:\/\/[\w\-\.]+\.justgiving\.com
|
|
91
|
+
/^https\:\/\/[\w\-\.]+\.justgiving\.com$/,
|
|
92
|
+
/^https\:\/\/sky\.blackbaudcdn\.net$/
|
|
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' }
|
|
92
118
|
];
|
|
93
119
|
/**
|
|
94
120
|
* Client for interacting with the parent page hosting the add-in.
|
|
@@ -142,6 +168,14 @@ var AddinClient = /** @class */ (function () {
|
|
|
142
168
|
* The add-in client will throw an error if an event is attempted but not one the supported types.
|
|
143
169
|
*/
|
|
144
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 = [];
|
|
145
179
|
/**
|
|
146
180
|
* Collection of regexs for our whitelist of host origins.
|
|
147
181
|
*/
|
|
@@ -170,6 +204,8 @@ var AddinClient = /** @class */ (function () {
|
|
|
170
204
|
if (this.heightChangeIntervalId) {
|
|
171
205
|
clearInterval(this.heightChangeIntervalId);
|
|
172
206
|
}
|
|
207
|
+
this.cleanupTransparentBackground();
|
|
208
|
+
this.destroyed = true;
|
|
173
209
|
};
|
|
174
210
|
/**
|
|
175
211
|
* Requests the host page to navigate.
|
|
@@ -406,6 +442,90 @@ var AddinClient = /** @class */ (function () {
|
|
|
406
442
|
}, []);
|
|
407
443
|
}
|
|
408
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
|
+
};
|
|
409
529
|
/**
|
|
410
530
|
* Post a message to the host page informing it that the add-in is
|
|
411
531
|
* now started and listening for messages from the host.
|
|
@@ -474,9 +594,14 @@ var AddinClient = /** @class */ (function () {
|
|
|
474
594
|
this.supportedEventTypes = data.message.supportedEventTypes || [];
|
|
475
595
|
// Pass key data to the add-in for it to initiailze.
|
|
476
596
|
this.args.callbacks.init({
|
|
597
|
+
addinType: this.getKnownAddinType(data.message.addinType),
|
|
477
598
|
context: data.message.context,
|
|
478
599
|
envId: data.message.envId,
|
|
479
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
|
+
}
|
|
480
605
|
// Do an immediate height check since the add-in may render something
|
|
481
606
|
// due to the context provided. No need to wait a full second to reflect.
|
|
482
607
|
_this.checkForHeightChangesOfAddinContent();
|
|
@@ -787,6 +912,7 @@ __exportStar(__webpack_require__(30), exports);
|
|
|
787
912
|
__exportStar(__webpack_require__(31), exports);
|
|
788
913
|
__exportStar(__webpack_require__(32), exports);
|
|
789
914
|
__exportStar(__webpack_require__(33), exports);
|
|
915
|
+
__exportStar(__webpack_require__(34), exports);
|
|
790
916
|
|
|
791
917
|
|
|
792
918
|
/***/ }),
|
|
@@ -1099,6 +1225,14 @@ var AddinToastStyle;
|
|
|
1099
1225
|
|
|
1100
1226
|
/***/ }),
|
|
1101
1227
|
/* 34 */
|
|
1228
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
1229
|
+
|
|
1230
|
+
|
|
1231
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1232
|
+
|
|
1233
|
+
|
|
1234
|
+
/***/ }),
|
|
1235
|
+
/* 35 */
|
|
1102
1236
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
1103
1237
|
|
|
1104
1238
|
|
|
@@ -1117,12 +1251,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
1117
1251
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
1118
1252
|
};
|
|
1119
1253
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1120
|
-
__exportStar(__webpack_require__(35), exports);
|
|
1121
1254
|
__exportStar(__webpack_require__(36), exports);
|
|
1255
|
+
__exportStar(__webpack_require__(37), exports);
|
|
1122
1256
|
|
|
1123
1257
|
|
|
1124
1258
|
/***/ }),
|
|
1125
|
-
/*
|
|
1259
|
+
/* 36 */
|
|
1126
1260
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1127
1261
|
|
|
1128
1262
|
|
|
@@ -1130,7 +1264,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
1130
1264
|
|
|
1131
1265
|
|
|
1132
1266
|
/***/ }),
|
|
1133
|
-
/*
|
|
1267
|
+
/* 37 */
|
|
1134
1268
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1135
1269
|
|
|
1136
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$/],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.
|