{
  "version": 3,
  "sources": ["ssg:https://asset.29cm.co.kr/contents/framer/libs/property-controls/gender.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/@shared/Gender/Gender.js", "ssg:https://asset.29cm.co.kr/contents/framer/apis/keyword-collections/KeywordCollectionApiService.js", "ssg:https://asset.29cm.co.kr/contents/framer/hooks/fetchers/useLazyFetchKeywordCollection.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/systems/curations/KeywordCollectionV2/KeywordCollectionTags/KeywordCollectionTags.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/systems/curations/KeywordCollectionV2/KeywordCollectionButton/KeywordCollectionButton.js", "ssg:https://asset.29cm.co.kr/contents/framer/hooks/fetchers/useFetchKeywordCollectionProducts.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/systems/curations/KeywordCollectionV2/KeywordCollectionProducts/KeywordCollectionProducts.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/systems/curations/KeywordCollectionV2/KeywordCollectionV2.js", "ssg:https://framerusercontent.com/modules/KCdMQ7OKXvHZV8auT4OZ/y5pgQ2ZMYPeWuaekSnmP/ProductCollection.js"],
  "sourcesContent": ["import { ControlType } from \"framer\";\nvar Gender = /* @__PURE__ */ ((Gender2) => {\n  Gender2[\"ALL\"] = \"A\";\n  Gender2[\"FEMALE\"] = \"F\";\n  Gender2[\"MALE\"] = \"M\";\n  return Gender2;\n})(Gender || {});\nconst GENDER_CONTROLS = {\n  gender: {\n    type: ControlType.Enum,\n    title: \"\uC131\uBCC4 \uD0C0\uAC9F\uD305\",\n    options: [\n      \"A\",\n      \"F\",\n      \"M\"\n      /* MALE */\n    ],\n    optionTitles: [\"\uC804\uCCB4\", \"\uC5EC\uC131\", \"\uB0A8\uC131\"],\n    displaySegmentedControl: true\n  }\n};\nexport {\n  GENDER_CONTROLS,\n  Gender\n};\n", "import { jsx } from \"react/jsx-runtime\";\nimport { useState, useLayoutEffect } 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 { isCanvas } from \"../../../utils/framer/isCanvas.js\";\nimport \"../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../config/index.js\";\nimport \"../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../node_modules/js-cookie/dist/js.cookie.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 \"../providers/ThemeProvider/ThemeProvider.js\";\nimport \"../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 \"../../../utils/redirectLogin.js\";\nimport \"../../../utils/event-properties/source.js\";\nimport { Gender as Gender$1 } from \"../../../libs/property-controls/gender.js\";\nconst Gender = ({\n  children,\n  gender\n}) => {\n  const user = useCurrentUser();\n  const [userGender, setUserGender] = useState(null);\n  useLayoutEffect(() => {\n    addStyle();\n  }, []);\n  useLayoutEffect(() => {\n    setUserGender(user.gender);\n  }, [user]);\n  if (isCanvas() || gender === Gender$1.ALL) {\n    return children;\n  }\n  return /* @__PURE__ */ jsx(\"div\", { \"data-gender\": userGender ?? \"F\", \"data-target\": gender, children });\n};\nconst STYLE_ID = \"gender-targeting-styles\";\nconst addStyle = () => {\n  let styleTag = document.getElementById(STYLE_ID);\n  if (!styleTag) {\n    styleTag = document.createElement(\"style\");\n    styleTag.id = STYLE_ID;\n    styleTag.type = \"text/css\";\n    styleTag.innerHTML = `\n      [data-gender='F'][data-target='M'] {\n        display: none;\n      }\n      [data-gender='M'][data-target='F'] {\n        display: none;\n      }\n    `;\n    document.head.appendChild(styleTag);\n  }\n};\nexport {\n  Gender\n};\n", "import { APIService } from \"../APIService.js\";\nimport { throwFailError } from \"../@middlewares/throwFailError.js\";\nimport { env } from \"../../config/index.js\";\nclass KeywordCollectionApiService extends APIService {\n  constructor() {\n    super();\n    this.setMiddleware(throwFailError);\n  }\n  async getKeywordCollection(collectionId) {\n    return this.get(`${env.api.content}/api/v4/framers/proxy/content-api/api/v5/keyword-collections/${collectionId}`);\n  }\n  async getCollectionProducts({\n    collectionId,\n    productGroupId,\n    sort,\n    page,\n    size\n  }) {\n    return this.get(`${env.api.content}/api/v4/framers/proxy/content-api/api/v5/keyword-collections/${collectionId}/product-groups/${productGroupId}/products`, {\n      sort,\n      page,\n      size\n    }).then((data) => ({\n      ...data.data,\n      resultList: data.data.resultList.map((product) => {\n        var _a;\n        return {\n          frontBrand: {\n            frontBrandId: product.frontBrand.id,\n            nameKor: product.frontBrand.nameKor,\n            nameEng: product.frontBrand.nameEng\n          },\n          productId: product.productId,\n          productName: product.productName,\n          subjectDescriptions: product.subjectDescriptions,\n          imageUrl: product.imageUrl,\n          consumerPrice: product.consumerPrice,\n          lastSalePrice: product.lastSalePrice,\n          lastSalePercent: product.lastSalePercent,\n          heartCount: product.heartCount,\n          heartOn: product.heartOn,\n          reviewCount: product.reviewCount,\n          reviewAveragePoint: product.reviewAveragePoint,\n          isCoupon: product.saleInfo.coupon,\n          isFreeShipping: product.freeShipping,\n          isNew: product.newProperty,\n          isSoldOut: product.soldOut,\n          frontCategories: (_a = product.frontCategories) == null ? void 0 : _a.map((category) => ({\n            largeCategoryCode: category.largeCode ?? 0,\n            largeCategoryName: category.largeName ?? \"\",\n            mediumCategoryCode: category.mediumCode ?? 0,\n            mediumCategoryName: category.mediumName ?? \"\",\n            smallCategoryCode: category.smallCode ?? 0,\n            smallCategoryName: category.smallName ?? \"\"\n          }))\n        };\n      })\n    }));\n  }\n}\nconst keywordCollectionApi = new KeywordCollectionApiService();\nexport {\n  keywordCollectionApi\n};\n", "import { keywordCollectionApi } from \"../../apis/keyword-collections/KeywordCollectionApiService.js\";\nimport { useLazySWR } from \"../swr/useLazySWR.js\";\nconst KEYWORD_COLLECTION_FETCHER_KEY = \"keyword-collection-v2\";\nconst useLazyFetchKeywordCollection = (collectionId) => {\n  const enabled = Boolean(collectionId);\n  const {\n    data,\n    isLoading,\n    error,\n    fetch\n  } = useLazySWR(enabled ? [KEYWORD_COLLECTION_FETCHER_KEY, collectionId] : null, () => keywordCollectionApi.getKeywordCollection(collectionId));\n  const hasError = error !== void 0;\n  const isPending = isLoading || hasError || !enabled;\n  return {\n    collection: data == null ? void 0 : data.data,\n    isPending,\n    fetch\n  };\n};\nexport {\n  useLazyFetchKeywordCollection\n};\n", "import { jsxs, jsx } from \"react/jsx-runtime\";\nimport { Tags } from \"../../Tags/index.js\";\nimport { useCollectionProductGroupList } from \"../../../KeywordCollection/KeywordCollectionTags/KeywordCollectionTags.hooks.js\";\nimport { useTrackSnowplowEvent } from \"../../../../../hooks/snowplow/useTrackSnowplowEvent.js\";\nimport { useComponentId } from \"../../EventTrackingProvider/EventTrackingProvider.hooks.js\";\nimport \"../../EventTrackingProvider/EventTrackingProvider.js\";\nconst KeywordCollectionTags = ({\n  pending,\n  productGroups,\n  children\n}) => {\n  const componentId = useComponentId();\n  const trackSnowplowEvent = useTrackSnowplowEvent();\n  const {\n    collectionProductGroupList: list,\n    currentIndex\n  } = useCollectionProductGroupList(productGroups);\n  const handleClickTag = (title, index) => {\n    if (!title) {\n      return;\n    }\n    trackSnowplowEvent(\"click_button\", {\n      section_name: componentId,\n      section_title: componentId,\n      position: -1,\n      button_id: \"tag\",\n      button_name: title,\n      layout_position: index + 1\n    });\n  };\n  return /* @__PURE__ */ jsxs(Tags.Root, { defaultValue: 0, value: currentIndex, loading: pending, children: [\n    /* @__PURE__ */ jsx(Tags.List, { list, children: ({\n      item: {\n        title\n      } = {},\n      index\n    }) => /* @__PURE__ */ jsx(Tags.Item, { value: index, onClick: () => handleClickTag(title, index), children: title }) }),\n    /* @__PURE__ */ jsx(Tags.Panels, { list, children: (props) => /* @__PURE__ */ jsx(Tags.Panel, { value: props.index, children: children(props) }) })\n  ] });\n};\nexport {\n  KeywordCollectionTags\n};\n", "import { jsx } from \"react/jsx-runtime\";\nimport { Button as Default } from \"../../../../@shared/Button/Button.js\";\nimport { env } from \"../../../../../config/index.js\";\nimport { useNavigatePage } from \"../../../../../hooks/useNavigatePage.js\";\nimport { TextButton as Default$1 } from \"../../../../@shared/TextButton/TextButton.js\";\nimport \"react\";\nimport \"../../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"framer\";\nimport \"../../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.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 { useTheme } from \"../../../../../hooks/useTheme.js\";\nimport \"../../../../@shared/providers/BreakpointProvider/BreakpointProvider.js\";\nimport \"../../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../../Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../../../utils/redirectLogin.js\";\nimport \"../../../../../utils/event-properties/source.js\";\nimport { querify } from \"../../../../../utils/querify.js\";\nimport { useTrackSnowplowEvent } from \"../../../../../hooks/snowplow/useTrackSnowplowEvent.js\";\nimport { useEventTrackingContext } from \"../../EventTrackingProvider/EventTrackingProvider.hooks.js\";\nimport { EventTrigger } from \"../../../../@shared/EventTrigger/index.js\";\nconst KeywordCollectionButton = ({\n  type = \"button\",\n  collectionId,\n  productGroupId,\n  children\n}) => {\n  const theme = useTheme();\n  const {\n    componentId\n  } = useEventTrackingContext();\n  const params = {\n    source: componentId || void 0,\n    product_group: productGroupId\n  };\n  const searchParams = querify(params);\n  const collectionUrl = `${env.workspace.content}/collection/${collectionId}?${searchParams}`;\n  const navigateCollectionPage = useNavigatePage(collectionUrl);\n  const trackSnowplowEvent = useTrackSnowplowEvent();\n  const handleClick = () => {\n    trackSnowplowEvent(\"click_button\", {\n      // TODO(\uD55C\uC9C0\uC6D0): section_name, position, layout_position \uD504\uB85C\uD37C\uD2F0\uC5D0 \uD560\uB2F9\uD55C \uC57D\uC18D\uB41C \uC784\uC758 \uAC12 \uC218\uC815\n      section_name: componentId,\n      section_title: componentId,\n      position: -1,\n      layout_position: -1,\n      button_id: \"more\",\n      button_name: \"\uC0C1\uD488 \uC804\uCCB4\uBCF4\uAE30\"\n    });\n    navigateCollectionPage();\n  };\n  if (type === \"button\") {\n    return /* @__PURE__ */ jsx(EventTrigger.Target, { onClick: handleClick, children: /* @__PURE__ */ jsx(Default, { variant: \"custom\", size: \"xSmall\", backgroundColor: buttonColorByTheme[theme].backgroundColor, color: buttonColorByTheme[theme].color, postfixIcon: \"chevronRight\", children }) });\n  }\n  return /* @__PURE__ */ jsx(EventTrigger.Target, { onClick: handleClick, children: /* @__PURE__ */ jsx(Default$1, { style: {\n    opacity: 0.6\n  }, variant: \"primary\", size: \"xSmall\", theme, postfixIcon: \"chevronRight\", children }) });\n};\nconst buttonColorByTheme = {\n  light: {\n    backgroundColor: \"#000000\",\n    color: \"#ffffff\"\n  },\n  dark: {\n    backgroundColor: \"#303033\",\n    color: \"#ffffff\"\n  }\n};\nexport {\n  KeywordCollectionButton\n};\n", "import last from \"../../node_modules/lodash-es/last.js\";\nimport { useMemo } from \"react\";\nimport useSWRInfinite from \"../../node_modules/swr/infinite/dist/index.js\";\nimport { keywordCollectionApi } from \"../../apis/keyword-collections/KeywordCollectionApiService.js\";\nconst DEFAULT_SIZE = 20;\nconst DEFAULT_MAX_COUNT = 60;\nconst getKey = ({\n  collectionId,\n  productGroupId,\n  sort,\n  size = DEFAULT_SIZE,\n  enabled\n}) => (pageIndex, previousPageData) => {\n  if (enabled === false) {\n    return null;\n  }\n  const isValid = !Number.isNaN(collectionId) && productGroupId !== void 0 && sort !== void 0;\n  if (!isValid || (previousPageData == null ? void 0 : previousPageData.hasNext) === false) {\n    return null;\n  }\n  return {\n    collectionId,\n    productGroupId,\n    sort,\n    page: pageIndex,\n    size\n  };\n};\nconst fetcher = (params) => {\n  return keywordCollectionApi.getCollectionProducts(params);\n};\nconst useFetchKeywordCollectionProducts = (params) => {\n  const {\n    data,\n    isLoading,\n    error,\n    size,\n    isValidating,\n    setSize,\n    mutate\n  } = useSWRInfinite(getKey(params), fetcher, {\n    keepPreviousData: true,\n    revalidateFirstPage: false\n  });\n  const hasError = error !== void 0;\n  const isPending = isLoading || isValidating || hasError || !params.enabled;\n  const products = useMemo(() => {\n    return (data == null ? void 0 : data.flatMap(({\n      resultList\n    }) => resultList)) ?? [];\n  }, [data]);\n  const hasNext = useMemo(() => {\n    const prevData = last(data);\n    return products.length < (params.maxCount ?? DEFAULT_MAX_COUNT) && (prevData == null ? void 0 : prevData.hasNext);\n  }, [data, params.maxCount, products.length]);\n  return {\n    products,\n    isPending,\n    size,\n    setSize,\n    hasNext,\n    mutate\n  };\n};\nexport {\n  useFetchKeywordCollectionProducts\n};\n", "import { jsx } from \"react/jsx-runtime\";\nimport { useFetchKeywordCollectionProducts } from \"../../../../../hooks/fetchers/useFetchKeywordCollectionProducts.js\";\nimport { Products } from \"../../Products/index.js\";\nimport { CARD_HORIZONTAL_AUTO } from \"../../Products/Root.constants.js\";\nconst KeywordCollectionProducts = ({\n  componentName,\n  collectionId,\n  productGroupId,\n  sort,\n  pending\n}) => {\n  const {\n    products,\n    isPending,\n    hasNext,\n    setSize\n  } = useFetchKeywordCollectionProducts({\n    enabled: pending !== true,\n    collectionId: Number(collectionId),\n    productGroupId,\n    sort\n  });\n  const onLastItemView = () => {\n    setSize((prev) => prev + 1);\n  };\n  const loading = pending || isPending;\n  return /* @__PURE__ */ jsx(Products.Root, { products, loading, options: CARD_HORIZONTAL_AUTO, hasNext, onLastItemView, children: ({\n    index\n  }) => {\n    return /* @__PURE__ */ jsx(Products.Card, { index, componentName });\n  } });\n};\nexport {\n  KeywordCollectionProducts\n};\n", "import { jsx, jsxs, Fragment } from \"react/jsx-runtime\";\nimport { addPropertyControls, ControlType } from \"framer\";\nimport { useEffect } from \"react\";\nimport { Gender } from \"../../../@shared/Gender/Gender.js\";\nimport { Headline } from \"../../Headline/Headline.js\";\nimport { useLazyFetchKeywordCollection } from \"../../../../hooks/fetchers/useLazyFetchKeywordCollection.js\";\nimport { KeywordCollectionTags } from \"./KeywordCollectionTags/KeywordCollectionTags.js\";\nimport { KeywordCollectionButton } from \"./KeywordCollectionButton/KeywordCollectionButton.js\";\nimport { KeywordCollectionProducts } from \"./KeywordCollectionProducts/KeywordCollectionProducts.js\";\nimport { SECTION_CONTROLS } from \"../../../../libs/property-controls/section.js\";\nimport { GENDER_CONTROLS } from \"../../../../libs/property-controls/gender.js\";\nimport { SectionLayout } from \"../SectionLayout/SectionLayout.js\";\nimport \"../IntersectionProvider/IntersectionProvider.js\";\nimport { useIntersectionContext } from \"../IntersectionProvider/IntersectionProvider.hooks.js\";\nimport { useComponentId } from \"../EventTrackingProvider/EventTrackingProvider.hooks.js\";\nimport \"../EventTrackingProvider/EventTrackingProvider.js\";\nimport { SWRErrorBoundary } from \"../../../@shared/SWRErrorBoundary/SWRErrorBoundary.js\";\nimport { NoContent } from \"../NoContent/NoContent.js\";\nimport { SWRPersistentCache } from \"../../../@shared/swr/SWRPersistentCache/SWRPersistentCache.js\";\nconst KeywordCollectionV2Inner = ({\n  headline,\n  collectionId\n}) => {\n  const {\n    isInView\n  } = useIntersectionContext();\n  const componentId = useComponentId();\n  const {\n    collection,\n    fetch,\n    isPending\n  } = useLazyFetchKeywordCollection(Number(collectionId.trim()));\n  useEffect(() => {\n    if (isInView) {\n      fetch();\n    }\n  }, [fetch, isInView]);\n  const {\n    productGroups = []\n  } = collection ?? {};\n  const hasContent = Boolean(headline.title) || Boolean(headline.description);\n  const headlineProps = {\n    ...headline,\n    title: headline.title || (collection == null ? void 0 : collection.title) || \"\",\n    description: headline.description || (collection == null ? void 0 : collection.description) || \"\"\n  };\n  return /* @__PURE__ */ jsxs(Fragment, { children: [\n    /* @__PURE__ */ jsx(Headline, { ...headlineProps, priority: \"primary\", action: /* @__PURE__ */ jsx(KeywordCollectionButton, { collectionId, children: \"\uC0C1\uD488 \uC804\uCCB4\uBCF4\uAE30\" }), loading: !hasContent && isPending }),\n    /* @__PURE__ */ jsx(KeywordCollectionTags, { productGroups, pending: isPending, children: ({\n      item,\n      pending\n    }) => /* @__PURE__ */ jsx(KeywordCollectionProducts, { collectionId, productGroupId: item == null ? void 0 : item.productGroupId, sort: item == null ? void 0 : item.sort, pending, componentName: componentId }) })\n  ] });\n};\nconst KeywordCollectionV2 = ({\n  breakpoint,\n  theme,\n  componentId,\n  gender,\n  headline,\n  ...rest\n}) => {\n  const hasContent = Boolean(headline.title) || Boolean(headline.description);\n  return /* @__PURE__ */ jsx(Gender, { gender, children: /* @__PURE__ */ jsx(SectionLayout, { theme, breakpoint, componentId, children: /* @__PURE__ */ jsx(SWRErrorBoundary, { fallback: (retry) => /* @__PURE__ */ jsxs(Fragment, { children: [\n    hasContent && /* @__PURE__ */ jsx(Headline, { ...headline, priority: \"primary\", action: /* @__PURE__ */ jsx(KeywordCollectionButton, { collectionId: rest.collectionId, children: \"\uC0C1\uD488 \uC804\uCCB4\uBCF4\uAE30\" }) }),\n    /* @__PURE__ */ jsx(NoContent, { onClick: retry })\n  ] }), children: /* @__PURE__ */ jsx(SWRPersistentCache, { children: /* @__PURE__ */ jsx(KeywordCollectionV2Inner, { ...rest, headline }) }) }) }) });\n};\naddPropertyControls(KeywordCollectionV2, {\n  ...SECTION_CONTROLS,\n  ...GENDER_CONTROLS,\n  collectionId: {\n    type: ControlType.String,\n    title: \"\uCEEC\uB809\uC158 \uC544\uC774\uB514\",\n    placeholder: \"1152\"\n  },\n  componentId: {\n    type: ControlType.String,\n    title: \"\uCEF4\uD3EC\uB10C\uD2B8 ID\",\n    description: \"\uC774\uBCA4\uD2B8 \uC218\uC9D1 \uC2DC\uC5D0 \uC0C1\uD488 \uBAA8\uB4C8\uC744 \uAD6C\uBD84\uD558\uAE30 \uC704\uD55C \uAC12\\nex. 29welcoming\",\n    defaultValue: \"\"\n  }\n});\nexport {\n  KeywordCollectionV2\n};\n", "/** local */// import { KeywordCollectionV2 } from \"https://localhost:4173/components/systems/curations/KeywordCollectionV2/KeywordCollectionV2.js\"\n/** dev */// import { KeywordCollectionV2 } from \"https://asset.29cm.co.kr/contents/framer/dev/components/systems/curations/KeywordCollectionV2/KeywordCollectionV2.js\"\n/** production */import{KeywordCollectionV2}from\"https://asset.29cm.co.kr/contents/framer/components/systems/curations/KeywordCollectionV2/KeywordCollectionV2.js\";KeywordCollectionV2.displayName=\"[curation]TaggedProducts\";/**\n * @framerDisableUnlink\n */export default KeywordCollectionV2;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"KeywordCollectionV2\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ProductCollection.map"],
  "mappings": "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",
  "names": ["Gender", "Gender2", "GENDER_CONTROLS", "ControlType", "Gender", "children", "gender", "user", "useCurrentUser", "userGender", "setUserGender", "ye", "fe", "addStyle", "isCanvas", "p", "STYLE_ID", "styleTag", "KeywordCollectionApiService", "APIService", "throwFailError", "collectionId", "env", "productGroupId", "sort", "page", "size", "data", "product", "_a", "category", "keywordCollectionApi", "KEYWORD_COLLECTION_FETCHER_KEY", "useLazyFetchKeywordCollection", "collectionId", "enabled", "data", "isLoading", "error", "fetch", "useLazySWR", "keywordCollectionApi", "isPending", "KeywordCollectionTags", "pending", "productGroups", "children", "componentId", "useComponentId", "trackSnowplowEvent", "useTrackSnowplowEvent", "list", "currentIndex", "useCollectionProductGroupList", "handleClickTag", "title", "index", "u", "Tags", "p", "props", "KeywordCollectionButton", "type", "collectionId", "productGroupId", "children", "theme", "useTheme", "componentId", "useEventTrackingContext", "searchParams", "querify", "collectionUrl", "env", "navigateCollectionPage", "useNavigatePage", "trackSnowplowEvent", "useTrackSnowplowEvent", "handleClick", "p", "EventTrigger", "Default", "buttonColorByTheme", "DEFAULT_SIZE", "DEFAULT_MAX_COUNT", "getKey", "collectionId", "productGroupId", "sort", "size", "enabled", "pageIndex", "previousPageData", "fetcher", "params", "keywordCollectionApi", "useFetchKeywordCollectionProducts", "data", "isLoading", "error", "isValidating", "setSize", "mutate", "useSWRInfinite", "isPending", "products", "se", "resultList", "hasNext", "prevData", "last", "KeywordCollectionProducts", "componentName", "collectionId", "productGroupId", "sort", "pending", "products", "isPending", "hasNext", "setSize", "useFetchKeywordCollectionProducts", "onLastItemView", "prev", "loading", "p", "Products", "CARD_HORIZONTAL_AUTO", "index", "KeywordCollectionV2Inner", "headline", "collectionId", "isInView", "useIntersectionContext", "componentId", "useComponentId", "collection", "fetch", "isPending", "useLazyFetchKeywordCollection", "ue", "productGroups", "hasContent", "headlineProps", "u", "l", "p", "Headline", "KeywordCollectionButton", "KeywordCollectionTags", "item", "pending", "KeywordCollectionProducts", "KeywordCollectionV2", "breakpoint", "theme", "gender", "rest", "Gender", "SectionLayout", "SWRErrorBoundary", "retry", "NoContent", "SWRPersistentCache", "addPropertyControls", "SECTION_CONTROLS", "GENDER_CONTROLS", "ControlType", "KeywordCollectionV2", "ProductCollection_default"]
}
