@toototech/webbuilder-plugins 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/LICENSE +1 -0
  2. package/README.md +3 -0
  3. package/dist/basic/cssScope.d.ts +3 -0
  4. package/dist/basic/index.d.ts +81 -0
  5. package/dist/basic/injectStyle.d.ts +20 -0
  6. package/dist/basic/plugin.d.ts +19 -0
  7. package/dist/basic/publisher.d.ts +4 -0
  8. package/dist/basic/registries/interactive/accordion/index.d.ts +3 -0
  9. package/dist/basic/registries/interactive/backButton/index.d.ts +3 -0
  10. package/dist/basic/registries/interactive/button/index.d.ts +10 -0
  11. package/dist/basic/registries/interactive/countUp/index.d.ts +9 -0
  12. package/dist/basic/registries/interactive/customCode/index.d.ts +3 -0
  13. package/dist/basic/registries/interactive/index.d.ts +2 -0
  14. package/dist/basic/registries/interactive/inquiryForm/index.d.ts +3 -0
  15. package/dist/basic/registries/interactive/klaviyoSubscribe/index.d.ts +3 -0
  16. package/dist/basic/registries/interactive/popup/index.d.ts +5 -0
  17. package/dist/basic/registries/interactive/salesmartlyChatButton/index.d.ts +10 -0
  18. package/dist/basic/registries/interactive/search/index.d.ts +10 -0
  19. package/dist/basic/registries/interactive/socialShare/index.d.ts +33 -0
  20. package/dist/basic/registries/interactive/tabs/index.d.ts +3 -0
  21. package/dist/basic/registries/layout/container/index.d.ts +19 -0
  22. package/dist/basic/registries/layout/divider/index.d.ts +7 -0
  23. package/dist/basic/registries/layout/grid/index.d.ts +11 -0
  24. package/dist/basic/registries/layout/index.d.ts +2 -0
  25. package/dist/basic/registries/layout/layoutBase/index.d.ts +10 -0
  26. package/dist/basic/registries/layout/section/index.d.ts +3 -0
  27. package/dist/basic/registries/layout/sectionGridBlock/index.d.ts +3 -0
  28. package/dist/basic/registries/layout/spacer/index.d.ts +7 -0
  29. package/dist/basic/registries/media/banner/index.d.ts +11 -0
  30. package/dist/basic/registries/media/carousel/index.d.ts +6 -0
  31. package/dist/basic/registries/media/flipbook/index.d.ts +5 -0
  32. package/dist/basic/registries/media/icon/index.d.ts +3 -0
  33. package/dist/basic/registries/media/image/index.d.ts +3 -0
  34. package/dist/basic/registries/media/index.d.ts +2 -0
  35. package/dist/basic/registries/media/industryTabs/index.d.ts +3 -0
  36. package/dist/basic/registries/media/marquee/index.d.ts +4 -0
  37. package/dist/basic/registries/media/ourSolutions/helpers.d.ts +289 -0
  38. package/dist/basic/registries/media/ourSolutions/index.d.ts +4 -0
  39. package/dist/basic/registries/media/ourSolutions/script.d.ts +1 -0
  40. package/dist/basic/registries/media/ourSolutions/style.d.ts +1 -0
  41. package/dist/basic/registries/media/pdfViewer/index.d.ts +3 -0
  42. package/dist/basic/registries/media/productCategories/index.d.ts +4 -0
  43. package/dist/basic/registries/media/tabMediaGallery/index.d.ts +3 -0
  44. package/dist/basic/registries/media/video/index.d.ts +12 -0
  45. package/dist/basic/registries/navigation/footer/index.d.ts +10 -0
  46. package/dist/basic/registries/navigation/index.d.ts +2 -0
  47. package/dist/basic/registries/navigation/languageSwitcher/index.d.ts +6 -0
  48. package/dist/basic/registries/navigation/logo/index.d.ts +9 -0
  49. package/dist/basic/registries/navigation/navbar/constants.d.ts +38 -0
  50. package/dist/basic/registries/navigation/navbar/factories.d.ts +848 -0
  51. package/dist/basic/registries/navigation/navbar/helpers.d.ts +12 -0
  52. package/dist/basic/registries/navigation/navbar/index.d.ts +4 -0
  53. package/dist/basic/registries/navigation/navbar/registerMegaTypes.d.ts +2 -0
  54. package/dist/basic/registries/navigation/navbar/registerMenuTypes.d.ts +2 -0
  55. package/dist/basic/registries/navigation/navbar/registerRootTypes.d.ts +2 -0
  56. package/dist/basic/registries/navigation/navbar/script.d.ts +1 -0
  57. package/dist/basic/registries/navigation/navbar/style.d.ts +1 -0
  58. package/dist/basic/registries/navigation/socialLinks/index.d.ts +3 -0
  59. package/dist/basic/registries/section/allApplications/index.d.ts +3 -0
  60. package/dist/basic/registries/section/cardCarouselSection/index.d.ts +3 -0
  61. package/dist/basic/registries/section/caseSpotlight/index.d.ts +3 -0
  62. package/dist/basic/registries/section/companyScale/index.d.ts +3 -0
  63. package/dist/basic/registries/section/customizationGrid/index.d.ts +3 -0
  64. package/dist/basic/registries/section/factoryMap/index.d.ts +3 -0
  65. package/dist/basic/registries/section/focaHistoryTimeline/index.d.ts +3 -0
  66. package/dist/basic/registries/section/historyTimeline/index.d.ts +3 -0
  67. package/dist/basic/registries/section/homeBannerCarousel/index.d.ts +4 -0
  68. package/dist/basic/registries/section/hotspotShowcase/index.d.ts +30 -0
  69. package/dist/basic/registries/section/index.d.ts +2 -0
  70. package/dist/basic/registries/section/map/index.d.ts +4 -0
  71. package/dist/basic/registries/section/milestoneCardStrip/index.d.ts +3 -0
  72. package/dist/basic/registries/section/moreCardCarousel/index.d.ts +3 -0
  73. package/dist/basic/registries/section/ourAdvantages/index.d.ts +4 -0
  74. package/dist/basic/registries/section/overviewSplit/index.d.ts +3 -0
  75. package/dist/basic/registries/section/processTimeline/index.d.ts +3 -0
  76. package/dist/basic/registries/section/productCardStrip/index.d.ts +3 -0
  77. package/dist/basic/registries/section/resourceSection/index.d.ts +6 -0
  78. package/dist/basic/registries/section/responsiveHeroCarousel/index.d.ts +4 -0
  79. package/dist/basic/registries/section/serviceIconGrid/index.d.ts +4 -0
  80. package/dist/basic/registries/section/servicesCarousel/index.d.ts +4 -0
  81. package/dist/basic/registries/section/servicesShowcase/index.d.ts +4 -0
  82. package/dist/basic/registries/section/servicesThb/index.d.ts +4 -0
  83. package/dist/basic/registries/section/solutionList/index.d.ts +4 -0
  84. package/dist/basic/registries/section/staticPinMap/index.d.ts +4 -0
  85. package/dist/basic/registries/section/statsCards/index.d.ts +3 -0
  86. package/dist/basic/registries/section/swiperRuntime.d.ts +3 -0
  87. package/dist/basic/registries/shared/sharedTraits.d.ts +37 -0
  88. package/dist/basic/registries/types.d.ts +5 -0
  89. package/dist/basic/registries/typography/heading/index.d.ts +8 -0
  90. package/dist/basic/registries/typography/index.d.ts +2 -0
  91. package/dist/basic/registries/typography/textEditor/index.d.ts +6 -0
  92. package/dist/basic/registryManifest.d.ts +9 -0
  93. package/dist/basic/styleHelpers.d.ts +29 -0
  94. package/dist/basic/svgIcon.d.ts +11 -0
  95. package/dist/basic/traitBridge.d.ts +20 -0
  96. package/dist/basic/traitFactory.d.ts +106 -0
  97. package/dist/basic.js +1146 -0
  98. package/dist/cms/cmsFactory.d.ts +164 -0
  99. package/dist/cms/dynamicRenderPipeline.d.ts +12 -0
  100. package/dist/cms/index.d.ts +31 -0
  101. package/dist/cms/plugin.d.ts +12 -0
  102. package/dist/cms/publisher.d.ts +7 -0
  103. package/dist/cms/registries/dynamic/cms/constants.d.ts +16 -0
  104. package/dist/cms/registries/dynamic/cms/dynamicField/bindings.d.ts +78 -0
  105. package/dist/cms/registries/dynamic/cms/dynamicField/blocks/breadcrumbBlock.d.ts +1 -0
  106. package/dist/cms/registries/dynamic/cms/dynamicField/blocks/conditionalBlock.d.ts +1 -0
  107. package/dist/cms/registries/dynamic/cms/dynamicField/blocks/datetimeBlock.d.ts +1 -0
  108. package/dist/cms/registries/dynamic/cms/dynamicField/blocks/htmlBlock.d.ts +1 -0
  109. package/dist/cms/registries/dynamic/cms/dynamicField/blocks/imageBlock.d.ts +1 -0
  110. package/dist/cms/registries/dynamic/cms/dynamicField/blocks/linkBlock.d.ts +1 -0
  111. package/dist/cms/registries/dynamic/cms/dynamicField/blocks/seoBlock.d.ts +1 -0
  112. package/dist/cms/registries/dynamic/cms/dynamicField/blocks/textBlock.d.ts +1 -0
  113. package/dist/cms/registries/dynamic/cms/dynamicField/blocks/tocBlock.d.ts +1 -0
  114. package/dist/cms/registries/dynamic/cms/dynamicField/constants.d.ts +19 -0
  115. package/dist/cms/registries/dynamic/cms/dynamicField/helpers.d.ts +52 -0
  116. package/dist/cms/registries/dynamic/cms/dynamicField/registerBlock.d.ts +57 -0
  117. package/dist/cms/registries/dynamic/cms/dynamicField/styles.d.ts +7 -0
  118. package/dist/cms/registries/dynamic/cms/media/previewMediaTrait.d.ts +7 -0
  119. package/dist/cms/registries/dynamic/cms/menu/siteMenuAttrs.d.ts +11 -0
  120. package/dist/cms/registries/dynamic/cms/menuTree/menuTreeAttrs.d.ts +8 -0
  121. package/dist/cms/registries/dynamic/cms/post/styles.d.ts +6 -0
  122. package/dist/cms/registries/dynamic/cms/product/detail.styles.d.ts +1 -0
  123. package/dist/cms/registries/dynamic/cms/product/detailV2.styles.d.ts +1 -0
  124. package/dist/cms/registries/dynamic/cms/product/previewProductTrait.d.ts +6 -0
  125. package/dist/cms/registries/dynamic/cms/product/styles.d.ts +6 -0
  126. package/dist/cms/registries/dynamic/dataProvider.d.ts +45 -0
  127. package/dist/cms/registries/dynamic/loopGrid/paginationStyles.d.ts +5 -0
  128. package/dist/cms/registries/dynamic/loopGrid/preview.d.ts +16 -0
  129. package/dist/cms/registries/dynamic/loopGrid/publisher.d.ts +3 -0
  130. package/dist/cms/registries/dynamic/loopGrid/types.d.ts +97 -0
  131. package/dist/cms/registries/navigation/navbarThb/index.d.ts +3 -0
  132. package/dist/cms/registries/navigation/navbarThb/script.d.ts +1 -0
  133. package/dist/cms/registries/navigation/navbarThb/style.d.ts +1 -0
  134. package/dist/cms.js +4535 -0
  135. package/dist/global-settings/components/FontFamilySelect.vue.d.ts +29 -0
  136. package/dist/global-settings/components/FontManagerPanel.vue.d.ts +37 -0
  137. package/dist/global-settings/index.d.ts +8 -0
  138. package/dist/global-settings/plugin.d.ts +3 -0
  139. package/dist/global-settings/publisher.d.ts +15 -0
  140. package/dist/global-settings/runtime/canvasInjection.d.ts +13 -0
  141. package/dist/global-settings/runtime/panelDraftSave.d.ts +17 -0
  142. package/dist/global-settings/runtime/settingsSource.d.ts +4 -0
  143. package/dist/global-settings/useFontManager.d.ts +38 -0
  144. package/dist/global-settings/useGoogleFonts.d.ts +20 -0
  145. package/dist/global-settings/vue.d.ts +1 -0
  146. package/dist/global-settings.js +66 -0
  147. package/dist/i18n/I18nPanel.vue.d.ts +23 -0
  148. package/dist/i18n/i18n.d.ts +25 -0
  149. package/dist/i18n/index.d.ts +7 -0
  150. package/dist/i18n/languageOrder.d.ts +9 -0
  151. package/dist/i18n/plugin.d.ts +21 -0
  152. package/dist/i18n/types.d.ts +101 -0
  153. package/dist/i18n/useWebBuilderI18n.d.ts +164 -0
  154. package/dist/i18n/vue.d.ts +1 -0
  155. package/dist/i18n-BYR3l48y.js +959 -0
  156. package/dist/i18n.js +929 -0
  157. package/dist/index-CxJlLwvG.js +35378 -0
  158. package/dist/index-DWfJ4PBm.js +5724 -0
  159. package/dist/index.d.ts +9 -0
  160. package/dist/index.js +12 -0
  161. package/dist/layout-template/components/LayoutPanel.vue.d.ts +37 -0
  162. package/dist/layout-template/components/TemplateRulesPanel.vue.d.ts +41 -0
  163. package/dist/layout-template/config/layoutSharedResources.d.ts +9 -0
  164. package/dist/layout-template/config/templateSharedResources.d.ts +28 -0
  165. package/dist/layout-template/index.d.ts +9 -0
  166. package/dist/layout-template/plugin.d.ts +13 -0
  167. package/dist/layout-template/runtime/storageAdapter.d.ts +49 -0
  168. package/dist/layout-template/utils/layoutProjectData.d.ts +15 -0
  169. package/dist/layout-template/utils/layoutRulePages.d.ts +19 -0
  170. package/dist/layout-template/utils/layoutSettings.d.ts +45 -0
  171. package/dist/layout-template/utils/templateRules.d.ts +52 -0
  172. package/dist/layout-template/vue.d.ts +2 -0
  173. package/dist/layout-template.js +435 -0
  174. package/dist/layoutSettings-D4SYUMri.js +252 -0
  175. package/dist/plugin-BPA8qlaC.js +40 -0
  176. package/dist/plugin-C0PrxrIe.js +228 -0
  177. package/dist/plugin-DQshk1sY.js +361 -0
  178. package/dist/plugin-DebyCjXx.js +191 -0
  179. package/dist/plugin-Dr6TOtyH.js +73 -0
  180. package/dist/publisher/index.d.ts +5 -0
  181. package/dist/publisher/publisherAssets.d.ts +9 -0
  182. package/dist/publisher/publisherComponents.d.ts +7 -0
  183. package/dist/publisher/publisherPlugins.d.ts +12 -0
  184. package/dist/publisher-C6VWXq8u.js +25 -0
  185. package/dist/publisher.js +1711 -0
  186. package/dist/solar-BsElUqfQ.js +29843 -0
  187. package/dist/style.css +1181 -0
  188. package/dist/templateSharedResources-D1u7eFIs.js +89 -0
  189. package/dist/types-DNbok59z.js +2359 -0
  190. package/dist/useFontManager-CdrLq1eG.js +336 -0
  191. package/dist/vue.d.ts +3 -0
  192. package/dist/vue.js +2171 -0
  193. package/package.json +77 -0
