{"version":3,"sources":["../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/babel-plugin-react-css-modules/dist/browser/getClassName.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/babel-plugin-react-css-modules/dist/browser/schemas/optionsDefaults.js","../node_modules/@fe/game-sdk/lib/core/cookieBanner/createDom.js","../node_modules/@fe/game-sdk/lib/core/cookieBanner/style.js","../node_modules/@fe/game-sdk/lib/core/cookieBanner/utils.js","../node_modules/@fe/game-sdk/lib/core/cookieSDK/utils.js","../node_modules/@fe/game-sdk/lib/core/cookieBanner/module/optOut/const.js","../node_modules/@fe/game-sdk/lib/core/cookieBanner/module/optOut/dom.js","../node_modules/@fe/game-sdk/lib/core/cookieBanner/module/optOut/index.js","../node_modules/@fe/game-sdk/lib/core/cookieBanner/index.js","../node_modules/@fe/game-sdk/lib/core/privacyUpdatePop/const.js","../node_modules/@fe/game-sdk/lib/core/privacyUpdatePop/index.js","../node_modules/@fe/game-sdk/lib/core/privacyUpdatePop/dom.js"],"names":["React","createContext","Object","defineProperty","exports","value","obj","_optionsDefaults","__esModule","handleError","message","handleMissingStyleName","Error","console","warn","styleNameValue","styleModuleImportMap","options","styleModuleImportMapKeys","keys","_ref","_ref$handleMissingSty","_ref$autoResolveMulti","autoResolveMultipleImports","split","filter","styleName","map","indexOf","isNamespacedStyleName","handleMissingStyleNameOption","styleNameParts","importName","moduleName","getClassNameForNamespacedStyleName","length","importKeysWithMatches","importKey","join","getClassNameFromMultipleImports","styleModuleMap","className","disabled","ENTERING","ENTERED","EXITING","Transition","_React$Component","props","context","_this","call","this","initialStatus","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","state","status","nextCallback","_inheritsLoose","getDerivedStateFromProps","prevState","_proto","prototype","componentDidMount","updateStatus","componentDidUpdate","prevProps","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","exit","timeout","undefined","mounting","node","ReactDOM","findDOMNode","performEnter","performExit","setState","_this2","appearing","timeouts","enterTimeout","config","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","onExited","cancel","nextState","callback","setNextCallback","_this4","active","event","handler","doesNotHaveTimeoutOrListener","addEndListener","setTimeout","render","_this$props","children","childProps","_objectWithoutPropertiesLoose","createElement","TransitionGroupContext","Provider","child","Children","only","cloneElement","Component","noop","contextType","defaultProps","UNMOUNTED","EXITED","subClass","superClass","create","constructor","__proto__","source","excluded","key","i","target","sourceKeys","_default","attributeNames","generateScopedName","createPortal","portal","document","styleSheet","id","innerHTML","createStyleSheet","appendChild","body","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","f","y","t","g","_","label","sent","trys","ops","verb","Symbol","iterator","n","v","op","TypeError","pop","push","HOST_MAP","getHost","host","env","concat","region","auto","origin_1","location","origin","autoEnv","setCookie","exp","Date","setTime","getTime","cookie","hostname","toUTCString","getCookie","parts","replace","defaultOptions","el","appId","defaultStatus","CLASS_NAMES","DEFAULT_OPT_OUT_DESC","title","desc","text","type","saveBtn","__assign","assign","s","arguments","p","hasOwnProperty","OptOut","thirdScripts","_scripts","code","Array","isArray","_init","_getAcceptStatus","_a","_b","JSON","parse","navigator","globalPrivacyControl","ignoreGpc","_emitEvent","_acceptAll","onRejectAll","onAcceptAll","_loadThirdScripts","head","getElementsByTagName","forEach","curScript","links","curLink","scriptLinkDom","src","async","script","scriptCodeDom","window","CookieScriptStatus","_renderEntrance","containerDom","buttonText","querySelector","privacyText","privacyBtn","buttonDom","_renderPrivacyChoices","addEventListener","Tea","sendLogV3","component_text","logger","error","popup_text","classList","add","isAccept","switchBtn","remove","textDom","style","textDecoration","params","curParams","_c","htmlStr","isRenderedBtn","curDesc","renderPrivacyChoicesPage","isOptOut","includes","botton_status","page_text","data","ignoreIp","fetch","get","json","Number","need_compliance","onInit","__spreadArray","to","from","pack","ar","l","slice","COOKIE_KEY","SETTING_KEY","CookieBanner","_instance","bannerLock","settingLock","events","settingData","actionHistory","needShowBanner","needOptOut","optOutOptions","renderDom","addEvent","renderData","hasBannerDataAndShow","autoShowBanner","status_1","parsedStatus","log","showBottomBanner","trigger","portalDom","bottomDoms","wrap","inner","btns","setting","accept","learnMore","OK","simpleTit","setAttribute","createBottomBanner","sideDoms","cke_top","cke_top_span","close","content","description","save","createSideBanner","banner","isSimpleBanner","bannerObject","parsed","datas","localCache","localData_1","settingDatas_1","siteParam","url","advs","website","page","block","channel","language","pageSize","pageIndex","advertisements","find","item","isSimple","removeChild","match","substr","link","outerHTML","types","it","cookies","ck","local","enable","box","switchTrigger","cke_box_t","name","cookieDetailWrap","cookieTip","dataset","shape","details","_loop_1","line1","line1span1","provider","boxswitch","cke_swc_span","allowChange","switchStatus","display","createCookiePart","hideSideBanner","switchs","querySelectorAll","bool","sw","stringify","hideBottomBanner","changeSwitchValue","showSideBanner","switchs_1","listen","args","_i","fn","getSetting","getStatus","time","defaultI18nText","button","PrivacyUpdatePop","needUpdatePop","_initSiteApi","siteConfig","siteResp","updateDate","nowDate","_d","_siteApi","SiteApi","getNews","privacyUrl","privacyContent","update_at","Math","floor","now","localStorage","getItem","_render","_e","popBoxDom","_f","renderText","matches","replaceText","content_1","renderPrivacyPop","_addEvent","setItem"],"mappings":"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","file":"static/js/1.03cb621f.chunk.js","sourcesContent":["import React from 'react';\nexport default React.createContext(null);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _optionsDefaults = _interopRequireDefault(require(\"./schemas/optionsDefaults\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar isNamespacedStyleName = function isNamespacedStyleName(styleName) {\n return styleName.indexOf('.') !== -1;\n};\n\nvar handleError = function handleError(message, handleMissingStyleName) {\n if (handleMissingStyleName === 'throw') {\n throw new Error(message);\n } else if (handleMissingStyleName === 'warn') {\n // eslint-disable-next-line no-console\n console.warn(message);\n }\n\n return null;\n};\n\nvar getClassNameForNamespacedStyleName = function getClassNameForNamespacedStyleName(styleName, styleModuleImportMap, handleMissingStyleNameOption) {\n // Note:\n // Do not use the desctructing syntax with Babel.\n // Desctructing adds _slicedToArray helper.\n var styleNameParts = styleName.split('.');\n var importName = styleNameParts[0];\n var moduleName = styleNameParts[1];\n var handleMissingStyleName = handleMissingStyleNameOption || _optionsDefaults[\"default\"].handleMissingStyleName;\n\n if (!moduleName) {\n return handleError('Invalid style name: ' + styleName, handleMissingStyleName);\n }\n\n if (!styleModuleImportMap[importName]) {\n return handleError('CSS module import does not exist: ' + importName, handleMissingStyleName);\n }\n\n if (!styleModuleImportMap[importName][moduleName]) {\n return handleError('CSS module does not exist: ' + moduleName, handleMissingStyleName);\n }\n\n return styleModuleImportMap[importName][moduleName];\n};\n\nvar getClassNameFromMultipleImports = function getClassNameFromMultipleImports(styleName, styleModuleImportMap, handleMissingStyleNameOption) {\n var handleMissingStyleName = handleMissingStyleNameOption || _optionsDefaults[\"default\"].handleMissingStyleName;\n var importKeysWithMatches = Object.keys(styleModuleImportMap).map(function (importKey) {\n return styleModuleImportMap[importKey][styleName] && importKey;\n }).filter(function (importKey) {\n return importKey;\n });\n\n if (importKeysWithMatches.length > 1) {\n throw new Error('Cannot resolve styleName \"' + styleName + '\" because it is present in multiple imports:' + '\\n\\n\\t' + importKeysWithMatches.join('\\n\\t') + '\\n\\nYou can resolve this by using a named import, e.g:' + '\\n\\n\\timport foo from \"' + importKeysWithMatches[0] + '\";' + '\\n\\t
' + '\\n\\n');\n }\n\n if (importKeysWithMatches.length === 0) {\n return handleError('Could not resolve the styleName \\'' + styleName + '\\'.', handleMissingStyleName);\n }\n\n return styleModuleImportMap[importKeysWithMatches[0]][styleName];\n};\n\nvar _default = function _default(styleNameValue, styleModuleImportMap, options) {\n var styleModuleImportMapKeys = Object.keys(styleModuleImportMap);\n\n var _ref = options || {},\n _ref$handleMissingSty = _ref.handleMissingStyleName,\n handleMissingStyleName = _ref$handleMissingSty === void 0 ? _optionsDefaults[\"default\"].handleMissingStyleName : _ref$handleMissingSty,\n _ref$autoResolveMulti = _ref.autoResolveMultipleImports,\n autoResolveMultipleImports = _ref$autoResolveMulti === void 0 ? _optionsDefaults[\"default\"].autoResolveMultipleImports : _ref$autoResolveMulti;\n\n if (!styleNameValue) {\n return '';\n }\n\n return styleNameValue.split(' ').filter(function (styleName) {\n return styleName;\n }).map(function (styleName) {\n if (isNamespacedStyleName(styleName)) {\n return getClassNameForNamespacedStyleName(styleName, styleModuleImportMap, handleMissingStyleName);\n }\n\n if (styleModuleImportMapKeys.length === 0) {\n throw new Error('Cannot use styleName attribute for style name \\'' + styleName + '\\' without importing at least one stylesheet.');\n }\n\n if (styleModuleImportMapKeys.length > 1) {\n if (!autoResolveMultipleImports) {\n throw new Error('Cannot use anonymous style name \\'' + styleName + '\\' with more than one stylesheet import without setting \\'autoResolveMultipleImports\\' to true.');\n }\n\n return getClassNameFromMultipleImports(styleName, styleModuleImportMap, handleMissingStyleName);\n }\n\n var styleModuleMap = styleModuleImportMap[styleModuleImportMapKeys[0]];\n\n if (!styleModuleMap[styleName]) {\n return handleError('Could not resolve the styleName \\'' + styleName + '\\'.', handleMissingStyleName);\n }\n\n return styleModuleMap[styleName];\n }).filter(function (className) {\n // Remove any styles which could not be found (if handleMissingStyleName === 'ignore')\n return className;\n }).join(' ');\n};\n\nexports[\"default\"] = _default;\n\n//# sourceMappingURL=getClassName.js.map","export default {\n disabled: false\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n var node = ReactDOM.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n // allows for nested Transitions\n return React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, children(status, childProps));\n }\n\n var child = React.Children.only(children);\n return (// allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, React.cloneElement(child, childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the\n * `` component mounts. If you want to transition on the first\n * mount set `appear` to `true`, and the component will transition in as soon\n * as the `` mounts.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\nexport default Transition;","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar optionsDefaults = {\n attributeNames: {\n styleName: 'className'\n },\n generateScopedName: '[path]___[name]__[local]___[hash:base64:5]',\n handleMissingStyleName: 'throw'\n};\nvar _default = optionsDefaults;\nexports[\"default\"] = _default;\n\n//# sourceMappingURL=optionsDefaults.js.map","import { createStyleSheet } from './style';\n// 创建入口\nexport var createPortal = function () {\n var portal = document.createElement('div');\n var styleSheet = createStyleSheet();\n portal.appendChild(styleSheet);\n document.body.appendChild(portal);\n return portal;\n};\n// 创建底部banner\nexport var createBottomBanner = function () {\n // 外层\n var wrap = document.createElement('div');\n // 内层,固定1100px\n var inner = document.createElement('div');\n // 文案层,有最小高度和最大高度,超过最大高度可滚动\n var text = document.createElement('p');\n // 按钮容器\n var btns = document.createElement('div');\n // Cookie Setting按钮\n var setting = document.createElement('button');\n // Reject All按钮\n var reject = document.createElement('button');\n // Accept All按钮\n var accept = document.createElement('button');\n // 简单版本 learn more\n var learnMore = document.createElement('a');\n // 简单版本 OK\n var OK = document.createElement('button');\n // 简单版本 标题\n var simpleTit = document.createElement('p');\n // 设置样式\n wrap.className = 'cke_wp';\n inner.className = 'cke_in';\n text.className = 'cke_tx';\n btns.className = 'cke_bt';\n setting.className = 'cke_st';\n reject.className = 'cke_rj';\n accept.className = 'cke_ap';\n learnMore.className = 'cke_lm';\n OK.className = 'cke_ok';\n simpleTit.className = 'cke_stit';\n learnMore.setAttribute('target', '_blank');\n learnMore.setAttribute('rel', 'noopener noreferrer');\n // 设置文案\n setting.innerHTML = 'Cookie Setting';\n reject.innerHTML = 'Reject All';\n accept.innerHTML = 'Accept All';\n learnMore.innerHTML = 'Learn More';\n OK.innerHTML = 'OK';\n simpleTit.innerHTML = 'Cookies Banner';\n // 添加节点\n wrap.appendChild(inner);\n inner.appendChild(simpleTit);\n inner.appendChild(text);\n inner.appendChild(btns);\n btns.appendChild(setting);\n btns.appendChild(reject);\n btns.appendChild(accept);\n btns.appendChild(learnMore);\n btns.appendChild(OK);\n return {\n wrap: wrap,\n inner: inner,\n text: text,\n btns: btns,\n setting: setting,\n reject: reject,\n accept: accept,\n simpleTit: simpleTit,\n learnMore: learnMore,\n OK: OK\n };\n};\n// 创建侧边banner\nexport var createSideBanner = function () {\n // 外层\n var wrap = document.createElement('div');\n wrap.className = 'cke_side cke_side_hd';\n // top顶部\n var cke_top = document.createElement('div');\n cke_top.className = 'cke_top';\n var cke_top_span = document.createElement('span');\n cke_top_span.innerHTML = 'Cookie Setting';\n var close = document.createElement('span');\n close.className = 'cke_side_close';\n // 添加top顶部\n cke_top.appendChild(cke_top_span);\n cke_top.appendChild(close);\n wrap.appendChild(cke_top);\n // 内容区域\n var content = document.createElement('div');\n content.className = 'cke_ctn';\n // 描述\n var description = document.createElement('p');\n description.className = 'cke_top_desc';\n // 添加content\n content.appendChild(description);\n wrap.appendChild(content);\n // 保存按钮\n var save = document.createElement('button');\n save.className = 'side_save';\n save.innerHTML = 'Save';\n // 添加保存按钮\n wrap.appendChild(save);\n return {\n wrap: wrap,\n close: close,\n content: content,\n description: description,\n save: save\n };\n};\n// 生成侧边栏每个政策的dom结构\nexport var createCookiePart = function (options, switchTrigger) {\n // box外层\n var box = document.createElement('div');\n box.className = 'cke_box';\n var cke_box_t = document.createElement('div');\n cke_box_t.className = 'cke_box_t';\n // 名称\n var name = document.createElement('span');\n name.className = 'cke_box_n';\n name.innerHTML = options.name;\n // 描述\n var desc = document.createElement('p');\n desc.className = 'cke_box_desc';\n desc.innerHTML = options.description;\n // 添加固定内容\n box.appendChild(cke_box_t);\n cke_box_t.appendChild(name);\n box.appendChild(desc);\n // 如果没有cookie详细信息,直接返回\n if (!options.cookies || options.cookies.length === 0) {\n return {\n box: box,\n name: name,\n desc: desc\n };\n }\n // 有则生成详细信息\n var cookies = options.cookies;\n // 详细信息外层\n var cookieDetailWrap = document.createElement('div');\n cookieDetailWrap.className = 'cke_detail';\n // 详细信息tip\n var cookieTip = document.createElement('p');\n cookieTip.className = 'cke_detail_t';\n cookieTip.innerHTML = 'Cookie details';\n cookieTip.dataset.status = 'on';\n // 三角形\n var shape = document.createElement('span');\n shape.className = 'cke_dl_o'; //默认开启 cke_dl_c 隐藏\n cookieTip.appendChild(shape);\n var details = document.createElement('div');\n // details.style.display = 'none'; // 默认隐藏\n // 整合\n cookieDetailWrap.appendChild(cookieTip);\n cookieDetailWrap.appendChild(details);\n var _loop_1 = function (i) {\n var item = cookies[i];\n var link = document.createElement('div');\n link.className = 'cke_detail_list';\n var line1 = document.createElement('div');\n line1.className = 'cke_detail_le';\n // 名称\n var line1span1 = void 0;\n if (!item.link) {\n line1span1 = document.createElement('span');\n }\n else {\n line1span1 = document.createElement('a');\n line1span1.setAttribute('href', item.link);\n line1span1.setAttribute('target', \"_blank\");\n line1span1.setAttribute('rel', \"noopener noreferrer\");\n }\n line1span1.innerHTML = item.name + '(' + item.provider + ')';\n // 开关\n var boxswitch = document.createElement('div');\n var cke_swc_span = document.createElement('span');\n // 设置标识\n boxswitch.dataset.key = item.key;\n boxswitch.appendChild(cke_swc_span);\n line1.appendChild(line1span1);\n line1.appendChild(boxswitch);\n // 是否可用\n if (!item.enable) {\n boxswitch.className = 'cke_swc cke_swc_c';\n boxswitch.dataset.status = 'off';\n }\n else {\n boxswitch.className = 'cke_swc cke_swc_o';\n boxswitch.dataset.status = 'on';\n }\n // 是否禁用\n if (!item.allowChange) {\n boxswitch.className += ' cke_swc_disabled';\n boxswitch.dataset.status = 'disabled';\n }\n // 添加开关事件\n boxswitch.addEventListener('click', function () {\n var switchStatus = boxswitch.dataset.status;\n // let switchType = boxswitch.dataset.type;\n // let switchName = boxswitch.dataset.name;\n var key = boxswitch.dataset.key;\n if (switchStatus === 'disabled') {\n return;\n }\n if (switchStatus === 'on') {\n // 关闭\n boxswitch.className = 'cke_swc cke_swc_c';\n boxswitch.dataset.status = 'off';\n switchTrigger({ key: key }, false);\n }\n else {\n // 打开\n boxswitch.className = 'cke_swc cke_swc_o';\n boxswitch.dataset.status = 'on';\n switchTrigger({ key: key }, true);\n }\n });\n // 整合\n link.appendChild(line1);\n details.appendChild(link);\n };\n // 添加详细cookie数据\n for (var i = 0; i < cookies.length; i++) {\n _loop_1(i);\n }\n // 加载事件,点击隐藏、显示\n cookieTip.addEventListener('click', function () {\n var openStatus = cookieTip.dataset.status;\n if (openStatus === 'off') {\n // 打开\n cookieTip.dataset.status = 'on';\n details.style.display = 'block';\n shape.className = 'cke_dl_o';\n }\n else {\n // 关闭\n cookieTip.dataset.status = 'off';\n details.style.display = 'none';\n shape.className = 'cke_dl_c';\n }\n });\n // 添加到box容器\n box.appendChild(cookieDetailWrap);\n return {\n box: box,\n name: name,\n desc: desc\n };\n};\n//# sourceMappingURL=createDom.js.map","export var createStyleSheet = function () {\n var styleSheet = document.createElement('style');\n styleSheet.id = 'cookieStyle';\n styleSheet.innerHTML = \"\\n .cke_wp {\\n position: fixed;\\n left: 0;\\n bottom: 0;\\n width: 100vw;\\n padding: 15px 0;\\n overflow: hidden;\\n background-color: #fff;\\n box-sizing: content-box;\\n box-shadow: 0px 0px 10px rgb(0,0,0,.1);\\n -webkit-transform: translateY(100%);\\n transform: translateY(100%);\\n transition: all 0.3s ease-in-out;\\n z-index: 999999;\\n }\\n .cke_wp_simple {\\n padding: 30px 0 10px 0px;\\n }\\n .cke_in {\\n position: relative;\\n display: -webkit-flex;\\n display: flex;\\n -webkit-align-items: center;\\n align-items: center;\\n -webkit-justify-content: space-between;\\n justify-content: space-between;\\n width: 1100px;\\n margin: 0 auto;\\n }\\n .cke_tx {\\n width: 720px;\\n font-size: 14px;\\n line-height: 1.5;\\n margin: 0;\\n max-height: 65px;\\n overflow-y: auto;\\n color: #1d2129;\\n }\\n .cke_tx a {\\n text-decoration: underline;\\n color: #1d2129;\\n }\\n .cke_tx a:visited {\\n color: #1d2129;\\n }\\n .cke_tx::-webkit-scrollbar {\\n width: 0px;\\n }\\n .cke_tx::-webkit-scrollbar-track {\\n width: 0px;\\n background-color: transparent;\\n }\\n .cke_tx::-webkit-scrollbar-thumb {\\n width: 0px;\\n background-color: transparent;\\n }\\n .cke_bt {\\n display: -webkit-flex;\\n display: flex;\\n -webkit-align-items: center;\\n align-items: center;\\n -webkit-flex-grow: 1;\\n flex-grow: 1;\\n -webkit-justify-content: flex-end;\\n justify-content: flex-end;\\n margin-left: 40px;\\n }\\n .cke_stit {\\n font-size: 16px;\\n font-weight: bold;\\n position: absolute;\\n left: 0;\\n top: -25px;\\n margin: 0;\\n }\\n .cke_st {\\n width: 120px;\\n height: 40px;\\n line-height: 40px;\\n font-size: 13px;\\n background-color: #eeeeee;\\n border-radius: 5px;\\n text-align: center;\\n cursor: pointer;\\n border: none;\\n transition: all 0.3s ease-in-out;\\n }\\n .cke_rj,\\n .cke_ap,\\n .cke_lm,\\n .cke_ok {\\n width: 100px;\\n height: 40px;\\n line-height: 40px;\\n font-size: 13px;\\n background-color: #4080ff;\\n border-radius: 5px;\\n text-align: center;\\n cursor: pointer;\\n color: #fff;\\n border: none;\\n transition: all 0.3s ease-in-out;\\n }\\n .cke_lm {\\n background-color: #eeeeee;\\n color: #000;\\n margin-right: 20px;\\n text-decoration: none;\\n }\\n .cke_st:hover {\\n background-color: #d7d7d7;\\n }\\n .cke_rj:hover,\\n .cke_ap:hover {\\n background-color: #165dff;\\n }\\n .cke_rj {\\n margin: 0 10px;\\n }\\n .cke_b_hd {\\n -webkit-transform: translateY(100%);\\n transform: translateY(100%);\\n }\\n .cke_b_s {\\n -webkit-transform: translateY(0);\\n transform: translateY(0);\\n }\\n .cke_none {\\n display: none;\\n }\\n /* side */\\n .cke_side {\\n position: fixed;\\n right: 0;\\n top: 0;\\n display: -webkit-flex;\\n display: flex;\\n -webkit-flex-direction: column;\\n flex-direction: column;\\n width: 310px;\\n height: 100vh;\\n background-color: #fff;\\n box-shadow: 0px 0px 10px rgb(0, 0, 0, .1);\\n z-index: 999999;\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n transition: all 0.3s ease-in-out;\\n }\\n .cke_top {\\n display: -webkit-flex;\\n display: flex;\\n -webkit-align-items: center;\\n align-items: center;\\n -webkit-justify-content: space-between;\\n justify-content: space-between;\\n height: 25px;\\n padding: 15px;\\n box-sizing: content-box;\\n font-size: 14px;\\n color: #1d2129;\\n font-weight: 500;\\n border-bottom: 1px solid #c9cdd4;\\n }\\n .cke_side_hd {\\n display: none;\\n }\\n .cke_side_s {\\n -webkit-transform: translateX(0);\\n transform: translateX(0);\\n }\\n .cke_side_close {\\n position: relative;\\n width: 20px;\\n min-width: 20px;\\n height: 20px;\\n cursor: pointer;\\n }\\n .cke_side_close::before {\\n content: '';\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n width: 10px;\\n height: 2px;\\n border-radius: 1px;\\n background-color: #878787;\\n -webkit-transform: translate(-50%, -50%) rotate(-45deg);\\n transform: translate(-50%, -50%) rotate(-45deg);\\n }\\n .cke_side_close::after {\\n content: '';\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n width: 10px;\\n height: 2px;\\n border-radius: 1px;\\n background-color: #878787;\\n -webkit-transform: translate(-50%, -50%) rotate(45deg);\\n transform: translate(-50%, -50%) rotate(45deg);\\n }\\n .cke_ctn {\\n -webkit-flex: 1 1;\\n flex: 1 1;\\n width: 100%;\\n box-sizing: border-box;\\n margin: 10px auto;\\n padding: 0 15px 15px 15px;\\n overflow-y: auto;\\n }\\n .side_save {\\n width: 290px;\\n height: 40px;\\n min-height: 40px;\\n line-height: 40px;\\n margin: 0 auto;\\n margin-bottom: 15px;\\n text-align: center;\\n font-size: 12px;\\n color: #fff;\\n border-radius: 2px;\\n background-color: rgb(64, 128, 255);\\n border: none;\\n cursor: pointer;\\n transition: all 0.3s ease-in-out;\\n }\\n .cke_ctn::-webkit-scrollbar {\\n width: 0px;\\n }\\n .cke_ctn::-webkit-scrollbar-track {\\n width: 0px;\\n background-color: transparent;\\n }\\n .cke_ctn::-webkit-scrollbar-thumb {\\n width: 0px;\\n background-color: transparent;\\n }\\n .side_save:hover {\\n background-color: #165dff;\\n }\\n .cke_top_desc {\\n font-size: 13px;\\n margin: 0 auto;\\n color: #4e5969;\\n }\\n .cke_box {\\n width: 100%;\\n margin: 20px auto;\\n }\\n .cke_box_t {\\n display: -webkit-flex;\\n display: flex;\\n -webkit-align-items: center;\\n align-items: center;\\n -webkit-justify-content: space-between;\\n justify-content: space-between;\\n }\\n .cke_box_n {\\n font-size: 14px;\\n color: #1d2129;\\n }\\n .cke_swc {\\n position: relative;\\n width: 35px;\\n height: 20px;\\n border-radius: 10px;\\n cursor: pointer;\\n transition: all 0.3s ease-in-out;\\n -webkit-tap-highlight-color: transparent;\\n }\\n .cke_swc_o {\\n background-color: #23c343;\\n }\\n .cke_swc_c {\\n background-color: #eaeaea;\\n }\\n .cke_swc span {\\n position: absolute;\\n top: 2px;\\n display: inline-block;\\n width: 16px;\\n height: 16px;\\n background-color: #fff;\\n border-radius: 50%;\\n transition: all 0.3s ease-in-out;\\n }\\n .cke_swc_o span {\\n right: 2px;\\n }\\n .cke_swc_c span {\\n right: 17px;\\n }\\n .cke_box_desc {\\n margin: 0 auto;\\n font-size: 13px;\\n color: #4e5969;\\n }\\n .cke_swc_disabled {\\n cursor: not-allowed;\\n background-color: rgba(35, 195, 67, 0.3);\\n }\\n .cke_detail {\\n width: 100%;\\n margin: 8px auto;\\n }\\n .cke_detail_t {\\n display: -webkit-flex;\\n display: flex;\\n -webkit-align-items: center;\\n align-items: center;\\n font-size: 13px;\\n line-height: 1.5;\\n margin: 0;\\n cursor: pointer;\\n }\\n .cke_detail_t .cke_dl_o {\\n display: inline-block;\\n width: 0px;\\n height: 0px;\\n margin-left: 5px;\\n border-top: 0;\\n border-left: 5px solid transparent;\\n border-right: 5px solid transparent;\\n border-bottom: 5px solid #878787;\\n }\\n .cke_detail_t .cke_dl_c {\\n display: inline-block;\\n width: 0px;\\n height: 0px;\\n margin-left: 5px;\\n border-bottom: 0;\\n border-left: 5px solid transparent;\\n border-right: 5px solid transparent;\\n border-top: 5px solid #878787;\\n }\\n .cke_detail_list {\\n display: -webkit-flex;\\n display: flex;\\n -webkit-align-items: center;\\n align-items: center;\\n -webkit-justify-content: center;\\n justify-content: center;\\n -webkit-flex-direction: column;\\n flex-direction: column;\\n width: 100%;\\n margin: 10px auto;\\n padding: 0 10px;\\n box-sizing: border-box;\\n border-radius: 3px;\\n background-color: #fff;\\n transition: all 0.3s ease-in-out;\\n text-decoration: none;\\n }\\n .cke_detail_le {\\n width: 100%;\\n display: -webkit-flex;\\n display: flex;\\n -webkit-align-items: center;\\n align-items: center;\\n -webkit-justify-content: space-between;\\n justify-content: space-between;\\n font-size: 12px;\\n margin: 0 auto;\\n color: #4e5969;\\n }\\n .cke_detail_le a {\\n color: #1d2129;\\n text-decoration: none;\\n }\\n .cke_detail_le a:visited {\\n color: #1d2129;\\n }\\n @media screen and (max-width: 1099px) {\\n .cke_in {\\n width: 768px;\\n }\\n .cke_tx {\\n width: 400px;\\n }\\n }\\n @media screen and (max-width: 768px) {\\n .cke_wp {\\n padding: .15rem 0;\\n }\\n .cke_in {\\n width: 100%;\\n min-width: 2rem;\\n }\\n .cke_tx {\\n flex-grow: 1;\\n font-size: .12rem;\\n max-height: 1rem;\\n margin-left: .2rem;\\n }\\n .cke_bt {\\n flex-grow: 0;\\n flex-direction: column;\\n -webkit-flex-direction: column;\\n margin: 0 .2rem;\\n }\\n .cke_st,\\n .cke_rj,\\n .cke_ap,\\n .cke_ok,\\n .cke_lm {\\n width: 1.8rem;\\n height: .6rem;\\n min-width: 75px;\\n min-height: 30px;\\n line-height: .6rem;\\n font-size: .14rem;\\n border-radius: .05rem;\\n white-space: nowrap;\\n }\\n .cke_rj {\\n margin: .1rem 0;\\n }\\n .cke_wp_simple {\\n padding: 0.35rem 0 0.1rem 0;\\n }\\n .cke_stit {\\n font-size: .24rem;\\n font-weight: bold;\\n position: absolute;\\n left: 0.2rem;\\n top: -0.2rem;\\n margin: 0;\\n }\\n .cke_lm {\\n margin-right: 0;\\n margin-bottom: .1rem;\\n }\\n }\\n \";\n return styleSheet;\n};\n//# sourceMappingURL=style.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport fetch from \"../fetch\";\nvar HOST_MAP = {\n 'boe-sandbox': 'https://act-boe.bytedance.net',\n 'boe-online': 'https://act-boe-cof.snssdk.com',\n 'cn-sandbox': 'https://act-sandbox.nvsgames.cn',\n 'cn-online': 'https://act.nvsgames.cn',\n 'sg-sandbox': 'https://act-sandbox.sgsnssdk.com',\n 'sg-online': 'https://act.toutiaocloud.com',\n 'va-sandbox': 'https://act-sandbox.vasnssdk.com',\n 'va-online': 'https://act.vasnssdk.com',\n};\nvar autoEnv = function () {\n try {\n var origin_1 = location.origin;\n if (origin_1.indexOf('bytedance') > -1 || origin_1.indexOf('sandbox') > -1 || origin_1.indexOf('localhost') > -1) {\n return 'sandbox';\n }\n return 'online';\n }\n catch (_) {\n return 'sandbox';\n }\n};\nvar getHost = function (options) {\n var host = '';\n if (options.env) {\n host = HOST_MAP[\"\".concat(options.region, \"-\").concat(options.env)];\n }\n else {\n var auto = autoEnv();\n host = HOST_MAP[\"\".concat(options.region, \"-\").concat(auto)];\n }\n return host;\n};\nexport var getData = function (options) { return __awaiter(void 0, void 0, void 0, function () {\n var url, params, res, data, advs, banner, setting, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n url = getHost(options) + '/site/api/v2/picture/search';\n params = \"?app_id=\".concat(options.appId, \"&website=\").concat(options.website, \"&page=\").concat(options.page, \"&block=\").concat(options.block, \"&channel=\").concat(options.channel, \"&language=\").concat(options.language, \"&page_size=\").concat(options.pageSize || 99, \"&page_index=\").concat(options.pageIndex || 1);\n return [4 /*yield*/, window.fetch(url + params)];\n case 1:\n res = _a.sent();\n return [4 /*yield*/, res.json()];\n case 2:\n data = _a.sent();\n if (data.code !== 0) {\n return [2 /*return*/, {\n banner: null,\n setting: null\n }];\n }\n advs = data.data.advertisements || [];\n banner = advs.find(function (item) { return item.title === 'banner'; });\n setting = advs.find(function (item) { return item.title === 'setting'; });\n return [2 /*return*/, {\n banner: banner,\n setting: setting\n }];\n case 3:\n e_1 = _a.sent();\n return [2 /*return*/, {\n banner: null,\n setting: null\n }];\n case 4: return [2 /*return*/];\n }\n });\n}); };\nexport var getIpInfo = function (appId) { return __awaiter(void 0, void 0, void 0, function () {\n var originResult, result, _1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n return [4 /*yield*/, fetch.get(\"/external_activity/common/get_ip_info?app_id=\".concat(appId))];\n case 1:\n originResult = _a.sent();\n return [4 /*yield*/, originResult.json()];\n case 2:\n result = _a.sent();\n return [2 /*return*/, result.data];\n case 3:\n _1 = _a.sent();\n return [2 /*return*/, {}];\n case 4: return [2 /*return*/];\n }\n });\n}); };\n//# sourceMappingURL=utils.js.map","export var parseStringToHTML = function (str) {\n if (!str) {\n return '';\n }\n var reg = /\\[(.*?)\\]/g;\n var parsedStr = str.replace(reg, function (match) {\n var linkPart = match.substr(1, match.length - 2);\n var link = linkPart.split('@');\n var dom = document.createElement('a');\n dom.setAttribute('href', link[1] || '');\n dom.setAttribute('target', '_blank');\n dom.innerHTML = link[0] || '';\n return dom.outerHTML;\n });\n return parsedStr;\n};\nexport var setCookie = function (key, value) {\n var exp = new Date();\n exp.setTime(exp.getTime() + (13 * 30 * 24 * 60 * 60 * 1000));\n document.cookie = \"\".concat(key, \"=\").concat(value, \";path=/;domain=\").concat(location.hostname, \";expires=\").concat(exp.toUTCString());\n};\nexport var getCookie = function (key) {\n var cookie = document.cookie;\n if (!cookie) {\n return null;\n }\n var parts = cookie.replace(/\\s/g, '').split(';');\n for (var i = 0; i < parts.length; i++) {\n if (parts[i].indexOf(\"\".concat(key, \"=\")) > -1) {\n var target = parts[i].replace(\"\".concat(key, \"=\"), '');\n return target;\n }\n }\n return null;\n};\n//# sourceMappingURL=utils.js.map","export var defaultOptions = {\n el: '',\n appId: '',\n defaultStatus: 'accept'\n};\nexport var CLASS_NAMES = {\n container: 'cookie-opt-out-container',\n activeContainer: 'cookie-opt-out-container-active',\n activeSwitch: 'cookie-opt-out-switch-active',\n};\nexport var COOKIE_OPT_OUT_KEY = 'Website_Cookie_Opt_Out_Status';\nexport var DEFAULT_OPT_OUT_PRIVACY_BUTTON = 'Your Privacy Choices';\nexport var DEFAULT_OPT_OUT_TITLE = 'Your Privacy Choices';\nexport var DEFAULT_SAVE_BUTTON_TEXT = 'Save';\nexport var DEFAULT_OPT_OUT_DESC = {\n title: DEFAULT_OPT_OUT_TITLE,\n desc: [\n {\n text: 'The California Consumer Privacy Act (CCPA) gives consumers the right to opt-out of “sales” and “shares” of personal information. Other state privacy laws give consumers the right to opt-out of “sales” of personal information and processing of personal information for “targeted advertising” purposes. Please use the opt-out mechanisms below to effectuate these rights, as applicable.'\n },\n {\n type: 'button',\n text: 'Opt-Out of Third-Party Tracking Technologies (Slide Right)'\n },\n {\n text: 'Use this toggle to opt-out of disclosures of personal information to advertising partners via tracking technologies on this website, to the extent those disclosures are “sales,” “shares,” or for “targeted advertising” purposes.'\n },\n {\n text: 'Alternatively, you may enable the Global Privacy Control (GPC) signal to effectuate such opt-out. Learn more about GPC at www.globalprivacycontrol.org. '\n },\n {\n text: 'Your opt-out is on the browser level for each device. If you return to this website using a different browser or device, or clear your cookies after using the toggle, you will have to opt out again.'\n },\n ],\n saveBtn: DEFAULT_SAVE_BUTTON_TEXT\n};\n//# sourceMappingURL=const.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { DEFAULT_OPT_OUT_DESC, DEFAULT_OPT_OUT_PRIVACY_BUTTON, DEFAULT_OPT_OUT_TITLE, DEFAULT_SAVE_BUTTON_TEXT } from \"./const\";\nexport var renderPrivacyButton = function (buttonText) {\n if (buttonText === void 0) { buttonText = ''; }\n return (\"\\n
\\n \\n \".concat(buttonText || DEFAULT_OPT_OUT_PRIVACY_BUTTON, \"\\n
\\n \"));\n};\nexport var renderPrivacyChoicesPage = function (params) {\n if (params === void 0) { params = {}; }\n var curParams = __assign(__assign({}, DEFAULT_OPT_OUT_DESC), params);\n var _a = curParams.title, title = _a === void 0 ? '' : _a, _b = curParams.desc, desc = _b === void 0 ? [] : _b, _c = curParams.saveBtn, saveBtn = _c === void 0 ? '' : _c;\n var htmlStr = \"\\n
\\n \".concat(title || DEFAULT_OPT_OUT_TITLE, \"\\n \\n
\\n
\\n \");\n var isRenderedBtn = false;\n desc.forEach(function (curDesc) {\n if (curDesc.type === 'button' && !isRenderedBtn) {\n htmlStr += \"\\n
\\n \".concat(curDesc.text, \"\\n
\\n \\n
\\n
\\n \");\n isRenderedBtn = true;\n return;\n }\n htmlStr += \"
\".concat(curDesc.text, \"
\");\n });\n htmlStr +=\n \"\\n
\\n \\n \");\n return htmlStr;\n};\n//# sourceMappingURL=dom.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Tea } from '../../../sendLogV3/export';\nimport { logger } from '../../../logger';\nimport { getCookie, setCookie } from \"../../../cookieSDK/utils\";\nimport { getIpInfo } from \"../../utils\";\nimport { CLASS_NAMES, COOKIE_OPT_OUT_KEY, defaultOptions } from \"./const\";\nimport { renderPrivacyButton, renderPrivacyChoicesPage } from \"./dom\";\nvar OptOut = /** @class */ (function () {\n function OptOut(options, thirdScripts) {\n if (thirdScripts === void 0) { thirdScripts = []; }\n this._scripts = [];\n if (typeof options !== 'object') {\n throw { code: -1 };\n }\n this.options = Object.assign({}, defaultOptions, options);\n if (Array.isArray(thirdScripts)) {\n this._scripts = thirdScripts;\n }\n this._init();\n }\n // 获取当前状态\n OptOut.prototype._getAcceptStatus = function () {\n var _a, _b;\n var status = JSON.parse(getCookie(COOKIE_OPT_OUT_KEY) || '{}');\n var gpcStatus = (navigator === null || navigator === void 0 ? void 0 : navigator.globalPrivacyControl) === '1';\n // gpc禁止\n if (gpcStatus && !((_a = this.options) === null || _a === void 0 ? void 0 : _a.ignoreGpc)) {\n return false;\n }\n // 用户记录禁止\n if ((status === null || status === void 0 ? void 0 : status.code) === 2) {\n return false;\n }\n // 其余都用默认值\n return ((_b = this.options) === null || _b === void 0 ? void 0 : _b.defaultStatus) === 'accept';\n };\n // 触发回调\n OptOut.prototype._emitEvent = function () {\n var _a, _b;\n var isAccept = this._getAcceptStatus();\n if (!isAccept) {\n (_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.onRejectAll) === null || _b === void 0 ? void 0 : _b.call(_a);\n return;\n }\n this._acceptAll();\n };\n // 开启Cookie脚本\n OptOut.prototype._acceptAll = function () {\n var _a, _b;\n (_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.onAcceptAll) === null || _b === void 0 ? void 0 : _b.call(_a);\n this._loadThirdScripts();\n };\n // 加载脚本\n OptOut.prototype._loadThirdScripts = function () {\n if (!this._scripts.length) {\n return;\n }\n var head = document.getElementsByTagName('head')[0];\n this._scripts.forEach(function (curScript) {\n // 先插入外链\n if (Array.isArray(curScript.links)) {\n curScript.links.forEach(function (curLink) {\n var scriptLinkDom = document.createElement('script');\n scriptLinkDom.src = curLink;\n scriptLinkDom.async = true;\n head.appendChild(scriptLinkDom);\n });\n }\n // 再插入脚本\n if (curScript.script) {\n var scriptCodeDom = document.createElement('script');\n scriptCodeDom.innerHTML = curScript.script;\n head.appendChild(scriptCodeDom);\n }\n if (typeof window.CookieScriptStatus !== 'object') {\n window.CookieScriptStatus = {};\n }\n window.CookieScriptStatus[curScript.key] = true;\n });\n };\n // 渲染Opt-Out入口\n OptOut.prototype._renderEntrance = function () {\n var _this = this;\n var _a, _b;\n var el = this.options.el;\n var containerDom;\n if (typeof el === 'string') {\n containerDom = document.querySelector(el);\n }\n containerDom.innerHTML = renderPrivacyButton((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.privacyText) === null || _b === void 0 ? void 0 : _b.privacyBtn);\n var buttonDom = document.querySelector(\"#cookie-opt-out-button\");\n if (!buttonDom) {\n return;\n }\n this._renderPrivacyChoices();\n // 事件监听\n buttonDom.addEventListener('click', function () {\n // 埋点上报\n try {\n Tea.sendLogV3('acv_button_touch', { component_text: 'privacy_choice' });\n }\n catch (e) {\n logger.error('cookie-banner', 'send [privacy_choice] touch log error', e);\n }\n ;\n var containerDom = document.querySelector(\"#\".concat(CLASS_NAMES.container));\n if (!containerDom) {\n return;\n }\n try {\n Tea.sendLogV3('acv_popup', { popup_text: 'privacy' });\n }\n catch (e) {\n logger.error('cookie-banner', 'send [privacy] popup log error', e);\n }\n ;\n containerDom.classList.add(CLASS_NAMES.activeContainer);\n var isAccept = _this._getAcceptStatus();\n // 接受Cookie是置灰,不接受是高亮\n var switchBtn = document.querySelector('#cookie-opt-out-switch');\n if (!isAccept) {\n switchBtn.classList.add(CLASS_NAMES.activeSwitch);\n }\n else {\n switchBtn.classList.remove(CLASS_NAMES.activeSwitch);\n }\n });\n var textDom = buttonDom.querySelector('.cookie-opt-out-text');\n if (!textDom) {\n return;\n }\n buttonDom.addEventListener('mouseover', function () {\n textDom.style.textDecoration = 'underline';\n });\n buttonDom.addEventListener('mouseout', function () {\n textDom.style.textDecoration = 'unset';\n });\n };\n // 渲染具体的页面\n OptOut.prototype._renderPrivacyChoices = function () {\n var _this = this;\n var _a;\n var containerDom = document.createElement('div');\n containerDom.id = CLASS_NAMES.container;\n containerDom.classList.add(CLASS_NAMES.container);\n containerDom.innerHTML = renderPrivacyChoicesPage((_a = this.options) === null || _a === void 0 ? void 0 : _a.privacyText);\n containerDom.querySelector('.cookie-opt-out-close').addEventListener('click', function () {\n containerDom.classList.remove(CLASS_NAMES.activeContainer);\n });\n document.body.appendChild(containerDom);\n // 绑定事件\n var switchBtn = document.querySelector('#cookie-opt-out-switch');\n switchBtn.addEventListener('click', function () {\n var isOptOut = 1; // 1-开 0-关\n if (!switchBtn.className.includes(CLASS_NAMES.activeSwitch)) {\n switchBtn.classList.add(CLASS_NAMES.activeSwitch);\n isOptOut = 1;\n }\n else {\n switchBtn.classList.remove(CLASS_NAMES.activeSwitch);\n isOptOut = 0;\n }\n // 埋点上报\n try {\n Tea.sendLogV3('acv_privacy_status', { botton_status: isOptOut, page_text: 'privacy' });\n }\n catch (e) {\n logger.error('cookie-banner', 'send [privacy status] touch log error', e);\n }\n ;\n });\n var saveBtn = document.querySelector('#cookie-opt-out-save');\n saveBtn.addEventListener('click', function () {\n var isAccept = !switchBtn.className.includes(CLASS_NAMES.activeSwitch);\n setCookie(COOKIE_OPT_OUT_KEY, \"{\\\"status\\\": \\\"\".concat(isAccept ? 'accepted' : 'rejected', \"\\\", \\\"code\\\": \").concat(isAccept ? 1 : 2, \", \\\"time\\\": \").concat(new Date().getTime(), \"}\"));\n containerDom.classList.remove(CLASS_NAMES.activeContainer);\n _this._emitEvent();\n });\n };\n // 初始化IP\n OptOut.prototype._init = function () {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function () {\n var data;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (!!this.options.ignoreIp) return [3 /*break*/, 2];\n return [4 /*yield*/, getIpInfo(this.options.appId)];\n case 1:\n data = _c.sent();\n if (Number(data.need_compliance) === 1) {\n this._renderEntrance();\n }\n _c.label = 2;\n case 2:\n // 触发事件判断,reject or accept\n this._emitEvent();\n (_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.onInit) === null || _b === void 0 ? void 0 : _b.call(_a);\n return [2 /*return*/];\n }\n });\n });\n };\n return OptOut;\n}());\nexport { OptOut };\n//# sourceMappingURL=index.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { Tea } from '../sendLogV3/export';\nimport { logger } from '../logger';\nimport { createPortal, createBottomBanner, createSideBanner, createCookiePart } from './createDom';\nimport { getData } from './utils';\nimport { setCookie, getCookie } from '../cookieSDK/utils';\nimport { OptOut } from './module/optOut';\nvar COOKIE_KEY = 'Website_Cookie_Banner_Status';\nvar SETTING_KEY = 'Website_Cookie_Setting_Cache';\nvar CookieBanner = /** @class */ (function () {\n function CookieBanner(options) {\n var _this = this;\n var _a;\n if (!CookieBanner._instance) {\n this.options = options;\n this.bannerLock = false;\n this.settingLock = false;\n this.events = {};\n this.settingData = {};\n this.actionHistory = {};\n // 关闭setting时是否需要打开底部banner\n this.needShowBanner = true;\n CookieBanner._instance = this;\n if (this.options.needOptOut) {\n new OptOut(this.options.optOutOptions, (_a = this.options) === null || _a === void 0 ? void 0 : _a.thirdScripts);\n return;\n }\n // 创建底部banner\n this.renderDom();\n // 绑定事件\n this.addEvent();\n // 获取数据\n this.renderData(function (hasBannerDataAndShow) {\n // 显示banner\n if (_this.options.autoShowBanner !== false) {\n var status_1 = getCookie(COOKIE_KEY);\n if (!status_1) {\n console.log('[Cookie Setting]: first visit');\n if (hasBannerDataAndShow) {\n _this.showBottomBanner();\n }\n }\n else {\n var parsedStatus = JSON.parse(status_1);\n console.log('[Cookie Setting]:', parsedStatus.status);\n }\n // else {\n // let parsedStatus = JSON.parse(status);\n // let now = new Date().getTime();\n // let thirtenMonth = 13 * 30 * 24 * 60 * 60 * 1000;//超过13个月重新显示让用户接受或者拒绝\n // if ((now - parsedStatus.time) > thirtenMonth) {\n // console.log('[Cookie Setting]: time expired');\n // if (hasBannerDataAndShow) {\n // this.showBottomBanner();\n // }\n // } else {\n // console.log('[Cookie Setting]:', parsedStatus.status);\n // }\n // }\n }\n // 触发完成事件\n _this.trigger('ready');\n });\n }\n return CookieBanner._instance;\n }\n // 渲染dom\n CookieBanner.prototype.renderDom = function () {\n this.portalDom = createPortal();\n this.bottomDoms = createBottomBanner();\n this.sideDoms = createSideBanner();\n // 添加\n this.portalDom.appendChild(this.bottomDoms.wrap);\n this.portalDom.appendChild(this.sideDoms.wrap);\n };\n // 渲染获取的动态数据\n CookieBanner.prototype.renderData = function (done) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, banner, setting, isSimpleBanner, needShowBanner, bannerObject, parsed, datas, localCache, localData_1, settingDatas_1;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, getData(this.options.siteParam)];\n case 1:\n _a = _b.sent(), banner = _a.banner, setting = _a.setting;\n isSimpleBanner = false;\n needShowBanner = false;\n // 设置banner描述\n try {\n if (banner) {\n bannerObject = JSON.parse(banner.description);\n isSimpleBanner = bannerObject.isSimple;\n if (bannerObject.isSimple) {\n // 简单版本\n this.bottomDoms.isSimple = true;\n this.bottomDoms.wrap.className += ' cke_wp_simple';\n this.bottomDoms.btns.removeChild(this.bottomDoms.accept);\n this.bottomDoms.btns.removeChild(this.bottomDoms.reject);\n this.bottomDoms.btns.removeChild(this.bottomDoms.setting);\n this.bottomDoms.learnMore.setAttribute('href', bannerObject.learnMore);\n }\n else {\n // 复杂版本\n this.bottomDoms.isSimple = false;\n this.bottomDoms.btns.removeChild(this.bottomDoms.OK);\n this.bottomDoms.btns.removeChild(this.bottomDoms.learnMore);\n this.bottomDoms.inner.removeChild(this.bottomDoms.simpleTit);\n }\n parsed = bannerObject.description.replace(/\\[(.*?)\\]/ig, function (match) {\n match = match.substr(1, match.length - 2);\n match = match.split('@');\n var link = document.createElement('a');\n link.setAttribute('href', match[1] || '');\n link.setAttribute('target', '_blank');\n link.innerHTML = match[0] || '';\n return link.outerHTML;\n });\n this.bottomDoms.text.innerHTML = parsed;\n }\n }\n catch (e) {\n console.log('[cookie banner]: setting banner description error!', e);\n }\n // 设置setting内容\n try {\n if (setting) {\n datas = JSON.parse(setting.description);\n localCache = getCookie(SETTING_KEY);\n if (localCache) {\n localData_1 = JSON.parse(localCache);\n }\n settingDatas_1 = {};\n datas.types.forEach(function (it) {\n if (it.cookies) {\n it.cookies.forEach(function (ck) {\n if (localData_1) {\n // 合并本地的记录\n var local = localData_1[ck.key];\n if (local) {\n ck.enable = local.enable;\n }\n }\n settingDatas_1[ck.key] = ck;\n });\n }\n });\n this.settingData = settingDatas_1;\n // 顶部描述\n this.sideDoms.description.innerHTML = datas.description;\n // 遍历生成cookie政策\n datas.types.forEach(function (item) {\n var box = createCookiePart(item, function (_a, enable) {\n var key = _a.key;\n _this.settingData[key].enable = enable;\n // 记录操作,关闭时还原\n if (_this.actionHistory[key]) {\n _this.actionHistory[key] += 1;\n }\n else {\n _this.actionHistory[key] = 1;\n }\n });\n _this.sideDoms.content.appendChild(box.box);\n });\n }\n }\n catch (e) {\n console.log('[cookie setting]: setting cookie details error!', e);\n }\n if (isSimpleBanner) {\n needShowBanner = !!banner;\n }\n else {\n needShowBanner = (!!banner && !!setting);\n }\n if (done) {\n done(needShowBanner);\n }\n return [2 /*return*/];\n }\n });\n });\n };\n CookieBanner.prototype.addEvent = function () {\n var _this = this;\n // Cookie setting 关闭事件\n this.sideDoms.close.addEventListener('click', function () {\n _this.hideSideBanner();\n if (_this.needShowBanner) {\n setTimeout(function () {\n _this.showBottomBanner();\n }, 300);\n }\n // 还原刚刚的操作\n var switchs = _this.sideDoms.wrap.querySelectorAll('.cke_swc');\n switchs = __spreadArray([], switchs, true);\n var _loop_1 = function (key) {\n if (_this.actionHistory[key] % 2 !== 0) {\n // 改变了,取反值即为还原\n var bool = !_this.settingData[key].enable;\n _this.settingData[key].enable = bool;\n // 还原\n var target = switchs.find(function (sw) { return sw.dataset.key === key; });\n if (target.dataset.status === 'on') {\n // 关闭\n target.className = 'cke_swc cke_swc_c';\n target.dataset.status = 'off';\n }\n else {\n // 打开\n target.className = 'cke_swc cke_swc_o';\n target.dataset.status = 'on';\n }\n }\n };\n for (var key in _this.actionHistory) {\n _loop_1(key);\n }\n _this.actionHistory = {};\n });\n // Cookie setting save事件,save之后,按照用户save的细节去管控cookie,不需要再弹窗底部banner让用户accept或者reject\n // 同理 accept是接受所有cookie,reject是拒绝所有非必要的cookie,save是根据用户选择去种植cookie\n this.sideDoms.save.addEventListener('click', function () {\n // 埋点上报\n try {\n Tea.sendLogV3('acv_cookie_setting', { component_text: JSON.stringify(_this.settingData), page_text: 'cookies_setting' });\n }\n catch (e) {\n logger.error('cookie-banner', 'send [cookies_setting] log error', e);\n }\n ;\n _this.hideSideBanner();\n _this.trigger('save', __assign({}, _this.settingData));\n // 缓存一次\n setCookie(SETTING_KEY, JSON.stringify(_this.settingData));\n setCookie(COOKIE_KEY, \"{\\\"status\\\": \\\"accepted\\\", \\\"code\\\": 1, \\\"time\\\": \".concat(new Date().getTime(), \"}\"));\n _this.actionHistory = {};\n });\n // 简版-ok\n this.bottomDoms.OK.addEventListener('click', function () {\n // 埋点上报\n try {\n Tea.sendLogV3('acv_button_touch', { component_text: 'ok', page_text: 'cookies_setting' });\n }\n catch (e) {\n logger.error('cookie-banner', 'send [ok] touch log error', e);\n }\n ;\n _this.hideBottomBanner();\n setCookie(COOKIE_KEY, \"{\\\"status\\\": \\\"accepted\\\", \\\"code\\\": 1, \\\"time\\\": \".concat(new Date().getTime(), \"}\"));\n _this.trigger('ok');\n });\n // 简版learn more\n this.bottomDoms.learnMore.addEventListener('click', function () {\n _this.trigger('learnMore');\n // 埋点上报\n try {\n Tea.sendLogV3('acv_button_touch', { component_text: 'learn_more', page_text: 'cookies_setting' });\n }\n catch (e) {\n logger.error('cookie-banner', 'send [learn_more] touch log error', e);\n }\n ;\n });\n // 拒绝所有\n this.bottomDoms.reject.addEventListener('click', function () {\n // 埋点上报\n try {\n Tea.sendLogV3('acv_button_touch', { component_text: 'cookies_reject_all', page_text: 'cookies_setting' });\n }\n catch (e) {\n logger.error('cookie-banner', 'send [cookies_reject_all] touch log error', e);\n }\n ;\n _this.hideBottomBanner();\n setCookie(COOKIE_KEY, \"{\\\"status\\\": \\\"rejected\\\", \\\"code\\\": 2, \\\"time\\\": \".concat(new Date().getTime(), \"}\"));\n // 把所有选项都拒绝\n var keys = Object.keys(_this.settingData);\n keys.forEach(function (key) {\n _this.settingData[key].enable = false;\n });\n _this.changeSwitchValue();\n _this.trigger('rejectAll', __assign({}, _this.settingData));\n // 缓存一次\n setCookie(SETTING_KEY, JSON.stringify(_this.settingData));\n });\n // 接受所有\n this.bottomDoms.accept.addEventListener('click', function () {\n // 埋点上报\n try {\n Tea.sendLogV3('acv_button_touch', { component_text: 'cookies_accept_all', page_text: 'cookies_setting' });\n }\n catch (e) {\n logger.error('cookie-banner', 'send [cookies_accept_all] touch log error', e);\n }\n ;\n _this.hideBottomBanner();\n setCookie(COOKIE_KEY, \"{\\\"status\\\": \\\"accepted\\\", \\\"code\\\": 1, \\\"time\\\": \".concat(new Date().getTime(), \"}\"));\n // 把所有选项都接受\n var keys = Object.keys(_this.settingData);\n keys.forEach(function (key) {\n _this.settingData[key].enable = true;\n });\n _this.changeSwitchValue();\n _this.trigger('acceptAll', __assign({}, _this.settingData));\n // 缓存一次\n setCookie(SETTING_KEY, JSON.stringify(_this.settingData));\n });\n // Cookie Setting 点击事件\n this.bottomDoms.setting.addEventListener('click', function () {\n // 埋点上报\n try {\n Tea.sendLogV3('acv_button_touch', { component_text: 'cookies_setting' });\n }\n catch (e) {\n logger.error('cookie-banner', 'send [cookies_setting] touch log error', e);\n }\n ;\n _this.hideBottomBanner();\n setTimeout(function () {\n _this.showSideBanner();\n }, 300);\n });\n };\n CookieBanner.prototype.changeSwitchValue = function () {\n var _this = this;\n try {\n var switchs_1 = this.sideDoms.wrap.querySelectorAll('.cke_swc');\n switchs_1 = __spreadArray([], switchs_1, true);\n var settings = Object.keys(this.settingData);\n settings.forEach(function (key) {\n var target = switchs_1.find(function (sw) { return sw.dataset.key === key; });\n if (target) {\n if (_this.settingData[key].enable) {\n // 打开\n target.className = 'cke_swc cke_swc_o';\n target.dataset.status = 'on';\n }\n else {\n // 关闭\n target.className = 'cke_swc cke_swc_c';\n target.dataset.status = 'off';\n }\n }\n });\n }\n catch (_) {\n console.log('[cookie setting]: change switch value error', _);\n }\n };\n // 显示底部banner\n CookieBanner.prototype.showBottomBanner = function () {\n var _this = this;\n if (this.bannerLock) {\n return;\n }\n this.bannerLock = true;\n if (this.bottomDoms.isSimple) {\n this.bottomDoms.wrap.className = 'cke_wp cke_wp_simple';\n }\n else {\n this.bottomDoms.wrap.className = 'cke_wp';\n }\n setTimeout(function () {\n _this.bottomDoms.wrap.className += ' cke_b_s';\n _this.bannerLock = false;\n }, 10);\n };\n // 隐藏底部banner\n CookieBanner.prototype.hideBottomBanner = function () {\n var _this = this;\n if (this.bannerLock) {\n return;\n }\n this.bannerLock = true;\n if (this.bottomDoms.isSimple) {\n this.bottomDoms.wrap.className = 'cke_wp cke_wp_simple cke_b_hd';\n }\n else {\n this.bottomDoms.wrap.className = 'cke_wp cke_b_hd';\n }\n setTimeout(function () {\n if (_this.bottomDoms.isSimple) {\n _this.bottomDoms.wrap.className = 'cke_wp cke_wp_simple cke_none';\n }\n else {\n _this.bottomDoms.wrap.className = 'cke_wp cke_none';\n }\n _this.bannerLock = false;\n }, 320);\n };\n // 显示侧边banner\n CookieBanner.prototype.showSideBanner = function (needShowBanner) {\n var _this = this;\n if (needShowBanner === void 0) { needShowBanner = true; }\n if (this.settingLock) {\n return;\n }\n this.needShowBanner = needShowBanner;\n this.settingLock = true;\n this.sideDoms.wrap.className = 'cke_side';\n setTimeout(function () {\n _this.sideDoms.wrap.className += ' cke_side_s';\n _this.settingLock = false;\n }, 10);\n };\n // 隐藏侧边banner\n CookieBanner.prototype.hideSideBanner = function () {\n var _this = this;\n if (this.settingLock) {\n return;\n }\n this.settingLock = true;\n this.sideDoms.wrap.className = 'cke_side';\n setTimeout(function () {\n _this.sideDoms.wrap.className += ' cke_side_hd';\n _this.settingLock = false;\n }, 320);\n };\n // 监听事件\n CookieBanner.prototype.listen = function (event, callback) {\n if (!this.events[event]) {\n this.events[event] = [];\n }\n this.events[event].push(callback);\n };\n // 触发事件\n CookieBanner.prototype.trigger = function (event) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (this.events[event]) {\n this.events[event].forEach(function (fn) {\n if (fn && typeof fn === 'function') {\n fn.apply(void 0, args);\n }\n });\n }\n };\n // 获取配置数据\n CookieBanner.prototype.getSetting = function () {\n return this.settingData;\n };\n // 获取状态\n CookieBanner.prototype.getStatus = function () {\n var status = getCookie(COOKIE_KEY);\n if (!status) {\n return { status: 'first visit', code: 0, time: null };\n }\n return JSON.parse(status);\n };\n return CookieBanner;\n}());\nexport { CookieBanner };\n//# sourceMappingURL=index.js.map","export var defaultI18nText = {\n content: {\n 'en-US': 'We have updated our Privacy Policy to include more information about how we collect, use, and share your information as well as your rights under applicable laws. Click {$here$} to review our updated Privacy Policy.',\n 'es_ES': 'Hemos actualizado nuestra Política de Privacidad para incluir más información sobre cómo recopilamos, usamos y compartimos su información, así como sus derechos según las leyes aplicables. Haga clic {$aquí$} para revisar nuestra Política de privacidad actualizada.',\n 'de_DE': 'Wir haben unsere Datenschutzrichtlinie aktualisiert, um weitere Informationen darüber zu enthalten, wie wir Ihre Daten erfassen, verwenden und weitergeben sowie über Ihre Rechte gemäß geltendem Recht. Klicken Sie {$hier$}, um unsere aktualisierte Datenschutzrichtlinie einzusehen.',\n 'pt_BR': 'Atualizamos nossa Política de Privacidade para incluir mais informações sobre como coletamos, usamos e compartilhamos suas informações, bem como seus direitos sob as leis aplicáveis. Clique {$aqui$} para revisar nossa Política de Privacidade atualizada.',\n 'ar-AR': 'لقد قمنا بتحديث سياسة الخصوصية الخاصة بنا لتشمل المزيد من المعلومات حول كيفية جمعنا لمعلوماتك واستخدامها ومشاركتها بالإضافة إلى حقوقك بموجب القوانين المعمول بها. انقر {$هنا$} لمراجعة سياسة الخصوصية التي تم تحديثها.',\n 'fr_FR': \"Nous avons mis \\u00E0 jour notre Politique de confidentialit\\u00E9 pour y inclure plus d'informations sur la fa\\u00E7on dont nous collectons, utilisons et partageons vos informations, ainsi que sur vos droits d'apr\\u00E8s les lois applicables. Appuyez {$ici$} pour consulter la nouvelle version de notre Politique de confidentialit\\u00E9.\",\n 'id-ID': 'Kami telah memperbarui Kebijakan Privasi kami untuk menjelaskan lebih banyak mengenai cara kami mengumpulkan, menggunakan, dan membagikan informasi Anda serta hak-hak Anda berdasarkan undang-undang yang berlaku. Klik di {$sini$} untuk meninjau Kebijakan Privasi kami yang baru.',\n 'it-IT': 'Abbiamo aggiornato la nostra Informativa sulla privacy per includere maggiori informazioni su come raccogliamo, utilizziamo e condividiamo i tuoi dati nonché sui tuoi diritti ai sensi delle leggi applicabili. Fai clic {$qui$} per consultare la nostra Informativa sulla privacy aggiornata.',\n 'ja-JP': '当社はプライバシーポリシーを更新し、お客様の情報の収集、利用、共有する方法、および適用法に基づくお客様の権利に関する情報を追加しました。{$こちら$}をクリックして、最新のプライバシーポリシーをご確認ください。',\n 'ko_KR': '개인정보 처리방침을 업데이트하여 당사가 귀하의 정보를 수집, 이용, 공유하는 방식과 준거법 하에 적용되는 귀하의 권리에 대해 상세한 정보를 포함하였습니다. 업데이트된 개인정보 처리방침을 확인하려면 {$이곳$}을 클릭하세요.',\n 'nl_NL': 'We hebben ons Privacybeleid bijgewerkt om meer informatie te geven over hoe we uw gegevens verzamelen, gebruiken en delen en wat uw rechten onder de toepasselijke wetgeving zijn. Klik {$hier$} om ons bijgewerkt Privacybeleid te bekijken.',\n 'pl_PL': 'Zaktualizowaliśmy naszą Politykę prywatności, aby zawierała więcej informacji o tym, w jaki sposób gromadzimy, wykorzystujemy i udostępniamy dane użytkowników, a także o ich prawach wynikających z obowiązujących przepisów. Kliknij {$tutaj$}, aby zapoznać się z naszą zaktualizowaną Polityką prywatności.',\n 'ru_RU': 'Мы обновили политику конфиденциальности, чтобы включить в нее больше информации о том, как мы собираем, используем и делимся вашими данными, а также о ваших правах. Нажмите {$здесь$}, чтобы ознакомиться с измененной политикой конфиденциальности.',\n 'th-TH': 'เราได้อัปเดตนโยบายความเป็นส่วนตัวของเราเพื่อรวมข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่เรารวบรวม ใช้ และแบ่งปันข้อมูลของคุณ รวมถึงสิทธิ์ของคุณภายใต้กฎหมายที่บังคับใช้ {$คลิกที่นี่$}เพื่อดูนโยบายความเป็นส่วนตัวฉบับที่ปรับปรุงแล้วของเรา',\n 'tr_TR': 'Gizlilik Politikamızı, bilgilerinizi nasıl topladığımız, kullandığımız ve paylaştığımızın yanı sıra geçerli yasalar kapsamındaki haklarınız hakkında daha fazla bilgi içerecek şekilde güncelledik. Güncellenen Gizlilik Politikamızı incelemek için {$buraya$} tıklayın.',\n 'vi-VN': 'Chúng tôi vừa cập nhật Chính Sách Quyền Riêng Tư để bổ sung thêm thông tin về cách mà chúng tôi thu thập, sử dụng và chia sẻ thông tin của bạn cũng như các quyền của bạn theo luật hiện hành. Để xem chi tiết Chính Sách Quyền Riêng Tư đã cập nhật, vui lòng {$nhấn vào đây$}.',\n 'zh-CN': '我们更新了《隐私权政策》,纳入我们如何收集、使用和分享您资讯的相关资讯,以及您在适用法律下的权利。请点选{$此处$},检阅更新后的《隐私权政策》。',\n 'zh-TW': '我們更新了《隱私權政策》,納入我們如何收集、使用和分享您資訊的相關資訊,以及您在適用法律下的權利。請點選{$此處$},檢閱更新後的《隱私權政策》。'\n },\n button: {\n 'en-US': 'Got it',\n 'es_ES': 'Acepto',\n 'de_DE': 'Ich akzeptiere',\n 'pt_BR': 'entendi',\n 'ar-AR': 'حصلت عليها',\n 'fr_FR': \"D'accord\",\n 'id-ID': 'Saya mengerti',\n 'it-IT': 'Ho capito',\n 'ja-JP': 'OK',\n 'ko_KR': '알겠습니다',\n 'nl_NL': 'Begrepen',\n 'pl_PL': 'Rozumiem',\n 'ru_RU': 'Ясно',\n 'th-TH': 'เข้าใจแล้ว',\n 'tr_TR': 'Anladım',\n 'vi-VN': 'Đã rõ',\n 'zh-CN': '了解',\n 'zh-TW': '了解'\n }\n};\nexport var CLASS_NAMES = {\n activeContainer: 'privacy-update-pop-container-active'\n};\nexport var POP_BOX_ID = 'privacy-update-pop';\nexport var LOCAL_PRIVACY_UPDATE_POP = 'COOKIE_PRIVACY_UPDATE_POP';\n//# sourceMappingURL=const.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { SiteApi } from \"../siteApi\";\nimport { CLASS_NAMES, LOCAL_PRIVACY_UPDATE_POP, POP_BOX_ID } from \"./const\";\nimport { renderPrivacyPop } from \"./dom\";\nvar PrivacyUpdatePop = /** @class */ (function () {\n function PrivacyUpdatePop(options) {\n this.language = \"en-US\";\n this.needUpdatePop = false;\n if (typeof options !== \"object\") {\n return;\n }\n this.options = Object.assign({}, options);\n this._init();\n }\n // 请求内容站点获取链接\n PrivacyUpdatePop.prototype._initSiteApi = function (siteConfig, language) {\n var _a, _b, _c;\n if (language === void 0) { language = 'en-US'; }\n return __awaiter(this, void 0, void 0, function () {\n var appId, region, website, page, block, channel, siteResp, updateDate, nowDate, updateDuration, localCache;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n appId = siteConfig.appId, region = siteConfig.region, website = siteConfig.website, page = siteConfig.page, block = siteConfig.block, channel = siteConfig.channel;\n if (!this._siteApi) {\n this._siteApi = new SiteApi({\n appId: appId,\n region: region,\n language: language,\n });\n }\n return [4 /*yield*/, this._siteApi.getNews({\n website: website,\n page: page,\n block: block,\n channel: channel,\n language: language,\n })];\n case 1:\n siteResp = _d.sent();\n this.privacyUrl = ((_a = siteResp === null || siteResp === void 0 ? void 0 : siteResp[0]) === null || _a === void 0 ? void 0 : _a.url) || \"\";\n this.privacyContent = ((_b = siteResp === null || siteResp === void 0 ? void 0 : siteResp[0]) === null || _b === void 0 ? void 0 : _b.description) || \"\";\n updateDate = (_c = siteResp === null || siteResp === void 0 ? void 0 : siteResp[0]) === null || _c === void 0 ? void 0 : _c.update_at;\n nowDate = Math.floor(Date.now() / 1000);\n updateDuration = 30 * 24 * 60 * 60;\n localCache = localStorage.getItem(LOCAL_PRIVACY_UPDATE_POP);\n if (nowDate > updateDate && nowDate - updateDate < updateDuration && !localCache) {\n this.needUpdatePop = true;\n }\n return [2 /*return*/];\n }\n });\n });\n };\n // 渲染弹窗内容\n PrivacyUpdatePop.prototype._render = function () {\n var _a, _b, _c, _d;\n return __awaiter(this, void 0, void 0, function () {\n var _e, language, siteConfig, popBoxDom;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n _e = this.options, language = _e.language, siteConfig = _e.siteConfig;\n if (!siteConfig || typeof siteConfig !== \"object\") {\n return [2 /*return*/];\n }\n return [4 /*yield*/, this._initSiteApi(siteConfig, language)];\n case 1:\n _f.sent();\n if (!this.needUpdatePop) {\n (_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.onInit) === null || _b === void 0 ? void 0 : _b.call(_a, this);\n return [2 /*return*/];\n }\n popBoxDom = document.querySelector(\"#\".concat(POP_BOX_ID));\n if (!popBoxDom) {\n popBoxDom = document.createElement('div');\n popBoxDom.id = POP_BOX_ID;\n document.body.appendChild(popBoxDom);\n }\n popBoxDom.innerHTML = renderPrivacyPop({\n language: language,\n url: this.privacyUrl,\n content: this.privacyContent,\n });\n this._addEvent();\n (_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.onInit) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n return [2 /*return*/];\n }\n });\n });\n };\n // 添加事件\n PrivacyUpdatePop.prototype._addEvent = function () {\n var buttonDom = document.querySelector('#privacy-update-pop-button');\n var containerDom = document.querySelector('#privacy-update-pop-container');\n if (!containerDom.className.includes(CLASS_NAMES.activeContainer)) {\n containerDom.classList.add(CLASS_NAMES.activeContainer);\n }\n var closePop = function () {\n containerDom.classList.remove(CLASS_NAMES.activeContainer);\n localStorage.setItem(LOCAL_PRIVACY_UPDATE_POP, '1');\n };\n buttonDom.addEventListener('click', closePop);\n };\n PrivacyUpdatePop.prototype._init = function () {\n this._render();\n };\n return PrivacyUpdatePop;\n}());\nexport { PrivacyUpdatePop };\n//# sourceMappingURL=index.js.map","import { defaultI18nText } from \"./const\";\nexport var renderPrivacyPop = function (_a) {\n var _b = _a.language, language = _b === void 0 ? 'en-US' : _b, _c = _a.url, url = _c === void 0 ? '' : _c, _d = _a.content, content = _d === void 0 ? '' : _d;\n if (!content && !url) {\n console.log('[content]', content, url);\n return;\n }\n var pattern = /{\\$(.*)\\$}/;\n var renderText = content ? content : defaultI18nText.content[language];\n var matches = renderText.match(pattern);\n if (Array.isArray(matches)) {\n var replaceText = matches[0];\n var content_1 = matches[1];\n renderText = renderText.replace(replaceText, \"\").concat(content_1, \"\"));\n }\n return (\"\\n
\\n
\\n \".concat(renderText, \"\\n
\\n
\\n \").concat(defaultI18nText.button[language], \"\\n
\\n
\\n \"));\n};\n//# sourceMappingURL=dom.js.map"],"sourceRoot":""}