@everymatrix/cashier-session-expiration-modal 1.43.0 → 1.43.2
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.
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
!function(e
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).app=e()}(this,(function(){"use strict";function t(){}const e=t=>t;function n(t){return t()}function r(){return Object.create(null)}function i(t){t.forEach(n)}function o(t){return"function"==typeof t}function s(t,e){return t!=t?e==e:t!==e||t&&"object"==typeof t||"function"==typeof t}let a;function c(t,e){return a||(a=document.createElement("a")),a.href=e,t===a.href}function l(e,...n){if(null==e)return t;const r=e.subscribe(...n);return r.unsubscribe?()=>r.unsubscribe():r}const u="undefined"!=typeof window;let h=u?()=>window.performance.now():()=>Date.now(),f=u?t=>requestAnimationFrame(t):t;const p=new Set;function m(t){p.forEach((e=>{e.c(t)||(p.delete(e),e.f())})),0!==p.size&&f(m)}
|
|
2
2
|
/**
|
|
3
3
|
* Creates a new task that runs on each raf frame
|
|
4
4
|
* until it returns a falsy value or is aborted
|
|
5
|
-
*/function d(e
|
|
5
|
+
*/function d(t,e){t.appendChild(e)}function g(t){if(!t)return document;const e=t.getRootNode?t.getRootNode():t.ownerDocument;return e&&e.host?e:t.ownerDocument}function y(t){const e=T("style");return function(t,e){d(t.head||t,e),e.sheet}(g(t),e),e.sheet}function E(t,e,n){t.insertBefore(e,n||null)}function b(t){t.parentNode&&t.parentNode.removeChild(t)}function T(t){return document.createElement(t)}function v(t){return document.createTextNode(t)}function w(){return v(" ")}function S(t,e,n,r){return t.addEventListener(e,n,r),()=>t.removeEventListener(e,n,r)}function A(t,e,n){null==n?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function H(t,e){e=""+e,t.data!==e&&(t.data=e)}
|
|
6
6
|
// unfortunately this can't be a constant as that wouldn't be tree-shakeable
|
|
7
7
|
// so we cache the result instead
|
|
8
|
-
let
|
|
8
|
+
let O;function N(){if(void 0===O){O=!1;try{"undefined"!=typeof window&&window.parent&&window.parent.document}catch(t){O=!0}}return O}function C(t){const e={};for(const n of t)e[n.name]=n.value;return e}
|
|
9
9
|
// we need to store the information for multiple documents because a Svelte application could also contain iframes
|
|
10
10
|
// https://github.com/sveltejs/svelte/issues/3624
|
|
11
|
-
const
|
|
11
|
+
const M=new Map;let L,B=0;
|
|
12
12
|
// https://github.com/darkskyapp/string-hash/blob/master/index.js
|
|
13
|
-
function
|
|
13
|
+
function P(t,e,n,r,i,o,s,a=0){const c=16.666/r;let l="{\n";for(let t=0;t<=1;t+=c){const r=e+(n-e)*o(t);l+=100*t+`%{${s(r,1-r)}}\n`}const u=l+`100% {${s(n,1-n)}}\n}`,h=`__svelte_${function(t){let e=5381,n=t.length;for(;n--;)e=(e<<5)-e^t.charCodeAt(n);return e>>>0}(u)}_${a}`,f=g(t),{stylesheet:p,rules:m}=M.get(f)||function(t,e){const n={stylesheet:y(e),rules:{}};return M.set(t,n),n}(f,t);m[h]||(m[h]=!0,p.insertRule(`@keyframes ${h} ${u}`,p.cssRules.length));const d=t.style.animation||"";return t.style.animation=`${d?`${d}, `:""}${h} ${r}ms linear ${i}ms 1 both`,B+=1,h}function R(t,e){const n=(t.style.animation||"").split(", "),r=n.filter(e?t=>t.indexOf(e)<0:t=>-1===t.indexOf("__svelte")),i=n.length-r.length;i&&(t.style.animation=r.join(", "),B-=i,B||f((()=>{B||(M.forEach((t=>{const{ownerNode:e}=t.stylesheet;
|
|
14
14
|
// there is no ownerNode if it runs on jsdom.
|
|
15
|
-
|
|
15
|
+
e&&b(e)})),M.clear())})))}function D(t){L=t}function x(){if(!L)throw new Error("Function called outside component initialization");return L}
|
|
16
16
|
/**
|
|
17
17
|
* The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.
|
|
18
18
|
* It must be called during the component's initialisation (but doesn't need to live *inside* the component;
|
|
@@ -21,7 +21,7 @@ t&&b(t)})),B.clear())})))}function x(e){P=e}function I(){if(!P)throw new Error("
|
|
|
21
21
|
* `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).
|
|
22
22
|
*
|
|
23
23
|
* https://svelte.dev/docs#run-time-svelte-onmount
|
|
24
|
-
*/const
|
|
24
|
+
*/const I=[],k=[];let U=[];const G=[],F=Promise.resolve();let z=!1;function Z(t){U.push(t)}
|
|
25
25
|
// flush() calls callbacks in this order:
|
|
26
26
|
// 1. All beforeUpdate callbacks, in order: parents before children
|
|
27
27
|
// 2. All bind:this callbacks, in reverse order: children before parents.
|
|
@@ -40,69 +40,69 @@ t&&b(t)})),B.clear())})))}function x(e){P=e}function I(){if(!P)throw new Error("
|
|
|
40
40
|
// 3. During afterUpdate, any updated components will NOT have their afterUpdate
|
|
41
41
|
// callback called a second time; the seen_callbacks set, outside the flush()
|
|
42
42
|
// function, guarantees this behavior.
|
|
43
|
-
const j=new Set;let V
|
|
43
|
+
const j=new Set;let W,V=0;// Do *not* move this inside the flush() function
|
|
44
44
|
function _(){
|
|
45
45
|
// Do not reenter flush while dirty components are updated, as this can
|
|
46
46
|
// result in an infinite loop. Instead, let the inner flush handle it.
|
|
47
47
|
// Reentrancy is ok afterwards for bindings etc.
|
|
48
|
-
if(0!==
|
|
48
|
+
if(0!==V)return;const t=L;do{
|
|
49
49
|
// first, call beforeUpdate functions
|
|
50
50
|
// and update components
|
|
51
|
-
try{for(;
|
|
51
|
+
try{for(;V<I.length;){const t=I[V];V++,D(t),Y(t.$$)}}catch(t){
|
|
52
52
|
// reset dirty state to not end up in a deadlocked state and then rethrow
|
|
53
|
-
throw
|
|
53
|
+
throw I.length=0,V=0,t}for(D(null),I.length=0,V=0;k.length;)k.pop()();
|
|
54
54
|
// then, once components are updated, call
|
|
55
55
|
// afterUpdate functions. This may cause
|
|
56
56
|
// subsequent updates...
|
|
57
|
-
for(let
|
|
57
|
+
for(let t=0;t<U.length;t+=1){const e=U[t];j.has(e)||(
|
|
58
58
|
// ...so guard against infinite loops
|
|
59
|
-
j.add(
|
|
59
|
+
j.add(e),e())}U.length=0}while(I.length);for(;G.length;)G.pop()();z=!1,j.clear(),D(t)}function Y(t){if(null!==t.fragment){t.update(),i(t.before_update);const e=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,e),t.after_update.forEach(Z)}}
|
|
60
60
|
/**
|
|
61
61
|
* Useful for example to execute remaining `afterUpdate` callbacks before executing `destroy`.
|
|
62
|
-
*/function
|
|
62
|
+
*/function J(t,e,n){t.dispatchEvent(function(t,e,{bubbles:n=!1,cancelable:r=!1}={}){const i=document.createEvent("CustomEvent");return i.initCustomEvent(t,n,r,e),i}(`${e?"intro":"outro"}${n}`))}const X=new Set;let q;function K(t,e){t&&t.i&&(X.delete(t),t.i(e))}function Q(t,e,n,r){if(t&&t.o){if(X.has(t))return;X.add(t),q.c.push((()=>{X.delete(t),r&&(n&&t.d(1),r())})),t.o(e)}else r&&r()}const $={duration:0};function tt(n,r,s,a){const c={direction:"both"};let l=r(n,s,c),u=a?0:1,d=null,g=null,y=null;function E(){y&&R(n,y)}function b(t,e){const n=t.b-u;return e*=Math.abs(n),{a:u,b:t.b,d:n,duration:e,start:t.start,end:t.start+e,group:t.group}}function T(r){const{delay:o=0,duration:s=300,easing:a=e,tick:c=t,css:T}=l||$,v={start:h()+o,b:r};r||(
|
|
63
63
|
// @ts-ignore todo: improve typings
|
|
64
|
-
v.group=
|
|
64
|
+
v.group=q,q.r+=1),d||g?g=v:(
|
|
65
65
|
// if this is an intro, and there's a delay, we need to do
|
|
66
66
|
// an initial tick and/or apply CSS animation immediately
|
|
67
|
-
T&&(
|
|
67
|
+
T&&(E(),y=P(n,u,r,s,o,a,T)),r&&c(0,1),d=b(v,s),Z((()=>J(n,r,"start"))),function(t){let e;0===p.size&&f(m),new Promise((n=>{p.add(e={c:t,f:n})}))}((t=>{if(g&&t>g.start&&(d=b(g,s),g=null,J(n,d.b,"start"),T&&(E(),y=P(n,u,d.b,d.duration,0,a,l.css))),d)if(t>=d.end)c(u=d.b,1-u),J(n,d.b,"end"),g||(
|
|
68
68
|
// we're done
|
|
69
69
|
d.b?
|
|
70
70
|
// intro — we can tidy up immediately
|
|
71
|
-
|
|
71
|
+
E():
|
|
72
72
|
// outro — needs to be coordinated
|
|
73
|
-
--d.group.r||i(d.group.c)),d=null;else if(
|
|
73
|
+
--d.group.r||i(d.group.c)),d=null;else if(t>=d.start){const e=t-d.start;u=d.a+d.d*a(e/d.duration),c(u,1-u)}return!(!d&&!g)})))}return{run(t){o(l)?(W||(W=Promise.resolve(),W.then((()=>{W=null}))),W).then((()=>{
|
|
74
74
|
// @ts-ignore
|
|
75
|
-
l=l(c),T(
|
|
75
|
+
l=l(c),T(t)})):T(t)},end(){E(),d=g=null}}}function et(t,e){const n=t.$$;null!==n.fragment&&(!function(t){const e=[],n=[];U.forEach((r=>-1===t.indexOf(r)?e.push(r):n.push(r))),n.forEach((t=>t())),U=e}(n.after_update),i(n.on_destroy),n.fragment&&n.fragment.d(e),
|
|
76
76
|
// TODO null out other refs, including component.$$ (but need to
|
|
77
77
|
// preserve final state?)
|
|
78
|
-
n.on_destroy=n.fragment=null,n.ctx=[])}function
|
|
78
|
+
n.on_destroy=n.fragment=null,n.ctx=[])}function nt(t,e){-1===t.$$.dirty[0]&&(I.push(t),z||(z=!0,F.then(_)),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<<e%31}function rt(e,s,a,c,l,u,h,f=[-1]){const p=L;D(e);const m=e.$$={fragment:null,ctx:[],
|
|
79
79
|
// state
|
|
80
|
-
props:u,update:
|
|
80
|
+
props:u,update:t,not_equal:l,bound:r(),
|
|
81
81
|
// lifecycle
|
|
82
|
-
on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(s.context||(
|
|
82
|
+
on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(s.context||(p?p.$$.context:[])),
|
|
83
83
|
// everything else
|
|
84
|
-
callbacks:r(),dirty:
|
|
84
|
+
callbacks:r(),dirty:f,skip_bound:!1,root:s.target||p.$$.root};h&&h(m.root);let d=!1;if(m.ctx=a?a(e,s.props||{},((t,n,...r)=>{const i=r.length?r[0]:n;return m.ctx&&l(m.ctx[t],m.ctx[t]=i)&&(!m.skip_bound&&m.bound[t]&&m.bound[t](i),d&&nt(e,t)),n})):[],m.update(),d=!0,i(m.before_update),
|
|
85
85
|
// `false` as a special case of no DOM component
|
|
86
|
-
m.fragment=!!c&&c(m.ctx),s.target){if(s.hydrate){const
|
|
86
|
+
m.fragment=!!c&&c(m.ctx),s.target){if(s.hydrate){const t=function(t){return Array.from(t.childNodes)}(s.target);
|
|
87
87
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
88
|
-
m.fragment&&m.fragment.l(
|
|
88
|
+
m.fragment&&m.fragment.l(t),t.forEach(b)}else
|
|
89
89
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
90
|
-
m.fragment&&m.fragment.c();s.intro&&K(
|
|
90
|
+
m.fragment&&m.fragment.c();s.intro&&K(e.$$.fragment),function(t,e,r,s){const{fragment:a,after_update:c}=t.$$;a&&a.m(e,r),s||
|
|
91
91
|
// onMount happens before the initial afterUpdate
|
|
92
|
-
Z((()=>{const t
|
|
92
|
+
Z((()=>{const e=t.$$.on_mount.map(n).filter(o);
|
|
93
93
|
// if the component was destroyed immediately
|
|
94
94
|
// it will update the `$$.on_destroy` reference to `null`.
|
|
95
95
|
// the destructured on_destroy may still reference to the old array
|
|
96
|
-
|
|
96
|
+
t.$$.on_destroy?t.$$.on_destroy.push(...e):
|
|
97
97
|
// Edge case - component was destroyed immediately,
|
|
98
98
|
// most likely as a result of a binding initialising
|
|
99
|
-
i(
|
|
99
|
+
i(e),t.$$.on_mount=[]})),c.forEach(Z)}(e,s.target,s.anchor,s.customElement),_()}D(p)}let it;function ot(t,{delay:n=0,duration:r=400,easing:i=e}={}){const o=+getComputedStyle(t).opacity;return{delay:n,duration:r,easing:i,css:t=>"opacity: "+t*o}}"function"==typeof HTMLElement&&(it=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){const{on_mount:t}=this.$$;this.$$.on_disconnect=t.map(n).filter(o);
|
|
100
100
|
// @ts-ignore todo: improve typings
|
|
101
|
-
for(const
|
|
101
|
+
for(const t in this.$$.slotted)
|
|
102
102
|
// @ts-ignore todo: improve typings
|
|
103
|
-
this.appendChild(this.$$.slotted[
|
|
103
|
+
this.appendChild(this.$$.slotted[t])}attributeChangedCallback(t,e,n){this[t]=n}disconnectedCallback(){i(this.$$.on_disconnect)}$destroy(){et(this,1),this.$destroy=t}$on(e,n){
|
|
104
104
|
// TODO should this delegate to addEventListener?
|
|
105
|
-
if(!o(n))return
|
|
105
|
+
if(!o(n))return t;const r=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return r.push(n),()=>{const t=r.indexOf(n);-1!==t&&r.splice(t,1)}}$set(t){var e;this.$$set&&(e=t,0!==Object.keys(e).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}});const st=[];
|
|
106
106
|
/**
|
|
107
107
|
* Creates a `Readable` store that allows reading by subscription.
|
|
108
108
|
* @param value initial value
|
|
@@ -113,123 +113,123 @@ if(!o(n))return e;const r=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return
|
|
|
113
113
|
* @param {*=}value initial value
|
|
114
114
|
* @param {StartStopNotifier=} start
|
|
115
115
|
*/
|
|
116
|
-
function
|
|
117
|
-
const
|
|
116
|
+
function at(e,n=t){let r;const i=new Set;function o(t){if(s(e,t)&&(e=t,r)){// store is ready
|
|
117
|
+
const t=!st.length;for(const t of i)t[1](),st.push(t,e);if(t){for(let t=0;t<st.length;t+=2)st[t][0](st[t+1]);st.length=0}}}return{set:o,update:function(t){o(t(e))},subscribe:function(s,a=t){const c=[s,a];return i.add(c),1===i.size&&(r=n(o)||t),s(e),()=>{i.delete(c),0===i.size&&r&&(r(),r=null)}}}}function ct(e,n,r){const s=!Array.isArray(e),a=s?[e]:e,c=n.length<2;return u=e=>{let r=!1;const u=[];let h=0,f=t;const p=()=>{if(h)return;f();const r=n(s?u[0]:u,e);c?e(r):f=o(r)?r:t},m=a.map(((t,e)=>l(t,(t=>{u[e]=t,h&=~(1<<e),r&&p()}),(()=>{h|=1<<e}))));return r=!0,p(),function(){i(m),f(),
|
|
118
118
|
// We need to set this to false because callbacks can still happen despite having unsubscribed:
|
|
119
119
|
// Callbacks might already be placed in the queue which doesn't know it should no longer
|
|
120
120
|
// invoke this derived store.
|
|
121
|
-
r=!1}},{subscribe:
|
|
121
|
+
r=!1}},{subscribe:at(r,u).subscribe};var u}var lt=function(t){return function(t){return!!t&&"object"==typeof t}(t)&&!function(t){var e=Object.prototype.toString.call(t);return"[object RegExp]"===e||"[object Date]"===e||function(t){return t.$$typeof===ut}(t)}
|
|
122
122
|
// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25
|
|
123
|
-
(
|
|
123
|
+
(t)};var ut="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function ht(t,e){return!1!==e.clone&&e.isMergeableObject(t)?gt((n=t,Array.isArray(n)?[]:{}),t,e):t;var n}function ft(t,e,n){return t.concat(e).map((function(t){return ht(t,n)}))}function pt(t){return Object.keys(t).concat(function(t){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t).filter((function(e){return Object.propertyIsEnumerable.call(t,e)})):[]}(t))}function mt(t,e){try{return e in t}catch(t){return!1}}
|
|
124
124
|
// Protects from prototype poisoning and unexpected merging up the prototype chain.
|
|
125
|
-
function
|
|
126
|
-
})(
|
|
125
|
+
function dt(t,e,n){var r={};return n.isMergeableObject(t)&&pt(t).forEach((function(e){r[e]=ht(t[e],n)})),pt(e).forEach((function(i){(function(t,e){return mt(t,e)&&!(Object.hasOwnProperty.call(t,e)&&Object.propertyIsEnumerable.call(t,e));// and also unsafe if they're nonenumerable.
|
|
126
|
+
})(t,i)||(mt(t,i)&&n.isMergeableObject(e[i])?r[i]=function(t,e){if(!e.customMerge)return gt;var n=e.customMerge(t);return"function"==typeof n?n:gt}(i,n)(t[i],e[i],n):r[i]=ht(e[i],n))})),r}function gt(t,e,n){(n=n||{}).arrayMerge=n.arrayMerge||ft,n.isMergeableObject=n.isMergeableObject||lt,
|
|
127
127
|
// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()
|
|
128
128
|
// implementations can use it. The caller may not replace it.
|
|
129
|
-
n.cloneUnlessOtherwiseSpecified=
|
|
129
|
+
n.cloneUnlessOtherwiseSpecified=ht;var r=Array.isArray(e);return r===Array.isArray(t)?r?n.arrayMerge(t,e,n):dt(t,e,n):ht(e,n)}gt.all=function(t,e){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce((function(t,n){return gt(t,n,e)}),{})};var yt=gt,Et=function(t,e){return Et=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},Et(t,e)};function bt(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}Et(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var Tt,vt,wt,St=function(){return St=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var i in e=arguments[n])Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t},St.apply(this,arguments)};function At(t,e,n){if(n||2===arguments.length)for(var r,i=0,o=e.length;i<o;i++)!r&&i in e||(r||(r=Array.prototype.slice.call(e,0,i)),r[i]=e[i]);return t.concat(r||Array.prototype.slice.call(e))}
|
|
130
130
|
/**
|
|
131
131
|
* Type Guards
|
|
132
132
|
*/
|
|
133
|
-
function
|
|
133
|
+
function Ht(t){return t.type===vt.literal}function Ot(t){return t.type===vt.argument}function Nt(t){return t.type===vt.number}function Ct(t){return t.type===vt.date}function Mt(t){return t.type===vt.time}function Lt(t){return t.type===vt.select}function Bt(t){return t.type===vt.plural}function Pt(t){return t.type===vt.pound}function Rt(t){return t.type===vt.tag}function Dt(t){return!(!t||"object"!=typeof t||t.type!==wt.number)}function xt(t){return!(!t||"object"!=typeof t||t.type!==wt.dateTime)}
|
|
134
134
|
// @generated from regex-gen.ts
|
|
135
|
-
"function"==typeof SuppressedError&&SuppressedError,function(
|
|
135
|
+
"function"==typeof SuppressedError&&SuppressedError,function(t){
|
|
136
136
|
/** Argument is unclosed (e.g. `{0`) */
|
|
137
|
-
|
|
137
|
+
t[t.EXPECT_ARGUMENT_CLOSING_BRACE=1]="EXPECT_ARGUMENT_CLOSING_BRACE",
|
|
138
138
|
/** Argument is empty (e.g. `{}`). */
|
|
139
|
-
|
|
139
|
+
t[t.EMPTY_ARGUMENT=2]="EMPTY_ARGUMENT",
|
|
140
140
|
/** Argument is malformed (e.g. `{foo!}``) */
|
|
141
|
-
|
|
141
|
+
t[t.MALFORMED_ARGUMENT=3]="MALFORMED_ARGUMENT",
|
|
142
142
|
/** Expect an argument type (e.g. `{foo,}`) */
|
|
143
|
-
|
|
143
|
+
t[t.EXPECT_ARGUMENT_TYPE=4]="EXPECT_ARGUMENT_TYPE",
|
|
144
144
|
/** Unsupported argument type (e.g. `{foo,foo}`) */
|
|
145
|
-
|
|
145
|
+
t[t.INVALID_ARGUMENT_TYPE=5]="INVALID_ARGUMENT_TYPE",
|
|
146
146
|
/** Expect an argument style (e.g. `{foo, number, }`) */
|
|
147
|
-
|
|
147
|
+
t[t.EXPECT_ARGUMENT_STYLE=6]="EXPECT_ARGUMENT_STYLE",
|
|
148
148
|
/** The number skeleton is invalid. */
|
|
149
|
-
|
|
149
|
+
t[t.INVALID_NUMBER_SKELETON=7]="INVALID_NUMBER_SKELETON",
|
|
150
150
|
/** The date time skeleton is invalid. */
|
|
151
|
-
|
|
151
|
+
t[t.INVALID_DATE_TIME_SKELETON=8]="INVALID_DATE_TIME_SKELETON",
|
|
152
152
|
/** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */
|
|
153
|
-
|
|
153
|
+
t[t.EXPECT_NUMBER_SKELETON=9]="EXPECT_NUMBER_SKELETON",
|
|
154
154
|
/** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */
|
|
155
|
-
|
|
155
|
+
t[t.EXPECT_DATE_TIME_SKELETON=10]="EXPECT_DATE_TIME_SKELETON",
|
|
156
156
|
/** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */
|
|
157
|
-
|
|
157
|
+
t[t.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE=11]="UNCLOSED_QUOTE_IN_ARGUMENT_STYLE",
|
|
158
158
|
/** Missing select argument options (e.g. `{foo, select}`) */
|
|
159
|
-
|
|
159
|
+
t[t.EXPECT_SELECT_ARGUMENT_OPTIONS=12]="EXPECT_SELECT_ARGUMENT_OPTIONS",
|
|
160
160
|
/** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */
|
|
161
|
-
|
|
161
|
+
t[t.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE=13]="EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE",
|
|
162
162
|
/** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */
|
|
163
|
-
|
|
163
|
+
t[t.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE=14]="INVALID_PLURAL_ARGUMENT_OFFSET_VALUE",
|
|
164
164
|
/** Expecting a selector in `select` argument (e.g `{foo, select}`) */
|
|
165
|
-
|
|
165
|
+
t[t.EXPECT_SELECT_ARGUMENT_SELECTOR=15]="EXPECT_SELECT_ARGUMENT_SELECTOR",
|
|
166
166
|
/** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */
|
|
167
|
-
|
|
167
|
+
t[t.EXPECT_PLURAL_ARGUMENT_SELECTOR=16]="EXPECT_PLURAL_ARGUMENT_SELECTOR",
|
|
168
168
|
/** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */
|
|
169
|
-
|
|
169
|
+
t[t.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT=17]="EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT",
|
|
170
170
|
/**
|
|
171
171
|
* Expecting a message fragment after the `plural` or `selectordinal` selector
|
|
172
172
|
* (e.g. `{foo, plural, one}`)
|
|
173
173
|
*/
|
|
174
|
-
|
|
174
|
+
t[t.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT=18]="EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT",
|
|
175
175
|
/** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */
|
|
176
|
-
|
|
176
|
+
t[t.INVALID_PLURAL_ARGUMENT_SELECTOR=19]="INVALID_PLURAL_ARGUMENT_SELECTOR",
|
|
177
177
|
/**
|
|
178
178
|
* Duplicate selectors in `plural` or `selectordinal` argument.
|
|
179
179
|
* (e.g. {foo, plural, one {#} one {#}})
|
|
180
180
|
*/
|
|
181
|
-
|
|
181
|
+
t[t.DUPLICATE_PLURAL_ARGUMENT_SELECTOR=20]="DUPLICATE_PLURAL_ARGUMENT_SELECTOR",
|
|
182
182
|
/** Duplicate selectors in `select` argument.
|
|
183
183
|
* (e.g. {foo, select, apple {apple} apple {apple}})
|
|
184
184
|
*/
|
|
185
|
-
|
|
185
|
+
t[t.DUPLICATE_SELECT_ARGUMENT_SELECTOR=21]="DUPLICATE_SELECT_ARGUMENT_SELECTOR",
|
|
186
186
|
/** Plural or select argument option must have `other` clause. */
|
|
187
|
-
|
|
187
|
+
t[t.MISSING_OTHER_CLAUSE=22]="MISSING_OTHER_CLAUSE",
|
|
188
188
|
/** The tag is malformed. (e.g. `<bold!>foo</bold!>) */
|
|
189
|
-
|
|
189
|
+
t[t.INVALID_TAG=23]="INVALID_TAG",
|
|
190
190
|
/** The tag name is invalid. (e.g. `<123>foo</123>`) */
|
|
191
|
-
|
|
191
|
+
t[t.INVALID_TAG_NAME=25]="INVALID_TAG_NAME",
|
|
192
192
|
/** The closing tag does not match the opening tag. (e.g. `<bold>foo</italic>`) */
|
|
193
|
-
|
|
193
|
+
t[t.UNMATCHED_CLOSING_TAG=26]="UNMATCHED_CLOSING_TAG",
|
|
194
194
|
/** The opening tag has unmatched closing tag. (e.g. `<bold>foo`) */
|
|
195
|
-
|
|
195
|
+
t[t.UNCLOSED_TAG=27]="UNCLOSED_TAG"}(Tt||(Tt={})),function(t){
|
|
196
196
|
/**
|
|
197
197
|
* Raw text
|
|
198
198
|
*/
|
|
199
|
-
|
|
199
|
+
t[t.literal=0]="literal",
|
|
200
200
|
/**
|
|
201
201
|
* Variable w/o any format, e.g `var` in `this is a {var}`
|
|
202
202
|
*/
|
|
203
|
-
|
|
203
|
+
t[t.argument=1]="argument",
|
|
204
204
|
/**
|
|
205
205
|
* Variable w/ number format
|
|
206
206
|
*/
|
|
207
|
-
|
|
207
|
+
t[t.number=2]="number",
|
|
208
208
|
/**
|
|
209
209
|
* Variable w/ date format
|
|
210
210
|
*/
|
|
211
|
-
|
|
211
|
+
t[t.date=3]="date",
|
|
212
212
|
/**
|
|
213
213
|
* Variable w/ time format
|
|
214
214
|
*/
|
|
215
|
-
|
|
215
|
+
t[t.time=4]="time",
|
|
216
216
|
/**
|
|
217
217
|
* Variable w/ select format
|
|
218
218
|
*/
|
|
219
|
-
|
|
219
|
+
t[t.select=5]="select",
|
|
220
220
|
/**
|
|
221
221
|
* Variable w/ plural format
|
|
222
222
|
*/
|
|
223
|
-
|
|
223
|
+
t[t.plural=6]="plural",
|
|
224
224
|
/**
|
|
225
225
|
* Only possible within plural argument.
|
|
226
226
|
* This is the `#` symbol that will be substituted with the count.
|
|
227
227
|
*/
|
|
228
|
-
|
|
228
|
+
t[t.pound=7]="pound",
|
|
229
229
|
/**
|
|
230
230
|
* XML-like tag
|
|
231
231
|
*/
|
|
232
|
-
|
|
232
|
+
t[t.tag=8]="tag"}(vt||(vt={})),function(t){t[t.number=0]="number",t[t.dateTime=1]="dateTime"}(wt||(wt={}));var It=/[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/,kt=/(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;
|
|
233
233
|
/**
|
|
234
234
|
* https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
|
|
235
235
|
* Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js
|
|
@@ -241,67 +241,67 @@ e[e.tag=8]="tag"}(ve||(ve={})),function(e){e[e.number=0]="number",e[e.dateTime=1
|
|
|
241
241
|
* @public
|
|
242
242
|
* @param skeleton skeleton string
|
|
243
243
|
*/
|
|
244
|
-
function
|
|
244
|
+
function Ut(t){var e={};return t.replace(kt,(function(t){var n=t.length;switch(t[0]){
|
|
245
245
|
// Era
|
|
246
|
-
case"G":
|
|
246
|
+
case"G":e.era=4===n?"long":5===n?"narrow":"short";break;
|
|
247
247
|
// Year
|
|
248
|
-
case"y":
|
|
248
|
+
case"y":e.year=2===n?"2-digit":"numeric";break;case"Y":case"u":case"U":case"r":throw new RangeError("`Y/u/U/r` (year) patterns are not supported, use `y` instead");
|
|
249
249
|
// Quarter
|
|
250
250
|
case"q":case"Q":throw new RangeError("`q/Q` (quarter) patterns are not supported");
|
|
251
251
|
// Month
|
|
252
|
-
case"M":case"L":
|
|
252
|
+
case"M":case"L":e.month=["numeric","2-digit","short","long","narrow"][n-1];break;
|
|
253
253
|
// Week
|
|
254
|
-
case"w":case"W":throw new RangeError("`w/W` (week) patterns are not supported");case"d":
|
|
254
|
+
case"w":case"W":throw new RangeError("`w/W` (week) patterns are not supported");case"d":e.day=["numeric","2-digit"][n-1];break;case"D":case"F":case"g":throw new RangeError("`D/F/g` (day) patterns are not supported, use `d` instead");
|
|
255
255
|
// Weekday
|
|
256
|
-
case"E":
|
|
256
|
+
case"E":e.weekday=4===n?"short":5===n?"narrow":"short";break;case"e":if(n<4)throw new RangeError("`e..eee` (weekday) patterns are not supported");e.weekday=["short","long","narrow","short"][n-4];break;case"c":if(n<4)throw new RangeError("`c..ccc` (weekday) patterns are not supported");e.weekday=["short","long","narrow","short"][n-4];break;
|
|
257
257
|
// Period
|
|
258
258
|
case"a":// AM, PM
|
|
259
|
-
|
|
259
|
+
e.hour12=!0;break;case"b":// am, pm, noon, midnight
|
|
260
260
|
case"B":// flexible day periods
|
|
261
261
|
throw new RangeError("`b/B` (period) patterns are not supported, use `a` instead");
|
|
262
262
|
// Hour
|
|
263
|
-
case"h":
|
|
263
|
+
case"h":e.hourCycle="h12",e.hour=["numeric","2-digit"][n-1];break;case"H":e.hourCycle="h23",e.hour=["numeric","2-digit"][n-1];break;case"K":e.hourCycle="h11",e.hour=["numeric","2-digit"][n-1];break;case"k":e.hourCycle="h24",e.hour=["numeric","2-digit"][n-1];break;case"j":case"J":case"C":throw new RangeError("`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead");
|
|
264
264
|
// Minute
|
|
265
|
-
case"m":
|
|
265
|
+
case"m":e.minute=["numeric","2-digit"][n-1];break;
|
|
266
266
|
// Second
|
|
267
|
-
case"s":
|
|
267
|
+
case"s":e.second=["numeric","2-digit"][n-1];break;case"S":case"A":throw new RangeError("`S/A` (second) patterns are not supported, use `s` instead");
|
|
268
268
|
// Zone
|
|
269
269
|
case"z":// 1..3, 4: specific non-location format
|
|
270
|
-
|
|
270
|
+
e.timeZoneName=n<4?"short":"long";break;case"Z":// 1..3, 4, 5: The ISO8601 varios formats
|
|
271
271
|
case"O":// 1, 4: miliseconds in day short, long
|
|
272
272
|
case"v":// 1, 4: generic non-location format
|
|
273
273
|
case"V":// 1, 2, 3, 4: time zone ID or city
|
|
274
274
|
case"X":// 1, 2, 3, 4: The ISO8601 varios formats
|
|
275
275
|
case"x":// 1, 2, 3, 4: The ISO8601 varios formats
|
|
276
|
-
throw new RangeError("`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead")}return""})),
|
|
276
|
+
throw new RangeError("`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead")}return""})),e}
|
|
277
277
|
// @generated from regex-gen.ts
|
|
278
|
-
var
|
|
278
|
+
var Gt=/[\t-\r \x85\u200E\u200F\u2028\u2029]/i;var Ft=/^\.(?:(0+)(\*)?|(#+)|(0+)(#+))$/g,zt=/^(@+)?(\+|#+)?[rs]?$/g,Zt=/(\*)(0+)|(#+)(0+)|(0+)/g,jt=/^(0+)$/;function Wt(t){var e={};return"r"===t[t.length-1]?e.roundingPriority="morePrecision":"s"===t[t.length-1]&&(e.roundingPriority="lessPrecision"),t.replace(zt,(function(t,n,r){
|
|
279
279
|
// @@@ case
|
|
280
|
-
return"string"!=typeof r?(
|
|
280
|
+
return"string"!=typeof r?(e.minimumSignificantDigits=n.length,e.maximumSignificantDigits=n.length):"+"===r?e.minimumSignificantDigits=n.length:"#"===n[0]?e.maximumSignificantDigits=n.length:(e.minimumSignificantDigits=n.length,e.maximumSignificantDigits=n.length+("string"==typeof r?r.length:0)),""})),e}function Vt(t){switch(t){case"sign-auto":return{signDisplay:"auto"};case"sign-accounting":case"()":return{currencySign:"accounting"};case"sign-always":case"+!":return{signDisplay:"always"};case"sign-accounting-always":case"()!":return{signDisplay:"always",currencySign:"accounting"};case"sign-except-zero":case"+?":return{signDisplay:"exceptZero"};case"sign-accounting-except-zero":case"()?":return{signDisplay:"exceptZero",currencySign:"accounting"};case"sign-never":case"+_":return{signDisplay:"never"}}}function _t(t){
|
|
281
281
|
// Engineering
|
|
282
|
-
var
|
|
282
|
+
var e;if("E"===t[0]&&"E"===t[1]?(e={notation:"engineering"},t=t.slice(2)):"E"===t[0]&&(e={notation:"scientific"},t=t.slice(1)),e){var n=t.slice(0,2);if("+!"===n?(e.signDisplay="always",t=t.slice(2)):"+?"===n&&(e.signDisplay="exceptZero",t=t.slice(2)),!jt.test(t))throw new Error("Malformed concise eng/scientific notation");e.minimumIntegerDigits=t.length}return e}function Yt(t){var e=Vt(t);return e||{}}
|
|
283
283
|
/**
|
|
284
284
|
* https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options
|
|
285
|
-
*/function
|
|
285
|
+
*/function Jt(t){for(var e={},n=0,r=t;n<r.length;n++){var i=r[n];switch(i.stem){case"percent":case"%":e.style="percent";continue;case"%x100":e.style="percent",e.scale=100;continue;case"currency":e.style="currency",e.currency=i.options[0];continue;case"group-off":case",_":e.useGrouping=!1;continue;case"precision-integer":case".":e.maximumFractionDigits=0;continue;case"measure-unit":case"unit":e.style="unit",e.unit=i.options[0].replace(/^(.*?)-/,"");continue;case"compact-short":case"K":e.notation="compact",e.compactDisplay="short";continue;case"compact-long":case"KK":e.notation="compact",e.compactDisplay="long";continue;case"scientific":e=St(St(St({},e),{notation:"scientific"}),i.options.reduce((function(t,e){return St(St({},t),Yt(e))}),{}));continue;case"engineering":e=St(St(St({},e),{notation:"engineering"}),i.options.reduce((function(t,e){return St(St({},t),Yt(e))}),{}));continue;case"notation-simple":e.notation="standard";continue;
|
|
286
286
|
// https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h
|
|
287
|
-
case"unit-width-narrow":
|
|
287
|
+
case"unit-width-narrow":e.currencyDisplay="narrowSymbol",e.unitDisplay="narrow";continue;case"unit-width-short":e.currencyDisplay="code",e.unitDisplay="short";continue;case"unit-width-full-name":e.currencyDisplay="name",e.unitDisplay="long";continue;case"unit-width-iso-code":e.currencyDisplay="symbol";continue;case"scale":e.scale=parseFloat(i.options[0]);continue;
|
|
288
288
|
// https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width
|
|
289
|
-
case"integer-width":if(i.options.length>1)throw new RangeError("integer-width stems only accept a single optional option");i.options[0].replace(
|
|
289
|
+
case"integer-width":if(i.options.length>1)throw new RangeError("integer-width stems only accept a single optional option");i.options[0].replace(Zt,(function(t,n,r,i,o,s){if(n)e.minimumIntegerDigits=r.length;else{if(i&&o)throw new Error("We currently do not support maximum integer digits");if(s)throw new Error("We currently do not support exact integer digits")}return""}));continue}
|
|
290
290
|
// https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width
|
|
291
|
-
if(
|
|
291
|
+
if(jt.test(i.stem))e.minimumIntegerDigits=i.stem.length;else if(Ft.test(i.stem)){
|
|
292
292
|
// Precision
|
|
293
293
|
// https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision
|
|
294
294
|
// precision-integer case
|
|
295
|
-
if(i.options.length>1)throw new RangeError("Fraction-precision stems only accept a single optional option");i.stem.replace(
|
|
295
|
+
if(i.options.length>1)throw new RangeError("Fraction-precision stems only accept a single optional option");i.stem.replace(Ft,(function(t,n,r,i,o,s){
|
|
296
296
|
// .000* case (before ICU67 it was .000+)
|
|
297
|
-
return"*"===r?
|
|
297
|
+
return"*"===r?e.minimumFractionDigits=n.length:i&&"#"===i[0]?e.maximumFractionDigits=i.length:o&&s?(e.minimumFractionDigits=o.length,e.maximumFractionDigits=o.length+s.length):(e.minimumFractionDigits=n.length,e.maximumFractionDigits=n.length),""}));var o=i.options[0];
|
|
298
298
|
// https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display
|
|
299
|
-
"w"===o?
|
|
299
|
+
"w"===o?e=St(St({},e),{trailingZeroDisplay:"stripIfInteger"}):o&&(e=St(St({},e),Wt(o)))}
|
|
300
300
|
// https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision
|
|
301
|
-
else if(
|
|
301
|
+
else if(zt.test(i.stem))e=St(St({},e),Wt(i.stem));else{var s=Vt(i.stem);s&&(e=St(St({},e),s));var a=_t(i.stem);a&&(e=St(St({},e),a))}}return e}
|
|
302
302
|
// @generated from time-data-gen.ts
|
|
303
303
|
// prettier-ignore
|
|
304
|
-
var
|
|
304
|
+
var Xt,qt={AX:["H"],BQ:["H"],CP:["H"],CZ:["H"],DK:["H"],FI:["H"],ID:["H"],IS:["H"],ML:["H"],NE:["H"],RU:["H"],SE:["H"],SJ:["H"],SK:["H"],AS:["h","H"],BT:["h","H"],DJ:["h","H"],ER:["h","H"],GH:["h","H"],IN:["h","H"],LS:["h","H"],PG:["h","H"],PW:["h","H"],SO:["h","H"],TO:["h","H"],VU:["h","H"],WS:["h","H"],"001":["H","h"],AL:["h","H","hB"],TD:["h","H","hB"],"ca-ES":["H","h","hB"],CF:["H","h","hB"],CM:["H","h","hB"],"fr-CA":["H","h","hB"],"gl-ES":["H","h","hB"],"it-CH":["H","h","hB"],"it-IT":["H","h","hB"],LU:["H","h","hB"],NP:["H","h","hB"],PF:["H","h","hB"],SC:["H","h","hB"],SM:["H","h","hB"],SN:["H","h","hB"],TF:["H","h","hB"],VA:["H","h","hB"],CY:["h","H","hb","hB"],GR:["h","H","hb","hB"],CO:["h","H","hB","hb"],DO:["h","H","hB","hb"],KP:["h","H","hB","hb"],KR:["h","H","hB","hb"],NA:["h","H","hB","hb"],PA:["h","H","hB","hb"],PR:["h","H","hB","hb"],VE:["h","H","hB","hb"],AC:["H","h","hb","hB"],AI:["H","h","hb","hB"],BW:["H","h","hb","hB"],BZ:["H","h","hb","hB"],CC:["H","h","hb","hB"],CK:["H","h","hb","hB"],CX:["H","h","hb","hB"],DG:["H","h","hb","hB"],FK:["H","h","hb","hB"],GB:["H","h","hb","hB"],GG:["H","h","hb","hB"],GI:["H","h","hb","hB"],IE:["H","h","hb","hB"],IM:["H","h","hb","hB"],IO:["H","h","hb","hB"],JE:["H","h","hb","hB"],LT:["H","h","hb","hB"],MK:["H","h","hb","hB"],MN:["H","h","hb","hB"],MS:["H","h","hb","hB"],NF:["H","h","hb","hB"],NG:["H","h","hb","hB"],NR:["H","h","hb","hB"],NU:["H","h","hb","hB"],PN:["H","h","hb","hB"],SH:["H","h","hb","hB"],SX:["H","h","hb","hB"],TA:["H","h","hb","hB"],ZA:["H","h","hb","hB"],"af-ZA":["H","h","hB","hb"],AR:["H","h","hB","hb"],CL:["H","h","hB","hb"],CR:["H","h","hB","hb"],CU:["H","h","hB","hb"],EA:["H","h","hB","hb"],"es-BO":["H","h","hB","hb"],"es-BR":["H","h","hB","hb"],"es-EC":["H","h","hB","hb"],"es-ES":["H","h","hB","hb"],"es-GQ":["H","h","hB","hb"],"es-PE":["H","h","hB","hb"],GT:["H","h","hB","hb"],HN:["H","h","hB","hb"],IC:["H","h","hB","hb"],KG:["H","h","hB","hb"],KM:["H","h","hB","hb"],LK:["H","h","hB","hb"],MA:["H","h","hB","hb"],MX:["H","h","hB","hb"],NI:["H","h","hB","hb"],PY:["H","h","hB","hb"],SV:["H","h","hB","hb"],UY:["H","h","hB","hb"],JP:["H","h","K"],AD:["H","hB"],AM:["H","hB"],AO:["H","hB"],AT:["H","hB"],AW:["H","hB"],BE:["H","hB"],BF:["H","hB"],BJ:["H","hB"],BL:["H","hB"],BR:["H","hB"],CG:["H","hB"],CI:["H","hB"],CV:["H","hB"],DE:["H","hB"],EE:["H","hB"],FR:["H","hB"],GA:["H","hB"],GF:["H","hB"],GN:["H","hB"],GP:["H","hB"],GW:["H","hB"],HR:["H","hB"],IL:["H","hB"],IT:["H","hB"],KZ:["H","hB"],MC:["H","hB"],MD:["H","hB"],MF:["H","hB"],MQ:["H","hB"],MZ:["H","hB"],NC:["H","hB"],NL:["H","hB"],PM:["H","hB"],PT:["H","hB"],RE:["H","hB"],RO:["H","hB"],SI:["H","hB"],SR:["H","hB"],ST:["H","hB"],TG:["H","hB"],TR:["H","hB"],WF:["H","hB"],YT:["H","hB"],BD:["h","hB","H"],PK:["h","hB","H"],AZ:["H","hB","h"],BA:["H","hB","h"],BG:["H","hB","h"],CH:["H","hB","h"],GE:["H","hB","h"],LI:["H","hB","h"],ME:["H","hB","h"],RS:["H","hB","h"],UA:["H","hB","h"],UZ:["H","hB","h"],XK:["H","hB","h"],AG:["h","hb","H","hB"],AU:["h","hb","H","hB"],BB:["h","hb","H","hB"],BM:["h","hb","H","hB"],BS:["h","hb","H","hB"],CA:["h","hb","H","hB"],DM:["h","hb","H","hB"],"en-001":["h","hb","H","hB"],FJ:["h","hb","H","hB"],FM:["h","hb","H","hB"],GD:["h","hb","H","hB"],GM:["h","hb","H","hB"],GU:["h","hb","H","hB"],GY:["h","hb","H","hB"],JM:["h","hb","H","hB"],KI:["h","hb","H","hB"],KN:["h","hb","H","hB"],KY:["h","hb","H","hB"],LC:["h","hb","H","hB"],LR:["h","hb","H","hB"],MH:["h","hb","H","hB"],MP:["h","hb","H","hB"],MW:["h","hb","H","hB"],NZ:["h","hb","H","hB"],SB:["h","hb","H","hB"],SG:["h","hb","H","hB"],SL:["h","hb","H","hB"],SS:["h","hb","H","hB"],SZ:["h","hb","H","hB"],TC:["h","hb","H","hB"],TT:["h","hb","H","hB"],UM:["h","hb","H","hB"],US:["h","hb","H","hB"],VC:["h","hb","H","hB"],VG:["h","hb","H","hB"],VI:["h","hb","H","hB"],ZM:["h","hb","H","hB"],BO:["H","hB","h","hb"],EC:["H","hB","h","hb"],ES:["H","hB","h","hb"],GQ:["H","hB","h","hb"],PE:["H","hB","h","hb"],AE:["h","hB","hb","H"],"ar-001":["h","hB","hb","H"],BH:["h","hB","hb","H"],DZ:["h","hB","hb","H"],EG:["h","hB","hb","H"],EH:["h","hB","hb","H"],HK:["h","hB","hb","H"],IQ:["h","hB","hb","H"],JO:["h","hB","hb","H"],KW:["h","hB","hb","H"],LB:["h","hB","hb","H"],LY:["h","hB","hb","H"],MO:["h","hB","hb","H"],MR:["h","hB","hb","H"],OM:["h","hB","hb","H"],PH:["h","hB","hb","H"],PS:["h","hB","hb","H"],QA:["h","hB","hb","H"],SA:["h","hB","hb","H"],SD:["h","hB","hb","H"],SY:["h","hB","hb","H"],TN:["h","hB","hb","H"],YE:["h","hB","hb","H"],AF:["H","hb","hB","h"],LA:["H","hb","hB","h"],CN:["H","hB","hb","h"],LV:["H","hB","hb","h"],TL:["H","hB","hb","h"],"zu-ZA":["H","hB","hb","h"],CD:["hB","H"],IR:["hB","H"],"hi-IN":["hB","h","H"],"kn-IN":["hB","h","H"],"ml-IN":["hB","h","H"],"te-IN":["hB","h","H"],KH:["hB","h","H","hb"],"ta-IN":["hB","h","hb","H"],BN:["hb","hB","h","H"],MY:["hb","hB","h","H"],ET:["hB","hb","h","H"],"gu-IN":["hB","hb","h","H"],"mr-IN":["hB","hb","h","H"],"pa-IN":["hB","hb","h","H"],TW:["hB","hb","h","H"],KE:["hB","hb","H","h"],MM:["hB","hb","H","h"],TZ:["hB","hb","H","h"],UG:["hB","hb","H","h"]};
|
|
305
305
|
/**
|
|
306
306
|
* Returns the best matching date time pattern if a date time skeleton
|
|
307
307
|
* pattern is provided with a locale. Follows the Unicode specification:
|
|
@@ -314,45 +314,45 @@ var qe,Ye={AX:["H"],BQ:["H"],CP:["H"],CZ:["H"],DK:["H"],FI:["H"],ID:["H"],IS:["H
|
|
|
314
314
|
* of the given `locale` to the corresponding time pattern.
|
|
315
315
|
* @param locale
|
|
316
316
|
*/
|
|
317
|
-
function
|
|
317
|
+
function Kt(t){var e=t.hourCycle;if(void 0===e&&
|
|
318
318
|
// @ts-ignore hourCycle(s) is not identified yet
|
|
319
|
-
|
|
319
|
+
t.hourCycles&&
|
|
320
320
|
// @ts-ignore
|
|
321
|
-
|
|
321
|
+
t.hourCycles.length&&(
|
|
322
322
|
// @ts-ignore
|
|
323
|
-
t
|
|
323
|
+
e=t.hourCycles[0]),e)switch(e){case"h24":return"k";case"h23":return"H";case"h12":return"h";case"h11":return"K";default:throw new Error("Invalid hourCycle")}
|
|
324
324
|
// TODO: Once hourCycle is fully supported remove the following with data generation
|
|
325
|
-
var n,r=
|
|
325
|
+
var n,r=t.language;return"root"!==r&&(n=t.maximize().region),(qt[n||""]||qt[r||""]||qt["".concat(r,"-001")]||qt["001"])[0]}var Qt=new RegExp("^".concat(It.source,"*")),$t=new RegExp("".concat(It.source,"*$"));function te(t,e){return{start:t,end:e}}
|
|
326
326
|
// #region Ponyfills
|
|
327
327
|
// Consolidate these variables up top for easier toggling during debugging
|
|
328
|
-
var
|
|
328
|
+
var ee=!!String.prototype.startsWith,ne=!!String.fromCodePoint,re=!!Object.fromEntries,ie=!!String.prototype.codePointAt,oe=!!String.prototype.trimStart,se=!!String.prototype.trimEnd,ae=!!Number.isSafeInteger?Number.isSafeInteger:function(t){return"number"==typeof t&&isFinite(t)&&Math.floor(t)===t&&Math.abs(t)<=9007199254740991},ce=!0;try{
|
|
329
329
|
/**
|
|
330
330
|
* legacy Edge or Xbox One browser
|
|
331
331
|
* Unicode flag support: supported
|
|
332
332
|
* Pattern_Syntax support: not supported
|
|
333
333
|
* See https://github.com/formatjs/formatjs/issues/2822
|
|
334
334
|
*/
|
|
335
|
-
|
|
336
|
-
function(e,
|
|
337
|
-
function(e,
|
|
338
|
-
function(){for(var
|
|
335
|
+
ce="a"===(null===(Xt=ge("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu").exec("a"))||void 0===Xt?void 0:Xt[0])}catch(t){ce=!1}var le,ue=ee?// Native
|
|
336
|
+
function(t,e,n){return t.startsWith(e,n)}:// For IE11
|
|
337
|
+
function(t,e,n){return t.slice(n,n+e.length)===e},he=ne?String.fromCodePoint:// IE11
|
|
338
|
+
function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var n,r="",i=t.length,o=0;i>o;){if((n=t[o++])>1114111)throw RangeError(n+" is not a valid code point");r+=n<65536?String.fromCharCode(n):String.fromCharCode(55296+((n-=65536)>>10),n%1024+56320)}return r},fe=
|
|
339
339
|
// native
|
|
340
|
-
|
|
341
|
-
function(
|
|
342
|
-
function(e
|
|
343
|
-
function(e
|
|
344
|
-
function(
|
|
345
|
-
function(
|
|
346
|
-
function(
|
|
347
|
-
function(
|
|
340
|
+
re?Object.fromEntries:// Ponyfill
|
|
341
|
+
function(t){for(var e={},n=0,r=t;n<r.length;n++){var i=r[n],o=i[0],s=i[1];e[o]=s}return e},pe=ie?// Native
|
|
342
|
+
function(t,e){return t.codePointAt(e)}:// IE 11
|
|
343
|
+
function(t,e){var n=t.length;if(!(e<0||e>=n)){var r,i=t.charCodeAt(e);return i<55296||i>56319||e+1===n||(r=t.charCodeAt(e+1))<56320||r>57343?i:r-56320+(i-55296<<10)+65536}},me=oe?// Native
|
|
344
|
+
function(t){return t.trimStart()}:// Ponyfill
|
|
345
|
+
function(t){return t.replace(Qt,"")},de=se?// Native
|
|
346
|
+
function(t){return t.trimEnd()}:// Ponyfill
|
|
347
|
+
function(t){return t.replace($t,"")};
|
|
348
348
|
// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.
|
|
349
|
-
function
|
|
349
|
+
function ge(t,e){return new RegExp(t,e)}
|
|
350
350
|
// #endregion
|
|
351
|
-
if(
|
|
351
|
+
if(ce){
|
|
352
352
|
// Native
|
|
353
|
-
var
|
|
353
|
+
var ye=ge("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu");le=function(t,e){var n;return ye.lastIndex=e,null!==(n=ye.exec(t)[1])&&void 0!==n?n:""}}else
|
|
354
354
|
// IE11
|
|
355
|
-
|
|
355
|
+
le=function(t,e){for(var n=[];;){var r=pe(t,e);if(void 0===r||Te(r)||ve(r))break;n.push(r),e+=r>=65536?2:1}return he.apply(void 0,n)};var Ee=/** @class */function(){function t(t,e){void 0===e&&(e={}),this.message=t,this.position={offset:0,line:1,column:1},this.ignoreTag=!!e.ignoreTag,this.locale=e.locale,this.requiresOtherClause=!!e.requiresOtherClause,this.shouldParseSkeletons=!!e.shouldParseSkeletons}return t.prototype.parse=function(){if(0!==this.offset())throw Error("parser can only be used once");return this.parseMessage(0,"",!1)},t.prototype.parseMessage=function(t,e,n){for(var r=[];!this.isEOF();){var i=this.char();if(123/* `{` */===i){if((o=this.parseArgument(t,n)).err)return o;r.push(o.val)}else{if(125/* `}` */===i&&t>0)break;if(35/* `#` */!==i||"plural"!==e&&"selectordinal"!==e){if(60/* `<` */===i&&!this.ignoreTag&&47===this.peek()){if(n)break;return this.error(Tt.UNMATCHED_CLOSING_TAG,te(this.clonePosition(),this.clonePosition()))}if(60/* `<` */===i&&!this.ignoreTag&&be(this.peek()||0)){if((o=this.parseTag(t,e)).err)return o;r.push(o.val)}else{var o;if((o=this.parseLiteral(t,e)).err)return o;r.push(o.val)}}else{var s=this.clonePosition();this.bump(),r.push({type:vt.pound,location:te(s,this.clonePosition())})}}}return{val:r,err:null}},
|
|
356
356
|
/**
|
|
357
357
|
* A tag name must start with an ASCII lower/upper case letter. The grammar is based on the
|
|
358
358
|
* [custom element name][] except that a dash is NOT always mandatory and uppercase letters
|
|
@@ -371,24 +371,24 @@ lt=function(e,t){for(var n=[];;){var r=ft(e,t);if(void 0===r||Tt(r)||vt(r))break
|
|
|
371
371
|
* NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do
|
|
372
372
|
* since other tag-based engines like React allow it
|
|
373
373
|
*/
|
|
374
|
-
|
|
374
|
+
t.prototype.parseTag=function(t,e){var n=this.clonePosition();this.bump();// `<`
|
|
375
375
|
var r=this.parseTagName();if(this.bumpSpace(),this.bumpIf("/>"))
|
|
376
376
|
// Self closing tag
|
|
377
|
-
return{val:{type:
|
|
377
|
+
return{val:{type:vt.literal,value:"<".concat(r,"/>"),location:te(n,this.clonePosition())},err:null};if(this.bumpIf(">")){var i=this.parseMessage(t+1,e,!0);if(i.err)return i;var o=i.val,s=this.clonePosition();
|
|
378
378
|
// Expecting a close tag
|
|
379
|
-
if(this.bumpIf("</")){if(this.isEOF()||!
|
|
379
|
+
if(this.bumpIf("</")){if(this.isEOF()||!be(this.char()))return this.error(Tt.INVALID_TAG,te(s,this.clonePosition()));var a=this.clonePosition();return r!==this.parseTagName()?this.error(Tt.UNMATCHED_CLOSING_TAG,te(a,this.clonePosition())):(this.bumpSpace(),this.bumpIf(">")?{val:{type:vt.tag,value:r,children:o,location:te(n,this.clonePosition())},err:null}:this.error(Tt.INVALID_TAG,te(s,this.clonePosition())))}return this.error(Tt.UNCLOSED_TAG,te(n,this.clonePosition()))}return this.error(Tt.INVALID_TAG,te(n,this.clonePosition()))},
|
|
380
380
|
/**
|
|
381
381
|
* This method assumes that the caller has peeked ahead for the first tag character.
|
|
382
382
|
*/
|
|
383
|
-
|
|
384
|
-
for(this.bump();!this.isEOF()&&(45/* '-' */===(
|
|
383
|
+
t.prototype.parseTagName=function(){var t,e=this.offset();// the first tag name character
|
|
384
|
+
for(this.bump();!this.isEOF()&&(45/* '-' */===(t=this.char())||46/* '.' */===t||t>=48&&t<=57/* 0..9 */||95/* '_' */===t||t>=97&&t<=122/** a..z */||t>=65&&t<=90/* A..Z */||183==t||t>=192&&t<=214||t>=216&&t<=246||t>=248&&t<=893||t>=895&&t<=8191||t>=8204&&t<=8205||t>=8255&&t<=8256||t>=8304&&t<=8591||t>=11264&&t<=12271||t>=12289&&t<=55295||t>=63744&&t<=64975||t>=65008&&t<=65533||t>=65536&&t<=983039);)this.bump();return this.message.slice(e,this.offset())},t.prototype.parseLiteral=function(t,e){for(var n=this.clonePosition(),r="";;){var i=this.tryParseQuote(e);if(i)r+=i;else{var o=this.tryParseUnquoted(t,e);if(o)r+=o;else{var s=this.tryParseLeftAngleBracket();if(!s)break;r+=s}}}var a=te(n,this.clonePosition());return{val:{type:vt.literal,value:r,location:a},err:null}},t.prototype.tryParseLeftAngleBracket=function(){return this.isEOF()||60/* `<` */!==this.char()||!this.ignoreTag&&(be(t=this.peek()||0)||47===t)?null:(this.bump(),"<");var t;
|
|
385
385
|
/** See `parseTag` function docs. */},
|
|
386
386
|
/**
|
|
387
387
|
* Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes
|
|
388
388
|
* a character that requires quoting (that is, "only where needed"), and works the same in
|
|
389
389
|
* nested messages as on the top level of the pattern. The new behavior is otherwise compatible.
|
|
390
390
|
*/
|
|
391
|
-
|
|
391
|
+
t.prototype.tryParseQuote=function(t){if(this.isEOF()||39/* `'` */!==this.char())return null;
|
|
392
392
|
// Parse escaped char following the apostrophe, or early return if there is no escaped char.
|
|
393
393
|
// Check if is valid escaped character
|
|
394
394
|
switch(this.peek()){case 39/* `'` */:
|
|
@@ -396,74 +396,74 @@ switch(this.peek()){case 39/* `'` */:
|
|
|
396
396
|
return this.bump(),this.bump(),"'";
|
|
397
397
|
// '{', '<', '>', '}'
|
|
398
398
|
case 123:case 60:case 62:case 125:break;case 35:// '#'
|
|
399
|
-
if("plural"===
|
|
400
|
-
var
|
|
399
|
+
if("plural"===t||"selectordinal"===t)break;return null;default:return null}this.bump();// apostrophe
|
|
400
|
+
var e=[this.char()];// escaped char
|
|
401
401
|
// read chars until the optional closing apostrophe is found
|
|
402
402
|
for(this.bump();!this.isEOF();){var n=this.char();if(39/* `'` */===n){if(39/* `'` */!==this.peek()){
|
|
403
403
|
// Optional closing apostrophe.
|
|
404
|
-
this.bump();break}
|
|
404
|
+
this.bump();break}e.push(39),
|
|
405
405
|
// Bump one more time because we need to skip 2 characters.
|
|
406
|
-
this.bump()}else
|
|
407
|
-
this.bumpSpace(),this.isEOF())return this.error(
|
|
406
|
+
this.bump()}else e.push(n);this.bump()}return he.apply(void 0,e)},t.prototype.tryParseUnquoted=function(t,e){if(this.isEOF())return null;var n=this.char();return 60/* `<` */===n||123/* `{` */===n||35/* `#` */===n&&("plural"===e||"selectordinal"===e)||125/* `}` */===n&&t>0?null:(this.bump(),he(n))},t.prototype.parseArgument=function(t,e){var n=this.clonePosition();if(this.bump(),// `{`
|
|
407
|
+
this.bumpSpace(),this.isEOF())return this.error(Tt.EXPECT_ARGUMENT_CLOSING_BRACE,te(n,this.clonePosition()));if(125/* `}` */===this.char())return this.bump(),this.error(Tt.EMPTY_ARGUMENT,te(n,this.clonePosition()));
|
|
408
408
|
// argument name
|
|
409
|
-
var r=this.parseIdentifierIfPossible().value;if(!r)return this.error(
|
|
409
|
+
var r=this.parseIdentifierIfPossible().value;if(!r)return this.error(Tt.MALFORMED_ARGUMENT,te(n,this.clonePosition()));if(this.bumpSpace(),this.isEOF())return this.error(Tt.EXPECT_ARGUMENT_CLOSING_BRACE,te(n,this.clonePosition()));switch(this.char()){
|
|
410
410
|
// Simple argument: `{name}`
|
|
411
411
|
case 125/* `}` */:// `}`
|
|
412
|
-
return this.bump(),{val:{type:
|
|
412
|
+
return this.bump(),{val:{type:vt.argument,
|
|
413
413
|
// value does not include the opening and closing braces.
|
|
414
|
-
value:r,location:
|
|
414
|
+
value:r,location:te(n,this.clonePosition())},err:null};
|
|
415
415
|
// Argument with options: `{name, format, ...}`
|
|
416
416
|
case 44/* `,` */:return this.bump(),// `,`
|
|
417
|
-
this.bumpSpace(),this.isEOF()?this.error(
|
|
417
|
+
this.bumpSpace(),this.isEOF()?this.error(Tt.EXPECT_ARGUMENT_CLOSING_BRACE,te(n,this.clonePosition())):this.parseArgumentOptions(t,e,r,n);default:return this.error(Tt.MALFORMED_ARGUMENT,te(n,this.clonePosition()))}},
|
|
418
418
|
/**
|
|
419
419
|
* Advance the parser until the end of the identifier, if it is currently on
|
|
420
420
|
* an identifier character. Return an empty string otherwise.
|
|
421
421
|
*/
|
|
422
|
-
|
|
422
|
+
t.prototype.parseIdentifierIfPossible=function(){var t=this.clonePosition(),e=this.offset(),n=le(this.message,e),r=e+n.length;return this.bumpTo(r),{value:n,location:te(t,this.clonePosition())}},t.prototype.parseArgumentOptions=function(t,e,n,r){var i,o=this.clonePosition(),s=this.parseIdentifierIfPossible().value,a=this.clonePosition();
|
|
423
423
|
// Parse this range:
|
|
424
424
|
// {name, type, style}
|
|
425
425
|
// ^---^
|
|
426
426
|
switch(s){case"":
|
|
427
427
|
// Expecting a style string number, date, time, plural, selectordinal, or select.
|
|
428
|
-
return this.error(
|
|
428
|
+
return this.error(Tt.EXPECT_ARGUMENT_TYPE,te(o,a));case"number":case"date":case"time":
|
|
429
429
|
// Parse this range:
|
|
430
430
|
// {name, number, style}
|
|
431
431
|
// ^-------^
|
|
432
|
-
this.bumpSpace();var c=null;if(this.bumpIf(",")){this.bumpSpace();var l=this.clonePosition();if((
|
|
432
|
+
this.bumpSpace();var c=null;if(this.bumpIf(",")){this.bumpSpace();var l=this.clonePosition();if((y=this.parseSimpleArgStyleIfPossible()).err)return y;if(0===(p=de(y.val)).length)return this.error(Tt.EXPECT_ARGUMENT_STYLE,te(this.clonePosition(),this.clonePosition()));c={style:p,styleLocation:te(l,this.clonePosition())}}if((E=this.tryParseArgumentClose(r)).err)return E;var u=te(r,this.clonePosition());
|
|
433
433
|
// Extract style or skeleton
|
|
434
|
-
if(c&&
|
|
434
|
+
if(c&&ue(null==c?void 0:c.style,"::",0)){
|
|
435
435
|
// Skeleton starts with `::`.
|
|
436
|
-
var h=
|
|
436
|
+
var h=me(c.style.slice(2));if("number"===s)return(y=this.parseNumberSkeletonFromString(h,c.styleLocation)).err?y:{val:{type:vt.number,value:n,location:u,style:y.val},err:null};if(0===h.length)return this.error(Tt.EXPECT_DATE_TIME_SKELETON,u);var f=h;
|
|
437
437
|
// Get "best match" pattern only if locale is passed, if not, let it
|
|
438
438
|
// pass as-is where `parseDateTimeSkeleton()` will throw an error
|
|
439
439
|
// for unsupported patterns.
|
|
440
|
-
this.locale&&(
|
|
440
|
+
this.locale&&(f=function(t,e){for(var n="",r=0;r<t.length;r++){var i=t.charAt(r);if("j"===i){for(var o=0;r+1<t.length&&t.charAt(r+1)===i;)o++,r++;var s=1+(1&o),a=o<2?1:3+(o>>1),c=Kt(e);for("H"!=c&&"k"!=c||(a=0);a-- >0;)n+="a";for(;s-- >0;)n=c+n}else n+="J"===i?"H":i}return n}(h,this.locale));var p={type:wt.dateTime,pattern:f,location:c.styleLocation,parsedOptions:this.shouldParseSkeletons?Ut(f):{}};return{val:{type:"date"===s?vt.date:vt.time,value:n,location:u,style:p},err:null}}
|
|
441
441
|
// Regular style or no style.
|
|
442
|
-
return{val:{type:"number"===s?
|
|
442
|
+
return{val:{type:"number"===s?vt.number:"date"===s?vt.date:vt.time,value:n,location:u,style:null!==(i=null==c?void 0:c.style)&&void 0!==i?i:null},err:null};case"plural":case"selectordinal":case"select":
|
|
443
443
|
// Parse this range:
|
|
444
444
|
// {name, plural, options}
|
|
445
445
|
// ^---------^
|
|
446
|
-
var m=this.clonePosition();if(this.bumpSpace(),!this.bumpIf(","))return this.error(
|
|
446
|
+
var m=this.clonePosition();if(this.bumpSpace(),!this.bumpIf(","))return this.error(Tt.EXPECT_SELECT_ARGUMENT_OPTIONS,te(m,St({},m)));this.bumpSpace();
|
|
447
447
|
// Parse offset:
|
|
448
448
|
// {name, plural, offset:1, options}
|
|
449
449
|
// ^-----^
|
|
450
450
|
// or the first option:
|
|
451
451
|
// {name, plural, one {...} other {...}}
|
|
452
452
|
// ^--^
|
|
453
|
-
var d=this.parseIdentifierIfPossible(),g=0;if("select"!==s&&"offset"===d.value){if(!this.bumpIf(":"))return this.error(
|
|
453
|
+
var d=this.parseIdentifierIfPossible(),g=0;if("select"!==s&&"offset"===d.value){if(!this.bumpIf(":"))return this.error(Tt.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,te(this.clonePosition(),this.clonePosition()));var y;if(this.bumpSpace(),(y=this.tryParseDecimalInteger(Tt.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,Tt.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE)).err)return y;
|
|
454
454
|
// Parse another identifier for option parsing
|
|
455
|
-
this.bumpSpace(),d=this.parseIdentifierIfPossible(),g=
|
|
455
|
+
this.bumpSpace(),d=this.parseIdentifierIfPossible(),g=y.val}var E,b=this.tryParsePluralOrSelectOptions(t,s,e,d);if(b.err)return b;if((E=this.tryParseArgumentClose(r)).err)return E;var T=te(r,this.clonePosition());return"select"===s?{val:{type:vt.select,value:n,options:fe(b.val),location:T},err:null}:{val:{type:vt.plural,value:n,options:fe(b.val),offset:g,pluralType:"plural"===s?"cardinal":"ordinal",location:T},err:null};default:return this.error(Tt.INVALID_ARGUMENT_TYPE,te(o,a))}},t.prototype.tryParseArgumentClose=function(t){
|
|
456
456
|
// Parse: {value, number, ::currency/GBP }
|
|
457
|
-
return this.isEOF()||125/* `}` */!==this.char()?this.error(
|
|
457
|
+
return this.isEOF()||125/* `}` */!==this.char()?this.error(Tt.EXPECT_ARGUMENT_CLOSING_BRACE,te(t,this.clonePosition())):(this.bump(),{val:!0,err:null})},
|
|
458
458
|
/**
|
|
459
459
|
* See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659
|
|
460
460
|
*/
|
|
461
|
-
|
|
461
|
+
t.prototype.parseSimpleArgStyleIfPossible=function(){for(var t=0,e=this.clonePosition();!this.isEOF();){switch(this.char()){case 39/* `'` */:
|
|
462
462
|
// Treat apostrophe as quoting but include it in the style part.
|
|
463
463
|
// Find the end of the quoted literal text.
|
|
464
|
-
this.bump();var n=this.clonePosition();if(!this.bumpUntil("'"))return this.error(
|
|
464
|
+
this.bump();var n=this.clonePosition();if(!this.bumpUntil("'"))return this.error(Tt.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE,te(n,this.clonePosition()));this.bump();break;case 123/* `{` */:t+=1,this.bump();break;case 125/* `}` */:if(!(t>0))return{val:this.message.slice(e.offset,this.offset()),err:null};t-=1;break;default:this.bump()}}return{val:this.message.slice(e.offset,this.offset()),err:null}},t.prototype.parseNumberSkeletonFromString=function(t,e){var n=[];try{n=function(t){if(0===t.length)throw new Error("Number skeleton cannot be empty");
|
|
465
465
|
// Parse the skeleton
|
|
466
|
-
for(var
|
|
466
|
+
for(var e=[],n=0,r=t.split(Gt).filter((function(t){return t.length>0}));n<r.length;n++){var i=r[n].split("/");if(0===i.length)throw new Error("Invalid number skeleton");for(var o=i[0],s=i.slice(1),a=0,c=s;a<c.length;a++)if(0===c[a].length)throw new Error("Invalid number skeleton");e.push({stem:o,options:s})}return e}(t)}catch(t){return this.error(Tt.INVALID_NUMBER_SKELETON,e)}return{val:{type:wt.number,tokens:n,location:e,parsedOptions:this.shouldParseSkeletons?Jt(n):{}},err:null}},
|
|
467
467
|
/**
|
|
468
468
|
* @param nesting_level The current nesting level of messages.
|
|
469
469
|
* This can be positive when parsing message fragment in select or plural argument options.
|
|
@@ -474,153 +474,153 @@ for(var t=[],n=0,r=e.split(Ge).filter((function(e){return e.length>0}));n<r.leng
|
|
|
474
474
|
* between a pair of opening and closing tags. The nested message will not parse beyond
|
|
475
475
|
* the closing tag boundary.
|
|
476
476
|
*/
|
|
477
|
-
|
|
477
|
+
t.prototype.tryParsePluralOrSelectOptions=function(t,e,n,r){
|
|
478
478
|
// Parse:
|
|
479
479
|
// one {one apple}
|
|
480
480
|
// ^--^
|
|
481
|
-
for(var i,o=!1,s=[],a=new Set,c=r.value,l=r.location;;){if(0===c.length){var u=this.clonePosition();if("select"===
|
|
481
|
+
for(var i,o=!1,s=[],a=new Set,c=r.value,l=r.location;;){if(0===c.length){var u=this.clonePosition();if("select"===e||!this.bumpIf("="))break;
|
|
482
482
|
// Try parse `={number}` selector
|
|
483
|
-
var h=this.tryParseDecimalInteger(
|
|
483
|
+
var h=this.tryParseDecimalInteger(Tt.EXPECT_PLURAL_ARGUMENT_SELECTOR,Tt.INVALID_PLURAL_ARGUMENT_SELECTOR);if(h.err)return h;l=te(u,this.clonePosition()),c=this.message.slice(u.offset,this.offset())}
|
|
484
484
|
// Duplicate selector clauses
|
|
485
|
-
if(a.has(c))return this.error("select"===
|
|
485
|
+
if(a.has(c))return this.error("select"===e?Tt.DUPLICATE_SELECT_ARGUMENT_SELECTOR:Tt.DUPLICATE_PLURAL_ARGUMENT_SELECTOR,l);"other"===c&&(o=!0),
|
|
486
486
|
// Parse:
|
|
487
487
|
// one {one apple}
|
|
488
488
|
// ^----------^
|
|
489
|
-
this.bumpSpace();var
|
|
489
|
+
this.bumpSpace();var f=this.clonePosition();if(!this.bumpIf("{"))return this.error("select"===e?Tt.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT:Tt.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT,te(this.clonePosition(),this.clonePosition()));var p=this.parseMessage(t+1,e,n);if(p.err)return p;var m=this.tryParseArgumentClose(f);if(m.err)return m;s.push([c,{value:p.val,location:te(f,this.clonePosition())}]),
|
|
490
490
|
// Keep track of the existing selectors
|
|
491
491
|
a.add(c),
|
|
492
492
|
// Prep next selector clause.
|
|
493
|
-
this.bumpSpace(),c=(i=this.parseIdentifierIfPossible()).value,l=i.location}return 0===s.length?this.error("select"===
|
|
493
|
+
this.bumpSpace(),c=(i=this.parseIdentifierIfPossible()).value,l=i.location}return 0===s.length?this.error("select"===e?Tt.EXPECT_SELECT_ARGUMENT_SELECTOR:Tt.EXPECT_PLURAL_ARGUMENT_SELECTOR,te(this.clonePosition(),this.clonePosition())):this.requiresOtherClause&&!o?this.error(Tt.MISSING_OTHER_CLAUSE,te(this.clonePosition(),this.clonePosition())):{val:s,err:null}},t.prototype.tryParseDecimalInteger=function(t,e){var n=1,r=this.clonePosition();this.bumpIf("+")||this.bumpIf("-")&&(n=-1);for(var i=!1,o=0;!this.isEOF();){var s=this.char();if(!(s>=48/* `0` */&&s<=57/* `9` */))break;i=!0,o=10*o+(s-48),this.bump()}var a=te(r,this.clonePosition());return i?ae(o*=n)?{val:o,err:null}:this.error(e,a):this.error(t,a)},t.prototype.offset=function(){return this.position.offset},t.prototype.isEOF=function(){return this.offset()===this.message.length},t.prototype.clonePosition=function(){
|
|
494
494
|
// This is much faster than `Object.assign` or spread.
|
|
495
495
|
return{offset:this.position.offset,line:this.position.line,column:this.position.column}},
|
|
496
496
|
/**
|
|
497
497
|
* Return the code point at the current position of the parser.
|
|
498
498
|
* Throws if the index is out of bound.
|
|
499
499
|
*/
|
|
500
|
-
|
|
500
|
+
t.prototype.char=function(){var t=this.position.offset;if(t>=this.message.length)throw Error("out of bound");var e=pe(this.message,t);if(void 0===e)throw Error("Offset ".concat(t," is at invalid UTF-16 code unit boundary"));return e},t.prototype.error=function(t,e){return{val:null,err:{kind:t,message:this.message,location:e}}},
|
|
501
501
|
/** Bump the parser to the next UTF-16 code unit. */
|
|
502
|
-
|
|
502
|
+
t.prototype.bump=function(){if(!this.isEOF()){var t=this.char();10/* '\n' */===t?(this.position.line+=1,this.position.column=1,this.position.offset+=1):(this.position.column+=1,
|
|
503
503
|
// 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.
|
|
504
|
-
this.position.offset+=
|
|
504
|
+
this.position.offset+=t<65536?1:2)}},
|
|
505
505
|
/**
|
|
506
506
|
* If the substring starting at the current position of the parser has
|
|
507
507
|
* the given prefix, then bump the parser to the character immediately
|
|
508
508
|
* following the prefix and return true. Otherwise, don't bump the parser
|
|
509
509
|
* and return false.
|
|
510
510
|
*/
|
|
511
|
-
|
|
511
|
+
t.prototype.bumpIf=function(t){if(ue(this.message,t,this.offset())){for(var e=0;e<t.length;e++)this.bump();return!0}return!1},
|
|
512
512
|
/**
|
|
513
513
|
* Bump the parser until the pattern character is found and return `true`.
|
|
514
514
|
* Otherwise bump to the end of the file and return `false`.
|
|
515
515
|
*/
|
|
516
|
-
|
|
516
|
+
t.prototype.bumpUntil=function(t){var e=this.offset(),n=this.message.indexOf(t,e);return n>=0?(this.bumpTo(n),!0):(this.bumpTo(this.message.length),!1)},
|
|
517
517
|
/**
|
|
518
518
|
* Bump the parser to the target offset.
|
|
519
519
|
* If target offset is beyond the end of the input, bump the parser to the end of the input.
|
|
520
520
|
*/
|
|
521
|
-
|
|
521
|
+
t.prototype.bumpTo=function(t){if(this.offset()>t)throw Error("targetOffset ".concat(t," must be greater than or equal to the current offset ").concat(this.offset()));for(t=Math.min(t,this.message.length);;){var e=this.offset();if(e===t)break;if(e>t)throw Error("targetOffset ".concat(t," is at invalid UTF-16 code unit boundary"));if(this.bump(),this.isEOF())break}},
|
|
522
522
|
/** advance the parser through all whitespace to the next non-whitespace code unit. */
|
|
523
|
-
|
|
523
|
+
t.prototype.bumpSpace=function(){for(;!this.isEOF()&&Te(this.char());)this.bump()},
|
|
524
524
|
/**
|
|
525
525
|
* Peek at the *next* Unicode codepoint in the input without advancing the parser.
|
|
526
526
|
* If the input has been exhausted, then this returns null.
|
|
527
527
|
*/
|
|
528
|
-
|
|
528
|
+
t.prototype.peek=function(){if(this.isEOF())return null;var t=this.char(),e=this.offset(),n=this.message.charCodeAt(e+(t>=65536?2:1));return null!=n?n:null},t}();
|
|
529
529
|
/**
|
|
530
530
|
* This check if codepoint is alphabet (lower & uppercase)
|
|
531
531
|
* @param codepoint
|
|
532
532
|
* @returns
|
|
533
|
-
*/function
|
|
533
|
+
*/function be(t){return t>=97&&t<=122||t>=65&&t<=90}
|
|
534
534
|
/**
|
|
535
535
|
* Code point equivalent of regex `\p{White_Space}`.
|
|
536
536
|
* From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt
|
|
537
537
|
*/
|
|
538
|
-
function
|
|
538
|
+
function Te(t){return t>=9&&t<=13||32===t||133===t||t>=8206&&t<=8207||8232===t||8233===t}
|
|
539
539
|
/**
|
|
540
540
|
* Code point equivalent of regex `\p{Pattern_Syntax}`.
|
|
541
541
|
* See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt
|
|
542
|
-
*/function
|
|
542
|
+
*/function ve(t){return t>=33&&t<=35||36===t||t>=37&&t<=39||40===t||41===t||42===t||43===t||44===t||45===t||t>=46&&t<=47||t>=58&&t<=59||t>=60&&t<=62||t>=63&&t<=64||91===t||92===t||93===t||94===t||96===t||123===t||124===t||125===t||126===t||161===t||t>=162&&t<=165||166===t||167===t||169===t||171===t||172===t||174===t||176===t||177===t||182===t||187===t||191===t||215===t||247===t||t>=8208&&t<=8213||t>=8214&&t<=8215||8216===t||8217===t||8218===t||t>=8219&&t<=8220||8221===t||8222===t||8223===t||t>=8224&&t<=8231||t>=8240&&t<=8248||8249===t||8250===t||t>=8251&&t<=8254||t>=8257&&t<=8259||8260===t||8261===t||8262===t||t>=8263&&t<=8273||8274===t||8275===t||t>=8277&&t<=8286||t>=8592&&t<=8596||t>=8597&&t<=8601||t>=8602&&t<=8603||t>=8604&&t<=8607||8608===t||t>=8609&&t<=8610||8611===t||t>=8612&&t<=8613||8614===t||t>=8615&&t<=8621||8622===t||t>=8623&&t<=8653||t>=8654&&t<=8655||t>=8656&&t<=8657||8658===t||8659===t||8660===t||t>=8661&&t<=8691||t>=8692&&t<=8959||t>=8960&&t<=8967||8968===t||8969===t||8970===t||8971===t||t>=8972&&t<=8991||t>=8992&&t<=8993||t>=8994&&t<=9e3||9001===t||9002===t||t>=9003&&t<=9083||9084===t||t>=9085&&t<=9114||t>=9115&&t<=9139||t>=9140&&t<=9179||t>=9180&&t<=9185||t>=9186&&t<=9254||t>=9255&&t<=9279||t>=9280&&t<=9290||t>=9291&&t<=9311||t>=9472&&t<=9654||9655===t||t>=9656&&t<=9664||9665===t||t>=9666&&t<=9719||t>=9720&&t<=9727||t>=9728&&t<=9838||9839===t||t>=9840&&t<=10087||10088===t||10089===t||10090===t||10091===t||10092===t||10093===t||10094===t||10095===t||10096===t||10097===t||10098===t||10099===t||10100===t||10101===t||t>=10132&&t<=10175||t>=10176&&t<=10180||10181===t||10182===t||t>=10183&&t<=10213||10214===t||10215===t||10216===t||10217===t||10218===t||10219===t||10220===t||10221===t||10222===t||10223===t||t>=10224&&t<=10239||t>=10240&&t<=10495||t>=10496&&t<=10626||10627===t||10628===t||10629===t||10630===t||10631===t||10632===t||10633===t||10634===t||10635===t||10636===t||10637===t||10638===t||10639===t||10640===t||10641===t||10642===t||10643===t||10644===t||10645===t||10646===t||10647===t||10648===t||t>=10649&&t<=10711||10712===t||10713===t||10714===t||10715===t||t>=10716&&t<=10747||10748===t||10749===t||t>=10750&&t<=11007||t>=11008&&t<=11055||t>=11056&&t<=11076||t>=11077&&t<=11078||t>=11079&&t<=11084||t>=11085&&t<=11123||t>=11124&&t<=11125||t>=11126&&t<=11157||11158===t||t>=11159&&t<=11263||t>=11776&&t<=11777||11778===t||11779===t||11780===t||11781===t||t>=11782&&t<=11784||11785===t||11786===t||11787===t||11788===t||11789===t||t>=11790&&t<=11798||11799===t||t>=11800&&t<=11801||11802===t||11803===t||11804===t||11805===t||t>=11806&&t<=11807||11808===t||11809===t||11810===t||11811===t||11812===t||11813===t||11814===t||11815===t||11816===t||11817===t||t>=11818&&t<=11822||11823===t||t>=11824&&t<=11833||t>=11834&&t<=11835||t>=11836&&t<=11839||11840===t||11841===t||11842===t||t>=11843&&t<=11855||t>=11856&&t<=11857||11858===t||t>=11859&&t<=11903||t>=12289&&t<=12291||12296===t||12297===t||12298===t||12299===t||12300===t||12301===t||12302===t||12303===t||12304===t||12305===t||t>=12306&&t<=12307||12308===t||12309===t||12310===t||12311===t||12312===t||12313===t||12314===t||12315===t||12316===t||12317===t||t>=12318&&t<=12319||12320===t||12336===t||64830===t||64831===t||t>=65093&&t<=65094}function we(t){t.forEach((function(t){if(delete t.location,Lt(t)||Bt(t))for(var e in t.options)delete t.options[e].location,we(t.options[e].value);else Nt(t)&&Dt(t.style)||(Ct(t)||Mt(t))&&xt(t.style)?delete t.style.location:Rt(t)&&we(t.children)}))}function Se(t,e){void 0===e&&(e={}),e=St({shouldParseSkeletons:!0,requiresOtherClause:!0},e);var n=new Ee(t,e).parse();if(n.err){var r=SyntaxError(Tt[n.err.kind]);
|
|
543
543
|
// @ts-expect-error Assign to error object
|
|
544
544
|
throw r.location=n.err.location,
|
|
545
545
|
// @ts-expect-error Assign to error object
|
|
546
|
-
r.originalMessage=n.err.message,r}return(null==
|
|
546
|
+
r.originalMessage=n.err.message,r}return(null==e?void 0:e.captureLocation)||we(n.val),n.val}
|
|
547
547
|
|
|
548
548
|
// Main
|
|
549
549
|
|
|
550
|
-
function
|
|
550
|
+
function Ae(t,e){var n=e&&e.cache?e.cache:Pe,r=e&&e.serializer?e.serializer:Me;return(e&&e.strategy?e.strategy:Ce)(t,{cache:n,serializer:r})}
|
|
551
551
|
|
|
552
552
|
// Strategy
|
|
553
553
|
|
|
554
|
-
function
|
|
554
|
+
function He(t,e,n,r){var i,o=null==(i=r)||"number"==typeof i||"boolean"==typeof i?r:n(r),s=e.get(o);return void 0===s&&(s=t.call(this,r),e.set(o,s)),s}function Oe(t,e,n){var r=Array.prototype.slice.call(arguments,3),i=n(r),o=e.get(i);return void 0===o&&(o=t.apply(this,r),e.set(i,o)),o}function Ne(t,e,n,r,i){return n.bind(e,t,r,i)}function Ce(t,e){return Ne(t,this,1===t.length?He:Oe,e.cache.create(),e.serializer)}
|
|
555
555
|
// Serializer
|
|
556
|
-
var
|
|
556
|
+
var Me=function(){return JSON.stringify(arguments)};
|
|
557
557
|
|
|
558
558
|
// Cache
|
|
559
559
|
|
|
560
|
-
function
|
|
560
|
+
function Le(){this.cache=Object.create(null)}Le.prototype.get=function(t){return this.cache[t]},Le.prototype.set=function(t,e){this.cache[t]=e};var Be,Pe={create:function(){
|
|
561
561
|
// @ts-ignore
|
|
562
|
-
return new
|
|
562
|
+
return new Le}},Re={variadic:function(t,e){return Ne(t,this,Oe,e.cache.create(),e.serializer)},monadic:function(t,e){return Ne(t,this,He,e.cache.create(),e.serializer)}};!function(t){
|
|
563
563
|
// When we have a placeholder but no value to format
|
|
564
|
-
|
|
564
|
+
t.MISSING_VALUE="MISSING_VALUE",
|
|
565
565
|
// When value supplied is invalid
|
|
566
|
-
|
|
566
|
+
t.INVALID_VALUE="INVALID_VALUE",
|
|
567
567
|
// When we need specific Intl API but it's not available
|
|
568
|
-
|
|
568
|
+
t.MISSING_INTL_API="MISSING_INTL_API"}(Be||(Be={}));var De,xe=/** @class */function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.code=n,i.originalMessage=r,i}return bt(e,t),e.prototype.toString=function(){return"[formatjs Error: ".concat(this.code,"] ").concat(this.message)},e}(Error),Ie=/** @class */function(t){function e(e,n,r,i){return t.call(this,'Invalid values for "'.concat(e,'": "').concat(n,'". Options are "').concat(Object.keys(r).join('", "'),'"'),Be.INVALID_VALUE,i)||this}return bt(e,t),e}(xe),ke=/** @class */function(t){function e(e,n,r){return t.call(this,'Value for "'.concat(e,'" must be of type ').concat(n),Be.INVALID_VALUE,r)||this}return bt(e,t),e}(xe),Ue=/** @class */function(t){function e(e,n){return t.call(this,'The intl string context variable "'.concat(e,'" was not provided to the string "').concat(n,'"'),Be.MISSING_VALUE,n)||this}return bt(e,t),e}(xe);function Ge(t){return"function"==typeof t}
|
|
569
569
|
// TODO(skeleton): add skeleton support
|
|
570
|
-
function
|
|
570
|
+
function Fe(t,e,n,r,i,o,
|
|
571
571
|
// For debugging
|
|
572
572
|
s){
|
|
573
573
|
// Hot path for straight simple msg translations
|
|
574
|
-
if(1===
|
|
574
|
+
if(1===t.length&&Ht(t[0]))return[{type:De.literal,value:t[0].value}];for(var a=[],c=0,l=t;c<l.length;c++){var u=l[c];
|
|
575
575
|
// Exit early for string parts.
|
|
576
|
-
if(
|
|
576
|
+
if(Ht(u))a.push({type:De.literal,value:u.value});else
|
|
577
577
|
// TODO: should this part be literal type?
|
|
578
578
|
// Replace `#` in plural rules with the actual numeric value.
|
|
579
|
-
if(
|
|
579
|
+
if(Pt(u))"number"==typeof o&&a.push({type:De.literal,value:n.getNumberFormat(e).format(o)});else{var h=u.value;
|
|
580
580
|
// Enforce that all required values are provided by the caller.
|
|
581
|
-
if(!i||!(h in i))throw new
|
|
581
|
+
if(!i||!(h in i))throw new Ue(h,s);var f=i[h];if(Ot(u))f&&"string"!=typeof f&&"number"!=typeof f||(f="string"==typeof f||"number"==typeof f?String(f):""),a.push({type:"string"==typeof f?De.literal:De.object,value:f});else
|
|
582
582
|
// Recursively format plural and select parts' option — which can be a
|
|
583
583
|
// nested pattern structure. The choosing of the option to use is
|
|
584
584
|
// abstracted-by and delegated-to the part helper object.
|
|
585
|
-
if(
|
|
585
|
+
if(Ct(u)){var p="string"==typeof u.style?r.date[u.style]:xt(u.style)?u.style.parsedOptions:void 0;a.push({type:De.literal,value:n.getDateTimeFormat(e,p).format(f)})}else if(Mt(u)){p="string"==typeof u.style?r.time[u.style]:xt(u.style)?u.style.parsedOptions:r.time.medium;a.push({type:De.literal,value:n.getDateTimeFormat(e,p).format(f)})}else if(Nt(u)){(p="string"==typeof u.style?r.number[u.style]:Dt(u.style)?u.style.parsedOptions:void 0)&&p.scale&&(f*=p.scale||1),a.push({type:De.literal,value:n.getNumberFormat(e,p).format(f)})}else{if(Rt(u)){var m=u.children,d=u.value,g=i[d];if(!Ge(g))throw new ke(d,"function",s);var y=g(Fe(m,e,n,r,i,o).map((function(t){return t.value})));Array.isArray(y)||(y=[y]),a.push.apply(a,y.map((function(t){return{type:"string"==typeof t?De.literal:De.object,value:t}})))}if(Lt(u)){if(!(E=u.options[f]||u.options.other))throw new Ie(u.value,f,Object.keys(u.options),s);a.push.apply(a,Fe(E.value,e,n,r,i))}else if(Bt(u)){var E;if(!(E=u.options["=".concat(f)])){if(!Intl.PluralRules)throw new xe('Intl.PluralRules is not available in this environment.\nTry polyfilling it using "@formatjs/intl-pluralrules"\n',Be.MISSING_INTL_API,s);var b=n.getPluralRules(e,{type:u.pluralType}).select(f-(u.offset||0));E=u.options[b]||u.options.other}if(!E)throw new Ie(u.value,f,Object.keys(u.options),s);a.push.apply(a,Fe(E.value,e,n,r,i,f-(u.offset||0)))}else;}}}return function(t){return t.length<2?t:t.reduce((function(t,e){var n=t[t.length-1];return n&&n.type===De.literal&&e.type===De.literal?n.value+=e.value:t.push(e),t}),[])}(a)}
|
|
586
586
|
/*
|
|
587
587
|
Copyright (c) 2014, Yahoo! Inc. All rights reserved.
|
|
588
588
|
Copyrights licensed under the New BSD License.
|
|
589
589
|
See the accompanying LICENSE file for terms.
|
|
590
590
|
*/
|
|
591
591
|
// -- MessageFormat --------------------------------------------------------
|
|
592
|
-
function
|
|
592
|
+
function ze(t,e){return e?Object.keys(t).reduce((function(n,r){var i,o;return n[r]=(i=t[r],(o=e[r])?St(St(St({},i||{}),o||{}),Object.keys(i).reduce((function(t,e){return t[e]=St(St({},i[e]),o[e]||{}),t}),{})):i),n}),St({},t)):t}function Ze(t){return{create:function(){return{get:function(e){return t[e]},set:function(e,n){t[e]=n}}}}}!function(t){t[t.literal=0]="literal",t[t.object=1]="object"}(De||(De={}));var je=/** @class */function(){function t(e,n,r,i){var o,s=this;if(void 0===n&&(n=t.defaultLocale),this.formatterCache={number:{},dateTime:{},pluralRules:{}},this.format=function(t){var e=s.formatToParts(t);
|
|
593
593
|
// Hot path for straight simple msg translations
|
|
594
|
-
if(1===
|
|
594
|
+
if(1===e.length)return e[0].value;var n=e.reduce((function(t,e){return t.length&&e.type===De.literal&&"string"==typeof t[t.length-1]?t[t.length-1]+=e.value:t.push(e.value),t}),[]);return n.length<=1?n[0]||"":n},this.formatToParts=function(t){return Fe(s.ast,s.locales,s.formatters,s.formats,t,void 0,s.message)},this.resolvedOptions=function(){return{locale:s.resolvedLocale.toString()}},this.getAst=function(){return s.ast},
|
|
595
595
|
// Defined first because it's used to build the format pattern.
|
|
596
|
-
this.locales=n,this.resolvedLocale=
|
|
596
|
+
this.locales=n,this.resolvedLocale=t.resolveLocale(n),"string"==typeof e){if(this.message=e,!t.__parse)throw new TypeError("IntlMessageFormat.__parse must be set to process `message` of type `string`");
|
|
597
597
|
// Parse string messages into an AST.
|
|
598
|
-
this.ast=
|
|
598
|
+
this.ast=t.__parse(e,{ignoreTag:null==i?void 0:i.ignoreTag,locale:this.resolvedLocale})}else this.ast=e;if(!Array.isArray(this.ast))throw new TypeError("A message must be provided as a String or AST.");
|
|
599
599
|
// Creates a new object with the specified `formats` merged with the default
|
|
600
600
|
// formats.
|
|
601
|
-
this.formats=
|
|
601
|
+
this.formats=ze(t.formats,r),this.formatters=i&&i.formatters||(void 0===(o=this.formatterCache)&&(o={number:{},dateTime:{},pluralRules:{}}),{getNumberFormat:Ae((function(){for(var t,e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return new((t=Intl.NumberFormat).bind.apply(t,At([void 0],e,!1)))}),{cache:Ze(o.number),strategy:Re.variadic}),getDateTimeFormat:Ae((function(){for(var t,e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return new((t=Intl.DateTimeFormat).bind.apply(t,At([void 0],e,!1)))}),{cache:Ze(o.dateTime),strategy:Re.variadic}),getPluralRules:Ae((function(){for(var t,e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return new((t=Intl.PluralRules).bind.apply(t,At([void 0],e,!1)))}),{cache:Ze(o.pluralRules),strategy:Re.variadic})})}return Object.defineProperty(t,"defaultLocale",{get:function(){return t.memoizedDefaultLocale||(t.memoizedDefaultLocale=(new Intl.NumberFormat).resolvedOptions().locale),t.memoizedDefaultLocale},enumerable:!1,configurable:!0}),t.memoizedDefaultLocale=null,t.resolveLocale=function(t){var e=Intl.NumberFormat.supportedLocalesOf(t);return e.length>0?new Intl.Locale(e[0]):new Intl.Locale("string"==typeof t?t:t[0])},t.__parse=Se,
|
|
602
602
|
// Default format options used as the prototype of the `formats` provided to the
|
|
603
603
|
// constructor. These are used when constructing the internal Intl.NumberFormat
|
|
604
604
|
// and Intl.DateTimeFormat instances.
|
|
605
|
-
|
|
605
|
+
t.formats={number:{integer:{maximumFractionDigits:0},currency:{style:"currency"},percent:{style:"percent"}},date:{short:{month:"numeric",day:"numeric",year:"2-digit"},medium:{month:"short",day:"numeric",year:"numeric"},long:{month:"long",day:"numeric",year:"numeric"},full:{weekday:"long",month:"long",day:"numeric",year:"numeric"}},time:{short:{hour:"numeric",minute:"numeric"},medium:{hour:"numeric",minute:"numeric",second:"numeric"},long:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"},full:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"}}},t}();const We={},Ve=(t,e,n)=>n?(e in We||(We[e]={}),t in We[e]||(We[e][t]=n),n):n,_e=(t,e)=>{if(null==e)return;if(e in We&&t in We[e])return We[e][t];const n=wn(e);for(let r=0;r<n.length;r++){const i=qe(n[r],t);if(i)return Ve(t,e,i)}};let Ye;const Je=at({});function Xe(t){return t in Ye}function qe(t,e){if(!Xe(t))return null;const n=function(t){return Ye[t]||null}(t);return function(t,e){if(null==e)return;if(e in t)return t[e];const n=e.split(".");let r=t;for(let t=0;t<n.length;t++)if("object"==typeof r){if(t>0){const e=n.slice(t,n.length).join(".");if(e in r){r=r[e];break}}r=r[n[t]]}else r=void 0;return r}(n,e)}function Ke(t,...e){delete We[t],Je.update((n=>(n[t]=yt.all([n[t]||{},...e]),n)))}ct([Je],(([t])=>Object.keys(t))),Je.subscribe((t=>Ye=t));const Qe={};function $e(t){return Qe[t]}function tn(t){return null!=t&&wn(t).some((t=>{var e;return null==(e=$e(t))?void 0:e.size}))}function en(t,e){const n=Promise.all(e.map((e=>(function(t,e){Qe[t].delete(e),0===Qe[t].size&&delete Qe[t]}(t,e),e().then((t=>t.default||t))))));return n.then((e=>Ke(t,...e)))}const nn={};function rn(t){if(!tn(t))return t in nn?nn[t]:Promise.resolve();const e=function(t){return wn(t).map((t=>{const e=$e(t);return[t,e?[...e]:[]]})).filter((([,t])=>t.length>0))}(t);return nn[t]=Promise.all(e.map((([t,e])=>en(t,e)))).then((()=>{if(tn(t))return rn(t);delete nn[t]})),nn[t]}var on=Object.getOwnPropertySymbols,sn=Object.prototype.hasOwnProperty,an=Object.prototype.propertyIsEnumerable;function cn({locale:t,id:e}){console.warn(`[svelte-i18n] The message "${e}" was not found in "${wn(t).join('", "')}".${tn(Sn())?"\n\nNote: there are at least one loader still registered to this locale that wasn't executed.":""}`)}const ln={fallbackLocale:null,loadingDelay:200,formats:{number:{scientific:{notation:"scientific"},engineering:{notation:"engineering"},compactLong:{notation:"compact",compactDisplay:"long"},compactShort:{notation:"compact",compactDisplay:"short"}},date:{short:{month:"numeric",day:"numeric",year:"2-digit"},medium:{month:"short",day:"numeric",year:"numeric"},long:{month:"long",day:"numeric",year:"numeric"},full:{weekday:"long",month:"long",day:"numeric",year:"numeric"}},time:{short:{hour:"numeric",minute:"numeric"},medium:{hour:"numeric",minute:"numeric",second:"numeric"},long:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"},full:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"}}},warnOnMissingMessages:!0,handleMissingMessage:void 0,ignoreTag:!0};function un(){return ln}const hn=at(!1);var fn=Object.defineProperty,pn=Object.defineProperties,mn=Object.getOwnPropertyDescriptors,dn=Object.getOwnPropertySymbols,gn=Object.prototype.hasOwnProperty,yn=Object.prototype.propertyIsEnumerable,En=(t,e,n)=>e in t?fn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;let bn;const Tn=at(null);function vn(t){return t.split("-").map(((t,e,n)=>n.slice(0,e+1).join("-"))).reverse()}function wn(t,e=un().fallbackLocale){const n=vn(t);return e?[...new Set([...n,...vn(e)])]:n}function Sn(){return null!=bn?bn:void 0}Tn.subscribe((t=>{bn=null!=t?t:void 0,"undefined"!=typeof window&&null!=t&&document.documentElement.setAttribute("lang",t)}));const An=(Hn=((t,e)=>{for(var n in e||(e={}))gn.call(e,n)&&En(t,n,e[n]);if(dn)for(var n of dn(e))yn.call(e,n)&&En(t,n,e[n]);return t})({},Tn),pn(Hn,mn({set:t=>{if(t&&function(t){if(null==t)return;const e=wn(t);for(let t=0;t<e.length;t++){const n=e[t];if(Xe(n))return n}}(t)&&tn(t)){const{loadingDelay:e}=un();let n;return"undefined"!=typeof window&&null!=Sn()&&e?n=window.setTimeout((()=>hn.set(!0)),e):hn.set(!0),rn(t).then((()=>{Tn.set(t)})).finally((()=>{clearTimeout(n),hn.set(!1)}))}return Tn.set(t)}})));var Hn;const On=t=>{const e=Object.create(null);return n=>{const r=JSON.stringify(n);return r in e?e[r]:e[r]=t(n)}};var Nn=Object.defineProperty,Cn=Object.getOwnPropertySymbols,Mn=Object.prototype.hasOwnProperty,Ln=Object.prototype.propertyIsEnumerable,Bn=(t,e,n)=>e in t?Nn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Pn=(t,e)=>{for(var n in e||(e={}))Mn.call(e,n)&&Bn(t,n,e[n]);if(Cn)for(var n of Cn(e))Ln.call(e,n)&&Bn(t,n,e[n]);return t},Rn=(t,e)=>{var n={};for(var r in t)Mn.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&Cn)for(var r of Cn(t))e.indexOf(r)<0&&Ln.call(t,r)&&(n[r]=t[r]);return n};const Dn=(t,e)=>{const{formats:n}=un();if(t in n&&e in n[t])return n[t][e];throw new Error(`[svelte-i18n] Unknown "${e}" ${t} format.`)},xn=On((t=>{var e=t,{locale:n,format:r}=e,i=Rn(e,["locale","format"]);if(null==n)throw new Error('[svelte-i18n] A "locale" must be set to format numbers');return r&&(i=Dn("number",r)),new Intl.NumberFormat(n,i)})),In=On((t=>{var e=t,{locale:n,format:r}=e,i=Rn(e,["locale","format"]);if(null==n)throw new Error('[svelte-i18n] A "locale" must be set to format dates');return r?i=Dn("date",r):0===Object.keys(i).length&&(i=Dn("date","short")),new Intl.DateTimeFormat(n,i)})),kn=On((t=>{var e=t,{locale:n,format:r}=e,i=Rn(e,["locale","format"]);if(null==n)throw new Error('[svelte-i18n] A "locale" must be set to format time values');return r?i=Dn("time",r):0===Object.keys(i).length&&(i=Dn("time","short")),new Intl.DateTimeFormat(n,i)})),Un=On((
|
|
606
606
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
607
|
-
(e
|
|
607
|
+
(t,e=Sn())=>new je(t,e,un().formats,{ignoreTag:un().ignoreTag}))),Gn=(t,e={})=>{var n,r,i,o;let s=e;"object"==typeof t&&(s=t,t=s.id);const{values:a,locale:c=Sn(),default:l}=s;if(null==c)throw new Error("[svelte-i18n] Cannot format a message without first setting the initial locale.");let u=_e(t,c);if(u){if("string"!=typeof u)return console.warn(`[svelte-i18n] Message with id "${t}" must be of type "string", found: "${typeof u}". Gettin its value through the "$format" method is deprecated; use the "json" method instead.`),u}else u=null!=(o=null!=(i=null==(r=(n=un()).handleMissingMessage)?void 0:r.call(n,{locale:c,id:t,defaultValue:l}))?i:l)?o:t;if(!a)return u;let h=u;try{h=Un(u,c).format(a)}catch(e){e instanceof Error&&console.warn(`[svelte-i18n] Message "${t}" has syntax error:`,e.message)}return h},Fn=(t,e)=>((t={})=>{var e=t,{locale:n=Sn()}=e,r=Rn(e,["locale"]);return kn(Pn({locale:n},r))})(e).format(t),zn=(t,e)=>((t={})=>{var e=t,{locale:n=Sn()}=e,r=Rn(e,["locale"]);return In(Pn({locale:n},r))})(e).format(t),Zn=(t,e)=>((t={})=>{var e=t,{locale:n=Sn()}=e,r=Rn(e,["locale"]);return xn(Pn({locale:n},r))})(e).format(t),jn=(t,e=Sn())=>_e(t,e),Wn=ct([An,Je],(()=>Gn));function Vn(t,e){Ke(t,e)}ct([An],(()=>Fn)),ct([An],(()=>zn)),ct([An],(()=>Zn)),ct([An,Je],(()=>jn)),function(t){const e=t,{formats:n}=e,r=((t,e)=>{var n={};for(var r in t)sn.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&on)for(var r of on(t))e.indexOf(r)<0&&an.call(t,r)&&(n[r]=t[r]);return n})(e,["formats"]);let i=t.fallbackLocale;if(t.initialLocale)try{je.resolveLocale(t.initialLocale)&&(i=t.initialLocale)}catch(e){console.warn(`[svelte-i18n] The initial locale "${t.initialLocale}" is not a valid locale.`)}r.warnOnMissingMessages&&(delete r.warnOnMissingMessages,null==r.handleMissingMessage?r.handleMissingMessage=cn:console.warn('[svelte-i18n] The "warnOnMissingMessages" option is deprecated. Please use the "handleMissingMessage" option instead.')),Object.assign(ln,r,{initialLocale:i}),n&&("number"in n&&Object.assign(ln.formats.number,n.number),"date"in n&&Object.assign(ln.formats.date,n.date),"time"in n&&Object.assign(ln.formats.time,n.time)),An.set(i)}({fallbackLocale:"en"});const _n={en:{sessionExpirationHeader:"Session Warning",sessionExpirationTitle:"Your session is about to expire!",sessionExpirationGeneralText:"Your session will automatically terminate in <b>{second} seconds</b>.",sessionExpirationGeneralButton:"CONTINUE"},tr:{sessionExpirationHeader:"Session Warning",sessionExpirationTitle:"You session is about to expire!",sessionExpirationGeneralText:"Oyun seansınız <b>{second} saniye</b> içinde otomatik olarak sonuçlandırılacaktır",sessionExpirationGeneralButton:"Devam et"}};"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function Yn(t,e,n){return t(n={path:e,exports:{},require:function(t,e){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==e&&n.path)}},n.exports),n.exports}var Jn=Yn((function(t,e){
|
|
608
608
|
/*! @license DOMPurify 3.1.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.6/LICENSE */
|
|
609
|
-
|
|
610
|
-
o||(o=function(
|
|
609
|
+
t.exports=function(){const{entries:t,setPrototypeOf:e,isFrozen:n,getPrototypeOf:r,getOwnPropertyDescriptor:i}=Object;let{freeze:o,seal:s,create:a}=Object,{apply:c,construct:l}="undefined"!=typeof Reflect&&Reflect;// eslint-disable-line import/no-mutable-exports
|
|
610
|
+
o||(o=function(t){return t}),s||(s=function(t){return t}),c||(c=function(t,e,n){return t.apply(e,n)}),l||(l=function(t,e){return new t(...e)});const u=w(Array.prototype.forEach),h=w(Array.prototype.pop),f=w(Array.prototype.push),p=w(String.prototype.toLowerCase),m=w(String.prototype.toString),d=w(String.prototype.match),g=w(String.prototype.replace),y=w(String.prototype.indexOf),E=w(String.prototype.trim),b=w(Object.prototype.hasOwnProperty),T=w(RegExp.prototype.test),v=S(TypeError);
|
|
611
611
|
/**
|
|
612
612
|
* Creates a new function that calls the given function with a specified thisArg and arguments.
|
|
613
613
|
*
|
|
614
614
|
* @param {Function} func - The function to be wrapped and called.
|
|
615
615
|
* @returns {Function} A new function that calls the given function with a specified thisArg and arguments.
|
|
616
616
|
*/
|
|
617
|
-
function w(
|
|
617
|
+
function w(t){return function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return c(t,e,r)}}
|
|
618
618
|
/**
|
|
619
619
|
* Creates a new function that constructs an instance of the given constructor function with the provided arguments.
|
|
620
620
|
*
|
|
621
621
|
* @param {Function} func - The constructor function to be wrapped and called.
|
|
622
622
|
* @returns {Function} A new function that constructs an instance of the given constructor function with the provided arguments.
|
|
623
|
-
*/function S(
|
|
623
|
+
*/function S(t){return function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return l(t,n)}}
|
|
624
624
|
/**
|
|
625
625
|
* Add properties to a lookup table
|
|
626
626
|
*
|
|
@@ -628,48 +628,48 @@ function w(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:
|
|
|
628
628
|
* @param {Array} array - The array containing elements to be added to the set.
|
|
629
629
|
* @param {Function} transformCaseFunc - An optional function to transform the case of each element before adding to the set.
|
|
630
630
|
* @returns {Object} The modified set with added elements.
|
|
631
|
-
*/function A(
|
|
631
|
+
*/function A(t,r){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:p;e&&
|
|
632
632
|
// Make 'in' and truthy checks like Boolean(set.constructor)
|
|
633
633
|
// independent of any properties defined on Object.prototype.
|
|
634
634
|
// Prevent prototype setters from intercepting set as a this value.
|
|
635
|
-
t
|
|
635
|
+
e(t,null);let o=r.length;for(;o--;){let e=r[o];if("string"==typeof e){const t=i(e);t!==e&&(
|
|
636
636
|
// Config presets (e.g. tags.js, attrs.js) are immutable.
|
|
637
|
-
n(r)||(r[o]=
|
|
637
|
+
n(r)||(r[o]=t),e=t)}t[e]=!0}return t}
|
|
638
638
|
/**
|
|
639
639
|
* Clean up an array to harden against CSPP
|
|
640
640
|
*
|
|
641
641
|
* @param {Array} array - The array to be cleaned.
|
|
642
642
|
* @returns {Array} The cleaned version of the array
|
|
643
|
-
*/function H(
|
|
643
|
+
*/function H(t){for(let e=0;e<t.length;e++)b(t,e)||(t[e]=null);return t}
|
|
644
644
|
/**
|
|
645
645
|
* Shallow clone an object
|
|
646
646
|
*
|
|
647
647
|
* @param {Object} object - The object to be cloned.
|
|
648
648
|
* @returns {Object} A new object that copies the original.
|
|
649
|
-
*/function
|
|
649
|
+
*/function O(e){const n=a(null);for(const[r,i]of t(e))b(e,r)&&(Array.isArray(i)?n[r]=H(i):i&&"object"==typeof i&&i.constructor===Object?n[r]=O(i):n[r]=i);return n}
|
|
650
650
|
/**
|
|
651
651
|
* This method automatically checks if the prop is function or getter and behaves accordingly.
|
|
652
652
|
*
|
|
653
653
|
* @param {Object} object - The object to look up the getter function in its prototype chain.
|
|
654
654
|
* @param {String} prop - The property name for which to find the getter function.
|
|
655
655
|
* @returns {Function} The getter function found in the prototype chain or a fallback function.
|
|
656
|
-
*/function
|
|
656
|
+
*/function N(t,e){for(;null!==t;){const n=i(t,e);if(n){if(n.get)return w(n.get);if("function"==typeof n.value)return w(n.value)}t=r(t)}function n(){return null}return n}const C=o(["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"]),M=o(["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"]),L=o(["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"]),B=o(["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=o(["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"]),R=o(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),D=o(["#text"]),x=o(["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"]),I=o(["accent-height","accumulate","additive","alignment-baseline","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","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","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","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","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"]),k=o(["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"]),U=o(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),G=s(/\{\{[\w\W]*|[\w\W]*\}\}/gm),F=s(/<%[\w\W]*|[\w\W]*%>/gm),z=s(/\${[\w\W]*}/gm),Z=s(/^data-[\-\w.\u00B7-\uFFFF]/),j=s(/^aria-[\-\w]+$/),W=s(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),V=s(/^(?:\w+script|data):/i),_=s(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Y=s(/^html$/i),J=s(/^[a-z][.\w]*(-[.\w]+)+$/i);
|
|
657
657
|
// SVG
|
|
658
|
-
var
|
|
658
|
+
var X=Object.freeze({__proto__:null,MUSTACHE_EXPR:G,ERB_EXPR:F,TMPLIT_EXPR:z,DATA_ATTR:Z,ARIA_ATTR:j,IS_ALLOWED_URI:W,IS_SCRIPT_OR_DATA:V,ATTR_WHITESPACE:_,DOCTYPE_NAME:Y,CUSTOM_ELEMENT:J});
|
|
659
659
|
// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType
|
|
660
|
-
const
|
|
660
|
+
const q={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,
|
|
661
661
|
// Deprecated
|
|
662
662
|
entityNode:6,
|
|
663
663
|
// Deprecated
|
|
664
|
-
progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},K=function(){return"undefined"==typeof window?null:window},Q=function(e
|
|
664
|
+
progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},K=function(){return"undefined"==typeof window?null:window},Q=function(t,e){if("object"!=typeof t||"function"!=typeof t.createPolicy)return null;
|
|
665
665
|
// Allow the callers to control the unique policy name
|
|
666
666
|
// by adding a data-tt-policy-suffix to the script element with the DOMPurify.
|
|
667
667
|
// Policy creation with duplicate names throws in Trusted Types.
|
|
668
|
-
let n=null;const r="data-tt-policy-suffix";
|
|
668
|
+
let n=null;const r="data-tt-policy-suffix";e&&e.hasAttribute(r)&&(n=e.getAttribute(r));const i="dompurify"+(n?"#"+n:"");try{return t.createPolicy(i,{createHTML:t=>t,createScriptURL:t=>t})}catch(t){
|
|
669
669
|
// Policy creation failed (most likely another DOMPurify script has
|
|
670
670
|
// already run). Skip creating the policy, as this will only cause errors
|
|
671
671
|
// if TT are enforced.
|
|
672
|
-
return console.warn("TrustedTypes policy "+i+" could not be created."),null}};function $(){let
|
|
672
|
+
return console.warn("TrustedTypes policy "+i+" could not be created."),null}};function $(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:K();const n=t=>$(t)
|
|
673
673
|
/**
|
|
674
674
|
* Version label, exposed for easier checks
|
|
675
675
|
* if DOMPurify is up to date or not
|
|
@@ -678,209 +678,209 @@ return console.warn("TrustedTypes policy "+i+" could not be created."),null}};fu
|
|
|
678
678
|
* Array of elements that DOMPurify removed during sanitation.
|
|
679
679
|
* Empty if nothing was removed.
|
|
680
680
|
*/
|
|
681
|
-
n.removed=[],!
|
|
681
|
+
n.removed=[],!e||!e.document||e.document.nodeType!==q.document)
|
|
682
682
|
// Not running in a browser, provide a factory function
|
|
683
683
|
// so that you can pass your own Window
|
|
684
|
-
return n.isSupported=!1,n;let{document:r}=
|
|
684
|
+
return n.isSupported=!1,n;let{document:r}=e;const i=r,s=i.currentScript,{DocumentFragment:c,HTMLTemplateElement:l,Node:w,Element:S,NodeFilter:H,NamedNodeMap:G=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:F,DOMParser:z,trustedTypes:Z}=e,j=S.prototype,V=N(j,"cloneNode"),_=N(j,"remove"),J=N(j,"nextSibling"),tt=N(j,"childNodes"),et=N(j,"parentNode");
|
|
685
685
|
// As per issue #47, the web-components registry is inherited by a
|
|
686
686
|
// new document created via createHTMLDocument. As per the spec
|
|
687
687
|
// (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)
|
|
688
688
|
// a new empty registry is used when creating a template contents owner
|
|
689
689
|
// document, so we use that as our parent document to ensure nothing
|
|
690
690
|
// is inherited.
|
|
691
|
-
if("function"==typeof l){const
|
|
691
|
+
if("function"==typeof l){const t=r.createElement("template");t.content&&t.content.ownerDocument&&(r=t.content.ownerDocument)}let nt,rt="";const{implementation:it,createNodeIterator:ot,createDocumentFragment:st,getElementsByTagName:at}=r,{importNode:ct}=i;let lt={};
|
|
692
692
|
/**
|
|
693
693
|
* Expose whether this browser supports running the full DOMPurify.
|
|
694
|
-
*/n.isSupported="function"==typeof
|
|
694
|
+
*/n.isSupported="function"==typeof t&&"function"==typeof et&&it&&void 0!==it.createHTMLDocument;const{MUSTACHE_EXPR:ut,ERB_EXPR:ht,TMPLIT_EXPR:ft,DATA_ATTR:pt,ARIA_ATTR:mt,IS_SCRIPT_OR_DATA:dt,ATTR_WHITESPACE:gt,CUSTOM_ELEMENT:yt}=X;let{IS_ALLOWED_URI:Et}=X,bt=null;
|
|
695
695
|
/**
|
|
696
696
|
* We consider the elements and attributes below to be safe. Ideally
|
|
697
697
|
* don't add any new ones but feel free to remove unwanted ones.
|
|
698
698
|
*/
|
|
699
|
-
/* allowed element names */const
|
|
700
|
-
/* Allowed attribute names */let
|
|
699
|
+
/* allowed element names */const Tt=A({},[...C,...M,...L,...P,...D]);
|
|
700
|
+
/* Allowed attribute names */let vt=null;const wt=A({},[...x,...I,...k,...U]);
|
|
701
701
|
/*
|
|
702
702
|
* Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.
|
|
703
703
|
* @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)
|
|
704
704
|
* @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)
|
|
705
705
|
* @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.
|
|
706
|
-
*/let
|
|
707
|
-
/* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */const
|
|
708
|
-
/* Keep element content when removing element? */let
|
|
706
|
+
*/let St=Object.seal(a(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}})),At=null,Ht=null,Ot=!0,Nt=!0,Ct=!1,Mt=!0,Lt=!1,Bt=!0,Pt=!1,Rt=!1,Dt=!1,xt=!1,It=!1,kt=!1,Ut=!0,Gt=!1;
|
|
707
|
+
/* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */const Ft="user-content-";
|
|
708
|
+
/* Keep element content when removing element? */let zt=!0,Zt=!1,jt={},Wt=null;
|
|
709
709
|
/* If a `Node` is passed to sanitize(), then performs sanitization in-place instead
|
|
710
|
-
* of importing it into a new Document and returning a sanitized copy */const
|
|
711
|
-
/* Tags that are safe for data: URIs */let
|
|
712
|
-
/* Attributes safe for values like "javascript:" */let
|
|
710
|
+
* of importing it into a new Document and returning a sanitized copy */const Vt=A({},["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"]);
|
|
711
|
+
/* Tags that are safe for data: URIs */let _t=null;const Yt=A({},["audio","video","img","source","image","track"]);
|
|
712
|
+
/* Attributes safe for values like "javascript:" */let Jt=null;const Xt=A({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),qt="http://www.w3.org/1998/Math/MathML",Kt="http://www.w3.org/2000/svg",Qt="http://www.w3.org/1999/xhtml";
|
|
713
713
|
/* Document namespace */
|
|
714
|
-
let $
|
|
715
|
-
/* Parsing of strict XHTML documents */let
|
|
714
|
+
let $t=Qt,te=!1,ee=null;const ne=A({},[qt,Kt,Qt],m);
|
|
715
|
+
/* Parsing of strict XHTML documents */let re=null;const ie=["application/xhtml+xml","text/html"],oe="text/html";let se=null,ae=null;
|
|
716
716
|
/* Keep a reference to config to pass to hooks */
|
|
717
717
|
/* Ideally, do not touch anything below this line */
|
|
718
718
|
/* ______________________________________________ */
|
|
719
|
-
const
|
|
719
|
+
const ce=r.createElement("form"),le=function(t){return t instanceof RegExp||t instanceof Function},ue=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!ae||ae!==t){if(
|
|
720
720
|
/* Shield configuration object from tampering */
|
|
721
|
-
|
|
722
|
-
/* Shield configuration object from prototype pollution */,
|
|
721
|
+
t&&"object"==typeof t||(t={})
|
|
722
|
+
/* Shield configuration object from prototype pollution */,t=O(t),re=
|
|
723
723
|
// eslint-disable-next-line unicorn/prefer-includes
|
|
724
|
-
-1===
|
|
724
|
+
-1===ie.indexOf(t.PARSER_MEDIA_TYPE)?oe:t.PARSER_MEDIA_TYPE,
|
|
725
725
|
// HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.
|
|
726
|
-
|
|
726
|
+
se="application/xhtml+xml"===re?m:p,
|
|
727
727
|
/* Set configuration parameters */
|
|
728
|
-
|
|
728
|
+
bt=b(t,"ALLOWED_TAGS")?A({},t.ALLOWED_TAGS,se):Tt,vt=b(t,"ALLOWED_ATTR")?A({},t.ALLOWED_ATTR,se):wt,ee=b(t,"ALLOWED_NAMESPACES")?A({},t.ALLOWED_NAMESPACES,m):ne,Jt=b(t,"ADD_URI_SAFE_ATTR")?A(O(Xt),
|
|
729
729
|
// eslint-disable-line indent
|
|
730
|
-
|
|
730
|
+
t.ADD_URI_SAFE_ATTR,
|
|
731
731
|
// eslint-disable-line indent
|
|
732
|
-
|
|
732
|
+
se):Xt,_t=b(t,"ADD_DATA_URI_TAGS")?A(O(Yt),
|
|
733
733
|
// eslint-disable-line indent
|
|
734
|
-
|
|
734
|
+
t.ADD_DATA_URI_TAGS,
|
|
735
735
|
// eslint-disable-line indent
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
/* Parse profile info */,
|
|
753
|
-
/* Merge configuration parameters */,
|
|
754
|
-
/* Add #text in case KEEP_CONTENT is set to true */,
|
|
755
|
-
/* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */,
|
|
756
|
-
/* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */,
|
|
736
|
+
se):Yt,Wt=b(t,"FORBID_CONTENTS")?A({},t.FORBID_CONTENTS,se):Vt,At=b(t,"FORBID_TAGS")?A({},t.FORBID_TAGS,se):{},Ht=b(t,"FORBID_ATTR")?A({},t.FORBID_ATTR,se):{},jt=!!b(t,"USE_PROFILES")&&t.USE_PROFILES,Ot=!1!==t.ALLOW_ARIA_ATTR,// Default true
|
|
737
|
+
Nt=!1!==t.ALLOW_DATA_ATTR,// Default true
|
|
738
|
+
Ct=t.ALLOW_UNKNOWN_PROTOCOLS||!1,// Default false
|
|
739
|
+
Mt=!1!==t.ALLOW_SELF_CLOSE_IN_ATTR,// Default true
|
|
740
|
+
Lt=t.SAFE_FOR_TEMPLATES||!1,// Default false
|
|
741
|
+
Bt=!1!==t.SAFE_FOR_XML,// Default true
|
|
742
|
+
Pt=t.WHOLE_DOCUMENT||!1,// Default false
|
|
743
|
+
xt=t.RETURN_DOM||!1,// Default false
|
|
744
|
+
It=t.RETURN_DOM_FRAGMENT||!1,// Default false
|
|
745
|
+
kt=t.RETURN_TRUSTED_TYPE||!1,// Default false
|
|
746
|
+
Dt=t.FORCE_BODY||!1,// Default false
|
|
747
|
+
Ut=!1!==t.SANITIZE_DOM,// Default true
|
|
748
|
+
Gt=t.SANITIZE_NAMED_PROPS||!1,// Default false
|
|
749
|
+
zt=!1!==t.KEEP_CONTENT,// Default true
|
|
750
|
+
Zt=t.IN_PLACE||!1,// Default false
|
|
751
|
+
Et=t.ALLOWED_URI_REGEXP||W,$t=t.NAMESPACE||Qt,St=t.CUSTOM_ELEMENT_HANDLING||{},t.CUSTOM_ELEMENT_HANDLING&&le(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(St.tagNameCheck=t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),t.CUSTOM_ELEMENT_HANDLING&&le(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(St.attributeNameCheck=t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),t.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(St.allowCustomizedBuiltInElements=t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Lt&&(Nt=!1),It&&(xt=!0)
|
|
752
|
+
/* Parse profile info */,jt&&(bt=A({},D),vt=[],!0===jt.html&&(A(bt,C),A(vt,x)),!0===jt.svg&&(A(bt,M),A(vt,I),A(vt,U)),!0===jt.svgFilters&&(A(bt,L),A(vt,I),A(vt,U)),!0===jt.mathMl&&(A(bt,P),A(vt,k),A(vt,U)))
|
|
753
|
+
/* Merge configuration parameters */,t.ADD_TAGS&&(bt===Tt&&(bt=O(bt)),A(bt,t.ADD_TAGS,se)),t.ADD_ATTR&&(vt===wt&&(vt=O(vt)),A(vt,t.ADD_ATTR,se)),t.ADD_URI_SAFE_ATTR&&A(Jt,t.ADD_URI_SAFE_ATTR,se),t.FORBID_CONTENTS&&(Wt===Vt&&(Wt=O(Wt)),A(Wt,t.FORBID_CONTENTS,se))
|
|
754
|
+
/* Add #text in case KEEP_CONTENT is set to true */,zt&&(bt["#text"]=!0)
|
|
755
|
+
/* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */,Pt&&A(bt,["html","head","body"])
|
|
756
|
+
/* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */,bt.table&&(A(bt,["tbody"]),delete At.tbody),t.TRUSTED_TYPES_POLICY){if("function"!=typeof t.TRUSTED_TYPES_POLICY.createHTML)throw v('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof t.TRUSTED_TYPES_POLICY.createScriptURL)throw v('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
|
|
757
757
|
// Overwrite existing TrustedTypes policy.
|
|
758
|
-
|
|
758
|
+
nt=t.TRUSTED_TYPES_POLICY,
|
|
759
759
|
// Sign local variables required by `sanitize`.
|
|
760
|
-
|
|
760
|
+
rt=nt.createHTML("")}else
|
|
761
761
|
// Uninitialized policy, attempt to initialize the internal dompurify policy.
|
|
762
|
-
void 0===
|
|
762
|
+
void 0===nt&&(nt=Q(Z,s)),
|
|
763
763
|
// If creating the internal policy succeeded sign internal variables.
|
|
764
|
-
null!==
|
|
764
|
+
null!==nt&&"string"==typeof rt&&(rt=nt.createHTML(""));
|
|
765
765
|
// Prevent further manipulation of configuration.
|
|
766
766
|
// Not available in IE8, Safari 5, etc.
|
|
767
|
-
o&&o(
|
|
767
|
+
o&&o(t),ae=t}},he=A({},["mi","mo","mn","ms","mtext"]),fe=A({},["foreignobject","annotation-xml"]),pe=A({},["title","style","font","a","script"]),me=A({},[...M,...L,...B]),de=A({},[...P,...R]),ge=function(t){let e=et(t);
|
|
768
768
|
// In JSDOM, if we're inside shadow DOM, then parentNode
|
|
769
769
|
// can be null. We just simulate parent in this case.
|
|
770
|
-
|
|
770
|
+
e&&e.tagName||(e={namespaceURI:$t,tagName:"template"});const n=p(t.tagName),r=p(e.tagName);return!!ee[t.namespaceURI]&&(t.namespaceURI===Kt?
|
|
771
771
|
// The only way to switch from HTML namespace to SVG
|
|
772
772
|
// is via <svg>. If it happens via any other tag, then
|
|
773
773
|
// it should be killed.
|
|
774
|
-
|
|
774
|
+
e.namespaceURI===Qt?"svg"===n:
|
|
775
775
|
// The only way to switch from MathML to SVG is via`
|
|
776
776
|
// svg if parent is either <annotation-xml> or MathML
|
|
777
777
|
// text integration points.
|
|
778
|
-
|
|
778
|
+
e.namespaceURI===qt?"svg"===n&&("annotation-xml"===r||he[r]):Boolean(me[n]):t.namespaceURI===qt?
|
|
779
779
|
// The only way to switch from HTML namespace to MathML
|
|
780
780
|
// is via <math>. If it happens via any other tag, then
|
|
781
781
|
// it should be killed.
|
|
782
|
-
|
|
782
|
+
e.namespaceURI===Qt?"math"===n:
|
|
783
783
|
// The only way to switch from SVG to MathML is via
|
|
784
784
|
// <math> and HTML integration points
|
|
785
|
-
|
|
785
|
+
e.namespaceURI===Kt?"math"===n&&fe[r]:Boolean(de[n]):t.namespaceURI===Qt?
|
|
786
786
|
// The only way to switch from SVG to HTML is via
|
|
787
787
|
// HTML integration points, and from MathML to HTML
|
|
788
788
|
// is via MathML text integration points
|
|
789
|
-
!(
|
|
789
|
+
!(e.namespaceURI===Kt&&!fe[r])&&!(e.namespaceURI===qt&&!he[r])&&!de[n]&&(pe[n]||!me[n]):!("application/xhtml+xml"!==re||!ee[t.namespaceURI]))},ye=function(t){f(n.removed,{element:t});try{
|
|
790
790
|
// eslint-disable-next-line unicorn/prefer-dom-node-remove
|
|
791
|
-
|
|
791
|
+
et(t).removeChild(t)}catch(e){_(t)}},Ee=function(t,e){try{f(n.removed,{attribute:e.getAttributeNode(t),from:e})}catch(t){f(n.removed,{attribute:null,from:e})}
|
|
792
792
|
// We void attribute values for unremovable "is"" attributes
|
|
793
|
-
if(
|
|
793
|
+
if(e.removeAttribute(t),"is"===t&&!vt[t])if(xt||It)try{ye(e)}catch(t){}else try{e.setAttribute(t,"")}catch(t){}},be=function(t){
|
|
794
794
|
/* Create a HTML document */
|
|
795
|
-
let
|
|
795
|
+
let e=null,n=null;if(Dt)t="<remove></remove>"+t;else{
|
|
796
796
|
/* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */
|
|
797
|
-
const
|
|
797
|
+
const e=d(t,/^[\r\n\t ]+/);n=e&&e[0]}"application/xhtml+xml"===re&&$t===Qt&&(
|
|
798
798
|
// Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)
|
|
799
|
-
|
|
799
|
+
t='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+t+"</body></html>");const i=nt?nt.createHTML(t):t;
|
|
800
800
|
/*
|
|
801
801
|
* Use the DOMParser API by default, fallback later if needs be
|
|
802
802
|
* DOMParser not work for svg when has multiple root element.
|
|
803
|
-
*/if($
|
|
804
|
-
/* Use createHTMLDocument in case DOMParser is not available */if(!
|
|
803
|
+
*/if($t===Qt)try{e=(new z).parseFromString(i,re)}catch(t){}
|
|
804
|
+
/* Use createHTMLDocument in case DOMParser is not available */if(!e||!e.documentElement){e=it.createDocument($t,"template",null);try{e.documentElement.innerHTML=te?rt:i}catch(t){
|
|
805
805
|
// Syntax error if dirtyPayload is invalid xml
|
|
806
|
-
}}const o=
|
|
806
|
+
}}const o=e.body||e.documentElement;
|
|
807
807
|
/* Work on whole document or just its body */
|
|
808
|
-
return
|
|
808
|
+
return t&&n&&o.insertBefore(r.createTextNode(n),o.childNodes[0]||null),$t===Qt?at.call(e,Pt?"html":"body")[0]:Pt?e.documentElement:o},Te=function(t){return ot.call(t.ownerDocument||t,t,
|
|
809
809
|
// eslint-disable-next-line no-bitwise
|
|
810
|
-
H.SHOW_ELEMENT|H.SHOW_COMMENT|H.SHOW_TEXT|H.SHOW_PROCESSING_INSTRUCTION|H.SHOW_CDATA_SECTION,null)},
|
|
810
|
+
H.SHOW_ELEMENT|H.SHOW_COMMENT|H.SHOW_TEXT|H.SHOW_PROCESSING_INSTRUCTION|H.SHOW_CDATA_SECTION,null)},ve=function(t){return t instanceof F&&("string"!=typeof t.nodeName||"string"!=typeof t.textContent||"function"!=typeof t.removeChild||!(t.attributes instanceof G)||"function"!=typeof t.removeAttribute||"function"!=typeof t.setAttribute||"string"!=typeof t.namespaceURI||"function"!=typeof t.insertBefore||"function"!=typeof t.hasChildNodes)},we=function(t){return"function"==typeof w&&t instanceof w},Se=function(t,e,r){lt[t]&&u(lt[t],(t=>{t.call(n,e,r,ae)}))},Ae=function(t){let e=null;
|
|
811
811
|
/* Execute a hook if present */
|
|
812
812
|
/* Check if element is clobbered or can clobber */
|
|
813
|
-
if(
|
|
814
|
-
/* Now let's check the element's type and name */const r=
|
|
813
|
+
if(Se("beforeSanitizeElements",t,null),ve(t))return ye(t),!0;
|
|
814
|
+
/* Now let's check the element's type and name */const r=se(t.nodeName);
|
|
815
815
|
/* Execute a hook if present */
|
|
816
816
|
/* Detect mXSS attempts abusing namespace confusion */
|
|
817
|
-
if(
|
|
818
|
-
/* Remove any occurrence of processing instructions */if(
|
|
819
|
-
/* Remove any kind of possibly harmful comments */if(
|
|
820
|
-
/* Remove element if anything forbids its presence */if(!
|
|
817
|
+
if(Se("uponSanitizeElement",t,{tagName:r,allowedTags:bt}),t.hasChildNodes()&&!we(t.firstElementChild)&&T(/<[/\w]/g,t.innerHTML)&&T(/<[/\w]/g,t.textContent))return ye(t),!0;
|
|
818
|
+
/* Remove any occurrence of processing instructions */if(t.nodeType===q.progressingInstruction)return ye(t),!0;
|
|
819
|
+
/* Remove any kind of possibly harmful comments */if(Bt&&t.nodeType===q.comment&&T(/<[/\w]/g,t.data))return ye(t),!0;
|
|
820
|
+
/* Remove element if anything forbids its presence */if(!bt[r]||At[r]){
|
|
821
821
|
/* Check if we have a custom element to handle */
|
|
822
|
-
if(!
|
|
823
|
-
/* Keep content except for bad-listed elements */if(
|
|
824
|
-
/* Check whether element has a valid namespace */return
|
|
822
|
+
if(!At[r]&&Oe(r)){if(St.tagNameCheck instanceof RegExp&&T(St.tagNameCheck,r))return!1;if(St.tagNameCheck instanceof Function&&St.tagNameCheck(r))return!1}
|
|
823
|
+
/* Keep content except for bad-listed elements */if(zt&&!Wt[r]){const e=et(t)||t.parentNode,n=tt(t)||t.childNodes;if(n&&e)for(let r=n.length-1;r>=0;--r){const i=V(n[r],!0);i.__removalCount=(t.__removalCount||0)+1,e.insertBefore(i,J(t))}}return ye(t),!0}
|
|
824
|
+
/* Check whether element has a valid namespace */return t instanceof S&&!ge(t)?(ye(t),!0):
|
|
825
825
|
/* Make sure that older browsers don't get fallback-tag mXSS */
|
|
826
|
-
"noscript"!==r&&"noembed"!==r&&"noframes"!==r||!T(/<\/no(script|embed|frames)/i,
|
|
826
|
+
"noscript"!==r&&"noembed"!==r&&"noframes"!==r||!T(/<\/no(script|embed|frames)/i,t.innerHTML)?(
|
|
827
827
|
/* Sanitize element content to be template-safe */
|
|
828
|
-
|
|
828
|
+
Lt&&t.nodeType===q.text&&(
|
|
829
829
|
/* Get the element's text content */
|
|
830
|
-
t
|
|
831
|
-
/* Execute a hook if present */,
|
|
830
|
+
e=t.textContent,u([ut,ht,ft],(t=>{e=g(e,t," ")})),t.textContent!==e&&(f(n.removed,{element:t.cloneNode()}),t.textContent=e))
|
|
831
|
+
/* Execute a hook if present */,Se("afterSanitizeElements",t,null),!1):(ye(t),!0)},He=function(t,e,n){
|
|
832
832
|
/* Make sure attribute cannot clobber */
|
|
833
|
-
if(
|
|
833
|
+
if(Ut&&("id"===e||"name"===e)&&(n in r||n in ce))return!1;
|
|
834
834
|
/* Allow valid data-* attributes: At least one character after "-"
|
|
835
835
|
(https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)
|
|
836
836
|
XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)
|
|
837
|
-
We don't need to check the value; it's always URI safe. */if(
|
|
837
|
+
We don't need to check the value; it's always URI safe. */if(Nt&&!Ht[e]&&T(pt,e));else if(Ot&&T(mt,e));else if(!vt[e]||Ht[e]){if(
|
|
838
838
|
// First condition does a very basic check if a) it's basically a valid custom element tagname AND
|
|
839
839
|
// b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
|
|
840
840
|
// and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
|
|
841
|
-
!(
|
|
841
|
+
!(Oe(t)&&(St.tagNameCheck instanceof RegExp&&T(St.tagNameCheck,t)||St.tagNameCheck instanceof Function&&St.tagNameCheck(t))&&(St.attributeNameCheck instanceof RegExp&&T(St.attributeNameCheck,e)||St.attributeNameCheck instanceof Function&&St.attributeNameCheck(e))||
|
|
842
842
|
// Alternative, second condition checks if it's an `is`-attribute, AND
|
|
843
843
|
// the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
|
|
844
|
-
"is"===
|
|
845
|
-
/* Check value is safe. First, is attr inert? If so, is safe */}else if(
|
|
844
|
+
"is"===e&&St.allowCustomizedBuiltInElements&&(St.tagNameCheck instanceof RegExp&&T(St.tagNameCheck,n)||St.tagNameCheck instanceof Function&&St.tagNameCheck(n))))return!1;
|
|
845
|
+
/* Check value is safe. First, is attr inert? If so, is safe */}else if(Jt[e]);else if(T(Et,g(n,gt,"")));else if("src"!==e&&"xlink:href"!==e&&"href"!==e||"script"===t||0!==y(n,"data:")||!_t[t])if(Ct&&!T(dt,g(n,gt,"")));else if(n)return!1;return!0},Oe=function(t){return"annotation-xml"!==t&&d(t,yt)},Ne=function(t){
|
|
846
846
|
/* Execute a hook if present */
|
|
847
|
-
|
|
848
|
-
/* Check if we have attributes; if not we might have a text node */if(!
|
|
849
|
-
/* Go backwards over all attributes; safely remove bad ones */for(;i--;){const o=
|
|
847
|
+
Se("beforeSanitizeAttributes",t,null);const{attributes:e}=t;
|
|
848
|
+
/* Check if we have attributes; if not we might have a text node */if(!e)return;const r={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:vt};let i=e.length;
|
|
849
|
+
/* Go backwards over all attributes; safely remove bad ones */for(;i--;){const o=e[i],{name:s,namespaceURI:a,value:c}=o,l=se(s);let f="value"===s?c:E(c);
|
|
850
850
|
/* Execute a hook if present */
|
|
851
851
|
/* Work around a security issue with comments inside attributes */
|
|
852
|
-
if(r.attrName=l,r.attrValue=
|
|
853
|
-
|
|
852
|
+
if(r.attrName=l,r.attrValue=f,r.keepAttr=!0,r.forceKeepAttr=void 0,// Allows developers to see this is a property they can set
|
|
853
|
+
Se("uponSanitizeAttribute",t,r),f=r.attrValue,Bt&&T(/((--!?|])>)|<\/(style|title)/i,f)){Ee(s,t);continue}
|
|
854
854
|
/* Did the hooks approve of the attribute? */if(r.forceKeepAttr)continue;
|
|
855
855
|
/* Remove attribute */
|
|
856
856
|
/* Did the hooks approve of the attribute? */
|
|
857
|
-
if(
|
|
858
|
-
/* Work around a security issue in jQuery 3.0 */if(!
|
|
859
|
-
/* Sanitize attribute content to be template-safe */
|
|
860
|
-
/* Is `value` valid for this attribute? */;const
|
|
857
|
+
if(Ee(s,t),!r.keepAttr)continue;
|
|
858
|
+
/* Work around a security issue in jQuery 3.0 */if(!Mt&&T(/\/>/i,f)){Ee(s,t);continue}
|
|
859
|
+
/* Sanitize attribute content to be template-safe */Lt&&u([ut,ht,ft],(t=>{f=g(f,t," ")}))
|
|
860
|
+
/* Is `value` valid for this attribute? */;const p=se(t.nodeName);if(He(p,l,f)){
|
|
861
861
|
/* Handle attributes that require Trusted Types */
|
|
862
862
|
if(
|
|
863
863
|
/* Full DOM Clobbering protection via namespace isolation,
|
|
864
864
|
* Prefix id and name attributes with `user-content-`
|
|
865
865
|
*/
|
|
866
|
-
!
|
|
866
|
+
!Gt||"id"!==l&&"name"!==l||(
|
|
867
867
|
// Remove the attribute with this value
|
|
868
|
-
|
|
868
|
+
Ee(s,t),
|
|
869
869
|
// Prefix the value and later re-create the attribute with the sanitized value
|
|
870
|
-
|
|
871
|
-
/* Handle invalid data-* attribute set by try-catching it */try{a?
|
|
870
|
+
f=Ft+f),nt&&"object"==typeof Z&&"function"==typeof Z.getAttributeType)if(a);else switch(Z.getAttributeType(p,l)){case"TrustedHTML":f=nt.createHTML(f);break;case"TrustedScriptURL":f=nt.createScriptURL(f)}
|
|
871
|
+
/* Handle invalid data-* attribute set by try-catching it */try{a?t.setAttributeNS(a,s,f):
|
|
872
872
|
/* Fallback to setAttribute() for browser-unrecognized namespaces e.g. "x-schema". */
|
|
873
|
-
|
|
874
|
-
/* Execute a hook if present */
|
|
875
|
-
/* Execute a hook if present */for(
|
|
873
|
+
t.setAttribute(s,f),ve(t)?ye(t):h(n.removed)}catch(t){}}}
|
|
874
|
+
/* Execute a hook if present */Se("afterSanitizeAttributes",t,null)},Ce=function t(e){let n=null;const r=Te(e);
|
|
875
|
+
/* Execute a hook if present */for(Se("beforeSanitizeShadowDOM",e,null);n=r.nextNode();)
|
|
876
876
|
/* Execute a hook if present */
|
|
877
|
-
|
|
877
|
+
Se("uponSanitizeShadowNode",n,null),
|
|
878
878
|
/* Sanitize tags and elements */
|
|
879
|
-
|
|
879
|
+
Ae(n)||(
|
|
880
880
|
/* Deep shadow DOM detected */
|
|
881
|
-
n.content instanceof c&&
|
|
882
|
-
/* Check attributes, sanitize if necessary */,
|
|
883
|
-
/* Execute a hook if present */
|
|
881
|
+
n.content instanceof c&&t(n.content)
|
|
882
|
+
/* Check attributes, sanitize if necessary */,Ne(n));
|
|
883
|
+
/* Execute a hook if present */Se("afterSanitizeShadowDOM",e,null)};
|
|
884
884
|
/**
|
|
885
885
|
* Sanitize
|
|
886
886
|
* Public method providing core sanitation functionality
|
|
@@ -889,46 +889,46 @@ n.content instanceof c&&e(n.content)
|
|
|
889
889
|
* @param {Object} cfg object
|
|
890
890
|
*/
|
|
891
891
|
// eslint-disable-next-line complexity
|
|
892
|
-
return n.sanitize=function(
|
|
892
|
+
return n.sanitize=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=null,o=null,s=null,a=null;
|
|
893
893
|
/* Stringify, in case dirty is an object */
|
|
894
894
|
if(
|
|
895
895
|
/* Make sure we have a string to sanitize.
|
|
896
896
|
DO NOT return early, as this will return the wrong type if
|
|
897
897
|
the user has requested a DOM object rather than a string */
|
|
898
|
-
|
|
899
|
-
/* Return dirty HTML if DOMPurify cannot run */if(!n.isSupported)return
|
|
900
|
-
/* Assign config vars */if(
|
|
898
|
+
te=!t,te&&(t="\x3c!--\x3e"),"string"!=typeof t&&!we(t)){if("function"!=typeof t.toString)throw v("toString is not a function");if("string"!=typeof(t=t.toString()))throw v("dirty is not a string, aborting")}
|
|
899
|
+
/* Return dirty HTML if DOMPurify cannot run */if(!n.isSupported)return t;
|
|
900
|
+
/* Assign config vars */if(Rt||ue(e)
|
|
901
901
|
/* Clean up removed elements */,n.removed=[],
|
|
902
902
|
/* Check if dirty is correctly typed for IN_PLACE */
|
|
903
|
-
"string"==typeof
|
|
903
|
+
"string"==typeof t&&(Zt=!1),Zt){
|
|
904
904
|
/* Do some early pre-sanitization to avoid unsafe root nodes */
|
|
905
|
-
if(
|
|
905
|
+
if(t.nodeName){const e=se(t.nodeName);if(!bt[e]||At[e])throw v("root node is forbidden and cannot be sanitized in-place")}}else if(t instanceof w)
|
|
906
906
|
/* If dirty is a DOM element, append to an empty document to avoid
|
|
907
907
|
elements being stripped by the parser */
|
|
908
|
-
r=
|
|
908
|
+
r=be("\x3c!----\x3e"),o=r.ownerDocument.importNode(t,!0),o.nodeType===q.element&&"BODY"===o.nodeName||"HTML"===o.nodeName?
|
|
909
909
|
/* Node is already a body, use as is */
|
|
910
910
|
r=o:
|
|
911
911
|
// eslint-disable-next-line unicorn/prefer-dom-node-append
|
|
912
912
|
r.appendChild(o);else{
|
|
913
913
|
/* Exit directly if we have nothing to do */
|
|
914
|
-
if(!
|
|
914
|
+
if(!xt&&!Lt&&!Pt&&
|
|
915
915
|
// eslint-disable-next-line unicorn/prefer-includes
|
|
916
|
-
-1===
|
|
916
|
+
-1===t.indexOf("<"))return nt&&kt?nt.createHTML(t):t;
|
|
917
917
|
/* Initialize the document to work on */
|
|
918
918
|
/* Check we have a DOM node from the data */
|
|
919
|
-
if(r=
|
|
920
|
-
/* Remove first element node (ours) if FORCE_BODY is set */r&&
|
|
921
|
-
/* Get node iterator */;const l=
|
|
919
|
+
if(r=be(t),!r)return xt?null:kt?rt:""}
|
|
920
|
+
/* Remove first element node (ours) if FORCE_BODY is set */r&&Dt&&ye(r.firstChild)
|
|
921
|
+
/* Get node iterator */;const l=Te(Zt?t:r);
|
|
922
922
|
/* Now start iterating over the created document */for(;s=l.nextNode();)
|
|
923
923
|
/* Sanitize tags and elements */
|
|
924
|
-
|
|
924
|
+
Ae(s)||(
|
|
925
925
|
/* Shadow DOM detected, sanitize it */
|
|
926
|
-
s.content instanceof c&&
|
|
927
|
-
/* Check attributes, sanitize if necessary */,
|
|
928
|
-
/* If we sanitized `dirty` in-place, return it. */if(
|
|
929
|
-
/* Return sanitized string or DOM */if(
|
|
926
|
+
s.content instanceof c&&Ce(s.content)
|
|
927
|
+
/* Check attributes, sanitize if necessary */,Ne(s));
|
|
928
|
+
/* If we sanitized `dirty` in-place, return it. */if(Zt)return t;
|
|
929
|
+
/* Return sanitized string or DOM */if(xt){if(It)for(a=st.call(r.ownerDocument);r.firstChild;)
|
|
930
930
|
// eslint-disable-next-line unicorn/prefer-dom-node-append
|
|
931
|
-
a.appendChild(r.firstChild);else a=r;return(
|
|
931
|
+
a.appendChild(r.firstChild);else a=r;return(vt.shadowroot||vt.shadowrootmode)&&(
|
|
932
932
|
/*
|
|
933
933
|
AdoptNode() is not used because internal state is not reset
|
|
934
934
|
(e.g. the past names map of a HTMLFormElement), this is safe
|
|
@@ -936,22 +936,22 @@ a.appendChild(r.firstChild);else a=r;return(ve.shadowroot||ve.shadowrootmode)&&(
|
|
|
936
936
|
The state that is cloned by importNode() is explicitly defined
|
|
937
937
|
by the specs.
|
|
938
938
|
*/
|
|
939
|
-
a=
|
|
940
|
-
/* Serialize doctype if allowed */return
|
|
941
|
-
/* Sanitize final string template-safe */,
|
|
939
|
+
a=ct.call(i,a,!0)),a}let h=Pt?r.outerHTML:r.innerHTML;
|
|
940
|
+
/* Serialize doctype if allowed */return Pt&&bt["!doctype"]&&r.ownerDocument&&r.ownerDocument.doctype&&r.ownerDocument.doctype.name&&T(Y,r.ownerDocument.doctype.name)&&(h="<!DOCTYPE "+r.ownerDocument.doctype.name+">\n"+h)
|
|
941
|
+
/* Sanitize final string template-safe */,Lt&&u([ut,ht,ft],(t=>{h=g(h,t," ")})),nt&&kt?nt.createHTML(h):h},
|
|
942
942
|
/**
|
|
943
943
|
* Public method to set the configuration once
|
|
944
944
|
* setConfig
|
|
945
945
|
*
|
|
946
946
|
* @param {Object} cfg configuration object
|
|
947
947
|
*/
|
|
948
|
-
n.setConfig=function(){
|
|
948
|
+
n.setConfig=function(){ue(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Rt=!0},
|
|
949
949
|
/**
|
|
950
950
|
* Public method to remove the configuration
|
|
951
951
|
* clearConfig
|
|
952
952
|
*
|
|
953
953
|
*/
|
|
954
|
-
n.clearConfig=function(){
|
|
954
|
+
n.clearConfig=function(){ae=null,Rt=!1},
|
|
955
955
|
/**
|
|
956
956
|
* Public method to check if an attribute value is valid.
|
|
957
957
|
* Uses last set config, if any. Otherwise, uses config defaults.
|
|
@@ -962,9 +962,9 @@ n.clearConfig=function(){at=null,Me=!1},
|
|
|
962
962
|
* @param {String} value Attribute value.
|
|
963
963
|
* @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.
|
|
964
964
|
*/
|
|
965
|
-
n.isValidAttribute=function(e,
|
|
965
|
+
n.isValidAttribute=function(t,e,n){
|
|
966
966
|
/* Initialize shared config vars if necessary. */
|
|
967
|
-
|
|
967
|
+
ae||ue({});const r=se(t),i=se(e);return He(r,i,n)},
|
|
968
968
|
/**
|
|
969
969
|
* AddHook
|
|
970
970
|
* Public method to add DOMPurify hooks
|
|
@@ -972,7 +972,7 @@ at||ut({});const r=st(e),i=st(t);return Ht(r,i,n)},
|
|
|
972
972
|
* @param {String} entryPoint entry point for the hook to add
|
|
973
973
|
* @param {Function} hookFunction function to execute
|
|
974
974
|
*/
|
|
975
|
-
n.addHook=function(e
|
|
975
|
+
n.addHook=function(t,e){"function"==typeof e&&(lt[t]=lt[t]||[],f(lt[t],e))},
|
|
976
976
|
/**
|
|
977
977
|
* RemoveHook
|
|
978
978
|
* Public method to remove a DOMPurify hook at a given entryPoint
|
|
@@ -981,33 +981,33 @@ n.addHook=function(e,t){"function"==typeof t&&(le[e]=le[e]||[],p(le[e],t))},
|
|
|
981
981
|
* @param {String} entryPoint entry point for the hook to remove
|
|
982
982
|
* @return {Function} removed(popped) hook
|
|
983
983
|
*/
|
|
984
|
-
n.removeHook=function(
|
|
984
|
+
n.removeHook=function(t){if(lt[t])return h(lt[t])},
|
|
985
985
|
/**
|
|
986
986
|
* RemoveHooks
|
|
987
987
|
* Public method to remove all DOMPurify hooks at a given entryPoint
|
|
988
988
|
*
|
|
989
989
|
* @param {String} entryPoint entry point for the hooks to remove
|
|
990
990
|
*/
|
|
991
|
-
n.removeHooks=function(
|
|
991
|
+
n.removeHooks=function(t){lt[t]&&(lt[t]=[])},
|
|
992
992
|
/**
|
|
993
993
|
* RemoveAllHooks
|
|
994
994
|
* Public method to remove all DOMPurify hooks
|
|
995
995
|
*/
|
|
996
|
-
n.removeAllHooks=function(){le={}},n}var ee=$();return ee}()})),Xn="data:image/png;base64,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";
|
|
996
|
+
n.removeAllHooks=function(){lt={}},n}var tt=$();return tt}()})),Xn="data:image/png;base64,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",qn=Yn((function(t,e){t.exports=function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",o="minute",s="hour",a="day",c="week",l="month",u="quarter",h="year",f="date",p="Invalid Date",m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,d=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},y=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},E={s:y,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+y(r,2,"0")+":"+y(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,l),o=n-i<0,s=e.clone().add(r+(o?-1:1),l);return+(-(r+(n-i)/(o?i-s:s-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:l,y:h,w:c,d:a,D:f,h:s,m:o,s:i,ms:r,Q:u}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},b="en",T={};T[b]=g;var v="$isDayjsObject",w=function(t){return t instanceof O||!(!t||!t[v])},S=function t(e,n,r){var i;if(!e)return b;if("string"==typeof e){var o=e.toLowerCase();T[o]&&(i=o),n&&(T[o]=n,i=o);var s=e.split("-");if(!i&&s.length>1)return t(s[0])}else{var a=e.name;T[a]=e,i=a}return!r&&i&&(b=i),i||!r&&b},A=function(t,e){if(w(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new O(n)},H=E;H.l=S,H.i=w,H.w=function(t,e){return A(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var O=function(){function g(t){this.$L=S(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[v]=!0}var y=g.prototype;return y.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(H.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match(m);if(r){var i=r[2]-1||0,o=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)}}return new Date(e)}(t),this.init()},y.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},y.$utils=function(){return H},y.isValid=function(){return!(this.$d.toString()===p)},y.isSame=function(t,e){var n=A(t);return this.startOf(e)<=n&&n<=this.endOf(e)},y.isAfter=function(t,e){return A(t)<this.startOf(e)},y.isBefore=function(t,e){return this.endOf(e)<A(t)},y.$g=function(t,e,n){return H.u(t)?this[e]:this.set(n,t)},y.unix=function(){return Math.floor(this.valueOf()/1e3)},y.valueOf=function(){return this.$d.getTime()},y.startOf=function(t,e){var n=this,r=!!H.u(e)||e,u=H.p(t),p=function(t,e){var i=H.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},m=function(t,e){return H.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},d=this.$W,g=this.$M,y=this.$D,E="set"+(this.$u?"UTC":"");switch(u){case h:return r?p(1,0):p(31,11);case l:return r?p(1,g):p(0,g+1);case c:var b=this.$locale().weekStart||0,T=(d<b?d+7:d)-b;return p(r?y-T:y+(6-T),g);case a:case f:return m(E+"Hours",0);case s:return m(E+"Minutes",1);case o:return m(E+"Seconds",2);case i:return m(E+"Milliseconds",3);default:return this.clone()}},y.endOf=function(t){return this.startOf(t,!1)},y.$set=function(t,e){var n,c=H.p(t),u="set"+(this.$u?"UTC":""),p=(n={},n[a]=u+"Date",n[f]=u+"Date",n[l]=u+"Month",n[h]=u+"FullYear",n[s]=u+"Hours",n[o]=u+"Minutes",n[i]=u+"Seconds",n[r]=u+"Milliseconds",n)[c],m=c===a?this.$D+(e-this.$W):e;if(c===l||c===h){var d=this.clone().set(f,1);d.$d[p](m),d.init(),this.$d=d.set(f,Math.min(this.$D,d.daysInMonth())).$d}else p&&this.$d[p](m);return this.init(),this},y.set=function(t,e){return this.clone().$set(t,e)},y.get=function(t){return this[H.p(t)]()},y.add=function(r,u){var f,p=this;r=Number(r);var m=H.p(u),d=function(t){var e=A(p);return H.w(e.date(e.date()+Math.round(t*r)),p)};if(m===l)return this.set(l,this.$M+r);if(m===h)return this.set(h,this.$y+r);if(m===a)return d(1);if(m===c)return d(7);var g=(f={},f[o]=e,f[s]=n,f[i]=t,f)[m]||1,y=this.$d.getTime()+r*g;return H.w(y,this)},y.subtract=function(t,e){return this.add(-1*t,e)},y.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||p;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=H.z(this),o=this.$H,s=this.$m,a=this.$M,c=n.weekdays,l=n.months,u=n.meridiem,h=function(t,n,i,o){return t&&(t[n]||t(e,r))||i[n].slice(0,o)},f=function(t){return H.s(o%12||12,t,"0")},m=u||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(d,(function(t,r){return r||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return H.s(e.$y,4,"0");case"M":return a+1;case"MM":return H.s(a+1,2,"0");case"MMM":return h(n.monthsShort,a,l,3);case"MMMM":return h(l,a);case"D":return e.$D;case"DD":return H.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return h(n.weekdaysMin,e.$W,c,2);case"ddd":return h(n.weekdaysShort,e.$W,c,3);case"dddd":return c[e.$W];case"H":return String(o);case"HH":return H.s(o,2,"0");case"h":return f(1);case"hh":return f(2);case"a":return m(o,s,!0);case"A":return m(o,s,!1);case"m":return String(s);case"mm":return H.s(s,2,"0");case"s":return String(e.$s);case"ss":return H.s(e.$s,2,"0");case"SSS":return H.s(e.$ms,3,"0");case"Z":return i}return null}(t)||i.replace(":","")}))},y.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},y.diff=function(r,f,p){var m,d=this,g=H.p(f),y=A(r),E=(y.utcOffset()-this.utcOffset())*e,b=this-y,T=function(){return H.m(d,y)};switch(g){case h:m=T()/12;break;case l:m=T();break;case u:m=T()/3;break;case c:m=(b-E)/6048e5;break;case a:m=(b-E)/864e5;break;case s:m=b/n;break;case o:m=b/e;break;case i:m=b/t;break;default:m=b}return p?m:H.a(m)},y.daysInMonth=function(){return this.endOf(l).$D},y.$locale=function(){return T[this.$L]},y.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=S(t,e,!0);return r&&(n.$L=r),n},y.clone=function(){return H.w(this.$d,this)},y.toDate=function(){return new Date(this.valueOf())},y.toJSON=function(){return this.isValid()?this.toISOString():null},y.toISOString=function(){return this.$d.toISOString()},y.toString=function(){return this.$d.toUTCString()},g}(),N=O.prototype;return A.prototype=N,[["$ms",r],["$s",i],["$m",o],["$H",s],["$W",a],["$M",l],["$y",h],["$D",f]].forEach((function(t){N[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),A.extend=function(t,e){return t.$i||(t(e,O,A),t.$i=!0),A},A.locale=S,A.isDayjs=w,A.unix=function(t){return A(1e3*t)},A.en=T[b],A.Ls=T,A.p={},A}()})),Kn=Yn((function(t,e){var n,r,i;t.exports=(n="minute",r=/[+-]\d\d(?::?\d\d)?/g,i=/([+-]|\d\d)/g,function(t,e,o){var s=e.prototype;o.utc=function(t){return new e({date:t,utc:!0,args:arguments})},s.utc=function(t){var e=o(this.toDate(),{locale:this.$L,utc:!0});return t?e.add(this.utcOffset(),n):e},s.local=function(){return o(this.toDate(),{locale:this.$L,utc:!1})};var a=s.parse;s.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),a.call(this,t)};var c=s.init;s.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else c.call(this)};var l=s.utcOffset;s.utcOffset=function(t,e){var o=this.$utils().u;if(o(t))return this.$u?0:o(this.$offset)?l.call(this):this.$offset;if("string"==typeof t&&(t=function(t){void 0===t&&(t="");var e=t.match(r);if(!e)return null;var n=(""+e[0]).match(i)||["-",0,0],o=n[0],s=60*+n[1]+ +n[2];return 0===s?0:"+"===o?s:-s}(t),null===t))return this;var s=Math.abs(t)<=16?60*t:t,a=this;if(e)return a.$offset=s,a.$u=0===t,a;if(0!==t){var c=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(a=this.local().add(s+c,n)).$offset=s,a.$x.$localOffset=c}else a=this.utc();return a};var u=s.format;s.format=function(t){var e=t||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return u.call(this,e)},s.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},s.isUTC=function(){return!!this.$u},s.toISOString=function(){return this.toDate().toISOString()},s.toString=function(){return this.toDate().toUTCString()};var h=s.toDate;s.toDate=function(t){return"s"===t&&this.$offset?o(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():h.call(this)};var f=s.diff;s.diff=function(t,e,n){if(t&&this.$u===t.$u)return f.call(this,t,e,n);var r=this.local(),i=o(t).local();return f.call(r,i,e,n)}})}));
|
|
997
997
|
/* src/CashierSessionExpirationModal.svelte generated by Svelte v3.59.2 */
|
|
998
|
-
function
|
|
999
|
-
return
|
|
1000
|
-
/*div3_binding*/
|
|
998
|
+
function Qn(t){let e,n,r,o,s,a,c,l,u,h,f,p,m,g,y,O,C,M,L,B,P,R,D,x,I,k,U,G=/*$_*/t[7]("sessionExpirationHeader")+"",F=/*$_*/t[7]("sessionExpirationTitle")+"",z=Jn.sanitize(/*$_*/t[7]("sessionExpirationGeneralText",{values:{second:/*timeLeft*/t[6]}}))+"",j=/*$_*/t[7]("sessionExpirationGeneralButton")+"";function W(t,e){/*assetsurl*/
|
|
999
|
+
return t[3]?tr:$n}let V=W(t),_=V(t);return{c(){e=T("div"),n=T("div"),r=T("div"),o=T("div"),s=T("div"),a=v(G),c=w(),l=T("div"),u=T("div"),h=T("slot"),_.c(),f=w(),p=T("slot"),m=T("span"),g=v(F),y=w(),O=T("slot"),C=T("span"),M=w(),L=T("div"),B=T("slot"),P=T("span"),R=v(j),A(s,"class","CashierSessionExpirationModalHeaderTitle"),A(o,"class","CashierSessionExpirationModalHeader"),A(h,"name","icon"),A(h,"class","CashierSessionExpirationIcon"),A(p,"name","title"),A(p,"class","CashierSessionExpirationTitle"),A(O,"name","text"),A(O,"class","CashierSessionExpirationText"),A(B,"name","button"),A(L,"class","CashierSessionExpirationButton"),A(u,"class","CashierSessionExpiration"),A(l,"class","CashierSessionExpirationModalContainer"),A(l,"part","CashierSessionExpirationModalContainer"),A(r,"class","CashierSessionExpirationModalWrapper"),A(r,"part","CashierSessionExpirationModalWrapper"),A(n,"class","CashierSessionExpirationModalWindow"),A(n,"part","CashierSessionExpirationModalWindow"),A(n,"id","CashierSessionExpirationModal"),Z((()=>/*div6_elementresize_handler*/t[19].call(n))),A(e,"part","CustomStylingContainer")},m(i,v){E(i,e,v),d(e,n),d(n,r),d(r,o),d(o,s),d(s,a),d(r,c),d(r,l),d(l,u),d(u,h),_.m(h,null),d(u,f),d(u,p),d(p,m),d(m,g),d(u,y),d(u,O),d(O,C),C.innerHTML=z,d(u,M),d(u,L),d(L,B),d(B,P),d(P,R),
|
|
1000
|
+
/*div3_binding*/t[18](u),D=function(t,e){"static"===getComputedStyle(t).position&&(t.style.position="relative");const n=T("iframe");n.setAttribute("style","display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;"),n.setAttribute("aria-hidden","true"),n.tabIndex=-1;const r=N();let i;return r?(n.src="data:text/html,<script>onresize=function(){parent.postMessage(0,'*')}<\/script>",i=S(window,"message",(t=>{t.source===n.contentWindow&&e()}))):(n.src="about:blank",n.onload=()=>{i=S(n.contentWindow,"resize",e),
|
|
1001
1001
|
// make sure an initial resize event is fired _after_ the iframe is loaded (which is asynchronous)
|
|
1002
1002
|
// see https://github.com/sveltejs/svelte/issues/4233
|
|
1003
|
-
|
|
1004
|
-
/*div7_binding*/
|
|
1005
|
-
/*div3_binding*/
|
|
1006
|
-
/*div7_binding*/,
|
|
1007
|
-
// (
|
|
1008
|
-
function
|
|
1009
|
-
// (
|
|
1010
|
-
function
|
|
1003
|
+
e()}),d(t,n),()=>{(r||i&&n.contentWindow)&&i(),b(n)}}(n,/*div6_elementresize_handler*/t[19].bind(n)),
|
|
1004
|
+
/*div7_binding*/t[20](e),I=!0,k||(U=[S(L,"click",/*renewSession*/t[8]),S(n,"click",/*outOfModalClick*/t[9])],k=!0)},p(e,n){t=e,(!I||/*$_*/128&n[0])&&G!==(G=/*$_*/t[7]("sessionExpirationHeader")+"")&&H(a,G),V===(V=W(t))&&_?_.p(t,n):(_.d(1),_=V(t),_&&(_.c(),_.m(h,null))),(!I||/*$_*/128&n[0])&&F!==(F=/*$_*/t[7]("sessionExpirationTitle")+"")&&H(g,F),(!I||/*$_, timeLeft*/192&n[0])&&z!==(z=Jn.sanitize(/*$_*/t[7]("sessionExpirationGeneralText",{values:{second:/*timeLeft*/t[6]}}))+"")&&(C.innerHTML=z),(!I||/*$_*/128&n[0])&&j!==(j=/*$_*/t[7]("sessionExpirationGeneralButton")+"")&&H(R,j)},i(e){I||(Z((()=>{I&&(x||(x=tt(n,ot,{duration:/*duration*/t[2]},!0)),x.run(1))})),I=!0)},o(e){x||(x=tt(n,ot,{duration:/*duration*/t[2]},!1)),x.run(0),I=!1},d(n){n&&b(e),_.d(),
|
|
1005
|
+
/*div3_binding*/t[18](null),D(),n&&x&&x.end()
|
|
1006
|
+
/*div7_binding*/,t[20](null),k=!1,i(U)}}}
|
|
1007
|
+
// (164:18) {:else}
|
|
1008
|
+
function $n(e){let n,r;return{c(){n=T("img"),c(n.src,r=Xn)||A(n,"src",r),A(n,"width","300px"),A(n,"alt","error")},m(t,e){E(t,n,e)},p:t,d(t){t&&b(n)}}}
|
|
1009
|
+
// (162:16) {#if assetsurl}
|
|
1010
|
+
function tr(t){let e,n;return{c(){e=T("img"),c(e.src,n=`${/*assetsurl*/t[3]}/set-timeout-icon.png`)||A(e,"src",n),A(e,"width","300px"),A(e,"alt","error")},m(t,n){E(t,e,n)},p(t,r){/*assetsurl*/8&r[0]&&!c(e.src,n=`${/*assetsurl*/t[3]}/set-timeout-icon.png`)&&A(e,"src",n)},d(t){t&&b(e)}}}function er(e){let n,r,o=/*show*/e[5]&&Qn(e);return{c(){o&&o.c(),n=v(""),this.c=t},m(t,e){o&&o.m(t,e),E(t,n,e),r=!0},p(t,e){/*show*/t[5]?o?(o.p(t,e),/*show*/32&e[0]&&K(o,1)):(o=Qn(t),o.c(),K(o,1),o.m(n.parentNode,n)):o&&(q={r:0,c:[],p:q},Q(o,1,1,(()=>{o=null})),q.r||i(q.c),q=q.p)},i(t){r||(K(o),r=!0)},o(t){Q(o),r=!1},d(t){o&&o.d(t),t&&b(n)}}}function nr(t,e,n){let r;var i,o;i=Wn,o=t=>n(7,r=t),t.$$.on_destroy.push(l(i,o)),qn.extend(Kn);let s,a,c,u,h,f,{clientstyling:p=""}=e,{clientstylingurl:m=""}=e,{width:d}=e,{height:g}=e,{duration:y=200}=e,{assetsurl:E=""}=e,{lang:b="en"}=e,{translationurl:T=""}=e,{endpoint:v}=e,{currency:w}=e,{customerid:S}=e,{selectedpaymentmethodname:A}=e,H=!1;const O=t=>{"StartSessionCountdown"===t.data.type&&(f=t.data.xPaymentSessionToken,h=t.data.paymentMethodName,N())},N=()=>{n(5,H=!1);const t=(t=>{try{return JSON.parse(atob(t.split(".")[1]))}catch(t){return null}})(f);t&&(c=null==t?void 0:t.exp,n(6,a=c),u&&clearInterval(u),u=setInterval((()=>{const t=Math.floor((new Date).getTime()/1e3);n(6,a=c-t),a<=90&&n(5,H=!0),t>=c&&(n(6,a=0),n(5,H=!1),clearInterval(u),window.postMessage({type:"SessionExpired"},window.location.href))}),1e3))},C=()=>{const t=new URL(`${v}/v1/player/${S}/payment/GetPaymentMethod`),e=new Headers;e.append("accept","application/json"),e.append("Content-Type","application/json"),e.append("X-Client-Request-Timestamp",qn.utc().format("YYYY-MM-DD HH:mm:ss.SSS"));const n={method:"POST",mode:"cors",headers:e,body:JSON.stringify({PaymentMethodName:h||A,Currency:w,XPaymentSessionToken:f})};fetch(t,n).then((t=>t.json())).then((t=>{f=t.XPaymentSessionToken,N()}))};Object.keys(_n).forEach((t=>{Vn(t,_n[t])}));const M=()=>{var t;t=b,An.set(t)};var L;
|
|
1011
1011
|
/**
|
|
1012
1012
|
* Schedules a callback to run immediately before the component is unmounted.
|
|
1013
1013
|
*
|
|
@@ -1015,5 +1015,5 @@ function Kn(e){let t,n;return{c(){t=T("img"),c(t.src,n=`${/*assetsurl*/e[3]}/set
|
|
|
1015
1015
|
* only one that runs inside a server-side component.
|
|
1016
1016
|
*
|
|
1017
1017
|
* https://svelte.dev/docs#run-time-svelte-ondestroy
|
|
1018
|
-
*/return
|
|
1018
|
+
*/return L=()=>(window.addEventListener("message",O,!1),()=>{window.removeEventListener("message",O)}),x().$$.on_mount.push(L),function(t){x().$$.on_destroy.push(t)}((()=>{clearInterval(u)})),t.$$set=t=>{"clientstyling"in t&&n(10,p=t.clientstyling),"clientstylingurl"in t&&n(11,m=t.clientstylingurl),"width"in t&&n(0,d=t.width),"height"in t&&n(1,g=t.height),"duration"in t&&n(2,y=t.duration),"assetsurl"in t&&n(3,E=t.assetsurl),"lang"in t&&n(12,b=t.lang),"translationurl"in t&&n(13,T=t.translationurl),"endpoint"in t&&n(14,v=t.endpoint),"currency"in t&&n(15,w=t.currency),"customerid"in t&&n(16,S=t.customerid),"selectedpaymentmethodname"in t&&n(17,A=t.selectedpaymentmethodname)},t.$$.update=()=>{/*lang*/4096&t.$$.dirty[0]&&b&&M(),/*clientstyling, customStylingContainer*/1040&t.$$.dirty[0]&&p&&s&&(()=>{let t=document.createElement("style");t.innerHTML=p,s.appendChild(t)})(),/*clientstylingurl, customStylingContainer*/2064&t.$$.dirty[0]&&m&&s&&(()=>{let t=new URL(m),e=document.createElement("style");fetch(t.href).then((t=>t.text())).then((t=>{e.innerHTML=t,setTimeout((()=>{s.appendChild(e)}),1)}))})(),/*translationurl*/8192&t.$$.dirty[0]&&T&&fetch(T).then((t=>t.json())).then((t=>{Object.keys(t).forEach((e=>{Vn(e,t[e])}))})).catch((t=>{console.log(t)}))},[d,g,y,E,s,H,a,r,C,t=>{const e=t.currentTarget;t.target===e&&C()},p,m,b,T,v,w,S,A,function(t){k[t?"unshift":"push"]((()=>{s=t,n(4,s)}))},function(){d=this.clientWidth,g=this.clientHeight,n(0,d),n(1,g)},function(t){k[t?"unshift":"push"]((()=>{s=t,n(4,s)}))}]}class rr extends it{constructor(t){super();const e=document.createElement("style");e.textContent="*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}.CashierSessionExpirationModalWindow{display:flex;position:absolute;align-items:center;justify-content:center;width:100%;height:100%;z-index:101;top:0;left:0;background-color:var(--mmw--color-black-transparency-4, rgba(0, 0, 0, 0.04));container-type:inline-size;container-name:session-expiration-modal-window}.CashierSessionExpirationModalWrapper{background:var(--emw--color-white, #fff);border-radius:var(--emw--border-radius-medium, 4px);width:400px}.CashierSessionExpirationModalHeader{display:flex;align-items:center;position:relative;height:var(--mmw--header-height, 32px);background-color:var(--mmw--color-grey-105, #E8E9EB);width:100%;border-radius:var(--emw--border-radius-medium, 4px) var(--emw--border-radius-medium, 4px) 0 0}.CashierSessionExpirationModalHeaderTitle{display:flex;text-align:center;color:var(--mmw--color-grey-10, #111);font-size:var(--emw--font-size-small, 14px);font-weight:var(--emw--font-weight-semibold, 500);margin:auto;max-width:calc(100% - 150px);overflow:hidden;text-overflow:ellipsis;line-height:calc(var(--emw--font-size-small, 14px) + 2px)}.CashierSessionExpirationModalContainer{padding:var(--emw--spacing-large, 20px)}.CashierSessionExpiration{width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--emw--spacing-large, 20px)}.CashierSessionExpirationTitle{color:var(--emw--color-black, #000);font-weight:var(--emw--font-weight-semibold, 500);font-size:var(--emw--font-size-x-small, 12px);line-height:120%;text-align:center}.CashierSessionExpirationText{color:var(--mmw--color-grey-290, #666);font-weight:var(--emw--font-weight-normal, 400);font-size:var(--emw--font-size-x-small, 12px);line-height:120%;text-align:center}.CashierSessionExpirationButton{display:flex;width:100%;height:36px;flex-direction:column;justify-content:center;flex-shrink:0;color:var(--emw--color-white, #FFF);cursor:pointer;text-align:center;font-size:var(--emw--font-size-x-small, 12px);font-style:normal;font-weight:var(--emw--font-weight-semibold, 500);font-family:inherit;line-height:36px;border-radius:var(--emw--border-radius-medium, 4px);background:var(--emw--color-primary, #7EC51E)}.CashierSessionExpirationButton:hover{background:var(--mmw--color-main-button-hover, #71B11B)}.CashierSessionExpirationButton:active{background:var(--mmw--color-main-button-active, #5C950F)}@container session-expiration-modal-window (max-width:750px){.CashierSessionExpirationModalWindow .CashierSessionExpirationModalWrapper{width:90%;max-width:400px}}",this.shadowRoot.appendChild(e),rt(this,{target:this.shadowRoot,props:C(this.attributes),customElement:!0},nr,er,s,{clientstyling:10,clientstylingurl:11,width:0,height:1,duration:2,assetsurl:3,lang:12,translationurl:13,endpoint:14,currency:15,customerid:16,selectedpaymentmethodname:17},null,[-1,-1]),t&&(t.target&&E(t.target,this,t.anchor),t.props&&(this.$set(t.props),_()))}static get observedAttributes(){return["clientstyling","clientstylingurl","width","height","duration","assetsurl","lang","translationurl","endpoint","currency","customerid","selectedpaymentmethodname"]}get clientstyling(){return this.$$.ctx[10]}set clientstyling(t){this.$$set({clientstyling:t}),_()}get clientstylingurl(){return this.$$.ctx[11]}set clientstylingurl(t){this.$$set({clientstylingurl:t}),_()}get width(){return this.$$.ctx[0]}set width(t){this.$$set({width:t}),_()}get height(){return this.$$.ctx[1]}set height(t){this.$$set({height:t}),_()}get duration(){return this.$$.ctx[2]}set duration(t){this.$$set({duration:t}),_()}get assetsurl(){return this.$$.ctx[3]}set assetsurl(t){this.$$set({assetsurl:t}),_()}get lang(){return this.$$.ctx[12]}set lang(t){this.$$set({lang:t}),_()}get translationurl(){return this.$$.ctx[13]}set translationurl(t){this.$$set({translationurl:t}),_()}get endpoint(){return this.$$.ctx[14]}set endpoint(t){this.$$set({endpoint:t}),_()}get currency(){return this.$$.ctx[15]}set currency(t){this.$$set({currency:t}),_()}get customerid(){return this.$$.ctx[16]}set customerid(t){this.$$set({customerid:t}),_()}get selectedpaymentmethodname(){return this.$$.ctx[17]}set selectedpaymentmethodname(t){this.$$set({selectedpaymentmethodname:t}),_()}}return!customElements.get("cashier-session-expiration-modal")&&customElements.define("cashier-session-expiration-modal",rr),rr}));
|
|
1019
1019
|
//# sourceMappingURL=cashier-session-expiration-modal.js.map
|