@devtools-ui/copy-to-clipboard 0.3.1-next.1 → 0.4.0-next.1

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.
@@ -90,16 +90,19 @@ CopyToClipboard2.Label = (0, import_dsl.createSlot)({
90
90
  });
91
91
 
92
92
  // ../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/copy-to-clipboard/src/transform/index.ts
93
+ var getData = (asset, options) => {
94
+ if (asset.binding === void 0) {
95
+ return "";
96
+ }
97
+ const obj = options.data.model.get(asset.binding, {
98
+ includeInvalid: true,
99
+ formatted: false
100
+ });
101
+ return typeof obj === "string" ? obj : JSON.stringify(obj, null, 2);
102
+ };
93
103
  var copyToClipboardTransform = (asset, options) => ({
94
104
  ...asset,
95
- data: asset.binding === void 0 ? "" : JSON.stringify(
96
- options.data.model.get(asset.binding, {
97
- includeInvalid: true,
98
- formatted: false
99
- }),
100
- null,
101
- 2
102
- )
105
+ data: getData(asset, options)
103
106
  });
104
107
  // Annotate the CommonJS export names for ESM import in node:
105
108
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/copy-to-clipboard/src/index.ts","../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/copy-to-clipboard/src/component/index.tsx","../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/copy-to-clipboard/src/dsl/index.tsx","../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/copy-to-clipboard/src/transform/index.ts"],"sourcesContent":["export * from \"./types\";\nexport * from \"./component\";\nexport * from \"./dsl\";\nexport * from \"./transform\";\n","import { ReactAsset } from \"@player-ui/react\";\nimport React, { useCallback } from \"react\";\nimport type { TransformedCopyToClipboard } from \"../types\";\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\nimport { useToast, Button } from \"@chakra-ui/react\";\n\nexport const CopyToClipboardComponent = (props: TransformedCopyToClipboard) => {\n const { label, data } = props;\n const toast = useToast();\n const handleCopy = useCallback(\n (_: string, result: boolean) => {\n if (result) {\n toast({\n title: \"Data copied to clipboard\",\n description: \"Data copied successfully\",\n status: \"success\",\n duration: 3000,\n isClosable: true,\n });\n } else {\n toast({\n title: \"Failed to copy\",\n description: \"Failed to copy data to clipboard\",\n status: \"error\",\n duration: 3000,\n isClosable: true,\n });\n }\n },\n [toast]\n );\n\n return (\n <CopyToClipboard text={data} onCopy={handleCopy}>\n <Button>{label && <ReactAsset {...label.asset} />}</Button>\n </CopyToClipboard>\n );\n};\n","import React from \"react\";\nimport {\n AssetPropsWithChildren,\n Asset,\n createSlot,\n BindingTemplateInstance,\n} from \"@player-tools/dsl\";\nimport type { Asset as AssetType } from \"@player-ui/player\";\nimport { Collection } from \"@devtools-ui/collection\";\nimport { Text } from \"@devtools-ui/text\";\nimport type { CopyToClipboardAsset } from \"../types\";\n\n/**\n * Defines the component DSL representation, so users of this plugin can author Player-UI\n * content leveraging .jsx/.tsx syntax.\n */\nexport const CopyToClipboard = (\n props: Omit<AssetPropsWithChildren<CopyToClipboardAsset>, \"binding\"> & {\n /** The binding */\n binding?: BindingTemplateInstance;\n }\n) => {\n const { binding, children, ...rest } = props;\n\n return (\n <Asset type=\"copy-to-clipboard\" {...rest}>\n {binding && <property name=\"binding\">{binding.toValue()}</property>}\n {children}\n </Asset>\n );\n};\n\nconst CollectionComp = (props: AssetPropsWithChildren<AssetType>) => {\n return (\n <Collection>\n <Collection.Values>{props.children}</Collection.Values>\n </Collection>\n );\n};\n\nCopyToClipboard.Label = createSlot({\n name: \"label\",\n TextComp: Text,\n CollectionComp,\n isArray: false,\n wrapInAsset: true,\n});\n","import type { TransformFunction } from \"@player-ui/player\";\nimport { CopyToClipboardAsset, TransformedCopyToClipboard } from \"../types\";\n\n/**\n * Platform-agnostic transform function that takes the properties we get from the Player Content (DSL > JSON)\n * and embeds Player state and methods:\n */\nexport const copyToClipboardTransform: TransformFunction<\n CopyToClipboardAsset,\n TransformedCopyToClipboard\n> = (asset, options) => ({\n ...asset,\n data:\n asset.binding === undefined\n ? \"\"\n : JSON.stringify(\n options.data.model.get(asset.binding, {\n includeInvalid: true,\n formatted: false,\n }),\n null,\n 2\n ),\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,yBAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;;;ACAA,mBAA2B;AAC3B,IAAAC,gBAAmC;AAEnC,qCAAgC;AAChC,IAAAA,gBAAiC;AAE1B,IAAM,2BAA2B,CAAC,UAAsC;AAC7E,QAAM,EAAE,OAAO,KAAK,IAAI;AACxB,QAAM,YAAQ,wBAAS;AACvB,QAAM,iBAAa;AAAA,IACjB,CAAC,GAAW,WAAoB;AAC9B,UAAI,QAAQ;AACV,cAAM;AAAA,UACJ,OAAO;AAAA,UACP,aAAa;AAAA,UACb,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,YAAY;AAAA,QACd,CAAC;AAAA,MACH,OAAO;AACL,cAAM;AAAA,UACJ,OAAO;AAAA,UACP,aAAa;AAAA,UACb,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,YAAY;AAAA,QACd,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,CAAC,KAAK;AAAA,EACR;AAEA,SACE,8BAAAC,QAAA,cAAC,kDAAgB,MAAM,MAAM,QAAQ,cACnC,8BAAAA,QAAA,cAAC,4BAAQ,SAAS,8BAAAA,QAAA,cAAC,2BAAY,GAAG,MAAM,OAAO,CAAG,CACpD;AAEJ;;;ACrCA,IAAAC,gBAAkB;AAClB,iBAKO;AAEP,wBAA2B;AAC3B,kBAAqB;AAOd,IAAMC,mBAAkB,CAC7B,UAIG;AACH,QAAM,EAAE,SAAS,UAAU,GAAG,KAAK,IAAI;AAEvC,SACE,8BAAAC,QAAA,cAAC,oBAAM,MAAK,qBAAqB,GAAG,QACjC,WAAW,8BAAAA,QAAA,cAAC,cAAS,MAAK,aAAW,QAAQ,QAAQ,CAAE,GACvD,QACH;AAEJ;AAEA,IAAM,iBAAiB,CAAC,UAA6C;AACnE,SACE,8BAAAA,QAAA,cAAC,oCACC,8BAAAA,QAAA,cAAC,6BAAW,QAAX,MAAmB,MAAM,QAAS,CACrC;AAEJ;AAEAD,iBAAgB,YAAQ,uBAAW;AAAA,EACjC,MAAM;AAAA,EACN,UAAU;AAAA,EACV;AAAA,EACA,SAAS;AAAA,EACT,aAAa;AACf,CAAC;;;ACvCM,IAAM,2BAGT,CAAC,OAAO,aAAa;AAAA,EACvB,GAAG;AAAA,EACH,MACE,MAAM,YAAY,SACd,KACA,KAAK;AAAA,IACH,QAAQ,KAAK,MAAM,IAAI,MAAM,SAAS;AAAA,MACpC,gBAAgB;AAAA,MAChB,WAAW;AAAA,IACb,CAAC;AAAA,IACD;AAAA,IACA;AAAA,EACF;AACR;","names":["CopyToClipboard","import_react","React","import_react","CopyToClipboard","React"]}
1
+ {"version":3,"sources":["../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/copy-to-clipboard/src/index.ts","../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/copy-to-clipboard/src/component/index.tsx","../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/copy-to-clipboard/src/dsl/index.tsx","../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/copy-to-clipboard/src/transform/index.ts"],"sourcesContent":["export * from \"./types\";\nexport * from \"./component\";\nexport * from \"./dsl\";\nexport * from \"./transform\";\n","import { ReactAsset } from \"@player-ui/react\";\nimport React, { useCallback } from \"react\";\nimport type { TransformedCopyToClipboard } from \"../types\";\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\nimport { useToast, Button } from \"@chakra-ui/react\";\n\nexport const CopyToClipboardComponent = (props: TransformedCopyToClipboard) => {\n const { label, data } = props;\n const toast = useToast();\n const handleCopy = useCallback(\n (_: string, result: boolean) => {\n if (result) {\n toast({\n title: \"Data copied to clipboard\",\n description: \"Data copied successfully\",\n status: \"success\",\n duration: 3000,\n isClosable: true,\n });\n } else {\n toast({\n title: \"Failed to copy\",\n description: \"Failed to copy data to clipboard\",\n status: \"error\",\n duration: 3000,\n isClosable: true,\n });\n }\n },\n [toast]\n );\n\n return (\n <CopyToClipboard text={data} onCopy={handleCopy}>\n <Button>{label && <ReactAsset {...label.asset} />}</Button>\n </CopyToClipboard>\n );\n};\n","import React from \"react\";\nimport {\n AssetPropsWithChildren,\n Asset,\n createSlot,\n BindingTemplateInstance,\n} from \"@player-tools/dsl\";\nimport type { Asset as AssetType } from \"@player-ui/player\";\nimport { Collection } from \"@devtools-ui/collection\";\nimport { Text } from \"@devtools-ui/text\";\nimport type { CopyToClipboardAsset } from \"../types\";\n\n/**\n * Defines the component DSL representation, so users of this plugin can author Player-UI\n * content leveraging .jsx/.tsx syntax.\n */\nexport const CopyToClipboard = (\n props: Omit<AssetPropsWithChildren<CopyToClipboardAsset>, \"binding\"> & {\n /** The binding */\n binding?: BindingTemplateInstance;\n }\n) => {\n const { binding, children, ...rest } = props;\n\n return (\n <Asset type=\"copy-to-clipboard\" {...rest}>\n {binding && <property name=\"binding\">{binding.toValue()}</property>}\n {children}\n </Asset>\n );\n};\n\nconst CollectionComp = (props: AssetPropsWithChildren<AssetType>) => {\n return (\n <Collection>\n <Collection.Values>{props.children}</Collection.Values>\n </Collection>\n );\n};\n\nCopyToClipboard.Label = createSlot({\n name: \"label\",\n TextComp: Text,\n CollectionComp,\n isArray: false,\n wrapInAsset: true,\n});\n","import type { TransformFunction, Resolve } from \"@player-ui/player\";\nimport { CopyToClipboardAsset, TransformedCopyToClipboard } from \"../types\";\n\nconst getData = (\n asset: CopyToClipboardAsset,\n options: Resolve.NodeResolveOptions\n): string => {\n if (asset.binding === undefined) {\n return \"\";\n }\n const obj = options.data.model.get(asset.binding, {\n includeInvalid: true,\n formatted: false,\n });\n return typeof obj === \"string\" ? obj : JSON.stringify(obj, null, 2);\n};\n\n/**\n * Platform-agnostic transform function that takes the properties we get from the Player Content (DSL > JSON)\n * and embeds Player state and methods:\n */\nexport const copyToClipboardTransform: TransformFunction<\n CopyToClipboardAsset,\n TransformedCopyToClipboard\n> = (asset, options) => ({\n ...asset,\n data: getData(asset, options),\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,yBAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;;;ACAA,mBAA2B;AAC3B,IAAAC,gBAAmC;AAEnC,qCAAgC;AAChC,IAAAA,gBAAiC;AAE1B,IAAM,2BAA2B,CAAC,UAAsC;AAC7E,QAAM,EAAE,OAAO,KAAK,IAAI;AACxB,QAAM,YAAQ,wBAAS;AACvB,QAAM,iBAAa;AAAA,IACjB,CAAC,GAAW,WAAoB;AAC9B,UAAI,QAAQ;AACV,cAAM;AAAA,UACJ,OAAO;AAAA,UACP,aAAa;AAAA,UACb,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,YAAY;AAAA,QACd,CAAC;AAAA,MACH,OAAO;AACL,cAAM;AAAA,UACJ,OAAO;AAAA,UACP,aAAa;AAAA,UACb,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,YAAY;AAAA,QACd,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,CAAC,KAAK;AAAA,EACR;AAEA,SACE,8BAAAC,QAAA,cAAC,kDAAgB,MAAM,MAAM,QAAQ,cACnC,8BAAAA,QAAA,cAAC,4BAAQ,SAAS,8BAAAA,QAAA,cAAC,2BAAY,GAAG,MAAM,OAAO,CAAG,CACpD;AAEJ;;;ACrCA,IAAAC,gBAAkB;AAClB,iBAKO;AAEP,wBAA2B;AAC3B,kBAAqB;AAOd,IAAMC,mBAAkB,CAC7B,UAIG;AACH,QAAM,EAAE,SAAS,UAAU,GAAG,KAAK,IAAI;AAEvC,SACE,8BAAAC,QAAA,cAAC,oBAAM,MAAK,qBAAqB,GAAG,QACjC,WAAW,8BAAAA,QAAA,cAAC,cAAS,MAAK,aAAW,QAAQ,QAAQ,CAAE,GACvD,QACH;AAEJ;AAEA,IAAM,iBAAiB,CAAC,UAA6C;AACnE,SACE,8BAAAA,QAAA,cAAC,oCACC,8BAAAA,QAAA,cAAC,6BAAW,QAAX,MAAmB,MAAM,QAAS,CACrC;AAEJ;AAEAD,iBAAgB,YAAQ,uBAAW;AAAA,EACjC,MAAM;AAAA,EACN,UAAU;AAAA,EACV;AAAA,EACA,SAAS;AAAA,EACT,aAAa;AACf,CAAC;;;AC3CD,IAAM,UAAU,CACd,OACA,YACW;AACX,MAAI,MAAM,YAAY,QAAW;AAC/B,WAAO;AAAA,EACT;AACA,QAAM,MAAM,QAAQ,KAAK,MAAM,IAAI,MAAM,SAAS;AAAA,IAChD,gBAAgB;AAAA,IAChB,WAAW;AAAA,EACb,CAAC;AACD,SAAO,OAAO,QAAQ,WAAW,MAAM,KAAK,UAAU,KAAK,MAAM,CAAC;AACpE;AAMO,IAAM,2BAGT,CAAC,OAAO,aAAa;AAAA,EACvB,GAAG;AAAA,EACH,MAAM,QAAQ,OAAO,OAAO;AAC9B;","names":["CopyToClipboard","import_react","React","import_react","CopyToClipboard","React"]}
@@ -55,16 +55,19 @@ CopyToClipboard2.Label = createSlot({
55
55
  });
56
56
 
57
57
  // ../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/copy-to-clipboard/src/transform/index.ts
58
+ var getData = (asset, options) => {
59
+ if (asset.binding === void 0) {
60
+ return "";
61
+ }
62
+ const obj = options.data.model.get(asset.binding, {
63
+ includeInvalid: true,
64
+ formatted: false
65
+ });
66
+ return typeof obj === "string" ? obj : JSON.stringify(obj, null, 2);
67
+ };
58
68
  var copyToClipboardTransform = (asset, options) => ({
59
69
  ...asset,
60
- data: asset.binding === void 0 ? "" : JSON.stringify(
61
- options.data.model.get(asset.binding, {
62
- includeInvalid: true,
63
- formatted: false
64
- }),
65
- null,
66
- 2
67
- )
70
+ data: getData(asset, options)
68
71
  });
69
72
  export {
70
73
  CopyToClipboard2 as CopyToClipboard,
package/dist/index.mjs CHANGED
@@ -55,16 +55,19 @@ CopyToClipboard2.Label = createSlot({
55
55
  });
56
56
 
57
57
  // ../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/copy-to-clipboard/src/transform/index.ts
58
+ var getData = (asset, options) => {
59
+ if (asset.binding === void 0) {
60
+ return "";
61
+ }
62
+ const obj = options.data.model.get(asset.binding, {
63
+ includeInvalid: true,
64
+ formatted: false
65
+ });
66
+ return typeof obj === "string" ? obj : JSON.stringify(obj, null, 2);
67
+ };
58
68
  var copyToClipboardTransform = (asset, options) => ({
59
69
  ...asset,
60
- data: asset.binding === void 0 ? "" : JSON.stringify(
61
- options.data.model.get(asset.binding, {
62
- includeInvalid: true,
63
- formatted: false
64
- }),
65
- null,
66
- 2
67
- )
70
+ data: getData(asset, options)
68
71
  });
69
72
  export {
70
73
  CopyToClipboard2 as CopyToClipboard,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/copy-to-clipboard/src/component/index.tsx","../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/copy-to-clipboard/src/dsl/index.tsx","../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/copy-to-clipboard/src/transform/index.ts"],"sourcesContent":["import { ReactAsset } from \"@player-ui/react\";\nimport React, { useCallback } from \"react\";\nimport type { TransformedCopyToClipboard } from \"../types\";\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\nimport { useToast, Button } from \"@chakra-ui/react\";\n\nexport const CopyToClipboardComponent = (props: TransformedCopyToClipboard) => {\n const { label, data } = props;\n const toast = useToast();\n const handleCopy = useCallback(\n (_: string, result: boolean) => {\n if (result) {\n toast({\n title: \"Data copied to clipboard\",\n description: \"Data copied successfully\",\n status: \"success\",\n duration: 3000,\n isClosable: true,\n });\n } else {\n toast({\n title: \"Failed to copy\",\n description: \"Failed to copy data to clipboard\",\n status: \"error\",\n duration: 3000,\n isClosable: true,\n });\n }\n },\n [toast]\n );\n\n return (\n <CopyToClipboard text={data} onCopy={handleCopy}>\n <Button>{label && <ReactAsset {...label.asset} />}</Button>\n </CopyToClipboard>\n );\n};\n","import React from \"react\";\nimport {\n AssetPropsWithChildren,\n Asset,\n createSlot,\n BindingTemplateInstance,\n} from \"@player-tools/dsl\";\nimport type { Asset as AssetType } from \"@player-ui/player\";\nimport { Collection } from \"@devtools-ui/collection\";\nimport { Text } from \"@devtools-ui/text\";\nimport type { CopyToClipboardAsset } from \"../types\";\n\n/**\n * Defines the component DSL representation, so users of this plugin can author Player-UI\n * content leveraging .jsx/.tsx syntax.\n */\nexport const CopyToClipboard = (\n props: Omit<AssetPropsWithChildren<CopyToClipboardAsset>, \"binding\"> & {\n /** The binding */\n binding?: BindingTemplateInstance;\n }\n) => {\n const { binding, children, ...rest } = props;\n\n return (\n <Asset type=\"copy-to-clipboard\" {...rest}>\n {binding && <property name=\"binding\">{binding.toValue()}</property>}\n {children}\n </Asset>\n );\n};\n\nconst CollectionComp = (props: AssetPropsWithChildren<AssetType>) => {\n return (\n <Collection>\n <Collection.Values>{props.children}</Collection.Values>\n </Collection>\n );\n};\n\nCopyToClipboard.Label = createSlot({\n name: \"label\",\n TextComp: Text,\n CollectionComp,\n isArray: false,\n wrapInAsset: true,\n});\n","import type { TransformFunction } from \"@player-ui/player\";\nimport { CopyToClipboardAsset, TransformedCopyToClipboard } from \"../types\";\n\n/**\n * Platform-agnostic transform function that takes the properties we get from the Player Content (DSL > JSON)\n * and embeds Player state and methods:\n */\nexport const copyToClipboardTransform: TransformFunction<\n CopyToClipboardAsset,\n TransformedCopyToClipboard\n> = (asset, options) => ({\n ...asset,\n data:\n asset.binding === undefined\n ? \"\"\n : JSON.stringify(\n options.data.model.get(asset.binding, {\n includeInvalid: true,\n formatted: false,\n }),\n null,\n 2\n ),\n});\n"],"mappings":";AAAA,SAAS,kBAAkB;AAC3B,OAAO,SAAS,mBAAmB;AAEnC,SAAS,uBAAuB;AAChC,SAAS,UAAU,cAAc;AAE1B,IAAM,2BAA2B,CAAC,UAAsC;AAC7E,QAAM,EAAE,OAAO,KAAK,IAAI;AACxB,QAAM,QAAQ,SAAS;AACvB,QAAM,aAAa;AAAA,IACjB,CAAC,GAAW,WAAoB;AAC9B,UAAI,QAAQ;AACV,cAAM;AAAA,UACJ,OAAO;AAAA,UACP,aAAa;AAAA,UACb,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,YAAY;AAAA,QACd,CAAC;AAAA,MACH,OAAO;AACL,cAAM;AAAA,UACJ,OAAO;AAAA,UACP,aAAa;AAAA,UACb,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,YAAY;AAAA,QACd,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,CAAC,KAAK;AAAA,EACR;AAEA,SACE,oCAAC,mBAAgB,MAAM,MAAM,QAAQ,cACnC,oCAAC,cAAQ,SAAS,oCAAC,cAAY,GAAG,MAAM,OAAO,CAAG,CACpD;AAEJ;;;ACrCA,OAAOA,YAAW;AAClB;AAAA,EAEE;AAAA,EACA;AAAA,OAEK;AAEP,SAAS,kBAAkB;AAC3B,SAAS,YAAY;AAOd,IAAMC,mBAAkB,CAC7B,UAIG;AACH,QAAM,EAAE,SAAS,UAAU,GAAG,KAAK,IAAI;AAEvC,SACE,gBAAAD,OAAA,cAAC,SAAM,MAAK,qBAAqB,GAAG,QACjC,WAAW,gBAAAA,OAAA,cAAC,cAAS,MAAK,aAAW,QAAQ,QAAQ,CAAE,GACvD,QACH;AAEJ;AAEA,IAAM,iBAAiB,CAAC,UAA6C;AACnE,SACE,gBAAAA,OAAA,cAAC,kBACC,gBAAAA,OAAA,cAAC,WAAW,QAAX,MAAmB,MAAM,QAAS,CACrC;AAEJ;AAEAC,iBAAgB,QAAQ,WAAW;AAAA,EACjC,MAAM;AAAA,EACN,UAAU;AAAA,EACV;AAAA,EACA,SAAS;AAAA,EACT,aAAa;AACf,CAAC;;;ACvCM,IAAM,2BAGT,CAAC,OAAO,aAAa;AAAA,EACvB,GAAG;AAAA,EACH,MACE,MAAM,YAAY,SACd,KACA,KAAK;AAAA,IACH,QAAQ,KAAK,MAAM,IAAI,MAAM,SAAS;AAAA,MACpC,gBAAgB;AAAA,MAChB,WAAW;AAAA,IACb,CAAC;AAAA,IACD;AAAA,IACA;AAAA,EACF;AACR;","names":["React","CopyToClipboard"]}
1
+ {"version":3,"sources":["../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/copy-to-clipboard/src/component/index.tsx","../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/copy-to-clipboard/src/dsl/index.tsx","../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/copy-to-clipboard/src/transform/index.ts"],"sourcesContent":["import { ReactAsset } from \"@player-ui/react\";\nimport React, { useCallback } from \"react\";\nimport type { TransformedCopyToClipboard } from \"../types\";\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\nimport { useToast, Button } from \"@chakra-ui/react\";\n\nexport const CopyToClipboardComponent = (props: TransformedCopyToClipboard) => {\n const { label, data } = props;\n const toast = useToast();\n const handleCopy = useCallback(\n (_: string, result: boolean) => {\n if (result) {\n toast({\n title: \"Data copied to clipboard\",\n description: \"Data copied successfully\",\n status: \"success\",\n duration: 3000,\n isClosable: true,\n });\n } else {\n toast({\n title: \"Failed to copy\",\n description: \"Failed to copy data to clipboard\",\n status: \"error\",\n duration: 3000,\n isClosable: true,\n });\n }\n },\n [toast]\n );\n\n return (\n <CopyToClipboard text={data} onCopy={handleCopy}>\n <Button>{label && <ReactAsset {...label.asset} />}</Button>\n </CopyToClipboard>\n );\n};\n","import React from \"react\";\nimport {\n AssetPropsWithChildren,\n Asset,\n createSlot,\n BindingTemplateInstance,\n} from \"@player-tools/dsl\";\nimport type { Asset as AssetType } from \"@player-ui/player\";\nimport { Collection } from \"@devtools-ui/collection\";\nimport { Text } from \"@devtools-ui/text\";\nimport type { CopyToClipboardAsset } from \"../types\";\n\n/**\n * Defines the component DSL representation, so users of this plugin can author Player-UI\n * content leveraging .jsx/.tsx syntax.\n */\nexport const CopyToClipboard = (\n props: Omit<AssetPropsWithChildren<CopyToClipboardAsset>, \"binding\"> & {\n /** The binding */\n binding?: BindingTemplateInstance;\n }\n) => {\n const { binding, children, ...rest } = props;\n\n return (\n <Asset type=\"copy-to-clipboard\" {...rest}>\n {binding && <property name=\"binding\">{binding.toValue()}</property>}\n {children}\n </Asset>\n );\n};\n\nconst CollectionComp = (props: AssetPropsWithChildren<AssetType>) => {\n return (\n <Collection>\n <Collection.Values>{props.children}</Collection.Values>\n </Collection>\n );\n};\n\nCopyToClipboard.Label = createSlot({\n name: \"label\",\n TextComp: Text,\n CollectionComp,\n isArray: false,\n wrapInAsset: true,\n});\n","import type { TransformFunction, Resolve } from \"@player-ui/player\";\nimport { CopyToClipboardAsset, TransformedCopyToClipboard } from \"../types\";\n\nconst getData = (\n asset: CopyToClipboardAsset,\n options: Resolve.NodeResolveOptions\n): string => {\n if (asset.binding === undefined) {\n return \"\";\n }\n const obj = options.data.model.get(asset.binding, {\n includeInvalid: true,\n formatted: false,\n });\n return typeof obj === \"string\" ? obj : JSON.stringify(obj, null, 2);\n};\n\n/**\n * Platform-agnostic transform function that takes the properties we get from the Player Content (DSL > JSON)\n * and embeds Player state and methods:\n */\nexport const copyToClipboardTransform: TransformFunction<\n CopyToClipboardAsset,\n TransformedCopyToClipboard\n> = (asset, options) => ({\n ...asset,\n data: getData(asset, options),\n});\n"],"mappings":";AAAA,SAAS,kBAAkB;AAC3B,OAAO,SAAS,mBAAmB;AAEnC,SAAS,uBAAuB;AAChC,SAAS,UAAU,cAAc;AAE1B,IAAM,2BAA2B,CAAC,UAAsC;AAC7E,QAAM,EAAE,OAAO,KAAK,IAAI;AACxB,QAAM,QAAQ,SAAS;AACvB,QAAM,aAAa;AAAA,IACjB,CAAC,GAAW,WAAoB;AAC9B,UAAI,QAAQ;AACV,cAAM;AAAA,UACJ,OAAO;AAAA,UACP,aAAa;AAAA,UACb,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,YAAY;AAAA,QACd,CAAC;AAAA,MACH,OAAO;AACL,cAAM;AAAA,UACJ,OAAO;AAAA,UACP,aAAa;AAAA,UACb,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,YAAY;AAAA,QACd,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,CAAC,KAAK;AAAA,EACR;AAEA,SACE,oCAAC,mBAAgB,MAAM,MAAM,QAAQ,cACnC,oCAAC,cAAQ,SAAS,oCAAC,cAAY,GAAG,MAAM,OAAO,CAAG,CACpD;AAEJ;;;ACrCA,OAAOA,YAAW;AAClB;AAAA,EAEE;AAAA,EACA;AAAA,OAEK;AAEP,SAAS,kBAAkB;AAC3B,SAAS,YAAY;AAOd,IAAMC,mBAAkB,CAC7B,UAIG;AACH,QAAM,EAAE,SAAS,UAAU,GAAG,KAAK,IAAI;AAEvC,SACE,gBAAAD,OAAA,cAAC,SAAM,MAAK,qBAAqB,GAAG,QACjC,WAAW,gBAAAA,OAAA,cAAC,cAAS,MAAK,aAAW,QAAQ,QAAQ,CAAE,GACvD,QACH;AAEJ;AAEA,IAAM,iBAAiB,CAAC,UAA6C;AACnE,SACE,gBAAAA,OAAA,cAAC,kBACC,gBAAAA,OAAA,cAAC,WAAW,QAAX,MAAmB,MAAM,QAAS,CACrC;AAEJ;AAEAC,iBAAgB,QAAQ,WAAW;AAAA,EACjC,MAAM;AAAA,EACN,UAAU;AAAA,EACV;AAAA,EACA,SAAS;AAAA,EACT,aAAa;AACf,CAAC;;;AC3CD,IAAM,UAAU,CACd,OACA,YACW;AACX,MAAI,MAAM,YAAY,QAAW;AAC/B,WAAO;AAAA,EACT;AACA,QAAM,MAAM,QAAQ,KAAK,MAAM,IAAI,MAAM,SAAS;AAAA,IAChD,gBAAgB;AAAA,IAChB,WAAW;AAAA,EACb,CAAC;AACD,SAAO,OAAO,QAAQ,WAAW,MAAM,KAAK,UAAU,KAAK,MAAM,CAAC;AACpE;AAMO,IAAM,2BAGT,CAAC,OAAO,aAAa;AAAA,EACvB,GAAG;AAAA,EACH,MAAM,QAAQ,OAAO,OAAO;AAC9B;","names":["React","CopyToClipboard"]}
package/package.json CHANGED
@@ -1,24 +1,19 @@
1
1
  {
2
2
  "name": "@devtools-ui/copy-to-clipboard",
3
- "version": "0.3.1-next.1",
3
+ "version": "0.4.0-next.1",
4
4
  "main": "dist/cjs/index.cjs",
5
5
  "dependencies": {
6
- "@devtools-ui/text": "0.3.1-next.1",
7
- "@devtools-ui/collection": "0.3.1-next.1",
6
+ "@devtools-ui/text": "0.4.0-next.1",
7
+ "@devtools-ui/collection": "0.4.0-next.1",
8
8
  "@chakra-ui/react": "^2.8.2",
9
9
  "@emotion/react": "^11.11.4",
10
10
  "@emotion/styled": "^11.11.0",
11
- "@player-tools/dsl": "0.7.0-next.3",
12
- "@player-ui/asset-transform-plugin": "0.7.4-next.4",
13
- "@player-ui/player": "0.7.4-next.4",
14
- "@player-ui/react": "0.7.4-next.4",
15
- "@player-ui/types": "0.7.4-next.4",
16
11
  "@types/react": "^18.2.51",
12
+ "@types/react-copy-to-clipboard": "^5.0.7",
17
13
  "dlv": "^1.1.3",
18
14
  "framer-motion": "^11.0.8",
19
15
  "react": "^18.2.0",
20
16
  "react-copy-to-clipboard": "^5.1.0",
21
- "@types/react-copy-to-clipboard": "^5.0.7",
22
17
  "tslib": "^2.6.2"
23
18
  },
24
19
  "module": "dist/index.legacy-esm.js",
@@ -38,5 +33,11 @@
38
33
  "src",
39
34
  "types"
40
35
  ],
41
- "peerDependencies": {}
36
+ "peerDependencies": {
37
+ "@player-tools/dsl": "0.7.0-next.3",
38
+ "@player-ui/asset-transform-plugin": "0.9.1-next.0",
39
+ "@player-ui/player": "0.9.1-next.0",
40
+ "@player-ui/react": "0.9.1-next.0",
41
+ "@player-ui/types": "0.9.1-next.0"
42
+ }
42
43
  }
