@plasmicpkgs/antd 0.0.78 → 0.0.81

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasmicpkgs/antd",
3
- "version": "0.0.78",
3
+ "version": "0.0.81",
4
4
  "description": "Plasmic registration calls for antd components",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -30,7 +30,7 @@
30
30
  "analyze": "size-limit --why"
31
31
  },
32
32
  "devDependencies": {
33
- "@plasmicapp/host": "1.0.66",
33
+ "@plasmicapp/host": "1.0.68",
34
34
  "@size-limit/preset-small-lib": "^4.11.0",
35
35
  "@types/node": "^14.0.26",
36
36
  "antd": "^4.17.2",
@@ -45,5 +45,5 @@
45
45
  "antd": "^4.0.0",
46
46
  "react": ">=16.8.0"
47
47
  },
48
- "gitHead": "77f273e648ceba7d9ecaf1310b639a812d6d1b00"
48
+ "gitHead": "14050241fe73b5c0cfd60fe5429f433438284700"
49
49
  }
@@ -84,20 +84,20 @@ function Tabs(props) {
84
84
  right: rightTabBarExtraContent,
85
85
  } })));
86
86
  }
87
- function AddTab(_a) {
88
- var studioOps = _a.studioOps;
89
- var _b = React__default['default'].useState(""), tabKey = _b[0], setTabKey = _b[1];
90
- var appendNewTab = function (tabKey) {
91
- if (tabKey !== "") {
92
- studioOps.appendToSlot({
93
- type: "component",
94
- name: "AntdTabPane",
95
- props: {
96
- key: tabKey,
97
- },
98
- }, "children");
87
+ function NavigateTabs(_a) {
88
+ var componentProps = _a.componentProps, studioOps = _a.studioOps;
89
+ var tabPanes = [];
90
+ customControls.traverseReactEltTree(componentProps.children, function (elt) {
91
+ if ((elt === null || elt === void 0 ? void 0 : elt.type) === rcTabs.TabPane && typeof (elt === null || elt === void 0 ? void 0 : elt.key) === "string") {
92
+ tabPanes.push(elt.key);
99
93
  }
100
- };
94
+ });
95
+ var activeKey = componentProps.activeKey;
96
+ var currTabPos = activeKey
97
+ ? tabPanes.findIndex(function (tabKey) {
98
+ return tabKey === activeKey;
99
+ })
100
+ : 0;
101
101
  return (React__default['default'].createElement("div", { style: {
102
102
  width: "100%",
103
103
  display: "flex",
@@ -105,11 +105,21 @@ function AddTab(_a) {
105
105
  gap: "10px",
106
106
  justifyContent: "space-between",
107
107
  } },
108
- React__default['default'].createElement(antd.Input, { placeholder: "Tab key", onChange: function (e) { return setTabKey(e.target.value); }, value: tabKey }),
109
- React__default['default'].createElement(antd.Button, { onClick: function () {
110
- appendNewTab(tabKey);
111
- setTabKey("");
112
- } }, "Add tab")));
108
+ React__default['default'].createElement(antd.Button, { style: { width: "100%" }, onClick: function () {
109
+ if (tabPanes.length > 0) {
110
+ var prevTabPos = (currTabPos - 1 + tabPanes.length) % tabPanes.length;
111
+ studioOps.updateProps({ activeKey: tabPanes[prevTabPos] });
112
+ }
113
+ } }, "Prev tab"),
114
+ React__default['default'].createElement(antd.Button, { style: { width: "100%" }, onClick: function () {
115
+ if (tabPanes.length > 0) {
116
+ var nextTabPos = (currTabPos + 1) % tabPanes.length;
117
+ studioOps.updateProps({ activeKey: tabPanes[nextTabPos] });
118
+ }
119
+ } }, "Next tab")));
120
+ }
121
+ function OutlineMessage() {
122
+ return React__default['default'].createElement("div", null, "* To re-arrange tab panes, use the Outline panel");
113
123
  }
114
124
  var tabsMeta = {
115
125
  name: "AntdTabs",
@@ -213,7 +223,39 @@ var tabsMeta = {
213
223
  actions: [
214
224
  {
215
225
  type: "custom-action",
216
- control: AddTab,
226
+ control: NavigateTabs,
227
+ },
228
+ {
229
+ type: "button-action",
230
+ label: "Add new tab",
231
+ onClick: function (_a) {
232
+ var componentProps = _a.componentProps, studioOps = _a.studioOps;
233
+ // Get the first positive integer that isn't already a key
234
+ var generateNewKey = function () {
235
+ var keysSet = new Set();
236
+ customControls.traverseReactEltTree(componentProps.children, function (elt) {
237
+ if ((elt === null || elt === void 0 ? void 0 : elt.type) === rcTabs.TabPane && typeof (elt === null || elt === void 0 ? void 0 : elt.key) === "string") {
238
+ keysSet.add(elt.key);
239
+ }
240
+ });
241
+ for (var keyCandidate = 1; keyCandidate <= keysSet.size + 1; keyCandidate++) {
242
+ var strKey = keyCandidate.toString();
243
+ if (!keysSet.has(strKey)) {
244
+ return strKey;
245
+ }
246
+ }
247
+ return undefined;
248
+ };
249
+ var tabKey = generateNewKey();
250
+ studioOps.appendToSlot({
251
+ type: "component",
252
+ name: "AntdTabPane",
253
+ props: {
254
+ key: tabKey,
255
+ },
256
+ }, "children");
257
+ studioOps.updateProps({ activeKey: tabKey });
258
+ },
217
259
  },
218
260
  {
219
261
  type: "button-action",
@@ -227,15 +269,24 @@ var tabsMeta = {
227
269
  tabPanes_1.push(elt.key);
228
270
  }
229
271
  });
230
- var currentTabPos = tabPanes_1.findIndex(function (tabKey) {
231
- return tabKey === componentProps.activeKey;
272
+ var activeKey_1 = componentProps.activeKey;
273
+ var currTabPos = tabPanes_1.findIndex(function (tabKey) {
274
+ return tabKey === activeKey_1;
232
275
  });
233
- if (currentTabPos !== -1) {
234
- studioOps.removeFromSlotAt(currentTabPos, "children");
276
+ if (currTabPos !== -1) {
277
+ studioOps.removeFromSlotAt(currTabPos, "children");
278
+ if (tabPanes_1.length - 1 > 0) {
279
+ var prevTabPos = (currTabPos - 1 + tabPanes_1.length) % tabPanes_1.length;
280
+ studioOps.updateProps({ activeKey: tabPanes_1[prevTabPos] });
281
+ }
235
282
  }
236
283
  }
237
284
  },
238
285
  },
286
+ {
287
+ type: "custom-action",
288
+ control: OutlineMessage,
289
+ },
239
290
  ],
240
291
  importPath: "@plasmicpkgs/antd/skinny/registerTabs",
241
292
  importName: "Tabs",
@@ -1 +1 @@
1
- {"version":3,"file":"registerTabs.js","sources":["../src/registerTabs.tsx"],"sourcesContent":["import registerComponent, {\n ActionProps,\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { Button, Input } from \"antd\";\nimport {\n default as AntdTabs,\n TabPaneProps,\n TabsProps as AntdTabsProps,\n} from \"antd/lib/tabs\";\nimport { TabPane } from \"rc-tabs\";\nimport React from \"react\";\nimport { traverseReactEltTree } from \"./customControls\";\nimport { Registerable } from \"./registerable\";\n\nexport const tabPaneMeta: ComponentMeta<TabPaneProps> = {\n name: \"AntdTabPane\",\n displayName: \"Antd Tab Pane\",\n props: {\n tab: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"text\",\n value: \"Tab\",\n },\n ],\n },\n key: {\n type: \"string\",\n description: \"Unique TabPane's key\",\n defaultValue: \"tabPaneKey\",\n },\n closable: {\n type: \"boolean\",\n description:\n \"Wether the tab can be closed or not. Only works for editable tabs\",\n defaultValueHint: true,\n },\n disabled: {\n type: \"boolean\",\n description: \"Disabled state of tab\",\n defaultValueHint: false,\n },\n forceRender: {\n type: \"boolean\",\n description:\n \"Forced render of content in tabs, not lazy render after clicking on tabs\",\n defaultValueHint: false,\n },\n closeIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"text\",\n value: \"Tab Content\",\n },\n ],\n },\n },\n parentComponentName: \"AntdTabs\",\n importPath: \"rc-tabs\",\n importName: \"TabPane\",\n};\n\nexport function registerTabPane(\n loader?: Registerable,\n customTabPaneMeta?: ComponentMeta<TabPaneProps>\n) {\n const doRegisterComponent: typeof registerComponent = (...args) =>\n loader ? loader.registerComponent(...args) : registerComponent(...args);\n doRegisterComponent(TabPane, customTabPaneMeta ?? tabPaneMeta);\n}\n\nexport type TabsProps = Omit<AntdTabsProps, \"tabBarExtraContent\"> & {\n leftTabBarExtraContent?: React.ReactNode;\n rightTabBarExtraContent?: React.ReactNode;\n};\n\nexport function Tabs(props: TabsProps) {\n const {\n leftTabBarExtraContent,\n rightTabBarExtraContent,\n ...otherProps\n } = props;\n return (\n <AntdTabs\n {...otherProps}\n tabBarExtraContent={{\n left: leftTabBarExtraContent,\n right: rightTabBarExtraContent,\n }}\n />\n );\n}\n\nfunction AddTab({ studioOps }: ActionProps<any>) {\n const [tabKey, setTabKey] = React.useState<string>(\"\");\n\n const appendNewTab = (tabKey: string) => {\n if (tabKey !== \"\") {\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: \"AntdTabPane\",\n props: {\n key: tabKey,\n },\n },\n \"children\"\n );\n }\n };\n\n return (\n <div\n style={{\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"row\",\n gap: \"10px\",\n justifyContent: \"space-between\",\n }}\n >\n <Input\n placeholder=\"Tab key\"\n onChange={(e) => setTabKey(e.target.value)}\n value={tabKey}\n />\n <Button\n onClick={() => {\n appendNewTab(tabKey);\n setTabKey(\"\");\n }}\n >\n Add tab\n </Button>\n </div>\n );\n}\n\nexport const tabsMeta: ComponentMeta<TabsProps> = {\n name: \"AntdTabs\",\n displayName: \"Antd Tabs\",\n props: {\n type: {\n type: \"choice\",\n options: [\"line\", \"card\", \"editable-card\"],\n defaultValueHint: \"line\",\n description: \"Basic style of tabs\",\n },\n addIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n animated: {\n type: \"object\",\n hidden: (props) => props.tabPosition !== \"top\" && !!props.tabPosition,\n defaultValueHint: { inkBar: true, tabPane: false },\n description:\n \"Whether to change tabs with animation. Can be either a boolean or specify for inkBar and tabPane\",\n },\n hideAdd: {\n type: \"boolean\",\n hidden: (props) => props.type !== \"editable-card\",\n defaultValueHint: false,\n description: \"Hide plus icon or not\",\n },\n moreIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n size: {\n type: \"choice\",\n options: [\"large\", \"default\", \"small\"],\n defaultValueHint: \"default\",\n description: \"Preset tab bar size\",\n },\n tabPosition: {\n type: \"choice\",\n options: [\"top\", \"right\", \"bottom\", \"left\"],\n defaultValueHint: \"top\",\n description: \"Position of tabs\",\n },\n tabBarGutter: {\n type: \"number\",\n description: \"The gap between tabs\",\n },\n centered: {\n type: \"boolean\",\n description: \"Centers tabs\",\n defaultValueHint: false,\n },\n leftTabBarExtraContent: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n rightTabBarExtraContent: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n tabBarStyle: {\n type: \"object\",\n description: \"CSS for the Tab Bar style\",\n },\n activeKey: {\n type: \"choice\",\n editOnly: true,\n uncontrolledProp: \"defaultActiveKey\",\n description: \"Initial active TabPane's key\",\n options: (props) => {\n const options = new Set<string>();\n traverseReactEltTree(props.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n options.add(elt.key);\n }\n });\n return Array.from(options.keys());\n },\n },\n children: {\n type: \"slot\",\n allowedComponents: [\"AntdTabPane\"],\n defaultValue: [\n {\n type: \"component\",\n name: \"AntdTabPane\",\n props: {\n key: \"1\",\n },\n },\n {\n type: \"component\",\n name: \"AntdTabPane\",\n props: {\n key: \"2\",\n },\n },\n ],\n },\n },\n actions: [\n {\n type: \"custom-action\",\n control: AddTab,\n },\n {\n type: \"button-action\",\n label: \"Delete current tab\",\n onClick: ({ componentProps, studioOps }) => {\n if (componentProps.activeKey) {\n const tabPanes: string[] = [];\n traverseReactEltTree(componentProps.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n tabPanes.push(elt.key);\n }\n });\n const currentTabPos = tabPanes.findIndex((tabKey) => {\n return tabKey === componentProps.activeKey;\n });\n if (currentTabPos !== -1) {\n studioOps.removeFromSlotAt(currentTabPos, \"children\");\n }\n }\n },\n },\n ],\n importPath: \"@plasmicpkgs/antd/skinny/registerTabs\",\n importName: \"Tabs\",\n};\n\nexport function registerTabs(\n loader?: Registerable,\n customTabsMeta?: ComponentMeta<TabsProps>\n) {\n const doRegisterComponent: typeof registerComponent = (...args) =>\n loader ? loader.registerComponent(...args) : registerComponent(...args);\n doRegisterComponent(Tabs, customTabsMeta ?? tabsMeta);\n}\n"],"names":["registerComponent","TabPane","React","AntdTabs","Input","Button","traverseReactEltTree"],"mappings":"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"}
1
+ {"version":3,"file":"registerTabs.js","sources":["../src/registerTabs.tsx"],"sourcesContent":["import registerComponent, {\n ActionProps,\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { Button } from \"antd\";\nimport {\n default as AntdTabs,\n TabPaneProps,\n TabsProps as AntdTabsProps,\n} from \"antd/lib/tabs\";\nimport { TabPane } from \"rc-tabs\";\nimport React from \"react\";\nimport { traverseReactEltTree } from \"./customControls\";\nimport { Registerable } from \"./registerable\";\n\nexport const tabPaneMeta: ComponentMeta<TabPaneProps> = {\n name: \"AntdTabPane\",\n displayName: \"Antd Tab Pane\",\n props: {\n tab: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"text\",\n value: \"Tab\",\n },\n ],\n },\n key: {\n type: \"string\",\n description: \"Unique TabPane's key\",\n defaultValue: \"tabPaneKey\",\n },\n closable: {\n type: \"boolean\",\n description:\n \"Wether the tab can be closed or not. Only works for editable tabs\",\n defaultValueHint: true,\n },\n disabled: {\n type: \"boolean\",\n description: \"Disabled state of tab\",\n defaultValueHint: false,\n },\n forceRender: {\n type: \"boolean\",\n description:\n \"Forced render of content in tabs, not lazy render after clicking on tabs\",\n defaultValueHint: false,\n },\n closeIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"text\",\n value: \"Tab Content\",\n },\n ],\n },\n },\n parentComponentName: \"AntdTabs\",\n importPath: \"rc-tabs\",\n importName: \"TabPane\",\n};\n\nexport function registerTabPane(\n loader?: Registerable,\n customTabPaneMeta?: ComponentMeta<TabPaneProps>\n) {\n const doRegisterComponent: typeof registerComponent = (...args) =>\n loader ? loader.registerComponent(...args) : registerComponent(...args);\n doRegisterComponent(TabPane, customTabPaneMeta ?? tabPaneMeta);\n}\n\nexport type TabsProps = Omit<AntdTabsProps, \"tabBarExtraContent\"> & {\n leftTabBarExtraContent?: React.ReactNode;\n rightTabBarExtraContent?: React.ReactNode;\n};\n\nexport function Tabs(props: TabsProps) {\n const {\n leftTabBarExtraContent,\n rightTabBarExtraContent,\n ...otherProps\n } = props;\n return (\n <AntdTabs\n {...otherProps}\n tabBarExtraContent={{\n left: leftTabBarExtraContent,\n right: rightTabBarExtraContent,\n }}\n />\n );\n}\n\nfunction NavigateTabs({ componentProps, studioOps }: ActionProps<any>) {\n const tabPanes: string[] = [];\n traverseReactEltTree(componentProps.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n tabPanes.push(elt.key);\n }\n });\n\n const activeKey = componentProps.activeKey;\n const currTabPos = activeKey\n ? tabPanes.findIndex((tabKey) => {\n return tabKey === activeKey;\n })\n : 0;\n\n return (\n <div\n style={{\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"row\",\n gap: \"10px\",\n justifyContent: \"space-between\",\n }}\n >\n <Button\n style={{ width: \"100%\" }}\n onClick={() => {\n if (tabPanes.length > 0) {\n const prevTabPos =\n (currTabPos - 1 + tabPanes.length) % tabPanes.length;\n studioOps.updateProps({ activeKey: tabPanes[prevTabPos] });\n }\n }}\n >\n Prev tab\n </Button>\n <Button\n style={{ width: \"100%\" }}\n onClick={() => {\n if (tabPanes.length > 0) {\n const nextTabPos = (currTabPos + 1) % tabPanes.length;\n studioOps.updateProps({ activeKey: tabPanes[nextTabPos] });\n }\n }}\n >\n Next tab\n </Button>\n </div>\n );\n}\n\nfunction OutlineMessage() {\n return <div>* To re-arrange tab panes, use the Outline panel</div>;\n}\n\nexport const tabsMeta: ComponentMeta<TabsProps> = {\n name: \"AntdTabs\",\n displayName: \"Antd Tabs\",\n props: {\n type: {\n type: \"choice\",\n options: [\"line\", \"card\", \"editable-card\"],\n defaultValueHint: \"line\",\n description: \"Basic style of tabs\",\n },\n addIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n animated: {\n type: \"object\",\n hidden: (props) => props.tabPosition !== \"top\" && !!props.tabPosition,\n defaultValueHint: { inkBar: true, tabPane: false },\n description:\n \"Whether to change tabs with animation. Can be either a boolean or specify for inkBar and tabPane\",\n },\n hideAdd: {\n type: \"boolean\",\n hidden: (props) => props.type !== \"editable-card\",\n defaultValueHint: false,\n description: \"Hide plus icon or not\",\n },\n moreIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n size: {\n type: \"choice\",\n options: [\"large\", \"default\", \"small\"],\n defaultValueHint: \"default\",\n description: \"Preset tab bar size\",\n },\n tabPosition: {\n type: \"choice\",\n options: [\"top\", \"right\", \"bottom\", \"left\"],\n defaultValueHint: \"top\",\n description: \"Position of tabs\",\n },\n tabBarGutter: {\n type: \"number\",\n description: \"The gap between tabs\",\n },\n centered: {\n type: \"boolean\",\n description: \"Centers tabs\",\n defaultValueHint: false,\n },\n leftTabBarExtraContent: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n rightTabBarExtraContent: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n tabBarStyle: {\n type: \"object\",\n description: \"CSS for the Tab Bar style\",\n },\n activeKey: {\n type: \"choice\",\n editOnly: true,\n uncontrolledProp: \"defaultActiveKey\",\n description: \"Initial active TabPane's key\",\n options: (props) => {\n const options = new Set<string>();\n traverseReactEltTree(props.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n options.add(elt.key);\n }\n });\n return Array.from(options.keys());\n },\n },\n children: {\n type: \"slot\",\n allowedComponents: [\"AntdTabPane\"],\n defaultValue: [\n {\n type: \"component\",\n name: \"AntdTabPane\",\n props: {\n key: \"1\",\n },\n },\n {\n type: \"component\",\n name: \"AntdTabPane\",\n props: {\n key: \"2\",\n },\n },\n ],\n },\n },\n actions: [\n {\n type: \"custom-action\",\n control: NavigateTabs,\n },\n {\n type: \"button-action\",\n label: \"Add new tab\",\n onClick: ({ componentProps, studioOps }: ActionProps<any>) => {\n // Get the first positive integer that isn't already a key\n const generateNewKey = () => {\n let keysSet = new Set<string>();\n traverseReactEltTree(componentProps.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n keysSet.add(elt.key);\n }\n });\n\n for (\n let keyCandidate = 1;\n keyCandidate <= keysSet.size + 1;\n keyCandidate++\n ) {\n const strKey = keyCandidate.toString();\n if (!keysSet.has(strKey)) {\n return strKey;\n }\n }\n\n return undefined;\n };\n\n const tabKey = generateNewKey();\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: \"AntdTabPane\",\n props: {\n key: tabKey,\n },\n },\n \"children\"\n );\n studioOps.updateProps({ activeKey: tabKey });\n },\n },\n {\n type: \"button-action\",\n label: \"Delete current tab\",\n onClick: ({ componentProps, studioOps }: ActionProps<any>) => {\n if (componentProps.activeKey) {\n const tabPanes: string[] = [];\n traverseReactEltTree(componentProps.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n tabPanes.push(elt.key);\n }\n });\n\n const activeKey = componentProps.activeKey;\n const currTabPos = tabPanes.findIndex((tabKey) => {\n return tabKey === activeKey;\n });\n\n if (currTabPos !== -1) {\n studioOps.removeFromSlotAt(currTabPos, \"children\");\n if (tabPanes.length - 1 > 0) {\n const prevTabPos =\n (currTabPos - 1 + tabPanes.length) % tabPanes.length;\n studioOps.updateProps({ activeKey: tabPanes[prevTabPos] });\n }\n }\n }\n },\n },\n {\n type: \"custom-action\",\n control: OutlineMessage,\n },\n ],\n importPath: \"@plasmicpkgs/antd/skinny/registerTabs\",\n importName: \"Tabs\",\n};\n\nexport function registerTabs(\n loader?: Registerable,\n customTabsMeta?: ComponentMeta<TabsProps>\n) {\n const doRegisterComponent: typeof registerComponent = (...args) =>\n loader ? loader.registerComponent(...args) : registerComponent(...args);\n doRegisterComponent(Tabs, customTabsMeta ?? tabsMeta);\n}\n"],"names":["registerComponent","TabPane","React","AntdTabs","traverseReactEltTree","Button"],"mappings":"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"}