@@ -0,0 +1,9 @@
1
+ export { componentsBasic } from './basic/index.js';
2
+ export { componentsCms } from './cms/index.js';
3
+ export { globalSettings } from './global-settings/index.js';
4
+ export { layoutTemplate } from './layout-template/index.js';
5
+ export { webBuilderI18n } from './i18n/index.js';
6
+ export type { ComponentsBasicPluginOptions, BasicRegistryFailureDiagnostic, BasicRegistryManifestEntry, } from './basic/index.js';
7
+ export type { CmsComponentsRuntime } from './cms/index.js';
8
+ export type { WebBuilderI18nRuntime } from './i18n/index.js';
9
+ export type { LayoutTemplatePluginRuntime } from './layout-template/index.js';
package/dist/index.js ADDED
@@ -0,0 +1,12 @@
1
+ import { c } from "./plugin-DebyCjXx.js";
2
+ import { c as c2 } from "./plugin-C0PrxrIe.js";
3
+ import { c as c3 } from "./plugin-DQshk1sY.js";
4
+ import { c as c4 } from "./plugin-BPA8qlaC.js";
5
+ import { c as c5 } from "./plugin-Dr6TOtyH.js";
6
+ export {
7
+ c as componentsBasic,
8
+ c2 as componentsCms,
9
+ c3 as globalSettings,
10
+ c4 as layoutTemplate,
11
+ c5 as webBuilderI18n
12
+ };
@@ -0,0 +1,37 @@
1
+ import { type WebBuilderLayoutSettings } from '../utils/layoutSettings';
2
+ import { type RulePageOption } from '../utils/layoutRulePages';
3
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
4
+ pages: any[];
5
+ layoutSettings: WebBuilderLayoutSettings;
6
+ setLayoutSettings: (settings: WebBuilderLayoutSettings) => void;
7
+ loadRulePageOptions: () => Promise<RulePageOption[]>;
8
+ ensureRulesEditable?: ((silent?: boolean) => Promise<boolean>) | undefined;
9
+ getRulesLockState?: (() => {
10
+ status?: string;
11
+ message?: string;
12
+ }) | undefined;
13
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
14
+ change: () => void;
15
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
16
+ pages: any[];
17
+ layoutSettings: WebBuilderLayoutSettings;
18
+ setLayoutSettings: (settings: WebBuilderLayoutSettings) => void;
19
+ loadRulePageOptions: () => Promise<RulePageOption[]>;
20
+ ensureRulesEditable?: ((silent?: boolean) => Promise<boolean>) | undefined;
21
+ getRulesLockState?: (() => {
22
+ status?: string;
23
+ message?: string;
24
+ }) | undefined;
25
+ }>>> & Readonly<{
26
+ onChange?: (() => any) | undefined;
27
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
28
+ export default _default;
29
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
30
+ type __VLS_TypePropsToRuntimeProps<T> = {
31
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
32
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
33
+ } : {
34
+ type: import('vue').PropType<T[K]>;
35
+ required: true;
36
+ };
37
+ };
@@ -0,0 +1,41 @@
1
+ import { type TempTemplateResourceType } from '../config/templateSharedResources';
2
+ import { type TemplateRule } from '../utils/templateRules';
3
+ interface TemplateRuleFieldOption {
4
+ value: string | number;
5
+ label: string;
6
+ }
7
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
8
+ currentTemplateType: TempTemplateResourceType | null;
9
+ currentRules: TemplateRule[];
10
+ ensureRulesEditable?: ((silent?: boolean) => Promise<boolean>) | undefined;
11
+ getRulesLockState?: (() => {
12
+ status?: string;
13
+ message?: string;
14
+ }) | undefined;
15
+ addRule?: (() => Promise<void>) | undefined;
16
+ patchRule?: ((ruleId: string, patch: Partial<TemplateRule>) => Promise<void>) | undefined;
17
+ removeRule?: ((ruleId: string) => Promise<void>) | undefined;
18
+ getFieldOptions?: ((templateType: TempTemplateResourceType | null, fieldKey: string) => TemplateRuleFieldOption[]) | undefined;
19
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
20
+ currentTemplateType: TempTemplateResourceType | null;
21
+ currentRules: TemplateRule[];
22
+ ensureRulesEditable?: ((silent?: boolean) => Promise<boolean>) | undefined;
23
+ getRulesLockState?: (() => {
24
+ status?: string;
25
+ message?: string;
26
+ }) | undefined;
27
+ addRule?: (() => Promise<void>) | undefined;
28
+ patchRule?: ((ruleId: string, patch: Partial<TemplateRule>) => Promise<void>) | undefined;
29
+ removeRule?: ((ruleId: string) => Promise<void>) | undefined;
30
+ getFieldOptions?: ((templateType: TempTemplateResourceType | null, fieldKey: string) => TemplateRuleFieldOption[]) | undefined;
31
+ }>>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
32
+ export default _default;
33
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
34
+ type __VLS_TypePropsToRuntimeProps<T> = {
35
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
36
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
37
+ } : {
38
+ type: import('vue').PropType<T[K]>;
39
+ required: true;
40
+ };
41
+ };
@@ -0,0 +1,9 @@
1
+ import { type LayoutSlotKey, type WebBuilderLayoutSettings } from '../utils/layoutSettings';
2
+ export declare const LAYOUT_RULES_RESOURCE_SCOPE = "OWNED";
3
+ export declare const LAYOUT_RULES_RESOURCE_KEY = "layout.rules";
4
+ export declare const LAYOUT_RULES_RESOURCE_TYPE = "LAYOUT_RULES";
5
+ export declare const LAYOUT_PAGE_RESOURCE_SCOPE = "SHARED";
6
+ export declare const LAYOUT_PAGE_RESOURCE_TYPES: Record<LayoutSlotKey, string>;
7
+ export declare const buildLayoutPageResourceKey: (slotKey: LayoutSlotKey, layoutPageId: string) => string;
8
+ export declare const createDefaultLayoutRulesPayload: () => WebBuilderLayoutSettings;
9
+ export declare const normalizeLayoutRulesPayload: (payload?: WebBuilderLayoutSettings | Partial<WebBuilderLayoutSettings> | null) => WebBuilderLayoutSettings;
@@ -0,0 +1,28 @@
1
+ export declare const TEMP_RULES_RESOURCE_SCOPE = "OWNED";
2
+ export declare const TEMP_RULES_RESOURCE_KEY = "template.rules";
3
+ export declare const TEMP_RULES_RESOURCE_TYPE = "TEMP_RULES";
4
+ export declare const TEMP_TEMPLATE_RESOURCE_TYPES: readonly ["TEMP_POST_DETAIL", "TEMP_POST_CATEGORY_LIST", "TEMP_PRODUCT_DETAIL", "TEMP_PRODUCT_CATEGORY_LIST", "TEMP_MEDIA_DETAIL", "TEMP_MEDIA_CATEGORY_LIST", "TEMP_LOOP_ITEM", "TEMP_POPUP"];
5
+ export type TempTemplateResourceType = (typeof TEMP_TEMPLATE_RESOURCE_TYPES)[number];
6
+ export declare const TEMP_TEMPLATE_RESOURCE_TYPE_OPTIONS: Array<{
7
+ label: string;
8
+ value: TempTemplateResourceType;
9
+ }>;
10
+ export declare const isTempTemplateResourceType: (resourceType?: string | null) => resourceType is "TEMP_POST_DETAIL" | "TEMP_POST_CATEGORY_LIST" | "TEMP_PRODUCT_DETAIL" | "TEMP_PRODUCT_CATEGORY_LIST" | "TEMP_MEDIA_DETAIL" | "TEMP_MEDIA_CATEGORY_LIST" | "TEMP_LOOP_ITEM" | "TEMP_POPUP";
11
+ export declare const isTempDetailResourceType: (resourceType?: string | null) => boolean;
12
+ export declare const isTempCategoryListResourceType: (resourceType?: string | null) => boolean;
13
+ export declare const POPUP_TEMPLATE_RESOURCE_TYPE = "TEMP_POPUP";
14
+ export declare const isPopupTemplateResourceType: (resourceType?: string | null) => boolean;
15
+ export type LoopItemType = 'post' | 'postCategory' | 'product' | 'productCategory' | 'productCategoryFaq' | 'media' | 'mediaCategory';
16
+ export interface LoopItemResourceExt {
17
+ loopItemType?: LoopItemType;
18
+ }
19
+ export declare const LOOP_ITEM_RESOURCE_TYPE = "TEMP_LOOP_ITEM";
20
+ export declare const LOOP_ITEM_TYPE_LABELS: Record<LoopItemType, string>;
21
+ export declare const LOOP_ITEM_TYPE_OPTIONS: Array<{
22
+ label: string;
23
+ value: LoopItemType;
24
+ }>;
25
+ export declare function parseLoopItemResourceExt(extJson?: string | null): LoopItemResourceExt;
26
+ export declare function getLoopItemType(extJson?: string | null): LoopItemType | '';
27
+ export declare function getLoopItemTypeLabel(extJson?: string | null): string;
28
+ export declare function buildLoopItemResourceExt(loopItemType: LoopItemType): string;
@@ -0,0 +1,9 @@
1
+ export * from './plugin.js';
2
+ export { createLayoutTemplatePlugin as layoutTemplate } from './plugin.js';
3
+ export * from './config/layoutSharedResources.js';
4
+ export * from './config/templateSharedResources.js';
5
+ export * from './runtime/storageAdapter.js';
6
+ export * from './utils/layoutProjectData.js';
7
+ export * from './utils/layoutRulePages.js';
8
+ export * from './utils/layoutSettings.js';
9
+ export * from './utils/templateRules.js';
@@ -0,0 +1,13 @@
1
+ import type { ResourceTransactionParticipant, WebBuilderFeaturePlugin, WebBuilderPanelContribution, WebBuilderPluginContext } from '@toototech/webbuilder/core';
2
+ export declare const LAYOUT_TEMPLATE_PLUGIN_ID = "layout-template";
3
+ export type LayoutTemplatePanelRuntime = Partial<Pick<WebBuilderPanelContribution, 'label' | 'order' | 'icon' | 'preserveOnSelection' | 'component' | 'props'>>;
4
+ export interface LayoutTemplatePluginRuntime {
5
+ panels?: {
6
+ layout?: LayoutTemplatePanelRuntime;
7
+ template?: LayoutTemplatePanelRuntime;
8
+ };
9
+ collectResourceParticipants?: (context: WebBuilderPluginContext) => ResourceTransactionParticipant[];
10
+ collectLockParticipants?: (context: WebBuilderPluginContext) => ResourceTransactionParticipant[];
11
+ beforeProjectLoad?: (context: WebBuilderPluginContext) => Promise<void> | void;
12
+ }
13
+ export declare const createLayoutTemplatePlugin: (runtime?: LayoutTemplatePluginRuntime) => WebBuilderFeaturePlugin;
@@ -0,0 +1,49 @@
1
+ import type { PageResourceIdentity } from '@toototech/webbuilder/core';
2
+ export interface LayoutTemplatePageRecord extends PageResourceIdentity {
3
+ id?: number;
4
+ resourceId?: number;
5
+ resourceKey?: string;
6
+ resourceName?: string;
7
+ resourceType?: string;
8
+ resourceScope?: string;
9
+ ownerType?: string;
10
+ ownerId?: number;
11
+ schemaJson?: string;
12
+ extJson?: string;
13
+ createTime?: Date | string;
14
+ updateTime?: Date | string;
15
+ }
16
+ export interface LayoutTemplatePageListResult<T = LayoutTemplatePageRecord> {
17
+ list?: T[];
18
+ total?: number;
19
+ }
20
+ export interface LayoutTemplateSaveRequest extends PageResourceIdentity {
21
+ resourceId?: number;
22
+ resourceKey?: string;
23
+ resourceName?: string;
24
+ resourceType?: string;
25
+ resourceScope?: string;
26
+ schemaJson?: string;
27
+ extJson?: string;
28
+ baseUpdateTime?: Date | string;
29
+ forceOverride?: boolean;
30
+ sessionKey?: string;
31
+ }
32
+ export interface LayoutTemplatePublishRequest extends LayoutTemplateSaveRequest {
33
+ }
34
+ export interface LayoutTemplatePageQuery extends PageResourceIdentity {
35
+ pageNo?: number;
36
+ pageSize?: number;
37
+ resourceTypes?: string[];
38
+ resourceType?: string;
39
+ resourceScope?: string;
40
+ status?: string | number;
41
+ }
42
+ export interface LayoutTemplateStorageAdapter {
43
+ getDraft: (resource: PageResourceIdentity) => Promise<LayoutTemplatePageRecord | null>;
44
+ saveDraft: (request: LayoutTemplateSaveRequest) => Promise<LayoutTemplatePageRecord>;
45
+ publishVersion: (request: LayoutTemplatePublishRequest) => Promise<unknown>;
46
+ }
47
+ export interface LayoutTemplateListStorageAdapter extends LayoutTemplateStorageAdapter {
48
+ getPagePage: (params: LayoutTemplatePageQuery) => Promise<LayoutTemplatePageListResult>;
49
+ }
@@ -0,0 +1,15 @@
1
+ import { type LayoutSlotKey, type WebBuilderLayoutSettings } from './layoutSettings';
2
+ type ProjectData = Record<string, any>;
3
+ export interface LegacyLayoutBundle {
4
+ pageProjectData: ProjectData | null;
5
+ layoutPages: Record<string, any>[];
6
+ layoutSettings: WebBuilderLayoutSettings;
7
+ }
8
+ export declare const extractLegacyLayoutBundle: (projectData: ProjectData | null | undefined) => LegacyLayoutBundle;
9
+ export declare const mergeLayoutBundleProjectData: (pageProjectData: ProjectData | null | undefined, layoutProjectDataList: Array<ProjectData | null | undefined>) => ProjectData;
10
+ export declare const buildPageOnlyProjectData: (fullProjectData: ProjectData | null | undefined) => ProjectData;
11
+ export declare const buildLayoutPageProjectData: (fullProjectData: ProjectData | null | undefined, layoutPageId: string) => ProjectData | null;
12
+ export declare const buildSinglePageProjectData: (baseProjectData: ProjectData | null | undefined, pageData: Record<string, any>) => ProjectData;
13
+ export declare const buildLayoutProjectDataMap: (fullProjectData: ProjectData | null | undefined) => Record<string, ProjectData>;
14
+ export declare const groupLayoutPagesBySlot: (pages: Record<string, any>[]) => Record<LayoutSlotKey, Record<string, any>[]>;
15
+ export {};
@@ -0,0 +1,19 @@
1
+ export type RulePageOption = {
2
+ id: string;
3
+ label: string;
4
+ };
5
+ export interface SelectablePageRow {
6
+ resourceKey?: string | null;
7
+ resourceName?: string | null;
8
+ }
9
+ export interface RulePageListParams {
10
+ pageNo: number;
11
+ pageSize: number;
12
+ status?: string;
13
+ resourceType?: string;
14
+ }
15
+ export interface RulePageListResult {
16
+ list?: SelectablePageRow[];
17
+ }
18
+ export declare const toRulePageOptions: (rows: SelectablePageRow[] | null | undefined) => RulePageOption[];
19
+ export declare const loadRulePageOptions: (fetchPageList: (params: RulePageListParams) => Promise<RulePageListResult>) => Promise<RulePageOption[]>;
@@ -0,0 +1,45 @@
1
+ export type LayoutTarget = string | number | null;
2
+ export type LayoutMatchMode = 'include' | 'exclude';
3
+ export type LayoutSlotKey = 'header' | 'footer';
4
+ export declare const WB_LAYOUT_PAGE_CUSTOM_KEY = "wbLayoutSlot";
5
+ export declare const WB_LAYOUT_PAGE_ID_CUSTOM_KEY = "wbLayoutPageId";
6
+ export interface LayoutRule {
7
+ id: string;
8
+ name?: string;
9
+ layoutId: LayoutTarget;
10
+ matchMode: LayoutMatchMode;
11
+ pageIds: string[];
12
+ enabled: boolean;
13
+ priority: number;
14
+ sourceUpdatedAt?: string;
15
+ sourceResourceId?: number;
16
+ }
17
+ export interface LayoutSlot {
18
+ defaultLayoutId: LayoutTarget;
19
+ rules: LayoutRule[];
20
+ }
21
+ export interface WebBuilderLayoutSettings {
22
+ version: 1;
23
+ header: LayoutSlot;
24
+ footer: LayoutSlot;
25
+ }
26
+ export declare const createDefaultLayoutSettings: () => WebBuilderLayoutSettings;
27
+ export declare const normalizeLayoutSettings: (settings: unknown) => WebBuilderLayoutSettings;
28
+ export declare const cloneLayoutSettings: (settings: WebBuilderLayoutSettings | Partial<WebBuilderLayoutSettings> | null | undefined) => WebBuilderLayoutSettings;
29
+ export declare const getGrapesPageId: (page: any) => string;
30
+ export declare const getGrapesPageName: (page: any) => string;
31
+ export declare const getGrapesPageRouteId: (page: any) => string;
32
+ export declare const getGrapesPageMatchIds: (page: any) => string[];
33
+ export declare const getPageLayoutSlot: (page: any) => LayoutSlotKey | null;
34
+ export declare const isLayoutPage: (page: any) => boolean;
35
+ export declare const getLayoutPageFallbackName: (layoutId: LayoutTarget) => string;
36
+ export declare const getLayoutTargetAliases: (layoutId: LayoutTarget) => string[];
37
+ export declare const getLayoutPageAliases: (page: any) => string[];
38
+ export declare const layoutTargetMatchesPage: (layoutId: LayoutTarget, page: any) => boolean;
39
+ export declare const createLayoutPageData: (slotKey: LayoutSlotKey, existingPages?: any[], reservedLayoutIds?: LayoutTarget[]) => {
40
+ id: string;
41
+ name: string;
42
+ custom: Record<string, any>;
43
+ component: any;
44
+ };
45
+ export declare const resolveLayoutIdForPage: (slot: LayoutSlot | null | undefined, pageId: string | string[], availableLayoutIds?: LayoutTarget[]) => LayoutTarget;
@@ -0,0 +1,52 @@
1
+ import { type TempTemplateResourceType } from '../config/templateSharedResources';
2
+ export interface TemplateTimeRange {
3
+ start?: string;
4
+ end?: string;
5
+ }
6
+ export interface TemplateRuleConditions {
7
+ postIds?: number[];
8
+ excludePostIds?: number[];
9
+ typeIds?: number[];
10
+ excludeTypeIds?: number[];
11
+ tagIds?: number[];
12
+ templateNames?: string[];
13
+ publishTimeRange?: TemplateTimeRange;
14
+ resourceIds?: number[];
15
+ excludeResourceIds?: number[];
16
+ categoryIds?: number[];
17
+ excludeCategoryIds?: number[];
18
+ mediaTypes?: string[];
19
+ spuIds?: number[];
20
+ excludeSpuIds?: number[];
21
+ brandIds?: number[];
22
+ createTimeRange?: TemplateTimeRange;
23
+ rootCategoryIds?: number[];
24
+ levels?: number[];
25
+ }
26
+ export interface TemplateRule {
27
+ id: string;
28
+ name?: string;
29
+ templateType: TempTemplateResourceType;
30
+ templateResourceId?: number;
31
+ templateResourceKey?: string;
32
+ enabled: boolean;
33
+ priority: number;
34
+ conditions: TemplateRuleConditions;
35
+ }
36
+ export interface WebBuilderTemplateRules {
37
+ version: 1;
38
+ postDetail: TemplateRule[];
39
+ postCategoryList: TemplateRule[];
40
+ mediaDetail: TemplateRule[];
41
+ mediaCategoryList: TemplateRule[];
42
+ productDetail: TemplateRule[];
43
+ productCategoryList: TemplateRule[];
44
+ }
45
+ type TemplateRuleBucketKey = keyof Omit<WebBuilderTemplateRules, 'version'>;
46
+ export declare const createDefaultTemplateRulesPayload: () => WebBuilderTemplateRules;
47
+ export declare const normalizeTemplateRulesPayload: (value: unknown) => WebBuilderTemplateRules;
48
+ export declare const cloneTemplateRulesPayload: (value?: WebBuilderTemplateRules | Partial<WebBuilderTemplateRules> | null) => WebBuilderTemplateRules;
49
+ export declare const getTemplateRuleBucketKey: (templateType: TempTemplateResourceType) => TemplateRuleBucketKey | null;
50
+ export declare const getTemplateRulesForType: (payload: WebBuilderTemplateRules, templateType: TempTemplateResourceType) => TemplateRule[];
51
+ export declare const setTemplateRulesForType: (payload: WebBuilderTemplateRules, templateType: TempTemplateResourceType, rules: TemplateRule[]) => WebBuilderTemplateRules;
52
+ export {};
@@ -0,0 +1,2 @@
1
+ export { default as LayoutPanel } from './components/LayoutPanel.vue';
2
+ export { default as TemplateRulesPanel } from './components/TemplateRulesPanel.vue';