@flourish/sdk 5.2.2 → 5.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.c8rc +4 -0
- package/RELEASE_NOTES.md +12 -0
- package/common/embed/credit.js +26 -11
- package/common/embed/embedding.js +1 -1
- package/common/embed/localizations.d.ts +46 -2
- package/common/embed/localizations.js +48 -37
- package/common/package.json +2 -2
- package/common/tsconfig.sdk.tsbuildinfo +1 -1
- package/common/utils/data.d.ts +2 -2
- package/common/utils/data.js +2 -1
- package/common/utils/types.d.ts +1 -2
- package/coverage-sdk/lcov-report/base.css +224 -0
- package/coverage-sdk/lcov-report/block-navigation.js +87 -0
- package/coverage-sdk/lcov-report/common/utils/columns.js.html +646 -0
- package/coverage-sdk/lcov-report/common/utils/index.html +131 -0
- package/coverage-sdk/lcov-report/common/utils/state.js.html +559 -0
- package/coverage-sdk/lcov-report/favicon.png +0 -0
- package/coverage-sdk/lcov-report/index.html +146 -0
- package/coverage-sdk/lcov-report/lib/common.js.html +181 -0
- package/coverage-sdk/lcov-report/lib/index.html +161 -0
- package/coverage-sdk/lcov-report/lib/log.js.html +178 -0
- package/coverage-sdk/lcov-report/lib/sdk.js.html +2008 -0
- package/coverage-sdk/lcov-report/lib/validate_config.js.html +1459 -0
- package/coverage-sdk/lcov-report/prettify.css +1 -0
- package/coverage-sdk/lcov-report/prettify.js +2 -0
- package/coverage-sdk/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage-sdk/lcov-report/sorter.js +210 -0
- package/coverage-sdk/lcov-report/test/lib/index.html +131 -0
- package/coverage-sdk/lcov-report/test/lib/sdk.js.html +532 -0
- package/coverage-sdk/lcov-report/test/lib/validate_config.js.html +3307 -0
- package/coverage-sdk/lcov.info +3556 -0
- package/coverage-sdk/tmp/coverage-36833-1757890375186-0.json +1 -0
- package/coverage-sdk/tmp/coverage-36834-1757890374890-0.json +1 -0
- package/lib/cmd/publish.js +1 -0
- package/lib/validate_config.js +31 -0
- package/package.json +7 -6
- package/server/columns.js +150 -0
- package/server/comms_js.js +13 -0
- package/server/data.js +132 -0
- package/server/json.js +40 -0
- package/server/views/index.html +13 -29
- package/site/embedded.js +2 -2
- package/site/images/embed_flourish_in_canva.png +0 -0
- package/site/images/flourish_app_icon.png +0 -0
- package/site/images/icon-arrow-down.svg +3 -0
- package/site/images/icon-arrow-left.svg +3 -0
- package/site/images/icon-close.svg +3 -0
- package/site/images/icon-login.svg +4 -0
- package/site/images/icon-sso.svg +4 -0
- package/site/images/share_image.jpg +0 -0
- package/site/images/upsell-presenter.jpg +0 -0
- package/site/images/upsell-publisher.jpg +0 -0
- package/site/script.js +3 -3
- package/site/sdk.css +1 -1
- package/test/lib/validate_config.js +126 -0
package/server/data.js
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/* * * * * * GENERATED FILE - DO NOT EDIT * * * * * *
|
|
2
|
+
* * * * * * GENERATED FILE - DO NOT EDIT * * * * * *
|
|
3
|
+
* * * * * * GENERATED FILE - DO NOT EDIT * * * * * */
|
|
4
|
+
|
|
5
|
+
'use strict';
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
8
|
+
|
|
9
|
+
// Polyfills for IE11 and Edge
|
|
10
|
+
|
|
11
|
+
// Add findIndex method to Array
|
|
12
|
+
// https://tc39.github.io/ecma262/#sec-array.prototype.findindex
|
|
13
|
+
if (!Array.prototype.findIndex) {
|
|
14
|
+
Object.defineProperty(Array.prototype, "findIndex", {
|
|
15
|
+
value: function(predicate) {
|
|
16
|
+
if (this == null) {
|
|
17
|
+
throw new TypeError("this is null or not defined");
|
|
18
|
+
}
|
|
19
|
+
var o = Object(this);
|
|
20
|
+
var len = o.length >>> 0;
|
|
21
|
+
if (typeof predicate !== "function") {
|
|
22
|
+
throw new TypeError("predicate must be a function");
|
|
23
|
+
}
|
|
24
|
+
var this_arg = arguments[1];
|
|
25
|
+
var k = 0;
|
|
26
|
+
while (k < len) {
|
|
27
|
+
var k_value = o[k];
|
|
28
|
+
if (predicate.call(this_arg, k_value, k, o)) {
|
|
29
|
+
return k;
|
|
30
|
+
}
|
|
31
|
+
k++;
|
|
32
|
+
}
|
|
33
|
+
return -1;
|
|
34
|
+
},
|
|
35
|
+
configurable: true,
|
|
36
|
+
writable: true
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function extractData(data_binding, data_by_id) {
|
|
41
|
+
var columns = [];
|
|
42
|
+
var data_table_ids = [];
|
|
43
|
+
var num_rows = 0;
|
|
44
|
+
var dataset = [];
|
|
45
|
+
dataset.column_names = {};
|
|
46
|
+
|
|
47
|
+
for (var key in data_binding) {
|
|
48
|
+
if (data_binding[key].columns === undefined && data_binding[key].column === undefined) continue;
|
|
49
|
+
|
|
50
|
+
var b = data_binding[key];
|
|
51
|
+
b.key = key;
|
|
52
|
+
|
|
53
|
+
if (!(b.data_table_id in data_by_id)) {
|
|
54
|
+
var data_by_id_keys = [];
|
|
55
|
+
for (var k in data_by_id) data_by_id_keys.push(k);
|
|
56
|
+
|
|
57
|
+
console.error("Data table id " + b.data_table_id + " not in " + JSON.stringify(data_by_id_keys));
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
var data_table = data_by_id[b.data_table_id];
|
|
62
|
+
if (data_table.length == 0) {
|
|
63
|
+
console.warn("Empty data table");
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if ("columns" in b && b.columns != null) {
|
|
68
|
+
var column_count = data_table[0].length;
|
|
69
|
+
b.columns = b.columns.filter(function(i) { return i < column_count; });
|
|
70
|
+
dataset.column_names[key] = b.columns.map(function(i) {
|
|
71
|
+
return data_by_id[b.data_table_id][0][i];
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
else if ("column" in b && b.column != null) {
|
|
75
|
+
dataset.column_names[key] = data_table[0][b.column];
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
throw new Error("Data binding includes no column(s) specification: " + JSON.stringify(b));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (data_table_ids.indexOf(b.data_table_id) == -1) {
|
|
82
|
+
data_table_ids.push(b.data_table_id);
|
|
83
|
+
num_rows = Math.max(num_rows, data_by_id[b.data_table_id].length - 1);
|
|
84
|
+
}
|
|
85
|
+
columns.push(b);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
for (var i = 0; i < num_rows; i++) {
|
|
89
|
+
var o = {};
|
|
90
|
+
for (var j = 0; j < columns.length; j++) {
|
|
91
|
+
b = columns[j];
|
|
92
|
+
var table = data_by_id[b.data_table_id];
|
|
93
|
+
if (i+1 >= table.length) continue;
|
|
94
|
+
|
|
95
|
+
if ("columns" in b && b.columns != null) {
|
|
96
|
+
o[b.key] = b.columns
|
|
97
|
+
.filter(function(c) { return c < table[i+1].length; })
|
|
98
|
+
.map(function(c) { return table[i+1][c]; });
|
|
99
|
+
}
|
|
100
|
+
else if ("column" in b && b.column != null) {
|
|
101
|
+
if (b.column >= table[i+1].length) o[b.key] = "";
|
|
102
|
+
else o[b.key] = table[i+1][b.column];
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
dataset.push(o);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return dataset;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function trimTrailingEmptyRows(data) {
|
|
112
|
+
for (var i = data.length; i-- > 0;) {
|
|
113
|
+
if (!data[i] || !data[i].length || data[i].findIndex(function(col) { return col !== null && col !== ""; }) == -1) {
|
|
114
|
+
data.splice(i, 1);
|
|
115
|
+
}
|
|
116
|
+
else break;
|
|
117
|
+
}
|
|
118
|
+
return data;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function trimWhitespace(data) {
|
|
122
|
+
data.forEach(function(row) {
|
|
123
|
+
for (var i=0; i < row.length; i++) {
|
|
124
|
+
if (row[i] && typeof row[i] == "string") row[i] = row[i].trim();
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
return data;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
exports.extractData = extractData;
|
|
131
|
+
exports.trimTrailingEmptyRows = trimTrailingEmptyRows;
|
|
132
|
+
exports.trimWhitespace = trimWhitespace;
|
package/server/json.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/* * * * * * GENERATED FILE - DO NOT EDIT * * * * * *
|
|
2
|
+
* * * * * * GENERATED FILE - DO NOT EDIT * * * * * *
|
|
3
|
+
* * * * * * GENERATED FILE - DO NOT EDIT * * * * * */
|
|
4
|
+
|
|
5
|
+
'use strict';
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
8
|
+
|
|
9
|
+
function escapeChar(c) {
|
|
10
|
+
var hex = c.charCodeAt(0).toString(16);
|
|
11
|
+
while (hex.length < 4) hex = "0" + hex;
|
|
12
|
+
return "\\u" + hex;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Stringify an object (etc.) in a form that can safely be inserted
|
|
16
|
+
// into a <script> block in a web page.
|
|
17
|
+
function safeStringify(obj) {
|
|
18
|
+
const raw = JSON.stringify(obj);
|
|
19
|
+
if (typeof raw === "undefined") return undefined;
|
|
20
|
+
return raw.replace(/[\u2028\u2029<]/g, escapeChar);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function stringifyDataset(dataset) {
|
|
24
|
+
return "(function(array, fields){ array.column_names = fields; return array; })(" + safeStringify(dataset) + ", " + safeStringify(dataset.column_names) + ")";
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function stringifyPreparedData(data) {
|
|
28
|
+
var s = "{";
|
|
29
|
+
var first = true;
|
|
30
|
+
for (var dataset in data) {
|
|
31
|
+
if (first) first = false; else s += ", ";
|
|
32
|
+
s += safeStringify(dataset) + ": " + stringifyDataset(data[dataset]);
|
|
33
|
+
}
|
|
34
|
+
s += "}";
|
|
35
|
+
|
|
36
|
+
return s;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
exports.safeStringify = safeStringify;
|
|
40
|
+
exports.stringifyPreparedData = stringifyPreparedData;
|
package/server/views/index.html
CHANGED
|
@@ -4,32 +4,6 @@
|
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
6
|
|
|
7
|
-
<script type="text/javascript">
|
|
8
|
-
// Create a global state object to track OneTrust status
|
|
9
|
-
window.flourishOneTrust = window.flourishOneTrust || {
|
|
10
|
-
ready: false
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
function OptanonWrapper() {
|
|
14
|
-
// Set up consent change listener once
|
|
15
|
-
OneTrust.OnConsentChanged(() => {
|
|
16
|
-
document.cookie = `OptanonAlertBoxClosed=${new Date().toISOString()};`
|
|
17
|
-
+ "SameSite=None;"
|
|
18
|
-
+ "Secure;"
|
|
19
|
-
+ `expires=${new Date(Date.now() + 1000 * 60 * 60 * 24 * 365).toUTCString()};`;
|
|
20
|
-
|
|
21
|
-
// Set flag and dispatch event for consent change
|
|
22
|
-
window.flourishOneTrust.ready = true;
|
|
23
|
-
const oneTrustConsentChangedEvent = new CustomEvent('onetrustconsentchanged');
|
|
24
|
-
window.dispatchEvent(oneTrustConsentChangedEvent);
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
// Set flag and dispatch event for OneTrust loaded
|
|
28
|
-
window.flourishOneTrust.ready = true;
|
|
29
|
-
const oneTrustLoadedEvent = new CustomEvent('onetrustloaded');
|
|
30
|
-
window.dispatchEvent(oneTrustLoadedEvent);
|
|
31
|
-
}
|
|
32
|
-
</script>
|
|
33
7
|
|
|
34
8
|
<title>Flourish | Data Visualization & Storytelling</title>
|
|
35
9
|
|
|
@@ -45,9 +19,9 @@
|
|
|
45
19
|
</div>
|
|
46
20
|
<div class="row editor-bar">
|
|
47
21
|
<div id="preview-menu" class="row-menu left no-select">
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
22
|
+
<a id="full-preview" href="preview" target="_blank" class="menu-item clickable popup" data-popup-head="Full preview in new window" aria-label="Full preview in new window">
|
|
23
|
+
<i class="fa fa-expand"></i>
|
|
24
|
+
</a>
|
|
51
25
|
<div id="editor-previews">
|
|
52
26
|
<span id="editor-auto" data-target="auto" class="menu-item preview-mode clickable selected popup" data-popup-head="Preview using available width">
|
|
53
27
|
<i class="fa fa-tv"></i>
|
|
@@ -67,6 +41,16 @@
|
|
|
67
41
|
</span>
|
|
68
42
|
</div>
|
|
69
43
|
</div>
|
|
44
|
+
|
|
45
|
+
<script>
|
|
46
|
+
document.querySelector('#full-preview')?.addEventListener('click', () => {
|
|
47
|
+
window.sp.trackInteraction({
|
|
48
|
+
section: 'editor_toolbar',
|
|
49
|
+
component: 'full_preview',
|
|
50
|
+
interaction_type: 'click'
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
</script>
|
|
70
54
|
<span class="sdk-status-label"></span>
|
|
71
55
|
<button class="sdk-session-reset-button" title="Resets the development session.">Reset</button>
|
|
72
56
|
<div class="confirm-saved saved" data-testid="saving-indicator"><i class="fa fa-check"></i> <span class="label"></span></div>
|
package/site/embedded.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
!function(){"use strict";var e=!1;function t(t){if(e&&window.top!==window.self){var n=window;"srcdoc"===n.location.pathname&&(n=n.parent);var o,i=(o={},window._Flourish_template_id&&(o.template_id=window._Flourish_template_id),window.Flourish&&window.Flourish.app&&window.Flourish.app.loaded_template_id&&(o.template_id=window.Flourish.app.loaded_template_id),window._Flourish_visualisation_id&&(o.visualisation_id=window._Flourish_visualisation_id),window.Flourish&&window.Flourish.app&&window.Flourish.app.loaded_visualisation&&(o.visualisation_id=window.Flourish.app.loaded_visualisation.id),window.Flourish&&window.Flourish.app&&window.Flourish.app.story&&(o.story_id=window.Flourish.app.story.id,o.slide_count=window.Flourish.app.story.slides.length),window.Flourish&&window.Flourish.app&&window.Flourish.app.current_slide&&(o.slide_index=window.Flourish.app.current_slide.index+1),o),r={sender:"Flourish",method:"customerAnalytics"};for(var a in i)i.hasOwnProperty(a)&&(r[a]=i[a]);for(var a in t)t.hasOwnProperty(a)&&(r[a]=t[a]);n.parent.postMessage(JSON.stringify(r),"*")}}function n(e){if("function"!=typeof e)throw new Error("Analytics callback is not a function");window.Flourish._analytics_listeners.push(e)}function o(){e=!0;[{event_name:"click",action_name:"click",use_capture:!0},{event_name:"keydown",action_name:"key_down",use_capture:!0},{event_name:"mouseenter",action_name:"mouse_enter",use_capture:!1},{event_name:"mouseleave",action_name:"mouse_leave",use_capture:!1}].forEach(
|
|
2
|
-
/*! @license DOMPurify 3.2.4 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.4/LICENSE */const{entries:i,setPrototypeOf:r,isFrozen:a,getPrototypeOf:l,getOwnPropertyDescriptor:s}=Object;let{freeze:c,seal:u,create:d}=Object,{apply:m,construct:p}="undefined"!=typeof Reflect&&Reflect;c||(c=function(e){return e}),u||(u=function(e){return e}),m||(m=function(e,t,n){return e.apply(t,n)}),p||(p=function(e,t){return new e(...t)});const f=R(Array.prototype.forEach),h=R(Array.prototype.lastIndexOf),g=R(Array.prototype.pop),y=R(Array.prototype.push),w=R(Array.prototype.splice),_=R(String.prototype.toLowerCase),v=R(String.prototype.toString),T=R(String.prototype.match),A=R(String.prototype.replace),E=R(String.prototype.indexOf),b=R(String.prototype.trim),S=R(Object.prototype.hasOwnProperty),N=R(RegExp.prototype.test),x=(O=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return p(O,t)});var O;function R(e){return function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),i=1;i<n;i++)o[i-1]=arguments[i];return m(e,t,o)}}function L(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:_;r&&r(e,null);let o=t.length;for(;o--;){let i=t[o];if("string"==typeof i){const e=n(i);e!==i&&(a(t)||(t[o]=e),i=e)}e[i]=!0}return e}function C(e){for(let t=0;t<e.length;t++){S(e,t)||(e[t]=null)}return e}function M(e){const t=d(null);for(const[n,o]of i(e)){S(e,n)&&(Array.isArray(o)?t[n]=C(o):o&&"object"==typeof o&&o.constructor===Object?t[n]=M(o):t[n]=o)}return t}function k(e,t){for(;null!==e;){const n=s(e,t);if(n){if(n.get)return R(n.get);if("function"==typeof n.value)return R(n.value)}e=l(e)}return function(){return null}}const D=c(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),F=c(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),I=c(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),z=c(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),P=c(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),U=c(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),H=c(["#text"]),W=c(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),B=c(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),G=c(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),j=c(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),q=u(/\{\{[\w\W]*|[\w\W]*\}\}/gm),Y=u(/<%[\w\W]*|[\w\W]*%>/gm),$=u(/\$\{[\w\W]*/gm),X=u(/^data-[\-\w.\u00B7-\uFFFF]+$/),J=u(/^aria-[\-\w]+$/),V=u(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),K=u(/^(?:\w+script|data):/i),Z=u(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Q=u(/^html$/i),ee=u(/^[a-z][.\w]*(-[.\w]+)+$/i);var te=Object.freeze({__proto__:null,ARIA_ATTR:J,ATTR_WHITESPACE:Z,CUSTOM_ELEMENT:ee,DATA_ATTR:X,DOCTYPE_NAME:Q,ERB_EXPR:Y,IS_ALLOWED_URI:V,IS_SCRIPT_OR_DATA:K,MUSTACHE_EXPR:q,TMPLIT_EXPR:$});const ne=1,oe=3,ie=7,re=8,ae=9,le=function(){return"undefined"==typeof window?null:window},se=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const o="data-tt-policy-suffix";t&&t.hasAttribute(o)&&(n=t.getAttribute(o));const i="dompurify"+(n?"#"+n:"");try{return e.createPolicy(i,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+i+" could not be created."),null}};var ce,ue,de=function e(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:le();const n=t=>e(t);if(n.version="3.2.4",n.removed=[],!t||!t.document||t.document.nodeType!==ae||!t.Element)return n.isSupported=!1,n;let{document:o}=t;const r=o,a=r.currentScript,{DocumentFragment:l,HTMLTemplateElement:s,Node:u,Element:m,NodeFilter:p,NamedNodeMap:O=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:R,DOMParser:C,trustedTypes:q}=t,Y=m.prototype,$=k(Y,"cloneNode"),X=k(Y,"remove"),J=k(Y,"nextSibling"),K=k(Y,"childNodes"),Z=k(Y,"parentNode");if("function"==typeof s){const e=o.createElement("template");e.content&&e.content.ownerDocument&&(o=e.content.ownerDocument)}let ee,ce="";const{implementation:ue,createNodeIterator:de,createDocumentFragment:me,getElementsByTagName:pe}=o,{importNode:fe}=r;let he={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};n.isSupported="function"==typeof i&&"function"==typeof Z&&ue&&void 0!==ue.createHTMLDocument;const{MUSTACHE_EXPR:ge,ERB_EXPR:ye,TMPLIT_EXPR:we,DATA_ATTR:_e,ARIA_ATTR:ve,IS_SCRIPT_OR_DATA:Te,ATTR_WHITESPACE:Ae,CUSTOM_ELEMENT:Ee}=te;let{IS_ALLOWED_URI:be}=te,Se=null;const Ne=L({},[...D,...F,...I,...P,...H]);let xe=null;const Oe=L({},[...W,...B,...G,...j]);let Re=Object.seal(d(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Le=null,Ce=null,Me=!0,ke=!0,De=!1,Fe=!0,Ie=!1,ze=!0,Pe=!1,Ue=!1,He=!1,We=!1,Be=!1,Ge=!1,je=!0,qe=!1;const Ye="user-content-";let $e=!0,Xe=!1,Je={},Ve=null;const Ke=L({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Ze=null;const Qe=L({},["audio","video","img","source","image","track"]);let et=null;const tt=L({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),nt="http://www.w3.org/1998/Math/MathML",ot="http://www.w3.org/2000/svg",it="http://www.w3.org/1999/xhtml";let rt=it,at=!1,lt=null;const st=L({},[nt,ot,it],v);let ct=L({},["mi","mo","mn","ms","mtext"]),ut=L({},["annotation-xml"]);const dt=L({},["title","style","font","a","script"]);let mt=null;const pt=["application/xhtml+xml","text/html"],ft="text/html";let ht=null,gt=null;const yt=o.createElement("form"),wt=function(e){return e instanceof RegExp||e instanceof Function},_t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!gt||gt!==e){if(e&&"object"==typeof e||(e={}),e=M(e),mt=-1===pt.indexOf(e.PARSER_MEDIA_TYPE)?ft:e.PARSER_MEDIA_TYPE,ht="application/xhtml+xml"===mt?v:_,Se=S(e,"ALLOWED_TAGS")?L({},e.ALLOWED_TAGS,ht):Ne,xe=S(e,"ALLOWED_ATTR")?L({},e.ALLOWED_ATTR,ht):Oe,lt=S(e,"ALLOWED_NAMESPACES")?L({},e.ALLOWED_NAMESPACES,v):st,et=S(e,"ADD_URI_SAFE_ATTR")?L(M(tt),e.ADD_URI_SAFE_ATTR,ht):tt,Ze=S(e,"ADD_DATA_URI_TAGS")?L(M(Qe),e.ADD_DATA_URI_TAGS,ht):Qe,Ve=S(e,"FORBID_CONTENTS")?L({},e.FORBID_CONTENTS,ht):Ke,Le=S(e,"FORBID_TAGS")?L({},e.FORBID_TAGS,ht):{},Ce=S(e,"FORBID_ATTR")?L({},e.FORBID_ATTR,ht):{},Je=!!S(e,"USE_PROFILES")&&e.USE_PROFILES,Me=!1!==e.ALLOW_ARIA_ATTR,ke=!1!==e.ALLOW_DATA_ATTR,De=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Fe=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Ie=e.SAFE_FOR_TEMPLATES||!1,ze=!1!==e.SAFE_FOR_XML,Pe=e.WHOLE_DOCUMENT||!1,We=e.RETURN_DOM||!1,Be=e.RETURN_DOM_FRAGMENT||!1,Ge=e.RETURN_TRUSTED_TYPE||!1,He=e.FORCE_BODY||!1,je=!1!==e.SANITIZE_DOM,qe=e.SANITIZE_NAMED_PROPS||!1,$e=!1!==e.KEEP_CONTENT,Xe=e.IN_PLACE||!1,be=e.ALLOWED_URI_REGEXP||V,rt=e.NAMESPACE||it,ct=e.MATHML_TEXT_INTEGRATION_POINTS||ct,ut=e.HTML_INTEGRATION_POINTS||ut,Re=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&wt(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Re.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&wt(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Re.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Re.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Ie&&(ke=!1),Be&&(We=!0),Je&&(Se=L({},H),xe=[],!0===Je.html&&(L(Se,D),L(xe,W)),!0===Je.svg&&(L(Se,F),L(xe,B),L(xe,j)),!0===Je.svgFilters&&(L(Se,I),L(xe,B),L(xe,j)),!0===Je.mathMl&&(L(Se,P),L(xe,G),L(xe,j))),e.ADD_TAGS&&(Se===Ne&&(Se=M(Se)),L(Se,e.ADD_TAGS,ht)),e.ADD_ATTR&&(xe===Oe&&(xe=M(xe)),L(xe,e.ADD_ATTR,ht)),e.ADD_URI_SAFE_ATTR&&L(et,e.ADD_URI_SAFE_ATTR,ht),e.FORBID_CONTENTS&&(Ve===Ke&&(Ve=M(Ve)),L(Ve,e.FORBID_CONTENTS,ht)),$e&&(Se["#text"]=!0),Pe&&L(Se,["html","head","body"]),Se.table&&(L(Se,["tbody"]),delete Le.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw x('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw x('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');ee=e.TRUSTED_TYPES_POLICY,ce=ee.createHTML("")}else void 0===ee&&(ee=se(q,a)),null!==ee&&"string"==typeof ce&&(ce=ee.createHTML(""));c&&c(e),gt=e}},vt=L({},[...F,...I,...z]),Tt=L({},[...P,...U]),At=function(e){let t=Z(e);t&&t.tagName||(t={namespaceURI:rt,tagName:"template"});const n=_(e.tagName),o=_(t.tagName);return!!lt[e.namespaceURI]&&(e.namespaceURI===ot?t.namespaceURI===it?"svg"===n:t.namespaceURI===nt?"svg"===n&&("annotation-xml"===o||ct[o]):Boolean(vt[n]):e.namespaceURI===nt?t.namespaceURI===it?"math"===n:t.namespaceURI===ot?"math"===n&&ut[o]:Boolean(Tt[n]):e.namespaceURI===it?!(t.namespaceURI===ot&&!ut[o])&&(!(t.namespaceURI===nt&&!ct[o])&&(!Tt[n]&&(dt[n]||!vt[n]))):!("application/xhtml+xml"!==mt||!lt[e.namespaceURI]))},Et=function(e){y(n.removed,{element:e});try{Z(e).removeChild(e)}catch(t){X(e)}},bt=function(e,t){try{y(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){y(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e)if(We||Be)try{Et(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},St=function(e){let t=null,n=null;if(He)e="<remove></remove>"+e;else{const t=T(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===mt&&rt===it&&(e='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+e+"</body></html>");const i=ee?ee.createHTML(e):e;if(rt===it)try{t=(new C).parseFromString(i,mt)}catch(e){}if(!t||!t.documentElement){t=ue.createDocument(rt,"template",null);try{t.documentElement.innerHTML=at?ce:i}catch(e){}}const r=t.body||t.documentElement;return e&&n&&r.insertBefore(o.createTextNode(n),r.childNodes[0]||null),rt===it?pe.call(t,Pe?"html":"body")[0]:Pe?t.documentElement:r},Nt=function(e){return de.call(e.ownerDocument||e,e,p.SHOW_ELEMENT|p.SHOW_COMMENT|p.SHOW_TEXT|p.SHOW_PROCESSING_INSTRUCTION|p.SHOW_CDATA_SECTION,null)},xt=function(e){return e instanceof R&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof O)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},Ot=function(e){return"function"==typeof u&&e instanceof u};function Rt(e,t,o){f(e,(e=>{e.call(n,t,o,gt)}))}const Lt=function(e){let t=null;if(Rt(he.beforeSanitizeElements,e,null),xt(e))return Et(e),!0;const o=ht(e.nodeName);if(Rt(he.uponSanitizeElement,e,{tagName:o,allowedTags:Se}),e.hasChildNodes()&&!Ot(e.firstElementChild)&&N(/<[/\w]/g,e.innerHTML)&&N(/<[/\w]/g,e.textContent))return Et(e),!0;if(e.nodeType===ie)return Et(e),!0;if(ze&&e.nodeType===re&&N(/<[/\w]/g,e.data))return Et(e),!0;if(!Se[o]||Le[o]){if(!Le[o]&&Mt(o)){if(Re.tagNameCheck instanceof RegExp&&N(Re.tagNameCheck,o))return!1;if(Re.tagNameCheck instanceof Function&&Re.tagNameCheck(o))return!1}if($e&&!Ve[o]){const t=Z(e)||e.parentNode,n=K(e)||e.childNodes;if(n&&t){for(let o=n.length-1;o>=0;--o){const i=$(n[o],!0);i.__removalCount=(e.__removalCount||0)+1,t.insertBefore(i,J(e))}}}return Et(e),!0}return e instanceof m&&!At(e)?(Et(e),!0):"noscript"!==o&&"noembed"!==o&&"noframes"!==o||!N(/<\/no(script|embed|frames)/i,e.innerHTML)?(Ie&&e.nodeType===oe&&(t=e.textContent,f([ge,ye,we],(e=>{t=A(t,e," ")})),e.textContent!==t&&(y(n.removed,{element:e.cloneNode()}),e.textContent=t)),Rt(he.afterSanitizeElements,e,null),!1):(Et(e),!0)},Ct=function(e,t,n){if(je&&("id"===t||"name"===t)&&(n in o||n in yt))return!1;if(ke&&!Ce[t]&&N(_e,t));else if(Me&&N(ve,t));else if(!xe[t]||Ce[t]){if(!(Mt(e)&&(Re.tagNameCheck instanceof RegExp&&N(Re.tagNameCheck,e)||Re.tagNameCheck instanceof Function&&Re.tagNameCheck(e))&&(Re.attributeNameCheck instanceof RegExp&&N(Re.attributeNameCheck,t)||Re.attributeNameCheck instanceof Function&&Re.attributeNameCheck(t))||"is"===t&&Re.allowCustomizedBuiltInElements&&(Re.tagNameCheck instanceof RegExp&&N(Re.tagNameCheck,n)||Re.tagNameCheck instanceof Function&&Re.tagNameCheck(n))))return!1}else if(et[t]);else if(N(be,A(n,Ae,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==E(n,"data:")||!Ze[e]){if(De&&!N(Te,A(n,Ae,"")));else if(n)return!1}else;return!0},Mt=function(e){return"annotation-xml"!==e&&T(e,Ee)},kt=function(e){Rt(he.beforeSanitizeAttributes,e,null);const{attributes:t}=e;if(!t||xt(e))return;const o={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:xe,forceKeepAttr:void 0};let i=t.length;for(;i--;){const r=t[i],{name:a,namespaceURI:l,value:s}=r,c=ht(a);let u="value"===a?s:b(s);if(o.attrName=c,o.attrValue=u,o.keepAttr=!0,o.forceKeepAttr=void 0,Rt(he.uponSanitizeAttribute,e,o),u=o.attrValue,!qe||"id"!==c&&"name"!==c||(bt(a,e),u=Ye+u),ze&&N(/((--!?|])>)|<\/(style|title)/i,u)){bt(a,e);continue}if(o.forceKeepAttr)continue;if(bt(a,e),!o.keepAttr)continue;if(!Fe&&N(/\/>/i,u)){bt(a,e);continue}Ie&&f([ge,ye,we],(e=>{u=A(u,e," ")}));const d=ht(e.nodeName);if(Ct(d,c,u)){if(ee&&"object"==typeof q&&"function"==typeof q.getAttributeType)if(l);else switch(q.getAttributeType(d,c)){case"TrustedHTML":u=ee.createHTML(u);break;case"TrustedScriptURL":u=ee.createScriptURL(u)}try{l?e.setAttributeNS(l,a,u):e.setAttribute(a,u),xt(e)?Et(e):g(n.removed)}catch(e){}}}Rt(he.afterSanitizeAttributes,e,null)},Dt=function e(t){let n=null;const o=Nt(t);for(Rt(he.beforeSanitizeShadowDOM,t,null);n=o.nextNode();)Rt(he.uponSanitizeShadowNode,n,null),Lt(n),kt(n),n.content instanceof l&&e(n.content);Rt(he.afterSanitizeShadowDOM,t,null)};return n.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=null,i=null,a=null,s=null;if(at=!e,at&&(e="\x3c!--\x3e"),"string"!=typeof e&&!Ot(e)){if("function"!=typeof e.toString)throw x("toString is not a function");if("string"!=typeof(e=e.toString()))throw x("dirty is not a string, aborting")}if(!n.isSupported)return e;if(Ue||_t(t),n.removed=[],"string"==typeof e&&(Xe=!1),Xe){if(e.nodeName){const t=ht(e.nodeName);if(!Se[t]||Le[t])throw x("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof u)o=St("\x3c!----\x3e"),i=o.ownerDocument.importNode(e,!0),i.nodeType===ne&&"BODY"===i.nodeName||"HTML"===i.nodeName?o=i:o.appendChild(i);else{if(!We&&!Ie&&!Pe&&-1===e.indexOf("<"))return ee&&Ge?ee.createHTML(e):e;if(o=St(e),!o)return We?null:Ge?ce:""}o&&He&&Et(o.firstChild);const c=Nt(Xe?e:o);for(;a=c.nextNode();)Lt(a),kt(a),a.content instanceof l&&Dt(a.content);if(Xe)return e;if(We){if(Be)for(s=me.call(o.ownerDocument);o.firstChild;)s.appendChild(o.firstChild);else s=o;return(xe.shadowroot||xe.shadowrootmode)&&(s=fe.call(r,s,!0)),s}let d=Pe?o.outerHTML:o.innerHTML;return Pe&&Se["!doctype"]&&o.ownerDocument&&o.ownerDocument.doctype&&o.ownerDocument.doctype.name&&N(Q,o.ownerDocument.doctype.name)&&(d="<!DOCTYPE "+o.ownerDocument.doctype.name+">\n"+d),Ie&&f([ge,ye,we],(e=>{d=A(d,e," ")})),ee&&Ge?ee.createHTML(d):d},n.setConfig=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_t(e),Ue=!0},n.clearConfig=function(){gt=null,Ue=!1},n.isValidAttribute=function(e,t,n){gt||_t({});const o=ht(e),i=ht(t);return Ct(o,i,n)},n.addHook=function(e,t){"function"==typeof t&&y(he[e],t)},n.removeHook=function(e,t){if(void 0!==t){const n=h(he[e],t);return-1===n?void 0:w(he[e],n,1)[0]}return g(he[e])},n.removeHooks=function(e){he[e]=[]},n.removeAllHooks=function(){he={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},n}();function me(){if(null==ce){var e=function(){var e=window.location;"about:srcdoc"==e.href&&(e=window.parent.location);var t={};return function(e,n,o){for(;o=n.exec(e);)t[decodeURIComponent(o[1])]=decodeURIComponent(o[2])}(e.search.substring(1).replace(/\+/g,"%20"),/([^&=]+)=?([^&]*)/g),t}();ce="referrer"in e?/^https:\/\/medium.com\//.test(e.referrer):!("auto"in e)}return ce}function pe(e){var t=e||window.innerWidth;return t>999?650:t>599?575:400}function fe(e){if(e&&window.top!==window.self){var t=window;"srcdoc"==t.location.pathname&&(t=t.parent);var n={sender:"Flourish",method:"scrolly",captions:e.captions,hasScrollyTransformFix:e.hasScrollyTransformFix};t.parent.postMessage(JSON.stringify(n),"*")}}function he(e,t){if(window.top!==window.self){var n=window;if("srcdoc"==n.location.pathname&&(n=n.parent),ue)return e=parseInt(e,10),void n.parent.postMessage({sentinel:"amp",type:"embed-size",height:e},"*");var o={sender:"Flourish",context:"iframe.resize",method:"resize",height:e,src:n.location.toString()};if(t)for(var i in t)o[i]=t[i];n.parent.postMessage(JSON.stringify(o),"*")}}function ge(){return(-1!==navigator.userAgent.indexOf("Safari")||-1!==navigator.userAgent.indexOf("iPhone"))&&-1==navigator.userAgent.indexOf("Chrome")}function ye(e){return"string"==typeof e||e instanceof String}function we(e){return"warn"!==e.method?(console.warn("BUG: validateWarnMessage called for method"+e.method),!1):!(null!=e.message&&!ye(e.message))&&!(null!=e.explanation&&!ye(e.explanation))}function _e(e){return"resize"!==e.method?(console.warn("BUG: validateResizeMessage called for method"+e.method),!1):!!ye(e.src)&&(!!ye(e.context)&&!!("number"==typeof(t=e.height)?!isNaN(t)&&t>=0:ye(t)&&/\d/.test(t)&&/^[0-9]*(\.[0-9]*)?(cm|mm|Q|in|pc|pt|px|em|ex|ch|rem|lh|vw|vh|vmin|vmax|%)?$/i.test(t)));var t}function ve(e){throw new Error("Validation for setSetting is not implemented yet; see issue #4328")}function Te(e){return"scrolly"!==e.method?(console.warn("BUG: validateScrolly called for method"+e.method),!1):!!Array.isArray(e.captions)}function Ae(e){return"customerAnalytics"===e.method||(console.warn("BUG: validateCustomerAnalyticsMessage called for method"+e.method),!1)}function Ee(e){return"request-upload"!==e.method?(console.warn("BUG: validateResizeMessage called for method"+e.method),!1):!!ye(e.name)&&!(null!=e.accept&&!ye(e.accept))}function be(e,t,n){var o=function(e){for(var t={warn:we,resize:_e,setSetting:ve,customerAnalytics:Ae,"request-upload":Ee,scrolly:Te},n={},o=0;o<e.length;o++){var i=e[o];if(!t[i])throw new Error("No validator found for method "+i);n[i]=t[i]}return n}(t);window.addEventListener("message",(function(t){var i=function(){if(t.origin==document.location.origin)return!0;if(n){const e=t.origin.toLowerCase();if(n=n.toLowerCase(),e.endsWith("//"+n))return!0;if(e.endsWith("."+n))return!0}return!!t.origin.match(/\/\/localhost:\d+$|\/\/(?:public|app)\.flourish.devlocal$|\/\/flourish-api\.com$|\.flourish\.(?:local(:\d+)?|net|rocks|studio)$|\.uri\.sh$|\/\/flourish-user-templates\.com$/)}();if(null!=t.source&&i){var r;try{r="object"==typeof t.data?t.data:JSON.parse(t.data)}catch(e){return void console.warn("Unexpected non-JSON message: "+JSON.stringify(t.data))}if("Flourish"===r.sender)if(r.method)if(Object.prototype.hasOwnProperty.call(o,r.method))if(o[r.method](r)){for(var a=document.querySelectorAll("iframe"),l=0;l<a.length;l++)if(a[l].contentWindow==t.source||a[l].contentWindow==t.source.parent)return void e(r,a[l]);console.warn("could not find frame",r)}else console.warn("Validation failed for the message",r);else console.warn("No validator implemented for message",r);else console.warn("The 'method' property was missing from message",r)}})),ge()&&(window.addEventListener("resize",Se),Se())}function Se(){for(var e=document.querySelectorAll(".flourish-embed"),t=0;t<e.length;t++){var n=e[t];if(!n.getAttribute("data-width")){var o=n.querySelector("iframe");if(o){var i=window.getComputedStyle(n),r=n.offsetWidth-parseFloat(i.paddingLeft)-parseFloat(i.paddingRight);o.style.width=r+"px"}}}}function Ne(e,t,n){var o=e.parentNode;if(o.classList.contains("fl-scrolly-wrapper"))return void console.warn("createScrolly is being called more than once per story. This should not happen.");o.classList.add("fl-scrolly-wrapper"),o.style.position="relative",o.style.paddingBottom="1px",o.style.transform="translate3d(0, 0, 0)";const i=navigator.platform.indexOf("Win")>-1,r=!!window.chrome&&(navigator.userAgent.indexOf("Chrome")>-1||navigator.userAgent.indexOf("Edg")>-1||navigator.userAgent.indexOf("OPR")>-1);if(i&&r&&n){let e,t=0;window.addEventListener("scroll",(function(){clearTimeout(e),e=setTimeout((()=>{t=0===t?1:0,o.style.transform=`translateZ(${t}px)`}),100)}))}e.style.position="sticky";var a=o.getAttribute("data-height")||null;a||(a="80vh",e.style.height=a),e.style.top="calc(50vh - "+a+"/2)";var l=o.querySelector(".flourish-credit");l&&(l.style.position="sticky",l.style.top="calc(50vh + "+a+"/2)"),t.forEach((function(e,t){var n="string"==typeof e&&""!=e.trim(),i=document.createElement("div");i.setAttribute("data-slide",t),i.classList.add("fl-scrolly-caption"),i.style.position="relative",i.style.transform="translate3d(0,0,0)",i.style.textAlign="center",i.style.maxWidth="500px",i.style.height="auto",i.style.marginTop="0",i.style.marginBottom=n?"100vh":"50vh",i.style.marginLeft="auto",i.style.marginRight="auto";var r=document.createElement("div");r.innerHTML=de.sanitize(e,{ADD_ATTR:["target"]}),r.style.visibility=n?"":"hidden",r.style.display="inline-block",r.style.paddingTop="1.25em",r.style.paddingRight="1.25em",r.style.paddingBottom="1.25em",r.style.paddingLeft="1.25em",r.style.background="rgba(255,255,255,0.9)",r.style.boxShadow="0px 0px 10px rgba(0,0,0,0.2)",r.style.borderRadius="10px",r.style.textAlign="center",r.style.maxWidth="100%",r.style.margin="0 20px",r.style.overflowX="hidden",i.appendChild(r),o.appendChild(i)})),function(e){for(var t=new IntersectionObserver((function(t){t.forEach((function(t){if(t.isIntersecting){var n=e.querySelector("iframe");n&&(n.src=n.src.replace(/#slide-.*/,"")+"#slide-"+t.target.getAttribute("data-slide"))}}))}),{rootMargin:"0px 0px -0% 0px"}),n=e.querySelectorAll(".fl-scrolly-caption"),o=0;o<n.length;o++)t.observe(n[o]);e.querySelectorAll(".fl-scrolly-caption img").forEach((function(e){e.style.maxWidth="100%"}))}(o)}function xe(e,t,n,o,i){var r=document.createElement("iframe");if(r.setAttribute("scrolling","no"),r.setAttribute("frameborder","0"),r.setAttribute("title","Interactive or visual content"),r.setAttribute("sandbox","allow-same-origin allow-forms allow-scripts allow-downloads allow-popups allow-popups-to-escape-sandbox allow-top-navigation-by-user-activation"),t.appendChild(r),r.offsetParent||"fixed"===getComputedStyle(r).position)Oe(e,t,r,n,o,i);else{var a={embed_url:e,container:t,iframe:r,width:n,height:o,play_on_load:i};if(window._flourish_poll_items?window._flourish_poll_items.push(a):window._flourish_poll_items=[a],window._flourish_poll_items.length>1)return r;var l=setInterval((function(){window._flourish_poll_items=window._flourish_poll_items.filter((function(e){return!e.iframe.offsetParent||(Oe(e.embed_url,e.container,e.iframe,e.width,e.height,e.play_on_load),!1)})),window._flourish_poll_items.length||clearInterval(l)}),500)}return r}function Oe(e,t,n,o,i,r){var a;return o&&"number"==typeof o?(a=o,o+="px"):o&&o.match(/^[ \t\r\n\f]*([+-]?\d+|\d*\.\d+(?:[eE][+-]?\d+)?)(?:\\?[Pp]|\\0{0,4}[57]0(?:\r\n|[ \t\r\n\f])?)(?:\\?[Xx]|\\0{0,4}[57]8(?:\r\n|[ \t\r\n\f])?)[ \t\r\n\f]*$/)&&(a=parseFloat(o)),i&&"number"==typeof i&&(i+="px"),o?n.style.width=o:ge()?n.style.width=t.offsetWidth+"px":n.style.width="100%",!!i||(e.match(/\?/)?e+="&auto=1":e+="?auto=1",i=pe(a||n.offsetWidth)+"px"),i&&("%"===i.charAt(i.length-1)&&(i=parseFloat(i)/100*t.parentNode.offsetHeight+"px"),n.style.height=i),n.setAttribute("src",e+(r?"#play-on-load":"")),n}function Re(e){return!Array.isArray(e)&&"object"==typeof e&&null!=e}function Le(e,t){for(const n in t)Re(e[n])&&Re(t[n])?Le(e[n],t[n]):e[n]=t[n];return e}!function(){var e,i=window.top===window.self,r=i?null:(ue="#amp=1"==window.location.hash,{createEmbedIframe:xe,isFixedHeight:me,getHeightForBreakpoint:pe,startEventListeners:be,notifyParentWindow:he,initScrolly:fe,createScrolly:Ne,isSafari:ge,initCustomerAnalytics:o,addAnalyticsListener:n,sendCustomerAnalyticsMessage:t}),a=!0;function l(){var t;Flourish.fixed_height||(null!=e?t=e:a&&(t=r.getHeightForBreakpoint()),t!==window.innerHeight&&r.notifyParentWindow(t))}function s(){-1!==window.location.search.indexOf("enable_customer_analytics=1")&&Flourish.enableCustomerAnalytics(),l(),window.addEventListener("resize",l)}Flourish.warn=function(e){if("string"==typeof e&&(e={message:e}),i||"editor"!==Flourish.environment)console.warn(e.message);else{var t={sender:"Flourish",method:"warn",message:e.message,explanation:e.explanation};window.parent.postMessage(JSON.stringify(t),"*")}},Flourish.uploadImage=function(e){if(i||"story_editor"!==Flourish.environment)throw"Invalid upload request";var t={sender:"Flourish",method:"request-upload",name:e.name,accept:e.accept};window.parent.postMessage(JSON.stringify(t),"*")},Flourish.setSetting=function(e,t){if("editor"===Flourish.environment||"sdk"===Flourish.environment){var n={sender:"Flourish",method:"setSetting",name:e,value:t};window.parent.postMessage(JSON.stringify(n),"*")}else if("story_editor"===Flourish.environment){var o={};o[e]=t,Le(window.template.state,function(e){var t=Object.create(null);for(var n in e){for(var o=t,i=n.indexOf("."),r=0;i>=0;i=n.indexOf(".",r=i+1)){var a=n.substring(r,i);a in o||(o[a]=Object.create(null)),o=o[a]}o[n.substring(r)]=e[n]}return t}(o))}},Flourish.setHeight=function(t){Flourish.fixed_height||(e=t,a=null==t,l())},Flourish.checkHeight=function(){if(!i){var e=Flourish.__container_height;null!=e?(Flourish.fixed_height=!0,r.notifyParentWindow(e)):r.isFixedHeight()?Flourish.fixed_height=!0:(Flourish.fixed_height=!1,l())}},Flourish.fixed_height=i||r.isFixedHeight(),Flourish.enableCustomerAnalytics=function(){r&&r.initCustomerAnalytics()},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",s):s()}()}();
|
|
1
|
+
!function(){"use strict";var e=!1;function t(t){if(e&&window.top!==window.self){var n=window;"srcdoc"===n.location.pathname&&(n=n.parent);var o,i=(o={},window._Flourish_template_id&&(o.template_id=window._Flourish_template_id),window.Flourish&&window.Flourish.app&&window.Flourish.app.loaded_template_id&&(o.template_id=window.Flourish.app.loaded_template_id),window._Flourish_visualisation_id&&(o.visualisation_id=window._Flourish_visualisation_id),window.Flourish&&window.Flourish.app&&window.Flourish.app.loaded_visualisation&&(o.visualisation_id=window.Flourish.app.loaded_visualisation.id),window.Flourish&&window.Flourish.app&&window.Flourish.app.story&&(o.story_id=window.Flourish.app.story.id,o.slide_count=window.Flourish.app.story.slides.length),window.Flourish&&window.Flourish.app&&window.Flourish.app.current_slide&&(o.slide_index=window.Flourish.app.current_slide.index+1),o),r={sender:"Flourish",method:"customerAnalytics"};for(var a in i)i.hasOwnProperty(a)&&(r[a]=i[a]);for(var a in t)t.hasOwnProperty(a)&&(r[a]=t[a]);n.parent.postMessage(JSON.stringify(r),"*")}}function n(e){if("function"!=typeof e)throw new Error("Analytics callback is not a function");window.Flourish._analytics_listeners.push(e)}function o(){e=!0;[{event_name:"click",action_name:"click",use_capture:!0},{event_name:"keydown",action_name:"key_down",use_capture:!0},{event_name:"mouseenter",action_name:"mouse_enter",use_capture:!1},{event_name:"mouseleave",action_name:"mouse_leave",use_capture:!1}].forEach(function(e){document.body.addEventListener(e.event_name,function(){t({action:e.action_name})},e.use_capture)})}
|
|
2
|
+
/*! @license DOMPurify 3.2.4 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.4/LICENSE */const{entries:i,setPrototypeOf:r,isFrozen:a,getPrototypeOf:l,getOwnPropertyDescriptor:s}=Object;let{freeze:c,seal:u,create:d}=Object,{apply:m,construct:p}="undefined"!=typeof Reflect&&Reflect;c||(c=function(e){return e}),u||(u=function(e){return e}),m||(m=function(e,t,n){return e.apply(t,n)}),p||(p=function(e,t){return new e(...t)});const f=R(Array.prototype.forEach),h=R(Array.prototype.lastIndexOf),g=R(Array.prototype.pop),y=R(Array.prototype.push),w=R(Array.prototype.splice),_=R(String.prototype.toLowerCase),v=R(String.prototype.toString),T=R(String.prototype.match),A=R(String.prototype.replace),E=R(String.prototype.indexOf),b=R(String.prototype.trim),S=R(Object.prototype.hasOwnProperty),N=R(RegExp.prototype.test),x=(O=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return p(O,t)});var O;function R(e){return function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),i=1;i<n;i++)o[i-1]=arguments[i];return m(e,t,o)}}function L(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:_;r&&r(e,null);let o=t.length;for(;o--;){let i=t[o];if("string"==typeof i){const e=n(i);e!==i&&(a(t)||(t[o]=e),i=e)}e[i]=!0}return e}function C(e){for(let t=0;t<e.length;t++){S(e,t)||(e[t]=null)}return e}function M(e){const t=d(null);for(const[n,o]of i(e)){S(e,n)&&(Array.isArray(o)?t[n]=C(o):o&&"object"==typeof o&&o.constructor===Object?t[n]=M(o):t[n]=o)}return t}function k(e,t){for(;null!==e;){const n=s(e,t);if(n){if(n.get)return R(n.get);if("function"==typeof n.value)return R(n.value)}e=l(e)}return function(){return null}}const D=c(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),F=c(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),I=c(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),z=c(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),P=c(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),U=c(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),H=c(["#text"]),W=c(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),B=c(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),G=c(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),j=c(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),q=u(/\{\{[\w\W]*|[\w\W]*\}\}/gm),Y=u(/<%[\w\W]*|[\w\W]*%>/gm),$=u(/\$\{[\w\W]*/gm),X=u(/^data-[\-\w.\u00B7-\uFFFF]+$/),J=u(/^aria-[\-\w]+$/),V=u(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),K=u(/^(?:\w+script|data):/i),Z=u(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Q=u(/^html$/i),ee=u(/^[a-z][.\w]*(-[.\w]+)+$/i);var te=Object.freeze({__proto__:null,ARIA_ATTR:J,ATTR_WHITESPACE:Z,CUSTOM_ELEMENT:ee,DATA_ATTR:X,DOCTYPE_NAME:Q,ERB_EXPR:Y,IS_ALLOWED_URI:V,IS_SCRIPT_OR_DATA:K,MUSTACHE_EXPR:q,TMPLIT_EXPR:$});const ne=1,oe=3,ie=7,re=8,ae=9,le=function(){return"undefined"==typeof window?null:window};var se,ce,ue=function e(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:le();const n=t=>e(t);if(n.version="3.2.4",n.removed=[],!t||!t.document||t.document.nodeType!==ae||!t.Element)return n.isSupported=!1,n;let{document:o}=t;const r=o,a=r.currentScript,{DocumentFragment:l,HTMLTemplateElement:s,Node:u,Element:m,NodeFilter:p,NamedNodeMap:O=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:R,DOMParser:C,trustedTypes:q}=t,Y=m.prototype,$=k(Y,"cloneNode"),X=k(Y,"remove"),J=k(Y,"nextSibling"),K=k(Y,"childNodes"),Z=k(Y,"parentNode");if("function"==typeof s){const e=o.createElement("template");e.content&&e.content.ownerDocument&&(o=e.content.ownerDocument)}let ee,se="";const{implementation:ce,createNodeIterator:ue,createDocumentFragment:de,getElementsByTagName:me}=o,{importNode:pe}=r;let fe={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};n.isSupported="function"==typeof i&&"function"==typeof Z&&ce&&void 0!==ce.createHTMLDocument;const{MUSTACHE_EXPR:he,ERB_EXPR:ge,TMPLIT_EXPR:ye,DATA_ATTR:we,ARIA_ATTR:_e,IS_SCRIPT_OR_DATA:ve,ATTR_WHITESPACE:Te,CUSTOM_ELEMENT:Ae}=te;let{IS_ALLOWED_URI:Ee}=te,be=null;const Se=L({},[...D,...F,...I,...P,...H]);let Ne=null;const xe=L({},[...W,...B,...G,...j]);let Oe=Object.seal(d(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Re=null,Le=null,Ce=!0,Me=!0,ke=!1,De=!0,Fe=!1,Ie=!0,ze=!1,Pe=!1,Ue=!1,He=!1,We=!1,Be=!1,Ge=!0,je=!1,qe=!0,Ye=!1,$e={},Xe=null;const Je=L({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Ve=null;const Ke=L({},["audio","video","img","source","image","track"]);let Ze=null;const Qe=L({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),et="http://www.w3.org/1998/Math/MathML",tt="http://www.w3.org/2000/svg",nt="http://www.w3.org/1999/xhtml";let ot=nt,it=!1,rt=null;const at=L({},[et,tt,nt],v);let lt=L({},["mi","mo","mn","ms","mtext"]),st=L({},["annotation-xml"]);const ct=L({},["title","style","font","a","script"]);let ut=null;const dt=["application/xhtml+xml","text/html"];let mt=null,pt=null;const ft=o.createElement("form"),ht=function(e){return e instanceof RegExp||e instanceof Function},gt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!pt||pt!==e){if(e&&"object"==typeof e||(e={}),e=M(e),ut=-1===dt.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,mt="application/xhtml+xml"===ut?v:_,be=S(e,"ALLOWED_TAGS")?L({},e.ALLOWED_TAGS,mt):Se,Ne=S(e,"ALLOWED_ATTR")?L({},e.ALLOWED_ATTR,mt):xe,rt=S(e,"ALLOWED_NAMESPACES")?L({},e.ALLOWED_NAMESPACES,v):at,Ze=S(e,"ADD_URI_SAFE_ATTR")?L(M(Qe),e.ADD_URI_SAFE_ATTR,mt):Qe,Ve=S(e,"ADD_DATA_URI_TAGS")?L(M(Ke),e.ADD_DATA_URI_TAGS,mt):Ke,Xe=S(e,"FORBID_CONTENTS")?L({},e.FORBID_CONTENTS,mt):Je,Re=S(e,"FORBID_TAGS")?L({},e.FORBID_TAGS,mt):{},Le=S(e,"FORBID_ATTR")?L({},e.FORBID_ATTR,mt):{},$e=!!S(e,"USE_PROFILES")&&e.USE_PROFILES,Ce=!1!==e.ALLOW_ARIA_ATTR,Me=!1!==e.ALLOW_DATA_ATTR,ke=e.ALLOW_UNKNOWN_PROTOCOLS||!1,De=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Fe=e.SAFE_FOR_TEMPLATES||!1,Ie=!1!==e.SAFE_FOR_XML,ze=e.WHOLE_DOCUMENT||!1,He=e.RETURN_DOM||!1,We=e.RETURN_DOM_FRAGMENT||!1,Be=e.RETURN_TRUSTED_TYPE||!1,Ue=e.FORCE_BODY||!1,Ge=!1!==e.SANITIZE_DOM,je=e.SANITIZE_NAMED_PROPS||!1,qe=!1!==e.KEEP_CONTENT,Ye=e.IN_PLACE||!1,Ee=e.ALLOWED_URI_REGEXP||V,ot=e.NAMESPACE||nt,lt=e.MATHML_TEXT_INTEGRATION_POINTS||lt,st=e.HTML_INTEGRATION_POINTS||st,Oe=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&ht(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Oe.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&ht(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Oe.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Oe.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Fe&&(Me=!1),We&&(He=!0),$e&&(be=L({},H),Ne=[],!0===$e.html&&(L(be,D),L(Ne,W)),!0===$e.svg&&(L(be,F),L(Ne,B),L(Ne,j)),!0===$e.svgFilters&&(L(be,I),L(Ne,B),L(Ne,j)),!0===$e.mathMl&&(L(be,P),L(Ne,G),L(Ne,j))),e.ADD_TAGS&&(be===Se&&(be=M(be)),L(be,e.ADD_TAGS,mt)),e.ADD_ATTR&&(Ne===xe&&(Ne=M(Ne)),L(Ne,e.ADD_ATTR,mt)),e.ADD_URI_SAFE_ATTR&&L(Ze,e.ADD_URI_SAFE_ATTR,mt),e.FORBID_CONTENTS&&(Xe===Je&&(Xe=M(Xe)),L(Xe,e.FORBID_CONTENTS,mt)),qe&&(be["#text"]=!0),ze&&L(be,["html","head","body"]),be.table&&(L(be,["tbody"]),delete Re.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw x('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw x('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');ee=e.TRUSTED_TYPES_POLICY,se=ee.createHTML("")}else void 0===ee&&(ee=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const o="data-tt-policy-suffix";t&&t.hasAttribute(o)&&(n=t.getAttribute(o));const i="dompurify"+(n?"#"+n:"");try{return e.createPolicy(i,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+i+" could not be created."),null}}(q,a)),null!==ee&&"string"==typeof se&&(se=ee.createHTML(""));c&&c(e),pt=e}},yt=L({},[...F,...I,...z]),wt=L({},[...P,...U]),_t=function(e){y(n.removed,{element:e});try{Z(e).removeChild(e)}catch(t){X(e)}},vt=function(e,t){try{y(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){y(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e)if(He||We)try{_t(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},Tt=function(e){let t=null,n=null;if(Ue)e="<remove></remove>"+e;else{const t=T(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===ut&&ot===nt&&(e='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+e+"</body></html>");const i=ee?ee.createHTML(e):e;if(ot===nt)try{t=(new C).parseFromString(i,ut)}catch(e){}if(!t||!t.documentElement){t=ce.createDocument(ot,"template",null);try{t.documentElement.innerHTML=it?se:i}catch(e){}}const r=t.body||t.documentElement;return e&&n&&r.insertBefore(o.createTextNode(n),r.childNodes[0]||null),ot===nt?me.call(t,ze?"html":"body")[0]:ze?t.documentElement:r},At=function(e){return ue.call(e.ownerDocument||e,e,p.SHOW_ELEMENT|p.SHOW_COMMENT|p.SHOW_TEXT|p.SHOW_PROCESSING_INSTRUCTION|p.SHOW_CDATA_SECTION,null)},Et=function(e){return e instanceof R&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof O)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},bt=function(e){return"function"==typeof u&&e instanceof u};function St(e,t,o){f(e,e=>{e.call(n,t,o,pt)})}const Nt=function(e){let t=null;if(St(fe.beforeSanitizeElements,e,null),Et(e))return _t(e),!0;const o=mt(e.nodeName);if(St(fe.uponSanitizeElement,e,{tagName:o,allowedTags:be}),e.hasChildNodes()&&!bt(e.firstElementChild)&&N(/<[/\w]/g,e.innerHTML)&&N(/<[/\w]/g,e.textContent))return _t(e),!0;if(e.nodeType===ie)return _t(e),!0;if(Ie&&e.nodeType===re&&N(/<[/\w]/g,e.data))return _t(e),!0;if(!be[o]||Re[o]){if(!Re[o]&&Ot(o)){if(Oe.tagNameCheck instanceof RegExp&&N(Oe.tagNameCheck,o))return!1;if(Oe.tagNameCheck instanceof Function&&Oe.tagNameCheck(o))return!1}if(qe&&!Xe[o]){const t=Z(e)||e.parentNode,n=K(e)||e.childNodes;if(n&&t){for(let o=n.length-1;o>=0;--o){const i=$(n[o],!0);i.__removalCount=(e.__removalCount||0)+1,t.insertBefore(i,J(e))}}}return _t(e),!0}return e instanceof m&&!function(e){let t=Z(e);t&&t.tagName||(t={namespaceURI:ot,tagName:"template"});const n=_(e.tagName),o=_(t.tagName);return!!rt[e.namespaceURI]&&(e.namespaceURI===tt?t.namespaceURI===nt?"svg"===n:t.namespaceURI===et?"svg"===n&&("annotation-xml"===o||lt[o]):Boolean(yt[n]):e.namespaceURI===et?t.namespaceURI===nt?"math"===n:t.namespaceURI===tt?"math"===n&&st[o]:Boolean(wt[n]):e.namespaceURI===nt?!(t.namespaceURI===tt&&!st[o])&&!(t.namespaceURI===et&&!lt[o])&&!wt[n]&&(ct[n]||!yt[n]):!("application/xhtml+xml"!==ut||!rt[e.namespaceURI]))}(e)?(_t(e),!0):"noscript"!==o&&"noembed"!==o&&"noframes"!==o||!N(/<\/no(script|embed|frames)/i,e.innerHTML)?(Fe&&e.nodeType===oe&&(t=e.textContent,f([he,ge,ye],e=>{t=A(t,e," ")}),e.textContent!==t&&(y(n.removed,{element:e.cloneNode()}),e.textContent=t)),St(fe.afterSanitizeElements,e,null),!1):(_t(e),!0)},xt=function(e,t,n){if(Ge&&("id"===t||"name"===t)&&(n in o||n in ft))return!1;if(Me&&!Le[t]&&N(we,t));else if(Ce&&N(_e,t));else if(!Ne[t]||Le[t]){if(!(Ot(e)&&(Oe.tagNameCheck instanceof RegExp&&N(Oe.tagNameCheck,e)||Oe.tagNameCheck instanceof Function&&Oe.tagNameCheck(e))&&(Oe.attributeNameCheck instanceof RegExp&&N(Oe.attributeNameCheck,t)||Oe.attributeNameCheck instanceof Function&&Oe.attributeNameCheck(t))||"is"===t&&Oe.allowCustomizedBuiltInElements&&(Oe.tagNameCheck instanceof RegExp&&N(Oe.tagNameCheck,n)||Oe.tagNameCheck instanceof Function&&Oe.tagNameCheck(n))))return!1}else if(Ze[t]);else if(N(Ee,A(n,Te,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==E(n,"data:")||!Ve[e]){if(ke&&!N(ve,A(n,Te,"")));else if(n)return!1}else;return!0},Ot=function(e){return"annotation-xml"!==e&&T(e,Ae)},Rt=function(e){St(fe.beforeSanitizeAttributes,e,null);const{attributes:t}=e;if(!t||Et(e))return;const o={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Ne,forceKeepAttr:void 0};let i=t.length;for(;i--;){const r=t[i],{name:a,namespaceURI:l,value:s}=r,c=mt(a);let u="value"===a?s:b(s);if(o.attrName=c,o.attrValue=u,o.keepAttr=!0,o.forceKeepAttr=void 0,St(fe.uponSanitizeAttribute,e,o),u=o.attrValue,!je||"id"!==c&&"name"!==c||(vt(a,e),u="user-content-"+u),Ie&&N(/((--!?|])>)|<\/(style|title)/i,u)){vt(a,e);continue}if(o.forceKeepAttr)continue;if(vt(a,e),!o.keepAttr)continue;if(!De&&N(/\/>/i,u)){vt(a,e);continue}Fe&&f([he,ge,ye],e=>{u=A(u,e," ")});const d=mt(e.nodeName);if(xt(d,c,u)){if(ee&&"object"==typeof q&&"function"==typeof q.getAttributeType)if(l);else switch(q.getAttributeType(d,c)){case"TrustedHTML":u=ee.createHTML(u);break;case"TrustedScriptURL":u=ee.createScriptURL(u)}try{l?e.setAttributeNS(l,a,u):e.setAttribute(a,u),Et(e)?_t(e):g(n.removed)}catch(e){}}}St(fe.afterSanitizeAttributes,e,null)},Lt=function e(t){let n=null;const o=At(t);for(St(fe.beforeSanitizeShadowDOM,t,null);n=o.nextNode();)St(fe.uponSanitizeShadowNode,n,null),Nt(n),Rt(n),n.content instanceof l&&e(n.content);St(fe.afterSanitizeShadowDOM,t,null)};return n.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=null,i=null,a=null,s=null;if(it=!e,it&&(e="\x3c!--\x3e"),"string"!=typeof e&&!bt(e)){if("function"!=typeof e.toString)throw x("toString is not a function");if("string"!=typeof(e=e.toString()))throw x("dirty is not a string, aborting")}if(!n.isSupported)return e;if(Pe||gt(t),n.removed=[],"string"==typeof e&&(Ye=!1),Ye){if(e.nodeName){const t=mt(e.nodeName);if(!be[t]||Re[t])throw x("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof u)o=Tt("\x3c!----\x3e"),i=o.ownerDocument.importNode(e,!0),i.nodeType===ne&&"BODY"===i.nodeName||"HTML"===i.nodeName?o=i:o.appendChild(i);else{if(!He&&!Fe&&!ze&&-1===e.indexOf("<"))return ee&&Be?ee.createHTML(e):e;if(o=Tt(e),!o)return He?null:Be?se:""}o&&Ue&&_t(o.firstChild);const c=At(Ye?e:o);for(;a=c.nextNode();)Nt(a),Rt(a),a.content instanceof l&&Lt(a.content);if(Ye)return e;if(He){if(We)for(s=de.call(o.ownerDocument);o.firstChild;)s.appendChild(o.firstChild);else s=o;return(Ne.shadowroot||Ne.shadowrootmode)&&(s=pe.call(r,s,!0)),s}let d=ze?o.outerHTML:o.innerHTML;return ze&&be["!doctype"]&&o.ownerDocument&&o.ownerDocument.doctype&&o.ownerDocument.doctype.name&&N(Q,o.ownerDocument.doctype.name)&&(d="<!DOCTYPE "+o.ownerDocument.doctype.name+">\n"+d),Fe&&f([he,ge,ye],e=>{d=A(d,e," ")}),ee&&Be?ee.createHTML(d):d},n.setConfig=function(){gt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Pe=!0},n.clearConfig=function(){pt=null,Pe=!1},n.isValidAttribute=function(e,t,n){pt||gt({});const o=mt(e),i=mt(t);return xt(o,i,n)},n.addHook=function(e,t){"function"==typeof t&&y(fe[e],t)},n.removeHook=function(e,t){if(void 0!==t){const n=h(fe[e],t);return-1===n?void 0:w(fe[e],n,1)[0]}return g(fe[e])},n.removeHooks=function(e){fe[e]=[]},n.removeAllHooks=function(){fe={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},n}();function de(){if(null==se){var e=function(){var e=window.location;"about:srcdoc"==e.href&&(e=window.parent.location);var t={};return function(e,n,o){for(;o=n.exec(e);)t[decodeURIComponent(o[1])]=decodeURIComponent(o[2])}(e.search.substring(1).replace(/\+/g,"%20"),/([^&=]+)=?([^&]*)/g),t}();se="referrer"in e?/^https:\/\/medium.com\//.test(e.referrer):!("auto"in e)}return se}function me(e){var t=e||window.innerWidth;return t>999?650:t>599?575:400}function pe(e){if(e&&window.top!==window.self){var t=window;"srcdoc"==t.location.pathname&&(t=t.parent);var n={sender:"Flourish",method:"scrolly",captions:e.captions,hasScrollyTransformFix:e.hasScrollyTransformFix};t.parent.postMessage(JSON.stringify(n),"*")}}function fe(e,t){if(window.top!==window.self){var n=window;if("srcdoc"==n.location.pathname&&(n=n.parent),ce)return e=parseInt(e,10),void n.parent.postMessage({sentinel:"amp",type:"embed-size",height:e},"*");var o={sender:"Flourish",context:"iframe.resize",method:"resize",height:e,src:n.location.toString()};if(t)for(var i in t)o[i]=t[i];n.parent.postMessage(JSON.stringify(o),"*")}}function he(){return(-1!==navigator.userAgent.indexOf("Safari")||-1!==navigator.userAgent.indexOf("iPhone"))&&-1==navigator.userAgent.indexOf("Chrome")}function ge(e){return"string"==typeof e||e instanceof String}function ye(e){return"warn"!==e.method?(console.warn("BUG: validateWarnMessage called for method"+e.method),!1):!(null!=e.message&&!ge(e.message))&&!(null!=e.explanation&&!ge(e.explanation))}function we(e){return"resize"!==e.method?(console.warn("BUG: validateResizeMessage called for method"+e.method),!1):!!ge(e.src)&&(!!ge(e.context)&&!!("number"==typeof(t=e.height)?!isNaN(t)&&t>=0:ge(t)&&/\d/.test(t)&&/^[0-9]*(\.[0-9]*)?(cm|mm|Q|in|pc|pt|px|em|ex|ch|rem|lh|vw|vh|vmin|vmax|%)?$/i.test(t)));var t}function _e(e){throw new Error("Validation for setSetting is not implemented yet; see issue #4328")}function ve(e){return"scrolly"!==e.method?(console.warn("BUG: validateScrolly called for method"+e.method),!1):!!Array.isArray(e.captions)}function Te(e){return"customerAnalytics"===e.method||(console.warn("BUG: validateCustomerAnalyticsMessage called for method"+e.method),!1)}function Ae(e){return"request-upload"!==e.method?(console.warn("BUG: validateResizeMessage called for method"+e.method),!1):!!ge(e.name)&&!(null!=e.accept&&!ge(e.accept))}function Ee(e,t,n){var o=function(e){for(var t={warn:ye,resize:we,setSetting:_e,customerAnalytics:Te,"request-upload":Ae,scrolly:ve},n={},o=0;o<e.length;o++){var i=e[o];if(!t[i])throw new Error("No validator found for method "+i);n[i]=t[i]}return n}(t);window.addEventListener("message",function(t){var i=function(){if(t.origin==document.location.origin)return!0;if(n){const e=t.origin.toLowerCase();if(n=n.toLowerCase(),e.endsWith("//"+n))return!0;if(e.endsWith("."+n))return!0}return!!t.origin.match(/\/\/localhost:\d+$|\/\/(?:public|app)\.local\.flourish-internal\.com$|\/\/flourish-api\.com$|\.flourish\.(?:local(:\d+)?|net|rocks|studio)$|\.uri\.sh$|\/\/flourish-user-templates\.com$/)}();if(null!=t.source&&i){var r;try{r="object"==typeof t.data?t.data:JSON.parse(t.data)}catch(e){return void console.warn("Unexpected non-JSON message: "+JSON.stringify(t.data))}if("Flourish"===r.sender)if(r.method)if(Object.prototype.hasOwnProperty.call(o,r.method))if(o[r.method](r)){for(var a=document.querySelectorAll("iframe"),l=0;l<a.length;l++)if(a[l].contentWindow==t.source||a[l].contentWindow==t.source.parent)return void e(r,a[l]);console.warn("could not find frame",r)}else console.warn("Validation failed for the message",r);else console.warn("No validator implemented for message",r);else console.warn("The 'method' property was missing from message",r)}}),he()&&(window.addEventListener("resize",be),be())}function be(){for(var e=document.querySelectorAll(".flourish-embed"),t=0;t<e.length;t++){var n=e[t];if(!n.getAttribute("data-width")){var o=n.querySelector("iframe");if(o){var i=window.getComputedStyle(n),r=n.offsetWidth-parseFloat(i.paddingLeft)-parseFloat(i.paddingRight);o.style.width=r+"px"}}}}function Se(e,t,n){var o=e.parentNode;if(o.classList.contains("fl-scrolly-wrapper"))return void console.warn("createScrolly is being called more than once per story. This should not happen.");o.classList.add("fl-scrolly-wrapper"),o.style.position="relative",o.style.paddingBottom="1px",o.style.transform="translate3d(0, 0, 0)";const i=navigator.platform.indexOf("Win")>-1,r=!!window.chrome&&(navigator.userAgent.indexOf("Chrome")>-1||navigator.userAgent.indexOf("Edg")>-1||navigator.userAgent.indexOf("OPR")>-1);if(i&&r&&n){let e,t=0;window.addEventListener("scroll",function(){clearTimeout(e),e=setTimeout(()=>{t=0===t?1:0,o.style.transform=`translateZ(${t}px)`},100)})}e.style.position="sticky";var a=o.getAttribute("data-height")||null;a||(a="80vh",e.style.height=a),e.style.top="calc(50vh - "+a+"/2)";var l=o.querySelector(".flourish-credit");l&&(l.style.position="sticky",l.style.top="calc(50vh + "+a+"/2)"),t.forEach(function(e,t){var n="string"==typeof e&&""!=e.trim(),i=document.createElement("div");i.setAttribute("data-slide",t),i.classList.add("fl-scrolly-caption"),i.style.position="relative",i.style.transform="translate3d(0,0,0)",i.style.textAlign="center",i.style.maxWidth="500px",i.style.height="auto",i.style.marginTop="0",i.style.marginBottom=n?"100vh":"50vh",i.style.marginLeft="auto",i.style.marginRight="auto";var r=document.createElement("div");r.innerHTML=ue.sanitize(e,{ADD_ATTR:["target"]}),r.style.visibility=n?"":"hidden",r.style.display="inline-block",r.style.paddingTop="1.25em",r.style.paddingRight="1.25em",r.style.paddingBottom="1.25em",r.style.paddingLeft="1.25em",r.style.background="rgba(255,255,255,0.9)",r.style.boxShadow="0px 0px 10px rgba(0,0,0,0.2)",r.style.borderRadius="10px",r.style.textAlign="center",r.style.maxWidth="100%",r.style.margin="0 20px",r.style.overflowX="hidden",i.appendChild(r),o.appendChild(i)}),function(e){for(var t=new IntersectionObserver(function(t){t.forEach(function(t){if(t.isIntersecting){var n=e.querySelector("iframe");n&&(n.src=n.src.replace(/#slide-.*/,"")+"#slide-"+t.target.getAttribute("data-slide"))}})},{rootMargin:"0px 0px -0% 0px"}),n=e.querySelectorAll(".fl-scrolly-caption"),o=0;o<n.length;o++)t.observe(n[o]);e.querySelectorAll(".fl-scrolly-caption img").forEach(function(e){e.style.maxWidth="100%"})}(o)}function Ne(e,t,n,o,i){var r=document.createElement("iframe");if(r.setAttribute("scrolling","no"),r.setAttribute("frameborder","0"),r.setAttribute("title","Interactive or visual content"),r.setAttribute("sandbox","allow-same-origin allow-forms allow-scripts allow-downloads allow-popups allow-popups-to-escape-sandbox allow-top-navigation-by-user-activation"),t.appendChild(r),r.offsetParent||"fixed"===getComputedStyle(r).position)xe(e,t,r,n,o,i);else{var a={embed_url:e,container:t,iframe:r,width:n,height:o,play_on_load:i};if(window._flourish_poll_items?window._flourish_poll_items.push(a):window._flourish_poll_items=[a],window._flourish_poll_items.length>1)return r;var l=setInterval(function(){window._flourish_poll_items=window._flourish_poll_items.filter(function(e){return!e.iframe.offsetParent||(xe(e.embed_url,e.container,e.iframe,e.width,e.height,e.play_on_load),!1)}),window._flourish_poll_items.length||clearInterval(l)},500)}return r}function xe(e,t,n,o,i,r){var a;return o&&"number"==typeof o?(a=o,o+="px"):o&&o.match(/^[ \t\r\n\f]*([+-]?\d+|\d*\.\d+(?:[eE][+-]?\d+)?)(?:\\?[Pp]|\\0{0,4}[57]0(?:\r\n|[ \t\r\n\f])?)(?:\\?[Xx]|\\0{0,4}[57]8(?:\r\n|[ \t\r\n\f])?)[ \t\r\n\f]*$/)&&(a=parseFloat(o)),i&&"number"==typeof i&&(i+="px"),o?n.style.width=o:he()?n.style.width=t.offsetWidth+"px":n.style.width="100%",!!i||(e.match(/\?/)?e+="&auto=1":e+="?auto=1",i=me(a||n.offsetWidth)+"px"),i&&("%"===i.charAt(i.length-1)&&(i=parseFloat(i)/100*t.parentNode.offsetHeight+"px"),n.style.height=i),n.setAttribute("src",e+(r?"#play-on-load":"")),n}function Oe(e){return!Array.isArray(e)&&"object"==typeof e&&null!=e}function Re(e,t){for(const n in t)Oe(e[n])&&Oe(t[n])?Re(e[n],t[n]):e[n]=t[n];return e}!function(){var e,i=window.top===window.self,r=i?null:(ce="#amp=1"==window.location.hash,{createEmbedIframe:Ne,isFixedHeight:de,getHeightForBreakpoint:me,startEventListeners:Ee,notifyParentWindow:fe,initScrolly:pe,createScrolly:Se,isSafari:he,initCustomerAnalytics:o,addAnalyticsListener:n,sendCustomerAnalyticsMessage:t}),a=!0;function l(){var t;Flourish.fixed_height||(null!=e?t=e:a&&(t=r.getHeightForBreakpoint()),t!==window.innerHeight&&r.notifyParentWindow(t))}function s(){-1!==window.location.search.indexOf("enable_customer_analytics=1")&&Flourish.enableCustomerAnalytics(),l(),window.addEventListener("resize",l)}Flourish.warn=function(e){if("string"==typeof e&&(e={message:e}),i||"editor"!==Flourish.environment)console.warn(e.message);else{var t={sender:"Flourish",method:"warn",message:e.message,explanation:e.explanation};window.parent.postMessage(JSON.stringify(t),"*")}},Flourish.uploadImage=function(e){if(i||"story_editor"!==Flourish.environment)throw"Invalid upload request";var t={sender:"Flourish",method:"request-upload",name:e.name,accept:e.accept};window.parent.postMessage(JSON.stringify(t),"*")},Flourish.setSetting=function(e,t){if("editor"===Flourish.environment||"sdk"===Flourish.environment){var n={sender:"Flourish",method:"setSetting",name:e,value:t};window.parent.postMessage(JSON.stringify(n),"*")}else if("story_editor"===Flourish.environment){var o={};o[e]=t,Re(window.template.state,function(e){var t=Object.create(null);for(var n in e){for(var o=t,i=n.indexOf("."),r=0;i>=0;i=n.indexOf(".",r=i+1)){var a=n.substring(r,i);a in o||(o[a]=Object.create(null)),o=o[a]}o[n.substring(r)]=e[n]}return t}(o))}},Flourish.setHeight=function(t){Flourish.fixed_height||(e=t,a=null==t,l())},Flourish.checkHeight=function(){if(!i){var e=Flourish.__container_height;null!=e?(Flourish.fixed_height=!0,r.notifyParentWindow(e)):r.isFixedHeight()?Flourish.fixed_height=!0:(Flourish.fixed_height=!1,l())}},Flourish.fixed_height=i||r.isFixedHeight(),Flourish.enableCustomerAnalytics=function(){r&&r.initCustomerAnalytics()},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",s):s()}()}();
|
|
3
3
|
//# sourceMappingURL=embedded.js.map
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M12.0003 4.5C12.4144 4.5002 12.7503 4.83591 12.7503 5.25V16.8457L17.1263 12.4697C17.4191 12.1769 17.8939 12.1769 18.1868 12.4697C18.4797 12.7626 18.4797 13.2374 18.1868 13.5303L13.2376 18.4805C12.5542 19.1638 11.4454 19.1639 10.762 18.4805L5.81281 13.5303C5.51992 13.2374 5.51992 12.7626 5.81281 12.4697C6.1057 12.1768 6.58046 12.1768 6.87336 12.4697L11.2503 16.8457V5.25C11.2503 4.83579 11.5861 4.5 12.0003 4.5Z" fill="#191E26"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="15" height="13" viewBox="0 0 15 13" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M2.14645 5.65685H13.7426C14.1569 5.65685 14.4926 5.99264 14.4926 6.40685C14.4926 6.82107 14.1569 7.15685 13.7426 7.15685H2.14645L6.52297 11.5334C6.81586 11.8263 6.81586 12.3011 6.52297 12.594C6.23008 12.8869 5.7552 12.8869 5.46231 12.594L0.512563 7.64429C-0.170854 6.96087 -0.170854 5.85283 0.512563 5.16942L5.46231 0.21967C5.7552 -0.0732233 6.23008 -0.0732233 6.52297 0.21967C6.81586 0.512563 6.81586 0.987437 6.52297 1.28033L2.14645 5.65685Z" fill="#191E26"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 13 13" fill="none">
|
|
2
|
+
<path d="M7.46764 6.40698L12.594 11.5334C12.8869 11.8263 12.8869 12.3011 12.594 12.594C12.3011 12.8869 11.8263 12.8869 11.5334 12.594L6.40698 7.46764L1.28059 12.594C0.987693 12.8869 0.51282 12.8869 0.219927 12.594C-0.0729667 12.3011 -0.0729667 11.8263 0.219927 11.5334L5.34632 6.40698L0.21967 1.28033C-0.0732233 0.987437 -0.0732233 0.512563 0.21967 0.21967C0.512563 -0.0732233 0.987437 -0.0732233 1.28033 0.21967L6.40698 5.34632L11.5336 0.21967C11.8265 -0.0732233 12.3014 -0.0732233 12.5943 0.21967C12.8872 0.512563 12.8872 0.987437 12.5943 1.28033L7.46764 6.40698Z" fill="white"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M12.95 12.7497H3.25C3.05109 12.7497 2.86032 12.6707 2.71967 12.5301C2.57902 12.3894 2.5 12.1986 2.5 11.9997C2.5 11.8008 2.57902 11.6101 2.71967 11.4694C2.86032 11.3288 3.05109 11.2497 3.25 11.2497H12.95L9.72 8.20973C9.58752 8.06756 9.5154 7.87951 9.51882 7.68521C9.52225 7.49091 9.60097 7.30552 9.73838 7.16811C9.87579 7.0307 10.0612 6.95199 10.2555 6.94856C10.4498 6.94513 10.6378 7.01725 10.78 7.14973L15.27 11.4697C15.57 11.7697 15.57 12.2397 15.27 12.5297L10.77 16.7097C10.7034 16.7909 10.6205 16.8572 10.5267 16.9044C10.4328 16.9515 10.3301 16.9784 10.2252 16.9833C10.1203 16.9882 10.0156 16.9711 9.91774 16.9329C9.81989 16.8948 9.73115 16.8365 9.65725 16.7619C9.58334 16.6873 9.52593 16.598 9.48873 16.4998C9.45153 16.4016 9.43536 16.2967 9.44127 16.1919C9.44719 16.087 9.47506 15.9846 9.52307 15.8912C9.57108 15.7978 9.63818 15.7156 9.72 15.6497L12.93 12.7497H12.95Z" fill="white"/>
|
|
3
|
+
<path d="M19.4969 19.5H13.4969C13.2208 19.5 12.9969 19.2761 12.9969 19V17.6067L11.4969 19C11.4969 20.1046 12.3924 21 13.4969 21H19.4969C20.6015 21 21.4969 20.1046 21.4969 19V5C21.4969 3.89543 20.6015 3 19.497 3H13.4969C12.3924 3 11.4969 3.89543 11.4969 5L12.9969 6.44321V5C12.9969 4.72386 13.2208 4.5 13.4969 4.5L19.497 4.5C19.7731 4.5 19.9969 4.72386 19.9969 5V19C19.9969 19.2761 19.7731 19.5 19.4969 19.5Z" fill="white"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M9.25049 10.037C9.25049 8.9324 10.1459 8.03697 11.2505 8.03697C12.3551 8.03697 13.2505 8.9324 13.2505 10.037C13.2505 10.8763 12.7334 11.5949 12.0005 11.8916V15.5561C12.0005 15.9703 11.6647 16.3061 11.2505 16.3061C10.8363 16.3061 10.5005 15.9703 10.5005 15.5561V11.8916C9.76753 11.5949 9.25049 10.8763 9.25049 10.037Z" fill="#191E26"/>
|
|
3
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.2083 3.5C8.38737 3.5 6.00771 5.64044 5.73408 8.43789C5.72701 8.51016 5.6759 8.573 5.61537 8.59515C3.36169 9.41986 1.75 11.5797 1.75 14.1184C1.75 17.3687 4.39162 20 7.64583 20H16.3542C19.6084 20 22.25 17.3687 22.25 14.1184C22.25 11.0469 19.8579 8.4838 16.8324 8.25121C16.7425 8.24431 16.6472 8.1616 16.6302 8.06181C16.1883 5.47358 13.9291 3.5 11.2083 3.5ZM7.22695 8.58391C7.42465 6.56282 9.15103 5 11.2083 5C13.1876 5 14.8309 6.43624 15.1516 8.31425C15.2825 9.08105 15.9307 9.68632 16.7174 9.7468C18.9618 9.91934 20.75 11.8312 20.75 14.1184C20.75 16.5363 18.7839 18.5 16.3542 18.5H7.64583C5.21612 18.5 3.25 16.5363 3.25 14.1184C3.25 12.2314 4.44741 10.6198 6.13085 10.0038C6.74038 9.78075 7.16456 9.22175 7.22695 8.58391Z" fill="#191E26"/>
|
|
4
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|