@myinterview/chatbot 0.1.82-experimental-1bda269 → 0.1.83-beta-6de9e8f

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.
@@ -1,5 +1,5 @@
1
1
  import { jsxs as o, jsx as i } from "react/jsx-runtime";
2
- import { c as d, t as M, P as k } from "./main.react-wBtBfpsX.js";
2
+ import { c as d, t as M, P as k } from "./main.react-Cw8cM5DU.js";
3
3
  import { useState as h, useRef as A } from "react";
4
4
  const j = () => o("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "lucide lucide-maximize2-icon lucide-maximize-2", children: [i("path", { d: "M15 3h6v6" }), i("path", { d: "m21 3-7 7" }), i("path", { d: "m3 21 7-7" }), i("path", { d: "M9 21H3v-6" })] }), O = ({ data: m, completed: p, onSubmitAnswer: x }) => {
5
5
  const [w, _] = h(p), [r, b] = h(!1), [c, u] = h(() => /* @__PURE__ */ new Map()), y = !!Array.from(c.values()).flat().length, v = A(null), f = (t, s) => {
@@ -34,4 +34,4 @@ const j = () => o("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", hei
34
34
  export {
35
35
  O as default
36
36
  };
37
- //# sourceMappingURL=index-BSwIQO-V.js.map
37
+ //# sourceMappingURL=index-BdxEyHMw.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-BSwIQO-V.js","sources":["../src/components/ui/icons/MaximizeIcon/index.tsx","../src/components/modules/Matrix/index.tsx"],"sourcesContent":["const MaximizeIcon = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" className=\"lucide lucide-maximize2-icon lucide-maximize-2\">\n <path d=\"M15 3h6v6\" />\n <path d=\"m21 3-7 7\" />\n <path d=\"m3 21 7-7\" />\n <path d=\"M9 21H3v-6\" />\n </svg>\n);\n\nexport default MaximizeIcon;\n","import { Button, Text } from '@myinterview/component-library';\nimport { useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { MessageModuleProps } from '../../../interfaces/modules';\nimport { ModuleType } from '../../../interfaces/modules/generic';\nimport MaximizeIcon from '../../ui/icons/MaximizeIcon';\n\nconst Matrix = ({ data, completed, onSubmitAnswer }: MessageModuleProps<ModuleType.QUESTION>) => {\n const [isDisabled, setIsDisabled] = useState<boolean>(completed);\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const [selectedMap, setSelectedMap] = useState<Map<typeof data['questions'][number]['id'], typeof data['questions'][number]['answers'][number]['id'][]>>(() => new Map());\n const isValid = !!Array.from(selectedMap.values()).flat().length;\n const matrixTargetRef = useRef<HTMLSpanElement>(null);\n\n const selectAnswer = (questionId: typeof data['questions'][number]['id'], answerId: typeof data['questions'][number]['answers'][number]['id']) => {\n const mapToSet = new Map(selectedMap);\n const selectedAnswersIds = mapToSet.get(questionId) ?? [];\n const answersIds = selectedAnswersIds.includes(answerId)\n ? selectedAnswersIds.filter((id) => id !== answerId)\n : selectedAnswersIds.concat(answerId);\n mapToSet.set(questionId, answersIds);\n setSelectedMap(mapToSet);\n };\n\n const handleOpen = () => {\n if (isOpen) return;\n setIsOpen((prev) => !prev);\n requestAnimationFrame(() => {\n matrixTargetRef.current?.scrollIntoView({ block: 'nearest' });\n });\n };\n\n const handleSubmit = () => {\n const questionsAnswersMap = new Map(data.questions.map((q) => [q.id, { ...q, answers: new Map(q.answers.map((a) => [a.id, a])) }]));\n const questions = data.questions.map((question) => ({\n ...question,\n answers: question.answers.map((answer) => ({ ...answer, selected: selectedMap.get(question.id)?.includes(answer.id) ?? false })),\n selected_ids: selectedMap.get(question.id) ?? [],\n }));\n\n const textAnswer = Array.from(selectedMap.entries()).map(([questionId, answersIds]) => !!answersIds.length && [\n questionsAnswersMap.get(questionId)!.title,\n answersIds.map((answerId) => questionsAnswersMap.get(questionId)!.answers.get(answerId)!.title).join(', '),\n ].join(': ')).join('\\n');\n\n onSubmitAnswer({ ...data, questions }, textAnswer);\n setIsDisabled(true);\n };\n\n return (\n <div\n className={classNames('myinterview-chatbot-matrix', isOpen && 'myinterview-chatbot-matrix--open')}\n onClick={handleOpen}\n role=\"presentation\"\n >\n <span className=\"myinterview-chatbot-matrix__target\" ref={matrixTargetRef} />\n <div\n className={classNames('myinterview-chatbot-matrix__wrapper', isOpen && 'myinterview-chatbot-matrix__wrapper--open')}\n >\n <div className=\"myinterview-chatbot-matrix__main\">\n <div className=\"myinterview-chatbot-matrix__list\">\n {data.questions.map((question) => (\n <div\n key={question.id}\n className=\"myinterview-chatbot-matrix__item\"\n >\n <Text size=\"H6\" className=\"myinterview-chatbot-matrix__question-title\">{question.title}</Text>\n <div className=\"myinterview-chatbot-matrix__answers\">\n {question.answers.map((answer) => {\n const isSelected = selectedMap.get(question.id)?.includes(answer.id);\n return (\n <button\n key={answer.id}\n className={classNames('myinterview-chatbot-matrix__answer', isSelected && 'myinterview-chatbot-matrix__answer--selected')}\n onClick={() => selectAnswer(question.id, answer.id)}\n type=\"button\"\n disabled={isDisabled || !isOpen}\n >\n {answer.title}\n </button>\n );\n })}\n </div>\n </div>\n ))}\n </div>\n\n <Button\n size=\"small\"\n onClick={handleSubmit}\n disabled={isDisabled || !isValid || !isOpen || completed}\n >\n {data.buttonText || 'Submit'}\n </Button>\n </div>\n\n {!isOpen && (\n <div className=\"myinterview-chatbot-matrix__screen\">\n <div className=\"myinterview-chatbot-matrix__expand-icon\">\n <MaximizeIcon />\n </div>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default Matrix;\n"],"names":["MaximizeIcon","_jsxs","_jsx","Matrix","data","completed","onSubmitAnswer","isDisabled","setIsDisabled","useState","isOpen","setIsOpen","selectedMap","setSelectedMap","isValid","matrixTargetRef","useRef","selectAnswer","questionId","answerId","mapToSet","selectedAnswersIds","answersIds","id","handleOpen","prev","_a","handleSubmit","questionsAnswersMap","q","questions","question","answer","textAnswer","classNames","Text","isSelected","Button"],"mappings":"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"}
1
+ {"version":3,"file":"index-BdxEyHMw.js","sources":["../src/components/ui/icons/MaximizeIcon/index.tsx","../src/components/modules/Matrix/index.tsx"],"sourcesContent":["const MaximizeIcon = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" className=\"lucide lucide-maximize2-icon lucide-maximize-2\">\n <path d=\"M15 3h6v6\" />\n <path d=\"m21 3-7 7\" />\n <path d=\"m3 21 7-7\" />\n <path d=\"M9 21H3v-6\" />\n </svg>\n);\n\nexport default MaximizeIcon;\n","import { Button, Text } from '@myinterview/component-library';\nimport { useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { MessageModuleProps } from '../../../interfaces/modules';\nimport { ModuleType } from '../../../interfaces/modules/generic';\nimport MaximizeIcon from '../../ui/icons/MaximizeIcon';\n\nconst Matrix = ({ data, completed, onSubmitAnswer }: MessageModuleProps<ModuleType.QUESTION>) => {\n const [isDisabled, setIsDisabled] = useState<boolean>(completed);\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const [selectedMap, setSelectedMap] = useState<Map<typeof data['questions'][number]['id'], typeof data['questions'][number]['answers'][number]['id'][]>>(() => new Map());\n const isValid = !!Array.from(selectedMap.values()).flat().length;\n const matrixTargetRef = useRef<HTMLSpanElement>(null);\n\n const selectAnswer = (questionId: typeof data['questions'][number]['id'], answerId: typeof data['questions'][number]['answers'][number]['id']) => {\n const mapToSet = new Map(selectedMap);\n const selectedAnswersIds = mapToSet.get(questionId) ?? [];\n const answersIds = selectedAnswersIds.includes(answerId)\n ? selectedAnswersIds.filter((id) => id !== answerId)\n : selectedAnswersIds.concat(answerId);\n mapToSet.set(questionId, answersIds);\n setSelectedMap(mapToSet);\n };\n\n const handleOpen = () => {\n if (isOpen) return;\n setIsOpen((prev) => !prev);\n requestAnimationFrame(() => {\n matrixTargetRef.current?.scrollIntoView({ block: 'nearest' });\n });\n };\n\n const handleSubmit = () => {\n const questionsAnswersMap = new Map(data.questions.map((q) => [q.id, { ...q, answers: new Map(q.answers.map((a) => [a.id, a])) }]));\n const questions = data.questions.map((question) => ({\n ...question,\n answers: question.answers.map((answer) => ({ ...answer, selected: selectedMap.get(question.id)?.includes(answer.id) ?? false })),\n selected_ids: selectedMap.get(question.id) ?? [],\n }));\n\n const textAnswer = Array.from(selectedMap.entries()).map(([questionId, answersIds]) => !!answersIds.length && [\n questionsAnswersMap.get(questionId)!.title,\n answersIds.map((answerId) => questionsAnswersMap.get(questionId)!.answers.get(answerId)!.title).join(', '),\n ].join(': ')).join('\\n');\n\n onSubmitAnswer({ ...data, questions }, textAnswer);\n setIsDisabled(true);\n };\n\n return (\n <div\n className={classNames('myinterview-chatbot-matrix', isOpen && 'myinterview-chatbot-matrix--open')}\n onClick={handleOpen}\n role=\"presentation\"\n >\n <span className=\"myinterview-chatbot-matrix__target\" ref={matrixTargetRef} />\n <div\n className={classNames('myinterview-chatbot-matrix__wrapper', isOpen && 'myinterview-chatbot-matrix__wrapper--open')}\n >\n <div className=\"myinterview-chatbot-matrix__main\">\n <div className=\"myinterview-chatbot-matrix__list\">\n {data.questions.map((question) => (\n <div\n key={question.id}\n className=\"myinterview-chatbot-matrix__item\"\n >\n <Text size=\"H6\" className=\"myinterview-chatbot-matrix__question-title\">{question.title}</Text>\n <div className=\"myinterview-chatbot-matrix__answers\">\n {question.answers.map((answer) => {\n const isSelected = selectedMap.get(question.id)?.includes(answer.id);\n return (\n <button\n key={answer.id}\n className={classNames('myinterview-chatbot-matrix__answer', isSelected && 'myinterview-chatbot-matrix__answer--selected')}\n onClick={() => selectAnswer(question.id, answer.id)}\n type=\"button\"\n disabled={isDisabled || !isOpen}\n >\n {answer.title}\n </button>\n );\n })}\n </div>\n </div>\n ))}\n </div>\n\n <Button\n size=\"small\"\n onClick={handleSubmit}\n disabled={isDisabled || !isValid || !isOpen || completed}\n >\n {data.buttonText || 'Submit'}\n </Button>\n </div>\n\n {!isOpen && (\n <div className=\"myinterview-chatbot-matrix__screen\">\n <div className=\"myinterview-chatbot-matrix__expand-icon\">\n <MaximizeIcon />\n </div>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default Matrix;\n"],"names":["MaximizeIcon","_jsxs","_jsx","Matrix","data","completed","onSubmitAnswer","isDisabled","setIsDisabled","useState","isOpen","setIsOpen","selectedMap","setSelectedMap","isValid","matrixTargetRef","useRef","selectAnswer","questionId","answerId","mapToSet","selectedAnswersIds","answersIds","id","handleOpen","prev","_a","handleSubmit","questionsAnswersMap","q","questions","question","answer","textAnswer","classNames","Text","isSelected","Button"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsxs as c, jsx as i } from "react/jsx-runtime";
2
- import { c as n, _ as b, t as v, P as g } from "./main.react-wBtBfpsX.js";
2
+ import { c as n, _ as b, t as v, P as g } from "./main.react-Cw8cM5DU.js";
3
3
  import { useState as a } from "react";
4
4
  const f = ({ data: s, completed: r, onSubmitAnswer: m }) => {
5
5
  const [l, d] = a(r), [t, o] = a(), h = (e) => {
@@ -16,4 +16,4 @@ const f = ({ data: s, completed: r, onSubmitAnswer: m }) => {
16
16
  export {
17
17
  f as default
18
18
  };
19
- //# sourceMappingURL=index-D79lDLEs.js.map
19
+ //# sourceMappingURL=index-ChvSwazI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-D79lDLEs.js","sources":["../src/components/modules/SingleSelect/index.tsx"],"sourcesContent":["import { Button, Check, Text } from '@myinterview/component-library';\nimport { useState } from 'react';\nimport classNames from 'classnames';\nimport { MessageModuleProps } from '../../../interfaces/modules';\nimport { ModuleType } from '../../../interfaces/modules/generic';\n\nconst SingleSelect = ({ data, completed, onSubmitAnswer }: MessageModuleProps<ModuleType.SINGLE_SELECT>) => {\n const [isDisabled, setIsDisabled] = useState<boolean>(completed);\n const [selectedOption, setSelectedOption] = useState<typeof data['options'][number] | null>();\n\n const handleChange = (option: typeof data['options'][number]) => {\n if (isDisabled) return;\n setSelectedOption(option);\n };\n\n const handleSubmit = () => {\n if (!selectedOption) return;\n onSubmitAnswer(\n {\n ...data,\n options: data.options.map((option) => ({ ...option, selected: option.id === selectedOption.id })),\n selected_id: selectedOption.id,\n },\n selectedOption.title,\n );\n setIsDisabled(true);\n };\n\n return (\n <div className=\"myinterview-chatbot-single-select\">\n <div className={classNames('myinterview-chatbot-single-select__list', { 'myinterview-chatbot-single-select__list--disabled': isDisabled })}>\n {data.options.map((option) => (\n <div\n key={option.id}\n className=\"myinterview-chatbot-single-select__item\"\n onClick={() => handleChange(option)}\n role=\"presentation\"\n >\n <div className={classNames('myinterview-chatbot-single-select__checkmark', { 'myinterview-chatbot-single-select__checkmark--selected': option.id === selectedOption?.id })}>\n <Check />\n </div>\n <Text className=\"myinterview-chatbot-single-select__title\">{option.title}</Text>\n </div>\n ))}\n </div>\n\n <Button\n size=\"small\"\n onClick={handleSubmit}\n disabled={isDisabled || !selectedOption}\n >\n {data.buttonText || 'Submit'}\n </Button>\n </div>\n );\n};\n\nexport default SingleSelect;\n"],"names":["SingleSelect","data","completed","onSubmitAnswer","isDisabled","setIsDisabled","useState","selectedOption","setSelectedOption","handleChange","option","handleSubmit","_jsxs","_jsx","classNames","Check","Text","Button"],"mappings":";;;AAMA,MAAMA,IAAe,CAAC,EAAE,MAAAC,GAAM,WAAAC,GAAW,gBAAAC,QAAkE;AACzG,QAAM,CAACC,GAAYC,CAAa,IAAIC,EAAkBJ,CAAS,GACzD,CAACK,GAAgBC,CAAiB,IAAIF,EAAA,GAEtCG,IAAe,CAACC,MAA0C;AAC9D,IAAIN,KACJI,EAAkBE,CAAM;AAAA,EAC1B,GAEMC,IAAe,MAAK;AACxB,IAAKJ,MACLJ,EACE;AAAA,MACE,GAAGF;AAAA,MACH,SAASA,EAAK,QAAQ,IAAI,CAACS,OAAY,EAAE,GAAGA,GAAQ,UAAUA,EAAO,OAAOH,EAAe,KAAK;AAAA,MAChG,aAAaA,EAAe;AAAA,IAAA,GAE9BA,EAAe,KAAK,GAEtBF,EAAc,EAAI;AAAA,EACpB;AAEA,SACEO,EAAA,OAAA,EAAK,WAAU,qCAAmC,UAAA,CAChDC,EAAA,OAAA,EAAK,WAAWC,EAAW,2CAA2C,EAAE,qDAAqDV,EAAA,CAAY,GAAC,UACvIH,EAAK,QAAQ,IAAI,CAACS,MACjBE,EAAA,OAAA,EAEE,WAAU,2CACV,SAAS,MAAMH,EAAaC,CAAM,GAClC,MAAK,gBAAc,UAAA,CAEnBG,EAAA,OAAA,EAAK,WAAWC,EAAW,gDAAgD,EAAE,0DAA0DJ,EAAO,QAAOH,KAAA,gBAAAA,EAAgB,IAAA,CAAI,GAAC,UACxKM,EAACE,GAAK,EAAA,GAAG,GAEXF,EAACG,GAAI,EAAC,WAAU,4CAA0C,UAAEN,EAAO,MAAA,CAAK,CAAQ,EAAA,GAR3EA,EAAO,EAAE,CAUjB,EAAA,CAAC,GAGJG,EAACI,GAAM,EACL,MAAK,SACL,SAASN,GACT,UAAUP,KAAc,CAACG,GAAc,UAEtCN,EAAK,cAAc,UAAQ,CACrB,GAAA;AAGf;"}
1
+ {"version":3,"file":"index-ChvSwazI.js","sources":["../src/components/modules/SingleSelect/index.tsx"],"sourcesContent":["import { Button, Check, Text } from '@myinterview/component-library';\nimport { useState } from 'react';\nimport classNames from 'classnames';\nimport { MessageModuleProps } from '../../../interfaces/modules';\nimport { ModuleType } from '../../../interfaces/modules/generic';\n\nconst SingleSelect = ({ data, completed, onSubmitAnswer }: MessageModuleProps<ModuleType.SINGLE_SELECT>) => {\n const [isDisabled, setIsDisabled] = useState<boolean>(completed);\n const [selectedOption, setSelectedOption] = useState<typeof data['options'][number] | null>();\n\n const handleChange = (option: typeof data['options'][number]) => {\n if (isDisabled) return;\n setSelectedOption(option);\n };\n\n const handleSubmit = () => {\n if (!selectedOption) return;\n onSubmitAnswer(\n {\n ...data,\n options: data.options.map((option) => ({ ...option, selected: option.id === selectedOption.id })),\n selected_id: selectedOption.id,\n },\n selectedOption.title,\n );\n setIsDisabled(true);\n };\n\n return (\n <div className=\"myinterview-chatbot-single-select\">\n <div className={classNames('myinterview-chatbot-single-select__list', { 'myinterview-chatbot-single-select__list--disabled': isDisabled })}>\n {data.options.map((option) => (\n <div\n key={option.id}\n className=\"myinterview-chatbot-single-select__item\"\n onClick={() => handleChange(option)}\n role=\"presentation\"\n >\n <div className={classNames('myinterview-chatbot-single-select__checkmark', { 'myinterview-chatbot-single-select__checkmark--selected': option.id === selectedOption?.id })}>\n <Check />\n </div>\n <Text className=\"myinterview-chatbot-single-select__title\">{option.title}</Text>\n </div>\n ))}\n </div>\n\n <Button\n size=\"small\"\n onClick={handleSubmit}\n disabled={isDisabled || !selectedOption}\n >\n {data.buttonText || 'Submit'}\n </Button>\n </div>\n );\n};\n\nexport default SingleSelect;\n"],"names":["SingleSelect","data","completed","onSubmitAnswer","isDisabled","setIsDisabled","useState","selectedOption","setSelectedOption","handleChange","option","handleSubmit","_jsxs","_jsx","classNames","Check","Text","Button"],"mappings":";;;AAMA,MAAMA,IAAe,CAAC,EAAE,MAAAC,GAAM,WAAAC,GAAW,gBAAAC,QAAkE;AACzG,QAAM,CAACC,GAAYC,CAAa,IAAIC,EAAkBJ,CAAS,GACzD,CAACK,GAAgBC,CAAiB,IAAIF,EAAA,GAEtCG,IAAe,CAACC,MAA0C;AAC9D,IAAIN,KACJI,EAAkBE,CAAM;AAAA,EAC1B,GAEMC,IAAe,MAAK;AACxB,IAAKJ,MACLJ,EACE;AAAA,MACE,GAAGF;AAAA,MACH,SAASA,EAAK,QAAQ,IAAI,CAACS,OAAY,EAAE,GAAGA,GAAQ,UAAUA,EAAO,OAAOH,EAAe,KAAK;AAAA,MAChG,aAAaA,EAAe;AAAA,IAAA,GAE9BA,EAAe,KAAK,GAEtBF,EAAc,EAAI;AAAA,EACpB;AAEA,SACEO,EAAA,OAAA,EAAK,WAAU,qCAAmC,UAAA,CAChDC,EAAA,OAAA,EAAK,WAAWC,EAAW,2CAA2C,EAAE,qDAAqDV,EAAA,CAAY,GAAC,UACvIH,EAAK,QAAQ,IAAI,CAACS,MACjBE,EAAA,OAAA,EAEE,WAAU,2CACV,SAAS,MAAMH,EAAaC,CAAM,GAClC,MAAK,gBAAc,UAAA,CAEnBG,EAAA,OAAA,EAAK,WAAWC,EAAW,gDAAgD,EAAE,0DAA0DJ,EAAO,QAAOH,KAAA,gBAAAA,EAAgB,IAAA,CAAI,GAAC,UACxKM,EAACE,GAAK,EAAA,GAAG,GAEXF,EAACG,GAAI,EAAC,WAAU,4CAA0C,UAAEN,EAAO,MAAA,CAAK,CAAQ,EAAA,GAR3EA,EAAO,EAAE,CAUjB,EAAA,CAAC,GAGJG,EAACI,GAAM,EACL,MAAK,SACL,SAASN,GACT,UAAUP,KAAc,CAACG,GAAc,UAEtCN,EAAK,cAAc,UAAQ,CACrB,GAAA;AAGf;"}