{"version":3,"file":"ResponsiveSplitViewV3.BCJO2kHR.mjs","names":["useMemo","useMemo"],"sources":["https:/asset.29cm.co.kr/contents/framer/components/modules/TagsModule/TagsModule.types.js","https:/asset.29cm.co.kr/contents/framer/components/modules/TagsModule/TagsElement/TagsElement.js","https:/asset.29cm.co.kr/contents/framer/apis/brand-curation/BrandCurationApiService.js","https:/asset.29cm.co.kr/contents/framer/components/modules/utils/facet.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/CouponCollection/CalendarTags/CalendarTags.utils.js","https:/asset.29cm.co.kr/contents/framer/components/modules/TagsModule/TagsModule.utils.js","https:/asset.29cm.co.kr/contents/framer/components/modules/TagsModule/TagsModule.hooks.js","https:/asset.29cm.co.kr/contents/framer/components/modules/TagsModule/AutoTagsModule/AutoTagsModule.js","https:/asset.29cm.co.kr/contents/framer/components/modules/TagsModule/TagsModule.controls.js","https:/asset.29cm.co.kr/contents/framer/components/modules/TagsModule/LinkedTagsModule/LinkedTagsModule.utils.js","https:/asset.29cm.co.kr/contents/framer/components/modules/TagsModule/LinkedTagsModule/LinkedTagsModule.js","https:/asset.29cm.co.kr/contents/framer/components/modules/TagsModule/TagsModule.js","https:/framerusercontent.com/modules/LcoSbbUQzAWYrkTx3Hyi/yfr8qKY2xRRK7cInEyBA/TagsModule.js","https:/asset.29cm.co.kr/contents/framer/components/systems/ResponsiveSplitViewV3/styles.js","https:/asset.29cm.co.kr/contents/framer/components/systems/ResponsiveSplitViewV3/ResponsiveSplitViewV3.module.css.js","https:/asset.29cm.co.kr/contents/framer/components/systems/ResponsiveSplitViewV3/ResponsiveSplitViewV3.js","https:/framerusercontent.com/modules/W3Ib2Q0f07Q4Jeo4gvQX/21plAEjv0qLJi4obVD9A/ResponsiveSplitViewV3.js"],"sourcesContent":["var TagsModuleInputType = /* @__PURE__ */ ((TagsModuleInputType2) => {\n  TagsModuleInputType2[TagsModuleInputType2[\"Linked\"] = 0] = \"Linked\";\n  TagsModuleInputType2[TagsModuleInputType2[\"Manual\"] = 1] = \"Manual\";\n  TagsModuleInputType2[TagsModuleInputType2[\"Auto\"] = 2] = \"Auto\";\n  return TagsModuleInputType2;\n})(TagsModuleInputType || {});\nexport {\n  TagsModuleInputType\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { useMemo, useEffect } from \"react\";\nimport { useQueryStore } from \"../../query-store/query.store.js\";\nimport { Tags } from \"../../../systems/curations/Tags/index.js\";\nimport { useTrackClickButtonEvent, useSetRootModule } from \"../../hooks.js\";\nimport { EventTrigger } from \"../../../@shared/EventTrigger/index.js\";\nimport { getPadding } from \"../../../../utils/spacing.js\";\nimport { useSegment } from \"../../../@shared/providers/SegmentProvider/SegmentProvider.js\";\nconst TagsElement = ({\n  loading = false,\n  currentIndex = 0,\n  inputs: _inputs,\n  output,\n  layout\n}) => {\n  const dispatchSetQuery = useQueryStore((state) => state.dispatchSetQuery);\n  const inputs = useMemo(() => attachAdditionalQuery(_inputs, output), [_inputs, output]);\n  const currentInput = inputs[currentIndex];\n  const {\n    isVisible\n  } = useSegment();\n  const trackClickButtonEvent = useTrackClickButtonEvent(currentInput == null ? void 0 : currentInput.query);\n  const handleClick = (index, name = \"\") => () => {\n    trackClickButtonEvent({\n      type: \"tag\",\n      layoutPosition: index + 1,\n      name\n    });\n  };\n  const handleValueChange = (value) => {\n    if (!output) {\n      return;\n    }\n    const index = Number(value);\n    const input = inputs[index];\n    dispatchSetQuery(output, input.query);\n  };\n  useEffect(() => {\n    window == null ? void 0 : window.dispatchEvent(new CustomEvent(\"layout-done\"));\n    if (!currentInput) {\n      return;\n    }\n    if (!output) {\n      return;\n    }\n    dispatchSetQuery(output, currentInput.query);\n  }, [output, currentInput]);\n  useSetRootModule(currentInput == null ? void 0 : currentInput.query, output);\n  const padding = getPadding(layout);\n  if (!loading && inputs.length === 0 || !isVisible) {\n    window == null ? void 0 : window.dispatchEvent(new CustomEvent(\"layout-done\"));\n    return null;\n  }\n  return /* @__PURE__ */ jsx(Tags.Root, { loading, defaultValue: 0, value: currentIndex, dragPaddingLeft: padding.left, dragPaddingRight: padding.right, onValueChange: handleValueChange, children: /* @__PURE__ */ jsx(Tags.List, { style: {\n    margin: 0,\n    paddingTop: padding.top,\n    paddingBottom: padding.bottom,\n    lineHeight: 0\n  }, list: inputs, children: ({\n    item,\n    index\n  }) => /* @__PURE__ */ jsx(EventTrigger.Target, { onClick: handleClick(index, item == null ? void 0 : item.label), children: /* @__PURE__ */ jsx(Tags.Item, { value: index, children: item == null ? void 0 : item.label }) }) }) });\n};\nconst attachAdditionalQuery = (values, output) => {\n  return values.map((value, index) => ({\n    ...value,\n    query: {\n      ...value.query,\n      facetName: value.label,\n      keys: [...value.query.keys ?? [], `tags-${index}`],\n      isRoot: value.query.rootOutput === void 0,\n      rootOutput: value.query.rootOutput || output\n    }\n  }));\n};\nexport {\n  TagsElement\n};\n","import { env } from \"../../config/index.js\";\nimport { throwFailError } from \"../@middlewares/throwFailError.js\";\nimport { APIService } from \"../APIService.js\";\nclass BrandCurationApiService extends APIService {\n  constructor() {\n    super();\n    this.setMiddleware(throwFailError);\n  }\n  async getFavoriteBrands({\n    size,\n    brandGroupIds\n  }) {\n    return this.get(`${env.api.content}/api/v4/framers/proxy/content-api/api/v5/brand-curations/favorite`, {\n      size,\n      brandGroupIds\n    });\n  }\n}\nconst brandCurationApi = new BrandCurationApiService();\nexport {\n  brandCurationApi\n};\n","import { CategoryType } from \"../types.js\";\nconst CATEGORY_MIN_PRODUCT_COUNT = 12;\nconst mergeByLargeCategories = (values, excludeCategories) => {\n  const map = values.reduce(\n    (prev, curr) => {\n      const {\n        count = 0,\n        children = []\n      } = prev[curr.largeId] ?? {};\n      if (excludeCategories.largeIds.includes(curr.largeId)) {\n        return prev;\n      }\n      return {\n        ...prev,\n        [curr.largeId]: {\n          id: curr.largeId,\n          name: curr.largeName,\n          count: count + curr.count,\n          children: concatMiddleCategories(children, curr, excludeCategories.middleIds)\n        }\n      };\n    },\n    // 중복 카테고리를 솎아내기 쉽도록 카테고리 id 가 key 인 객체로 정의한다.\n    {}\n  );\n  return Object.values(map);\n};\nconst concatMiddleCategories = (categories, value, excludeMiddleCategoryIds) => {\n  if (!value.middleId || !value.middleName || excludeMiddleCategoryIds.includes(value.middleId)) {\n    return categories;\n  }\n  const has = categories.findIndex((category) => category.id === value.middleId) !== -1;\n  return has ? categories : [...categories, {\n    id: value.middleId,\n    name: value.middleName,\n    parentId: value.largeId\n  }];\n};\nconst filterByOverMinProductCount = (values) => {\n  return values.filter(({\n    count = 0\n  }) => count >= CATEGORY_MIN_PRODUCT_COUNT);\n};\nconst orderByGender = (values, matcher, gender) => {\n  const oppositeGender = getOppositeGender(gender);\n  return [...values].sort((x, y) => (\n    // 현재 성별을 우선적으로 검사하여 해당되는 카테고리를 앞으로 보낸다.\n    matcher(y, gender) - matcher(x, gender) || // 현재 성별과 반대되는 성별을 기준으로 검사하여 해당되는 카테고리를 뒤로 보낸다.\n    matcher(x, oppositeGender) - matcher(y, oppositeGender)\n  ));\n};\nconst getOppositeGender = (gender) => {\n  return gender === \"F\" ? \"M\" : \"F\";\n};\nconst isGenderCategoryMatches = (value, gender) => {\n  return Number(value.name.includes(gender === \"F\" ? \"여성\" : \"남성\"));\n};\nconst isGenderProductGroupMatches = (value, gender) => {\n  return Number(value.gender === gender);\n};\nconst reshapeCategoryFacetValues = (values, options) => {\n  const {\n    categoryType,\n    gender,\n    excludeCategories\n  } = options;\n  const categories = orderByGender(filterByOverMinProductCount(mergeByLargeCategories(values, excludeCategories)), isGenderCategoryMatches, gender);\n  switch (categoryType) {\n    case CategoryType.Large:\n      return categories;\n    case CategoryType.Middle:\n      return categories.flatMap((category) => category.children ?? []);\n  }\n};\nexport {\n  filterByOverMinProductCount,\n  isGenderCategoryMatches,\n  isGenderProductGroupMatches,\n  mergeByLargeCategories,\n  orderByGender,\n  reshapeCategoryFacetValues\n};\n","import { createKRTimeZoneDate } from \"../../../../../utils/createUTCDate.js\";\nimport { isAbove } from \"../../../../../utils/date.js\";\nimport { ko } from \"../../../../../node_modules/date-fns/locale/ko.js\";\nimport { isWithinInterval } from \"../../../../../node_modules/date-fns/isWithinInterval.js\";\nimport { formatDate as format } from \"../../../../../node_modules/date-fns/format.js\";\nconst getCurrentBrandSaleIndex = (brandSaleList) => {\n  const now = createKRTimeZoneDate();\n  const currentIndex = brandSaleList.findIndex((brandSale, index) => {\n    const nextInterval = brandSaleList[index + 1];\n    const hasNext = nextInterval !== void 0;\n    const start = new Date(brandSale.displayStartAt);\n    const end = new Date(brandSale.displayEndAt);\n    const isWithin = hasNext && isWithinInterval(now, {\n      start,\n      end\n    });\n    const isLast = !hasNext && isAbove(now, start);\n    return isWithin || isLast;\n  });\n  return currentIndex === -1 ? void 0 : currentIndex;\n};\nconst getCalendarTagName = ({\n  displayStartAt\n}) => {\n  return format(displayStartAt, \"M. d eeeee\", {\n    locale: ko\n  });\n};\nexport {\n  getCalendarTagName,\n  getCurrentBrandSaleIndex\n};\n","import { getProductGroupType } from \"../../systems/KeywordCollection/KeywordCollectionTags/KeywordCollectionTags.utils.js\";\nimport { reshapeProductGroups } from \"../../systems/curations/KeywordCollectionV2/TimeSaleCollection.utils.js\";\nimport { orderByDateAsc, getCurrentScheduleIndex } from \"../../../utils/date.js\";\nimport { getCalendarTagName, getCurrentBrandSaleIndex } from \"../../systems/curations/CouponCollection/CalendarTags/CalendarTags.utils.js\";\nimport { orderByGender, isGenderProductGroupMatches } from \"../utils/facet.js\";\nconst GENDER_PREFIX = \"GENDER@\";\nconst GENDER_SEPARATOR = \":\";\nconst reshapeProductGroupsByGender = (groups) => groups.map((group) => {\n  const [gender, title] = group.title.replace(GENDER_PREFIX, \"\").trim().split(GENDER_SEPARATOR);\n  return {\n    ...group,\n    title: group.title.includes(GENDER_PREFIX) ? title : group.title,\n    gender\n  };\n});\nconst getKeywordCollectionTagsResult = (query, userSegment) => {\n  const {\n    displayEndAt,\n    productGroups = []\n  } = query;\n  const type = getProductGroupType(productGroups);\n  if (type === \"DATE\") {\n    const groups = orderByDateAsc(reshapeProductGroups(productGroups, displayEndAt ?? \"\"), (x) => x.startAt);\n    const currentIndex = getCurrentScheduleIndex(groups, (x) => x.startAt, (x) => x.endAt);\n    return {\n      values: groups.map((group, index) => ({\n        label: group.title,\n        query: {\n          ...query,\n          selectedProductGroup: {\n            id: group.productGroupId,\n            index,\n            sort: group.sort,\n            startAt: group.startAt,\n            endAt: group.endAt\n          }\n        }\n      })),\n      currentIndex\n    };\n  }\n  if (type === \"GENDER\") {\n    const gender = userSegment.gender ?? \"F\";\n    const groups = orderByGender(reshapeProductGroupsByGender(productGroups), isGenderProductGroupMatches, gender);\n    return {\n      values: groups.map((group, index) => ({\n        label: group.title,\n        query: {\n          ...query,\n          selectedProductGroup: {\n            id: group.productGroupId,\n            sort: group.sort,\n            index\n          }\n        }\n      }))\n    };\n  }\n  return {\n    values: productGroups.map((group, index) => ({\n      label: group.title,\n      query: {\n        ...query,\n        selectedProductGroup: {\n          id: group.productGroupId,\n          index,\n          sort: group.sort\n        }\n      }\n    }))\n  };\n};\nconst getCouponCollectionTagsResult = (query) => {\n  const {\n    brandSales = []\n  } = query;\n  const values = brandSales.map((brandSale, index) => ({\n    label: getCalendarTagName(brandSale),\n    query: {\n      ...query,\n      brandSaleId: brandSale.brandSaleId,\n      index,\n      displayStartAt: brandSale.displayStartAt,\n      displayEndAt: brandSale.displayEndAt\n    }\n  }));\n  const currentIndex = getCurrentBrandSaleIndex(brandSales);\n  return {\n    values,\n    currentIndex\n  };\n};\nexport {\n  getCouponCollectionTagsResult,\n  getKeywordCollectionTagsResult,\n  reshapeProductGroupsByGender\n};\n","import useSWR from \"../../../node_modules/swr/core/dist/index.js\";\nimport { bestApi } from \"../../../apis/best/BestApiService.js\";\nimport { brandCurationApi } from \"../../../apis/brand-curation/BrandCurationApiService.js\";\nimport { brandSaleApi } from \"../../../apis/brand-sale/BrandSaleApiService.js\";\nimport { collectionApi } from \"../../../apis/collection/CollectionApiService.js\";\nimport { keywordCollectionApi } from \"../../../apis/keyword-collections/KeywordCollectionApiService.js\";\nimport { formatSchedule } from \"../../systems/curations/KeywordCollectionV2/TimeSaleCollectionTags/TimeSaleCollectionTags.utils.js\";\nimport { orderByDateAsc, getCurrentScheduleIndex } from \"../../../utils/date.js\";\nimport { splitToNumberArray } from \"../../../utils/splitToNumberArray.js\";\nimport { QueryType, CategoryType, RankingType } from \"../types.js\";\nimport { reshapeCategoryFacetValues } from \"../utils/facet.js\";\nimport { getKeywordCollectionTagsResult, getCouponCollectionTagsResult } from \"./TagsModule.utils.js\";\nconst TAGS_FETCHER_KEY = \"tags-module/tags\";\nconst useTagsQuery = (options) => {\n  const {\n    enabled: _enabled = true,\n    query,\n    userSegment\n  } = options;\n  const enabled = _enabled && query !== void 0;\n  const {\n    data,\n    isLoading,\n    ...rest\n  } = useSWR(enabled ? [TAGS_FETCHER_KEY, query] : null, () => queryTags(query, userSegment));\n  const {\n    values = [],\n    currentIndex\n  } = data ?? {};\n  const hasTags = values.length > 0;\n  return {\n    isLoading: isLoading || !enabled || !hasTags,\n    tags: values,\n    currentIndex,\n    ...rest\n  };\n};\nconst fetchKeywordCollectionTags = async (query, userSegment) => {\n  if (!query.keywordCollectionId) {\n    return {\n      values: []\n    };\n  }\n  const {\n    data\n  } = await keywordCollectionApi.getKeywordCollection(Number(query.keywordCollectionId));\n  const {\n    title,\n    description,\n    displayEndAt,\n    productGroups\n  } = data;\n  return getKeywordCollectionTagsResult({\n    ...query,\n    title,\n    description: description ?? void 0,\n    displayEndAt: displayEndAt ?? void 0,\n    couponId: data.couponId ?? void 0,\n    productGroups\n  }, userSegment);\n};\nconst fetchKeywordCollectionsTags = async (query) => {\n  if (!query.keywordCollectionIds) {\n    return {\n      values: []\n    };\n  }\n  const {\n    data\n  } = await collectionApi.getCollections(splitToNumberArray(query.keywordCollectionIds));\n  const collections = orderByDateAsc(data, (x) => x.displayStartAt);\n  const currentIndex = getCurrentScheduleIndex(collections, (current) => current.displayStartAt, (_, next) => next == null ? void 0 : next.displayStartAt);\n  return {\n    values: collections.map((collection) => {\n      const {\n        collectionId,\n        title,\n        description,\n        displayStartAt,\n        displayEndAt,\n        productGroupList,\n        couponId\n      } = collection;\n      const [firstProductGroup] = productGroupList;\n      return {\n        label: formatSchedule(displayStartAt),\n        query: {\n          // NOTE(임규민): 다중 키워드 컬렉션의 개별 요소는 결국 키워드 컬렉션이므로, 연결되는 모듈에서 KeywordCollectionQuery 로 식별되도록 한다.\n          type: QueryType.KeywordCollection,\n          keywordCollectionId: `${collectionId}`,\n          title,\n          description: description ?? void 0,\n          displayEndAt: displayEndAt ?? void 0,\n          couponId: couponId ?? void 0,\n          productGroups: productGroupList.map((group) => ({\n            productGroupId: group.collectionProductGroupId,\n            title: group.title,\n            sort: group.sort\n          })),\n          selectedProductGroup: {\n            id: firstProductGroup.collectionProductGroupId,\n            sort: firstProductGroup.sort,\n            index: 0\n          }\n        }\n      };\n    }),\n    currentIndex\n  };\n};\nconst fetchBrandCurationTags = async (query) => {\n  if (!query.brandGroupIds) {\n    return {\n      values: []\n    };\n  }\n  const brandGroupIds = splitToNumberArray(query.brandGroupIds).join(\",\");\n  const {\n    data\n  } = await brandCurationApi.getFavoriteBrands({\n    size: query.brandSize,\n    brandGroupIds\n  });\n  const values = data.frontBrands.map((brand) => ({\n    label: brand.nameKor,\n    query: {\n      ...query,\n      brandId: brand.frontBrandId\n    }\n  }));\n  return {\n    values\n  };\n};\nconst fetchRankingTags = async (query, userSegment) => {\n  if (!query.rankingTagIds) {\n    return {\n      values: []\n    };\n  }\n  const tagIds = splitToNumberArray(query.rankingTagIds);\n  const {\n    data\n  } = await bestApi.getPLPFacetGroup({\n    facetGroupInput: {\n      tagFacetInputs: tagIds.map((tagId) => ({\n        tagId\n      }))\n    }\n  });\n  const gender = userSegment.gender ?? \"F\";\n  const categories = reshapeCategoryFacetValues(data.categoryFacet.values, {\n    categoryType: query.categoryType,\n    gender,\n    excludeCategories: {\n      largeIds: splitToNumberArray(query.excludeLargeCategoryIds),\n      middleIds: splitToNumberArray(query.excludeMiddleCategoryIds)\n    }\n  });\n  const inputs = categories.map((category) => {\n    const categoryProperties = {\n      [CategoryType.Large]: {\n        largeCategoryId: category.id\n      },\n      [CategoryType.Middle]: {\n        largeCategoryId: category.parentId,\n        middleCategoryId: category.id\n      }\n    };\n    return {\n      label: category.name,\n      query: {\n        ...query,\n        ...categoryProperties[query.categoryType],\n        childCategories: category.children ?? []\n      }\n    };\n  });\n  const allCategory = {\n    label: \"전체\",\n    query\n  };\n  const isTrending = query.rankingType === RankingType.Trending;\n  return {\n    values: isTrending ? [allCategory, ...inputs] : inputs\n  };\n};\nconst fetchCouponCollectionTags = async (query) => {\n  if (!query.brandSaleGroupId) {\n    return {\n      values: []\n    };\n  }\n  const {\n    data\n  } = await brandSaleApi.getBrandSaleGroup(Number(query.brandSaleGroupId));\n  const {\n    title,\n    description,\n    brandSaleList\n  } = data;\n  return getCouponCollectionTagsResult({\n    ...query,\n    title,\n    description: description ?? void 0,\n    brandSales: brandSaleList\n  });\n};\nconst queryTags = (query, userSegment) => {\n  if (!query) {\n    return {\n      values: []\n    };\n  }\n  switch (query.type) {\n    case QueryType.KeywordCollection:\n      return fetchKeywordCollectionTags(query, userSegment);\n    case QueryType.KeywordCollections:\n      return fetchKeywordCollectionsTags(query);\n    case QueryType.BrandCuration:\n      return fetchBrandCurationTags(query);\n    case QueryType.Ranking:\n      return fetchRankingTags(query, userSegment);\n    case QueryType.CouponCollection:\n      return fetchCouponCollectionTags(query);\n    default:\n      return {\n        values: []\n      };\n  }\n};\nexport {\n  useTagsQuery\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { useSegment } from \"../../../@shared/providers/SegmentProvider/SegmentProvider.js\";\nimport \"../../../systems/curations/IntersectionProvider/IntersectionProvider.js\";\nimport { useIntersectionContext } from \"../../../systems/curations/IntersectionProvider/IntersectionProvider.hooks.js\";\nimport \"react\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport { useCurrentUser } from \"../../../../hooks/useCurrentUser.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../apis/highlight-products/HighlightProductsApiService.js\";\nimport \"../../../../apis/brand-mix/BrandMixApiService.js\";\nimport \"../../../../apis/one-brand-days/OneBrandDaysApiService.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../apis/user/UserApiService.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport \"../../../@shared/providers/ThemeProvider/ThemeProvider.js\";\nimport \"../../../@shared/providers/BreakpointProvider/BreakpointProvider.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../../systems/Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../../hooks/useFeatureFlag.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { TagsElement } from \"../TagsElement/TagsElement.js\";\nimport { useTagsQuery } from \"../TagsModule.hooks.js\";\nconst AutoTagsModule = ({\n  query,\n  output,\n  layout\n}) => {\n  const {\n    isInView\n  } = useIntersectionContext();\n  const {\n    isVisible\n  } = useSegment();\n  const user = useCurrentUser();\n  const {\n    isLoading,\n    tags,\n    currentIndex\n  } = useTagsQuery({\n    query,\n    userSegment: user,\n    enabled: isInView && isVisible\n  });\n  return /* @__PURE__ */ jsx(TagsElement, { loading: isLoading, currentIndex, inputs: tags, output, layout });\n};\nexport {\n  AutoTagsModule\n};\n","import { combineObjectPropertyControls } from \"../../../libs/property-controls/helpers.js\";\nimport { QUERY_CONTROL, COUPON_COLLECTION_CONTROLS, RANKING_CONTROLS, BRAND_CURATION_CONTROLS, KEYWORD_COLLECTIONS_CONTROLS, KEYWORD_COLLECTION_CONTROLS, RECOMMENDATION_CONTROLS, PRODUCT_CONTROLS } from \"../controls.js\";\nconst AUTO_TAGS_MODULE_QUERY = {\n  ...QUERY_CONTROL,\n  controls: combineObjectPropertyControls(KEYWORD_COLLECTION_CONTROLS, KEYWORD_COLLECTIONS_CONTROLS, BRAND_CURATION_CONTROLS, RANKING_CONTROLS, COUPON_COLLECTION_CONTROLS)\n};\nconst MANUAL_TAGS_MODULE_QUERY = {\n  ...QUERY_CONTROL,\n  controls: combineObjectPropertyControls(PRODUCT_CONTROLS, RECOMMENDATION_CONTROLS)\n};\nexport {\n  AUTO_TAGS_MODULE_QUERY,\n  MANUAL_TAGS_MODULE_QUERY\n};\n","import { QueryType } from \"../../types.js\";\nimport { getKeywordCollectionTagsResult, getCouponCollectionTagsResult } from \"../TagsModule.utils.js\";\nconst getKeywordCollectionTags = (query, userSegment) => {\n  if (query.productGroups === void 0) {\n    return {\n      values: []\n    };\n  }\n  return getKeywordCollectionTagsResult(query, userSegment);\n};\nconst getCouponCollectionTags = (query) => {\n  if (query.brandSales === void 0) {\n    return {\n      values: []\n    };\n  }\n  return getCouponCollectionTagsResult(query);\n};\nconst getRankingTags = (query) => {\n  if (query.childCategories === void 0) {\n    return {\n      values: []\n    };\n  }\n  const {\n    childCategories\n  } = query;\n  const inputs = childCategories.map((category) => ({\n    label: category.name,\n    query: {\n      ...query,\n      middleCategoryId: category.id\n    }\n  }));\n  const allCategory = {\n    label: \"전체\",\n    query\n  };\n  return {\n    values: [allCategory, ...inputs]\n  };\n};\nconst getTags = (query, userSegment) => {\n  if (!query) {\n    return {\n      values: []\n    };\n  }\n  switch (query.type) {\n    case QueryType.KeywordCollection:\n      return getKeywordCollectionTags(query, userSegment);\n    case QueryType.CouponCollection:\n      return getCouponCollectionTags(query);\n    case QueryType.Ranking:\n      return getRankingTags(query);\n    default:\n      return {\n        values: []\n      };\n  }\n};\nexport {\n  getTags\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { useQueryStore } from \"../../query-store/query.store.js\";\nimport { TagsElement } from \"../TagsElement/TagsElement.js\";\nimport { useMemo, useEffect } from \"react\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport { useCurrentUser } from \"../../../../hooks/useCurrentUser.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../apis/highlight-products/HighlightProductsApiService.js\";\nimport \"../../../../apis/brand-mix/BrandMixApiService.js\";\nimport \"../../../../apis/one-brand-days/OneBrandDaysApiService.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../apis/user/UserApiService.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport \"../../../@shared/providers/ThemeProvider/ThemeProvider.js\";\nimport \"../../../@shared/providers/BreakpointProvider/BreakpointProvider.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../../systems/Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport { shallow as shallow$1 } from \"../../../../node_modules/zustand/esm/shallow.js\";\nimport \"../../../../hooks/useFeatureFlag.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { getTags } from \"./LinkedTagsModule.utils.js\";\nimport { createKey } from \"../../utils/key.js\";\nconst LinkedTagsModule = ({\n  value,\n  output,\n  layout\n}) => {\n  const user = useCurrentUser();\n  const [query, dispatchSetQuery] = useQueryStore((state) => [state.queries[value], state.dispatchSetQuery], shallow$1);\n  const {\n    values,\n    currentIndex\n  } = useMemo(() => getTags(query, user), [query, user]);\n  useEffect(() => {\n    if (values.length > 0 || !query) {\n      return;\n    }\n    dispatchSetQuery(output, query);\n  }, [query, values.length]);\n  return /* @__PURE__ */ jsx(TagsElement, { inputs: values, output, currentIndex, layout }, createKey(query));\n};\nexport {\n  LinkedTagsModule\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { addPropertyControls, ControlType } from \"framer\";\nimport { TagsModuleInputType } from \"./TagsModule.types.js\";\nimport { AutoTagsModule } from \"./AutoTagsModule/AutoTagsModule.js\";\nimport { SectionLayout } from \"../../systems/curations/SectionLayout/SectionLayout.js\";\nimport { SWRErrorBoundary } from \"../../@shared/SWRErrorBoundary/SWRErrorBoundary.js\";\nimport { BREAKPOINT_CONTROLS } from \"../../../libs/property-controls/breakpoint.js\";\nimport { THEME_CONTROLS } from \"../../../libs/property-controls/theme.js\";\nimport { COMPONENT_ID_PROPS } from \"../../../libs/property-controls/component-id.js\";\nimport { TagsElement } from \"./TagsElement/TagsElement.js\";\nimport { MANUAL_TAGS_MODULE_QUERY, AUTO_TAGS_MODULE_QUERY } from \"./TagsModule.controls.js\";\nimport { LinkedTagsModule } from \"./LinkedTagsModule/LinkedTagsModule.js\";\nimport { SEGMENT_CONTROLS } from \"../../../libs/property-controls/segment.js\";\nconst TagsModuleInner = ({\n  input,\n  output,\n  layout\n}) => {\n  switch (input.type) {\n    case TagsModuleInputType.Linked:\n      return /* @__PURE__ */ jsx(LinkedTagsModule, { value: input.value, output, layout });\n    case TagsModuleInputType.Auto:\n      return /* @__PURE__ */ jsx(AutoTagsModule, { query: input.query, output, layout });\n    case TagsModuleInputType.Manual:\n      return /* @__PURE__ */ jsx(TagsElement, { inputs: input.values, output, layout });\n    default:\n      return null;\n  }\n};\nconst TagsModule = ({\n  theme,\n  breakpoint,\n  componentId,\n  segment,\n  ...rest\n}) => {\n  return /* @__PURE__ */ jsx(SectionLayout, { theme, breakpoint, componentId, segment, children: /* @__PURE__ */ jsx(SWRErrorBoundary, { children: /* @__PURE__ */ jsx(TagsModuleInner, { ...rest }) }) });\n};\naddPropertyControls(TagsModule, {\n  ...BREAKPOINT_CONTROLS,\n  ...THEME_CONTROLS,\n  ...SEGMENT_CONTROLS,\n  componentId: {\n    hidden: ({\n      input\n    }) => (input == null ? void 0 : input.type) === TagsModuleInputType.Linked,\n    ...COMPONENT_ID_PROPS.componentId\n  },\n  input: {\n    type: ControlType.Object,\n    title: \"입력 값\",\n    controls: {\n      type: {\n        type: ControlType.Enum,\n        title: \"유형\",\n        options: [TagsModuleInputType.Linked, TagsModuleInputType.Auto, TagsModuleInputType.Manual],\n        optionTitles: [\"연결\", \"자동\", \"수동\"]\n      },\n      value: {\n        hidden: ({\n          type\n        }) => type !== TagsModuleInputType.Linked,\n        type: ControlType.String,\n        title: \"출력 값\",\n        defaultValue: \"\"\n      },\n      values: {\n        hidden: ({\n          type\n        }) => type !== TagsModuleInputType.Manual,\n        type: ControlType.Array,\n        title: \"입력 값 목록\",\n        control: {\n          type: ControlType.Object,\n          title: \"입력 값\",\n          controls: {\n            label: {\n              type: ControlType.String,\n              title: \"이름\",\n              defaultValue: \"텍스트\"\n            },\n            query: MANUAL_TAGS_MODULE_QUERY\n          }\n        },\n        defaultValue: [{\n          label: \"텍스트\"\n        }]\n      },\n      query: {\n        hidden: ({\n          type\n        }) => type !== TagsModuleInputType.Auto,\n        ...AUTO_TAGS_MODULE_QUERY\n      }\n    }\n  },\n  output: {\n    type: ControlType.String,\n    title: \"출력 값\"\n  },\n  layout: {\n    type: ControlType.Object,\n    title: \"레이아웃\",\n    controls: {\n      padding: {\n        type: ControlType.FusedNumber,\n        title: \"패딩\",\n        defaultValue: 0,\n        toggleKey: \"isMixed\",\n        toggleTitles: [\"All\", \"Individual\"],\n        valueKeys: [\"paddingTop\", \"paddingRight\", \"paddingBottom\", \"paddingLeft\"],\n        valueLabels: [\"T\", \"R\", \"B\", \"L\"],\n        min: 0\n      }\n    }\n  }\n});\nexport {\n  TagsModule\n};\n","import{TagsModule}from\"https://asset.29cm.co.kr/contents/framer/components/modules/TagsModule/TagsModule.js\";TagsModule.displayName=\"[조립형]Tags\";export default TagsModule;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TagsModule\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TagsModule.map","import { createUseStyles } from \"../../../styles/createUseStyle.js\";\nconst createUseStylesForResponsiveSplitView = createUseStyles({\n  [\"split-view\"]: 780,\n  [\"split-view-small\"]: 615,\n  [\"unified-view\"]: 0\n});\nexport {\n  createUseStylesForResponsiveSplitView\n};\n","(function() {\n  \"use strict\";\n  try {\n    if (typeof document != \"undefined\") {\n      var elementStyle = document.createElement(\"style\");\n      elementStyle.appendChild(document.createTextNode(\".hide-scroll-bar {\\n  -ms-overflow-style: none !important; /* Internet Explorer 10+ */\\n  scrollbar-width: none !important; /* Firefox */\\n}\\n\\n.hide-scroll-bar::-webkit-scrollbar {\\n  display: none !important; /* Safari and Chrome */\\n}\"));\n      document.head.appendChild(elementStyle);\n    }\n  } catch (e) {\n    console.error(\"vite-plugin-css-injected-by-js\", e);\n  }\n})();\nconst ResponsiveSplitViewV3_module = {};\nexport {\n  ResponsiveSplitViewV3_module as default\n};\n","import { jsxs, jsx } from \"react/jsx-runtime\";\nimport { withCSS, addPropertyControls, ControlType } from \"framer\";\nimport { useScroll, useSpring, useTransform, motion } from \"framer-motion\";\nimport { useEffect } from \"react\";\nimport \"../../../hooks/stores/content/content.store.js\";\nimport \"../../../hooks/stores/dialog/dialog.store.js\";\nimport { useGlobalLayoutStore } from \"../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../hooks/stores/toast/toast.store.js\";\nimport { isCanvas } from \"../../../utils/framer/isCanvas.js\";\nimport { isServer } from \"../../../utils/context.js\";\nimport { ShareButton } from \"../ShareButton/ShareButton.js\";\nimport { createUseStylesForResponsiveSplitView } from \"./styles.js\";\nimport { TabBarV2 } from \"../TabBarV2/TabBarV2.js\";\nimport \"./ResponsiveSplitViewV3.module.css.js\";\nimport { isTabView } from \"../../../utils/custom-tab/isTabView.js\";\nimport \"../../../utils/event-properties/source.js\";\nimport { isWebview, isIos } from \"../../../utils/device.js\";\nconst useStyles = createUseStylesForResponsiveSplitView({\n  container: {\n    \"base\": {\n      minHeight: 400,\n      display: \"flex\"\n    },\n    \"unified-view\": {\n      height: \"auto\",\n      maxWidth: 540,\n      flexDirection: \"column\"\n    }\n  },\n  mainContent: {\n    \"split-view\": {\n      width: 540\n    },\n    \"split-view-small\": {\n      flex: 1\n    }\n  },\n  sideContent: {\n    \"base\": {\n      position: \"sticky\",\n      top: 0,\n      backgroundColor: \"#ffffff\",\n      height: \"100vh\",\n      overflow: \"auto\"\n    },\n    \"split-view\": {\n      flex: 1\n    },\n    \"split-view-small\": {\n      width: 240\n    }\n  },\n  progressBarContainer: {\n    \"base\": {\n      position: \"fixed\",\n      top: 0,\n      left: 0,\n      width: \"\",\n      height: 2,\n      zIndex: 20,\n      backgroundColor: \"transparent\"\n    },\n    \"split-view\": {\n      width: 540\n    },\n    \"split-view-small\": {\n      width: \"calc(100% - 240px)\"\n    }\n  },\n  progressBar: {\n    base: {\n      width: \"100%\",\n      height: \"100%\",\n      backgroundColor: \"#FF4800\"\n    }\n  },\n  buttonContainer: {\n    base: {\n      position: \"fixed\",\n      right: \"calc(env(safe-area-inset-right) + 20px)\",\n      bottom: \"calc(env(safe-area-inset-bottom) + 12px)\",\n      left: \"calc(env(safe-area-inset-left) + 20px)\",\n      zIndex: 3e3,\n      display: \"flex\",\n      flexDirection: \"column\",\n      gap: 20\n    }\n  },\n  shareButtonContainer: {\n    \"base\": {\n      position: \"fixed\",\n      bottom: 20,\n      zIndex: 3e3,\n      paddingRight: 20\n    },\n    \"split-view\": {\n      right: \"calc(100% - 540px)\"\n    },\n    \"split-view-small\": {\n      right: 240\n    }\n  }\n});\nconst BASE_INSET_BOTTOM = 12;\nconst SAFE_AREA_INSET_BOTTOM = 35;\nconst COMPONENT_NAME = \"responsive-split-view-v3\";\nconst css = [`\n    .${COMPONENT_NAME}-container > div {\n        width: 100% !important;\n    }\n  `];\nconst ResponsiveSplitViewV3 = withCSS(({\n  style,\n  bigBanner,\n  mainContent,\n  sideContent,\n  bottomContent,\n  isTabBarVisible,\n  tabBar\n}) => {\n  const {\n    breakpoint,\n    styles\n  } = useStyles();\n  const isSplitView = breakpoint !== \"unified-view\";\n  const {\n    dispatchSetGlobalLayout\n  } = useGlobalLayoutStore();\n  const {\n    scrollYProgress\n  } = useScroll();\n  const springScrollYProgress = useSpring(scrollYProgress, {\n    bounce: 0\n  });\n  const progressBarX = useTransform(springScrollYProgress, [0, 1], [\"-100%\", \"0%\"]);\n  const items = [...tabBar.items, ...isSplitView ? [] : [tabBar.sideContentTabItem]];\n  const isTabView$1 = !isServer() && isTabView();\n  const isWebview$1 = !isServer() && isWebview();\n  const isIos$1 = !isServer() && isIos();\n  useEffect(() => {\n    dispatchSetGlobalLayout(\"responsive-split-view\");\n    return () => dispatchSetGlobalLayout(\"default\");\n  }, [dispatchSetGlobalLayout]);\n  useEffect(() => {\n    if (breakpoint === \"split-view\" || breakpoint === \"split-view-small\") {\n      document.documentElement.classList.add(\"hide-scroll-bar\");\n      document.body.classList.add(\"hide-scroll-bar\");\n      return () => {\n        document.documentElement.classList.remove(\"hide-scroll-bar\");\n        document.body.classList.remove(\"hide-scroll-bar\");\n      };\n    }\n  }, [breakpoint]);\n  if (isSplitView) {\n    return /* @__PURE__ */ jsxs(\"div\", { style: {\n      ...styles.container,\n      width: style == null ? void 0 : style.width,\n      // NOTE: 반응형으로 다른 높이를 적용하기 위해 height는 코드에서 관리한다\n      height: isCanvas() ? 900 : void 0\n    }, children: [\n      /* @__PURE__ */ jsxs(\"div\", { className: `${COMPONENT_NAME}-container`, style: styles.mainContent, children: [\n        /* @__PURE__ */ jsx(\"div\", { className: `${COMPONENT_NAME}-container`, children: bigBanner }),\n        isTabBarVisible ? /* @__PURE__ */ jsx(TabBarV2, { ...tabBar, items, useSmallTypography: true }) : null,\n        /* @__PURE__ */ jsx(\"div\", { className: `${COMPONENT_NAME}-container`, children: mainContent })\n      ] }),\n      /* @__PURE__ */ jsx(\"div\", { className: `${COMPONENT_NAME}-container`, style: styles.sideContent, children: sideContent }),\n      isCanvas() ? null : /* @__PURE__ */ jsx(\"div\", { style: styles.progressBarContainer, children: /* @__PURE__ */ jsx(motion.div, { style: {\n        ...styles.progressBar,\n        x: progressBarX\n      } }) }),\n      !isServer() && /* @__PURE__ */ jsx(\"div\", { style: styles.shareButtonContainer, children: /* @__PURE__ */ jsx(ShareButton, {}) })\n    ] });\n  }\n  const getBottom = () => {\n    if (isTabView$1) {\n      return BASE_INSET_BOTTOM;\n    }\n    if (isWebview$1 && isIos$1) {\n      return SAFE_AREA_INSET_BOTTOM + BASE_INSET_BOTTOM;\n    }\n    return `calc(env(safe-area-inset-bottom) + ${BASE_INSET_BOTTOM}px)`;\n  };\n  return /* @__PURE__ */ jsxs(\"div\", { style: {\n    ...styles.container,\n    width: style == null ? void 0 : style.width\n    // NOTE: 반응형으로 다른 높이를 적용하기 위해 height는 코드에서 관리한다\n  }, children: [\n    /* @__PURE__ */ jsx(\"div\", { className: `${COMPONENT_NAME}-container`, children: bigBanner }),\n    isTabBarVisible ? /* @__PURE__ */ jsx(TabBarV2, { ...tabBar, items, useSmallTypography: true }) : null,\n    /* @__PURE__ */ jsx(\"div\", { className: `${COMPONENT_NAME}-container`, children: mainContent }),\n    /* @__PURE__ */ jsx(\"div\", { className: `${COMPONENT_NAME}-container`, id: tabBar.sideContentTabItem.sectionId, children: bottomContent ?? sideContent }),\n    !isServer() && /* @__PURE__ */ jsx(\"div\", { style: {\n      ...styles.buttonContainer,\n      bottom: getBottom()\n    }, children: /* @__PURE__ */ jsx(ShareButton, { style: {\n      alignSelf: \"flex-end\"\n    } }) })\n  ] });\n}, css);\naddPropertyControls(ResponsiveSplitViewV3, {\n  bigBanner: {\n    title: \"빅배너\",\n    type: ControlType.ComponentInstance\n  },\n  mainContent: {\n    title: \"메인 콘텐츠\",\n    type: ControlType.ComponentInstance\n  },\n  sideContent: {\n    title: \"사이드 콘텐츠\",\n    type: ControlType.ComponentInstance\n  },\n  bottomContent: {\n    title: \"바텀 콘텐츠\",\n    description: \"모바일 분기점 최하단에 배치될 콘텐츠를 연결합니다.\\n연결하지 않을 경우 기본 값으로 사이드 콘텐츠가 전달됩니다.\",\n    type: ControlType.ComponentInstance\n  },\n  buttonVisibilityThresholdVh: {\n    title: \"공유하기 버튼 등장 시점\",\n    type: ControlType.Number,\n    displayStepper: true,\n    defaultValue: 100,\n    unit: \"vh\"\n  },\n  isTabBarVisible: {\n    title: \"탭바 유무\",\n    type: ControlType.Boolean,\n    defaultValue: true\n  },\n  tabBar: {\n    hidden: ({\n      isTabBarVisible\n    }) => isTabBarVisible === false,\n    title: \"탭바\",\n    type: ControlType.Object,\n    controls: {\n      theme: {\n        type: ControlType.Enum,\n        title: \"테마\",\n        options: [\"default\", \"negative\"],\n        optionTitles: [\"기본\", \"반전\"],\n        defaultValue: \"default\",\n        displaySegmentedControl: true\n      },\n      fadeInOut: {\n        type: ControlType.Boolean,\n        title: \"페이드\",\n        description: \"활성화 시 탭바가 상단에 붙은 상태로 스크롤되면 배경색의 투명도가 서서히 증감합니다.\",\n        defaultValue: false\n      },\n      sideContentTabItem: {\n        title: \"사이드 콘텐츠 탭\",\n        type: ControlType.Object,\n        controls: {\n          label: {\n            title: \"탭 이름\",\n            type: ControlType.String,\n            defaultValue: \"사이드 콘텐츠\"\n          },\n          sectionId: {\n            title: \"스크롤 섹션 ID\",\n            type: ControlType.String,\n            defaultValue: \"side-content\"\n          }\n        }\n      },\n      items: {\n        title: \"탭\",\n        type: ControlType.Array,\n        control: {\n          type: ControlType.Object,\n          controls: {\n            label: {\n              title: \"탭 이름\",\n              type: ControlType.String,\n              defaultValue: \"탭\"\n            },\n            sectionId: {\n              title: \"스크롤 섹션 ID\",\n              type: ControlType.String\n            }\n          }\n        },\n        defaultValue: [{\n          label: \"Chapter 1\",\n          sectionId: \"chapter1\"\n        }, {\n          label: \"Chapter 2\",\n          sectionId: \"chapter2\"\n        }, {\n          label: \"Chapter 3\",\n          sectionId: \"chapter3\"\n        }]\n      },\n      padding: {\n        type: ControlType.FusedNumber,\n        title: \"Padding\",\n        defaultValue: 0,\n        toggleKey: \"isMixed\",\n        toggleTitles: [\"All\", \"Individual\"],\n        valueKeys: [\"paddingTop\", \"paddingRight\", \"paddingBottom\", \"paddingLeft\"],\n        valueLabels: [\"T\", \"R\", \"B\", \"L\"],\n        min: 0\n      },\n      toggleMaxWidth: {\n        type: ControlType.Boolean,\n        title: \"MaxWidth\",\n        enabledTitle: \"SET\",\n        disabledTitle: \"UNSET\",\n        defaultValue: false\n      },\n      maxWidth: {\n        hidden: ({\n          toggleMaxWidth\n        }) => toggleMaxWidth === false,\n        type: ControlType.Number,\n        defaultValue: 1114,\n        min: 50,\n        unit: \"px\",\n        step: 1,\n        displayStepper: true\n      }\n    }\n  }\n});\nexport {\n  ResponsiveSplitViewV3\n};\n","import{ResponsiveSplitViewV3}from\"https://asset.29cm.co.kr/contents/framer/components/systems/ResponsiveSplitViewV3/ResponsiveSplitViewV3.js\";ResponsiveSplitViewV3.displayName=\"ResponsiveSplitViewV3\";export default ResponsiveSplitViewV3;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ResponsiveSplitViewV3\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ResponsiveSplitViewV3.map"],"mappings":"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"}