{
  "version": 3,
  "sources": ["../../../javascript/dashboard/app.js"],
  "sourcesContent": ["// \u9996\u9801\u529F\u80FD\u521D\u59CB\u5316\n$(document).ready(function() {\n  // \u521D\u59CB\u5316\u9996\u9801\u5F48\u51FA\u8996\u7A97\n  initPopupModal();\n});\n\n/**\n * \u521D\u59CB\u5316\u9996\u9801\u5F48\u51FA\u8996\u7A97\n * \u6839\u64DA\u986F\u793A\u983B\u7387\u8A2D\u5B9A\uFF0C\u6C7A\u5B9A\u662F\u5426\u986F\u793A\u5F48\u51FA\u8996\u7A97\n */\nfunction initPopupModal() {\n  // \u6AA2\u67E5\u662F\u5426\u6709\u5F48\u51FA\u8996\u7A97\u8A2D\u5B9A\n  if (typeof window.popupModalConfig === 'undefined' || !window.popupModalConfig) {\n    return;\n  }\n\n  const config = window.popupModalConfig;\n  const storageKey = config.storage_key;\n  const frequency = config.display_frequency;\n\n  // \u6839\u64DA\u986F\u793A\u983B\u7387\u5224\u65B7\u662F\u5426\u61C9\u8A72\u986F\u793A\n  if (shouldShowPopup(storageKey, frequency)) {\n    // \u5EF6\u9072 500ms \u5F8C\u986F\u793A\uFF0C\u8B93\u9801\u9762\u5148\u8F09\u5165\u5B8C\u6210\n    setTimeout(function() {\n      showPopupModal(storageKey, frequency);\n    }, 500);\n  }\n}\n\n/**\n * \u5224\u65B7\u662F\u5426\u61C9\u8A72\u986F\u793A\u5F48\u51FA\u8996\u7A97\n * @param {string} storageKey - \u5132\u5B58\u9375\n * @param {string} frequency - \u986F\u793A\u983B\u7387\uFF08every_visit, per_session, once_only\uFF09\n * @returns {boolean}\n */\nfunction shouldShowPopup(storageKey, frequency) {\n  switch (frequency) {\n    case 'every_visit':\n      // \u6BCF\u6B21\u9032\u5165\u90FD\u986F\u793A\n      return true;\n\n    case 'per_session':\n      // \u6BCF\u5DE5\u4F5C\u968E\u6BB5\u986F\u793A\u4E00\u6B21\uFF08\u4F7F\u7528 sessionStorage\uFF09\n      return !sessionStorage.getItem(storageKey);\n\n    case 'once_only':\n      // \u53EA\u986F\u793A\u4E00\u6B21\uFF08\u4F7F\u7528 localStorage\uFF09\n      return !localStorage.getItem(storageKey);\n\n    default:\n      return true;\n  }\n}\n\n/**\n * \u986F\u793A\u5F48\u51FA\u8996\u7A97\u4E26\u8A18\u9304\u72C0\u614B\n * @param {string} storageKey - \u5132\u5B58\u9375\n * @param {string} frequency - \u986F\u793A\u983B\u7387\n */\nfunction showPopupModal(storageKey, frequency) {\n  const modal = $('#homePopupModal');\n\n  if (modal.length === 0) {\n    return;\n  }\n\n  // \u986F\u793A Modal\n  modal.modal('show');\n\n  // \u6839\u64DA\u983B\u7387\u8A18\u9304\u5DF2\u986F\u793A\u72C0\u614B\n  recordPopupShown(storageKey, frequency);\n}\n\n/**\n * \u8A18\u9304\u5F48\u51FA\u8996\u7A97\u5DF2\u986F\u793A\n * @param {string} storageKey - \u5132\u5B58\u9375\n * @param {string} frequency - \u986F\u793A\u983B\u7387\n */\nfunction recordPopupShown(storageKey, frequency) {\n  const timestamp = new Date().toISOString();\n\n  switch (frequency) {\n    case 'per_session':\n      sessionStorage.setItem(storageKey, timestamp);\n      break;\n\n    case 'once_only':\n      localStorage.setItem(storageKey, timestamp);\n      break;\n\n    // every_visit \u4E0D\u9700\u8A18\u9304\n  }\n}\n\n/**\n * \u6E05\u9664\u5F48\u51FA\u8996\u7A97\u8A18\u9304\uFF08\u4F9B\u6E2C\u8A66\u6216\u7BA1\u7406\u7528\uFF09\n * @param {string} storageKey - \u5132\u5B58\u9375\n */\nfunction clearPopupRecord(storageKey) {\n  sessionStorage.removeItem(storageKey);\n  localStorage.removeItem(storageKey);\n}\n\n// \u66B4\u9732\u7D66\u5168\u57DF\uFF08\u4F9B\u958B\u767C\u8005\u5DE5\u5177\u6E2C\u8A66\uFF09\nwindow.clearPopupRecord = clearPopupRecord;\n"],
  "mappings": ";;AACA,IAAE,QAAQ,EAAE,MAAM,WAAW;AAE3B,mBAAe;AAAA,EACjB,CAAC;AAMD,WAAS,iBAAiB;AAExB,QAAI,OAAO,OAAO,qBAAqB,eAAe,CAAC,OAAO,kBAAkB;AAC9E;AAAA,IACF;AAEA,UAAM,SAAS,OAAO;AACtB,UAAM,aAAa,OAAO;AAC1B,UAAM,YAAY,OAAO;AAGzB,QAAI,gBAAgB,YAAY,SAAS,GAAG;AAE1C,iBAAW,WAAW;AACpB,uBAAe,YAAY,SAAS;AAAA,MACtC,GAAG,GAAG;AAAA,IACR;AAAA,EACF;AAQA,WAAS,gBAAgB,YAAY,WAAW;AAC9C,YAAQ,WAAW;AAAA,MACjB,KAAK;AAEH,eAAO;AAAA,MAET,KAAK;AAEH,eAAO,CAAC,eAAe,QAAQ,UAAU;AAAA,MAE3C,KAAK;AAEH,eAAO,CAAC,aAAa,QAAQ,UAAU;AAAA,MAEzC;AACE,eAAO;AAAA,IACX;AAAA,EACF;AAOA,WAAS,eAAe,YAAY,WAAW;AAC7C,UAAM,QAAQ,EAAE,iBAAiB;AAEjC,QAAI,MAAM,WAAW,GAAG;AACtB;AAAA,IACF;AAGA,UAAM,MAAM,MAAM;AAGlB,qBAAiB,YAAY,SAAS;AAAA,EACxC;AAOA,WAAS,iBAAiB,YAAY,WAAW;AAC/C,UAAM,aAAY,oBAAI,KAAK,GAAE,YAAY;AAEzC,YAAQ,WAAW;AAAA,MACjB,KAAK;AACH,uBAAe,QAAQ,YAAY,SAAS;AAC5C;AAAA,MAEF,KAAK;AACH,qBAAa,QAAQ,YAAY,SAAS;AAC1C;AAAA,IAGJ;AAAA,EACF;AAMA,WAAS,iBAAiB,YAAY;AACpC,mBAAe,WAAW,UAAU;AACpC,iBAAa,WAAW,UAAU;AAAA,EACpC;AAGA,SAAO,mBAAmB;",
  "names": []
}