@@ -1,6 +1,20 @@
1
- import type { TransformFunction } from "@player-ui/player";
1
+ import type { TransformFunction, Resolve } from "@player-ui/player";
2
2
  import { CopyToClipboardAsset, TransformedCopyToClipboard } from "../types";
3
3
 
4
+ const getData = (
5
+ asset: CopyToClipboardAsset,
6
+ options: Resolve.NodeResolveOptions
7
+ ): string => {
8
+ if (asset.binding === undefined) {
9
+ return "";
10
+ }
11
+ const obj = options.data.model.get(asset.binding, {
12
+ includeInvalid: true,
13
+ formatted: false,
14
+ });
15
+ return typeof obj === "string" ? obj : JSON.stringify(obj, null, 2);
16
+ };
17
+
4
18
  /**
5
19
  * Platform-agnostic transform function that takes the properties we get from the Player Content (DSL > JSON)
6
20
  * and embeds Player state and methods:
@@ -10,15 +24,5 @@ export const copyToClipboardTransform: TransformFunction<
10
24
  TransformedCopyToClipboard
11
25
  > = (asset, options) => ({
12
26
  ...asset,
13
- data:
14
- asset.binding === undefined
15
- ? ""
16
- : JSON.stringify(
17
- options.data.model.get(asset.binding, {
18
- includeInvalid: true,
19
- formatted: false,
20
- }),
21
- null,
22
- 2
23
- ),
27
+ data: getData(asset, options),
24
28
  });