@orangesix/react 1.0.11 → 1.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.
- package/api/index.d.ts +2 -2
- package/autocomplete/index.cjs.js +2 -0
- package/autocomplete/index.cjs.js.map +1 -0
- package/autocomplete/index.d.ts +149 -0
- package/autocomplete/index.esm.js +2 -0
- package/autocomplete/index.esm.js.map +1 -0
- package/autocomplete/package.json +5 -0
- package/box/_box.scss +0 -27
- package/box/index.cjs.js.map +1 -1
- package/box/index.d.ts +2 -2
- package/box/index.esm.js.map +1 -1
- package/editor/_editor.scss +12 -21
- package/editor/index.cjs.js.map +1 -1
- package/editor/index.esm.js.map +1 -1
- package/inputfilter/_inputfilter.scss +2 -7
- package/inputfilter/index.cjs.js.map +1 -1
- package/inputfilter/index.d.ts +1 -1
- package/inputfilter/index.esm.js.map +1 -1
- package/package.json +16 -23
- package/style/index.cjs.js +2 -0
- package/style/index.cjs.js.map +1 -0
- package/style/index.d.ts +2 -0
- package/style/index.esm.js +2 -0
- package/style/index.esm.js.map +1 -0
- package/style/index.ts +0 -0
- package/style/scss/_variables.scss +925 -0
- package/style/scss/bootstrap.scss +31 -0
- package/style/scss/components/_root.scss +110 -0
- package/style/scss/components/button/_button.scss +644 -0
- package/style/scss/components/button/_speeddial.scss +91 -0
- package/style/scss/components/button/_splitbutton.scss +359 -0
- package/style/scss/components/data/_carousel.scss +39 -0
- package/style/scss/components/data/_datascroller.scss +47 -0
- package/style/scss/components/data/_datatable.scss +414 -0
- package/style/scss/components/data/_dataview.scss +47 -0
- package/style/scss/components/data/_filter.scss +138 -0
- package/style/scss/components/data/_orderlist.scss +86 -0
- package/style/scss/components/data/_organizationchart.scss +50 -0
- package/style/scss/components/data/_paginator.scss +91 -0
- package/style/scss/components/data/_picklist.scss +74 -0
- package/style/scss/components/data/_timeline.scss +38 -0
- package/style/scss/components/data/_tree.scss +184 -0
- package/style/scss/components/data/_treetable.scss +431 -0
- package/style/scss/components/file/_fileupload.scss +41 -0
- package/style/scss/components/input/_autocomplete.scss +106 -0
- package/style/scss/components/input/_calendar.scss +251 -0
- package/style/scss/components/input/_cascadeselect.scss +107 -0
- package/style/scss/components/input/_checkbox.scss +181 -0
- package/style/scss/components/input/_chips.scss +102 -0
- package/style/scss/components/input/_colorpicker.scss +18 -0
- package/style/scss/components/input/_dropdown.scss +255 -0
- package/style/scss/components/input/_editor.scss +122 -0
- package/style/scss/components/input/_iconfield.scss +10 -0
- package/style/scss/components/input/_inputgroup.scss +74 -0
- package/style/scss/components/input/_inputicon.scss +15 -0
- package/style/scss/components/input/_inputnumber.scss +5 -0
- package/style/scss/components/input/_inputotp.scss +10 -0
- package/style/scss/components/input/_inputswitch.scss +100 -0
- package/style/scss/components/input/_inputtext.scss +101 -0
- package/style/scss/components/input/_listbox.scss +139 -0
- package/style/scss/components/input/_mention.scss +31 -0
- package/style/scss/components/input/_multiselect.scss +278 -0
- package/style/scss/components/input/_password.scss +33 -0
- package/style/scss/components/input/_radiobutton.scss +170 -0
- package/style/scss/components/input/_rating.scss +81 -0
- package/style/scss/components/input/_selectbutton.scss +50 -0
- package/style/scss/components/input/_slider.scss +49 -0
- package/style/scss/components/input/_togglebutton.scss +99 -0
- package/style/scss/components/input/_treeselect.scss +151 -0
- package/style/scss/components/input/_tristatecheckbox.scss +46 -0
- package/style/scss/components/menu/_breadcrumb.scss +42 -0
- package/style/scss/components/menu/_contextmenu.scss +39 -0
- package/style/scss/components/menu/_dock.scss +109 -0
- package/style/scss/components/menu/_megamenu.scss +141 -0
- package/style/scss/components/menu/_menu.scss +33 -0
- package/style/scss/components/menu/_menubar.scss +216 -0
- package/style/scss/components/menu/_panelmenu.scss +153 -0
- package/style/scss/components/menu/_slidemenu.scss +60 -0
- package/style/scss/components/menu/_steps.scss +57 -0
- package/style/scss/components/menu/_tabmenu.scss +50 -0
- package/style/scss/components/menu/_tieredmenu.scss +43 -0
- package/style/scss/components/messages/_inlinemessage.scss +69 -0
- package/style/scss/components/messages/_message.scss +107 -0
- package/style/scss/components/messages/_toast.scss +100 -0
- package/style/scss/components/misc/_avatar.scss +34 -0
- package/style/scss/components/misc/_badge.scss +77 -0
- package/style/scss/components/misc/_blockui.scss +0 -0
- package/style/scss/components/misc/_chip.scss +39 -0
- package/style/scss/components/misc/_inplace.scss +17 -0
- package/style/scss/components/misc/_metergroup.scss +81 -0
- package/style/scss/components/misc/_progressbar.scss +17 -0
- package/style/scss/components/misc/_scrolltop.scss +25 -0
- package/style/scss/components/misc/_skeleton.scss +8 -0
- package/style/scss/components/misc/_tag.scss +40 -0
- package/style/scss/components/misc/_terminal.scss +12 -0
- package/style/scss/components/multimedia/_galleria.scss +153 -0
- package/style/scss/components/multimedia/_image.scss +54 -0
- package/style/scss/components/overlay/_confirmpopup.scss +72 -0
- package/style/scss/components/overlay/_dialog.scss +78 -0
- package/style/scss/components/overlay/_overlaypanel.scss +64 -0
- package/style/scss/components/overlay/_sidebar.scss +23 -0
- package/style/scss/components/overlay/_tooltip.scss +33 -0
- package/style/scss/components/panel/_accordion.scss +118 -0
- package/style/scss/components/panel/_card.scss +30 -0
- package/style/scss/components/panel/_divider.scss +31 -0
- package/style/scss/components/panel/_fieldset.scss +47 -0
- package/style/scss/components/panel/_panel.scss +47 -0
- package/style/scss/components/panel/_scrollpanel.scss +10 -0
- package/style/scss/components/panel/_splitter.scss +23 -0
- package/style/scss/components/panel/_stepper.scss +136 -0
- package/style/scss/components/panel/_tabview.scss +148 -0
- package/style/scss/components/panel/_toolbar.scss +11 -0
- package/style/scss/core/_colors.scss +18 -0
- package/style/scss/core/_extensions.scss +27 -0
- package/style/scss/core/_mixins.scss +243 -0
- package/style/scss/core/_reset.scss +75 -0
- package/table/index.cjs.js +1 -1
- package/table/index.cjs.js.map +1 -1
- package/table/index.d.ts +3 -8
- package/table/index.esm.js +1 -1
- package/table/index.esm.js.map +1 -1
- package/tablepivot/_tablepivot.scss +15 -31
- package/tablepivot/index.cjs.js.map +1 -1
- package/tablepivot/index.esm.js.map +1 -1
- package/tabview/index.cjs.js +2 -0
- package/tabview/index.cjs.js.map +1 -0
- package/tabview/index.d.ts +137 -0
- package/tabview/index.esm.js +2 -0
- package/tabview/index.esm.js.map +1 -0
- package/tabview/package.json +5 -0
- package/utils/index.cjs.js.map +1 -1
- package/utils/index.esm.js.map +1 -1
- package/api/theme.css +0 -1
- package/table/_table.scss +0 -141
package/api/index.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ type AlignItemsProps =
|
|
|
33
33
|
| "align-items-xxl-end"
|
|
34
34
|
| "align-items-xxl-center"
|
|
35
35
|
| "align-items-xxl-baseline"
|
|
36
|
-
| "align-items-xxl-stretch"
|
|
36
|
+
| "align-items-xxl-stretch";
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
39
|
* Realiza o mapeamento dos valores da propriedades css `justify-content`
|
|
@@ -74,7 +74,7 @@ type JustifyContentProps =
|
|
|
74
74
|
| "justify-content-xxl-center"
|
|
75
75
|
| "justify-content-xxl-between"
|
|
76
76
|
| "justify-content-xxl-around"
|
|
77
|
-
| "justify-content-xxl-evenly"
|
|
77
|
+
| "justify-content-xxl-evenly";
|
|
78
78
|
|
|
79
79
|
/**
|
|
80
80
|
* Define as tipagens `default` de todos os componentes do pacote
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("react"),a=require("primereact/utils"),t=require("primereact/autocomplete");const i=({children:t,...i})=>{const r={size:`box-size-${i.size??"100"}`,direction:`box-direction-${i.direction??"row"}`,justify:void 0===i.justify?"":Array.isArray(i.justify)?i.justify?.join(" "):i.justify,align:void 0===i.align?"":Array.isArray(i.align)?i.align?.join(" "):i.align},l={className:a.classNames(["box",i.className??"",r.size,r.direction,r.justify,r.align]),style:i.css,id:i.id};return e.createElement("div",{...l},t)},r=({iconPrefix:a="bi bi-",...t})=>t.label&&e.createElement("p",{className:"form-label"},t.icon&&e.createElement("i",{className:a+t.icon+" me-1"}),t.label,t.required&&e.createElement("span",{className:"text-danger"},"*"));function l(e){const a=e.dataTemplate?{itemTemplate:e.dataTemplate}:{};return{id:e.id,field:"name",name:e.name,forceSelection:!0,style:e.css??{},disabled:e.disabled,required:e.required,placeholder:e.placeholder,inputClassName:"form-control",appendTo:e.appendTo??"self",className:"autocomplete-primereact w-100",...a}}function s(e){return{completeMethod(a){e.onSearch(a.query)},onChange(a){e.onChange(a.value)},onSelect(a){e.onSelect&&e.onSelect(a.value)}}}exports.Autocomplete=({...a})=>e.createElement(i,{className:"autocomplete"+(a.className??""),css:a.css,size:a.size??"100"},e.createElement(r,{...a}),e.createElement(t.AutoComplete,{delay:a.searchDelay??500,maxLength:a.searchMax,minLength:a.searchMin??1,suggestions:a.data??[],value:a.value,...l(a),...s(a)}),e.createElement("div",{"data-name":a.name,id:"j_feedback"}));
|
|
2
|
+
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../../src/box/box.tsx","../../src/api/input.tsx","../../src/autocomplete/core/core.tsx","../../src/autocomplete/core/event.tsx","../../src/autocomplete/autocomplete.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};","import React from \"react\";\r\nimport { ApiFieldComponentProps } from \"./types\";\r\n\r\n/**\r\n * API - `InputLabel`\r\n *\r\n * Um componente utilizado como label em todos os componente de campo do pacote.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const InputLabel = ({ iconPrefix = \"bi bi-\", ...props }: ApiFieldComponentProps) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return props.label\r\n && <p className='form-label'>\r\n {props.icon && <i className={iconPrefix + props.icon + \" me-1\"}/>}\r\n {props.label}\r\n {props.required && <span className=\"text-danger\">*</span>}\r\n </p>;\r\n};","import { AutocompleteProps } from \"../types\";\r\nimport { AutoCompleteProps as AutoCompletePropsPrimeReact } from \"primereact/autocomplete\";\r\n\r\n/**\r\n * Componente - `Autocomplete`\r\n *\r\n * Define as configurações do modo principal do autocomplete.\r\n */\r\nexport function autocompleCore(\r\n props: AutocompleteProps\r\n): Partial<AutoCompletePropsPrimeReact> {\r\n\r\n const itemTemplate: Partial<AutoCompletePropsPrimeReact> = props.dataTemplate\r\n ? { itemTemplate: props.dataTemplate }\r\n : {};\r\n return {\r\n id: props.id,\r\n field: \"name\",\r\n name: props.name,\r\n forceSelection: true,\r\n style: props.css ?? {},\r\n disabled: props.disabled,\r\n required: props.required,\r\n placeholder: props.placeholder,\r\n inputClassName: \"form-control\",\r\n appendTo: props.appendTo ?? \"self\",\r\n className: \"autocomplete-primereact w-100\",\r\n ...itemTemplate\r\n };\r\n}","import { AutocompleteProps } from \"../types\";\r\nimport {\r\n AutoCompleteChangeEvent,\r\n AutoCompleteCompleteEvent,\r\n AutoCompleteProps as AutoCompletePropsPrimeReact, AutoCompleteSelectEvent\r\n} from \"primereact/autocomplete\";\r\n\r\n/**\r\n * Componente - `Autocomplete`\r\n *\r\n * Define as configuração de evento do componente\r\n */\r\nexport function autocompleteEvent(props: AutocompleteProps): Partial<AutoCompletePropsPrimeReact> {\r\n return {\r\n completeMethod(event: AutoCompleteCompleteEvent) {\r\n props.onSearch(event.query);\r\n },\r\n onChange(event: AutoCompleteChangeEvent) {\r\n props.onChange(event.value);\r\n },\r\n onSelect(event: AutoCompleteSelectEvent) {\r\n if (props.onSelect) {\r\n props.onSelect(event.value);\r\n }\r\n }\r\n };\r\n}","import React from \"react\";\r\nimport { Box } from \"../box\";\r\nimport { InputLabel } from \"../api\";\r\nimport { AutocompleteProps } from \"./types\";\r\nimport { autocompleCore } from \"./core/core\";\r\nimport { autocompleteEvent } from \"./core/event\";\r\nimport { AutoComplete as AutoCompletePrimeReact } from \"primereact/autocomplete\";\r\n\r\n/**\r\n * Componente - `Autocomplete`\r\n *\r\n * AutoComplete é um componente de entrada que fornece sugestões em tempo real enquanto é digitado\r\n */\r\nexport const Autocomplete = ({ ...props }: AutocompleteProps) => {\r\n return (\r\n <Box className={\"autocomplete\" + (props.className ?? \"\")}\r\n css={props.css}\r\n size={props.size ?? \"100\"}>\r\n <InputLabel {...props}/>\r\n <AutoCompletePrimeReact delay={props.searchDelay ?? 500}\r\n maxLength={props.searchMax}\r\n minLength={props.searchMin ?? 1}\r\n suggestions={props.data ?? []}\r\n value={props.value}\r\n {...autocompleCore(props)}\r\n {...autocompleteEvent(props)}/>\r\n <div data-name={props.name}\r\n id=\"j_feedback\"/>\r\n </Box>\r\n );\r\n};"],"names":["Box","children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement","InputLabel","iconPrefix","label","icon","required","autocompleCore","itemTemplate","dataTemplate","field","name","forceSelection","disabled","placeholder","inputClassName","appendTo","autocompleteEvent","completeMethod","event","onSearch","query","onChange","value","onSelect","AutoCompletePrimeReact","delay","searchDelay","maxLength","searchMax","minLength","searchMin","suggestions","data"],"mappings":"uGAmBO,MAAMA,EAAM,EAAGC,cAAaC,MAC/B,MAAMC,EAAM,CACRC,KAAM,YAAaF,EAAME,MAAQ,QACjCC,UAAW,iBAAiBH,EAAMG,WAAa,QAC/CC,aAA2BC,IAAlBL,EAAMI,QAAwB,GAAKE,MAAMC,QAAQP,EAAMI,SAAWJ,EAAMI,SAASI,KAAK,KAAOR,EAAMI,QAC5GK,WAAuBJ,IAAhBL,EAAMS,MAAsB,GAAKH,MAAMC,QAAQP,EAAMS,OAAST,EAAMS,OAAOD,KAAK,KAAOR,EAAMS,OAGlGC,EAA2D,CAC7DC,UAAWC,EAAAA,WAAW,CAClB,MACAZ,EAAMW,WAAa,GACnBV,EAAIC,KACJD,EAAIE,UACJF,EAAIG,QACJH,EAAIQ,QAERI,MAAOb,EAAMC,IACba,GAAId,EAAMc,IAGd,OACIC,EAASC,cAAA,MAAA,IAAAN,GAAcX,EAAe,EChCjCkB,EAAa,EAAGC,aAAa,YAAalB,KAM5CA,EAAMmB,OACNJ,EAAGC,cAAA,IAAA,CAAAL,UAAU,cACXX,EAAMoB,MAAQL,EAAAC,cAAA,IAAA,CAAGL,UAAWO,EAAalB,EAAMoB,KAAO,UACtDpB,EAAMmB,MACNnB,EAAMqB,UAAYN,EAAAC,cAAA,OAAA,CAAML,UAAU,eAAsB,MCX/D,SAAUW,EACZtB,GAGA,MAAMuB,EAAqDvB,EAAMwB,aAC3D,CAAED,aAAcvB,EAAMwB,cACtB,CAAE,EACR,MAAO,CACHV,GAAId,EAAMc,GACVW,MAAO,OACPC,KAAM1B,EAAM0B,KACZC,gBAAgB,EAChBd,MAAOb,EAAMC,KAAO,CAAE,EACtB2B,SAAU5B,EAAM4B,SAChBP,SAAUrB,EAAMqB,SAChBQ,YAAa7B,EAAM6B,YACnBC,eAAgB,eAChBC,SAAU/B,EAAM+B,UAAY,OAC5BpB,UAAW,mCACRY,EAEX,CCjBM,SAAUS,EAAkBhC,GAC9B,MAAO,CACH,cAAAiC,CAAeC,GACXlC,EAAMmC,SAASD,EAAME,MACxB,EACD,QAAAC,CAASH,GACLlC,EAAMqC,SAASH,EAAMI,MACxB,EACD,QAAAC,CAASL,GACDlC,EAAMuC,UACNvC,EAAMuC,SAASL,EAAMI,QAIrC,sBCb4B,KAAMtC,KAE1Be,EAAAC,cAAClB,EAAG,CAACa,UAAW,gBAAkBX,EAAMW,WAAa,IAChDV,IAAKD,EAAMC,IACXC,KAAMF,EAAME,MAAQ,OACrBa,EAACC,cAAAC,EAAe,IAAAjB,IAChBe,EAACC,cAAAwB,EAAAA,cAAuBC,MAAOzC,EAAM0C,aAAe,IAC5BC,UAAW3C,EAAM4C,UACjBC,UAAW7C,EAAM8C,WAAa,EAC9BC,YAAa/C,EAAMgD,MAAQ,GAC3BV,MAAOtC,EAAMsC,SACThB,EAAetB,MACfgC,EAAkBhC,KAC9Ce,EAAgBC,cAAA,MAAA,CAAA,YAAAhB,EAAM0B,KACjBZ,GAAG"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import React, { CSSProperties } from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Define as tipagens `default` de todos os componentes do pacote
|
|
5
|
+
*/
|
|
6
|
+
interface ApiComponentProps {
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Propriedade para identificar o id do elemento
|
|
10
|
+
*/
|
|
11
|
+
id?: string
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Adiciona no atributo `class` do componente o valor atribuido nessa propriedade
|
|
15
|
+
*/
|
|
16
|
+
className?: string
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Define o tamanho da box do componente de acordo com o valores abaixo
|
|
20
|
+
*/
|
|
21
|
+
size?: "5" | "10" | "12-5" | "15" | "17-5" | "20" | "22-5" | "25" | "30" | "33" | "35" | "40" | "45" | "50" | "55" | "60" | "65" | "70" | "75" | "80" | "85" | "90" | "95" | "100"
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Define as propriedades css do component `style`
|
|
25
|
+
*/
|
|
26
|
+
css?: CSSProperties
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Define as tipagens ´default´ de tidos os componente de entrada de dados do pacote
|
|
31
|
+
*/
|
|
32
|
+
interface ApiFieldComponentProps {
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Define o id do campo
|
|
36
|
+
*/
|
|
37
|
+
id?: string
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Define o nome do campo
|
|
41
|
+
*/
|
|
42
|
+
name?: string
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Define o rótulo do campo
|
|
46
|
+
*/
|
|
47
|
+
label?: string
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Define o espaço reservador do campo
|
|
51
|
+
*/
|
|
52
|
+
placeholder?: string
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Define o icone do campo
|
|
56
|
+
*/
|
|
57
|
+
icon?: string
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Define o prefixo dos icones do pacote
|
|
61
|
+
*/
|
|
62
|
+
iconPrefix?: "bi bi-" | "pi pi-"
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Define se campo é obrigatório
|
|
66
|
+
*/
|
|
67
|
+
required?: boolean
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Desabilita a entrada de dados no campo
|
|
71
|
+
*/
|
|
72
|
+
disabled?: boolean
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
interface AutocompleteDataProps {
|
|
76
|
+
/**
|
|
77
|
+
* Define o identificador do objeto
|
|
78
|
+
*/
|
|
79
|
+
code: any;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Define o label do objeto
|
|
83
|
+
*/
|
|
84
|
+
name: string;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
interface AutocompleteProps extends ApiComponentProps, ApiFieldComponentProps {
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Valor padrão
|
|
91
|
+
*/
|
|
92
|
+
value: any;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Dados a ser sugerido
|
|
96
|
+
*/
|
|
97
|
+
data: AutocompleteDataProps[]
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Define o template para cada item do autocomplete
|
|
101
|
+
*/
|
|
102
|
+
dataTemplate?: (value: AutocompleteDataProps) => React.ReactNode;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* A propriedade `appendTo` determina onde a instância do painel de sobreposição deve ser montado.
|
|
106
|
+
*/
|
|
107
|
+
appendTo?: "self" | HTMLElement;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Define o tempo para realizar a pesquisa da sugestão de dados.
|
|
111
|
+
*/
|
|
112
|
+
searchDelay?: number
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Define a quantidade minima de caracter para realizar a pesquisa da sugestão de dados.
|
|
116
|
+
*/
|
|
117
|
+
searchMin?: number
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Define a quantidade máxima de caracter para realizar a pesquisa da sugestão de dados.
|
|
121
|
+
*/
|
|
122
|
+
searchMax?: number
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Retorno de chamada a ser invocado quando o valor de preenchimento automático for alterado.
|
|
126
|
+
*/
|
|
127
|
+
onChange(value: any): void;
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Retorno de chamada para invocar a busca por sugestões.
|
|
131
|
+
*/
|
|
132
|
+
onSearch(query: string): void;
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Executa após a seleção do objeto do autocomplete.
|
|
136
|
+
*/
|
|
137
|
+
onSelect?: (value: any) => void;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Componente - `Autocomplete`
|
|
142
|
+
*
|
|
143
|
+
* AutoComplete é um componente de entrada que fornece sugestões em tempo real enquanto é digitado
|
|
144
|
+
*/
|
|
145
|
+
declare const Autocomplete: ({ ...props }: AutocompleteProps) => React.JSX.Element;
|
|
146
|
+
|
|
147
|
+
type IAutocompleteDataProps = AutocompleteDataProps;
|
|
148
|
+
|
|
149
|
+
export { Autocomplete, type IAutocompleteDataProps };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"react";import{classNames as a}from"primereact/utils";import{AutoComplete as t}from"primereact/autocomplete";const i=({children:t,...i})=>{const r={size:`box-size-${i.size??"100"}`,direction:`box-direction-${i.direction??"row"}`,justify:void 0===i.justify?"":Array.isArray(i.justify)?i.justify?.join(" "):i.justify,align:void 0===i.align?"":Array.isArray(i.align)?i.align?.join(" "):i.align},n={className:a(["box",i.className??"",r.size,r.direction,r.justify,r.align]),style:i.css,id:i.id};return e.createElement("div",{...n},t)},r=({iconPrefix:a="bi bi-",...t})=>t.label&&e.createElement("p",{className:"form-label"},t.icon&&e.createElement("i",{className:a+t.icon+" me-1"}),t.label,t.required&&e.createElement("span",{className:"text-danger"},"*"));function n(e){const a=e.dataTemplate?{itemTemplate:e.dataTemplate}:{};return{id:e.id,field:"name",name:e.name,forceSelection:!0,style:e.css??{},disabled:e.disabled,required:e.required,placeholder:e.placeholder,inputClassName:"form-control",appendTo:e.appendTo??"self",className:"autocomplete-primereact w-100",...a}}function l(e){return{completeMethod(a){e.onSearch(a.query)},onChange(a){e.onChange(a.value)},onSelect(a){e.onSelect&&e.onSelect(a.value)}}}const s=({...a})=>e.createElement(i,{className:"autocomplete"+(a.className??""),css:a.css,size:a.size??"100"},e.createElement(r,{...a}),e.createElement(t,{delay:a.searchDelay??500,maxLength:a.searchMax,minLength:a.searchMin??1,suggestions:a.data??[],value:a.value,...n(a),...l(a)}),e.createElement("div",{"data-name":a.name,id:"j_feedback"}));export{s as Autocomplete};
|
|
2
|
+
//# sourceMappingURL=index.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../src/box/box.tsx","../../src/api/input.tsx","../../src/autocomplete/core/core.tsx","../../src/autocomplete/core/event.tsx","../../src/autocomplete/autocomplete.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};","import React from \"react\";\r\nimport { ApiFieldComponentProps } from \"./types\";\r\n\r\n/**\r\n * API - `InputLabel`\r\n *\r\n * Um componente utilizado como label em todos os componente de campo do pacote.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const InputLabel = ({ iconPrefix = \"bi bi-\", ...props }: ApiFieldComponentProps) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return props.label\r\n && <p className='form-label'>\r\n {props.icon && <i className={iconPrefix + props.icon + \" me-1\"}/>}\r\n {props.label}\r\n {props.required && <span className=\"text-danger\">*</span>}\r\n </p>;\r\n};","import { AutocompleteProps } from \"../types\";\r\nimport { AutoCompleteProps as AutoCompletePropsPrimeReact } from \"primereact/autocomplete\";\r\n\r\n/**\r\n * Componente - `Autocomplete`\r\n *\r\n * Define as configurações do modo principal do autocomplete.\r\n */\r\nexport function autocompleCore(\r\n props: AutocompleteProps\r\n): Partial<AutoCompletePropsPrimeReact> {\r\n\r\n const itemTemplate: Partial<AutoCompletePropsPrimeReact> = props.dataTemplate\r\n ? { itemTemplate: props.dataTemplate }\r\n : {};\r\n return {\r\n id: props.id,\r\n field: \"name\",\r\n name: props.name,\r\n forceSelection: true,\r\n style: props.css ?? {},\r\n disabled: props.disabled,\r\n required: props.required,\r\n placeholder: props.placeholder,\r\n inputClassName: \"form-control\",\r\n appendTo: props.appendTo ?? \"self\",\r\n className: \"autocomplete-primereact w-100\",\r\n ...itemTemplate\r\n };\r\n}","import { AutocompleteProps } from \"../types\";\r\nimport {\r\n AutoCompleteChangeEvent,\r\n AutoCompleteCompleteEvent,\r\n AutoCompleteProps as AutoCompletePropsPrimeReact, AutoCompleteSelectEvent\r\n} from \"primereact/autocomplete\";\r\n\r\n/**\r\n * Componente - `Autocomplete`\r\n *\r\n * Define as configuração de evento do componente\r\n */\r\nexport function autocompleteEvent(props: AutocompleteProps): Partial<AutoCompletePropsPrimeReact> {\r\n return {\r\n completeMethod(event: AutoCompleteCompleteEvent) {\r\n props.onSearch(event.query);\r\n },\r\n onChange(event: AutoCompleteChangeEvent) {\r\n props.onChange(event.value);\r\n },\r\n onSelect(event: AutoCompleteSelectEvent) {\r\n if (props.onSelect) {\r\n props.onSelect(event.value);\r\n }\r\n }\r\n };\r\n}","import React from \"react\";\r\nimport { Box } from \"../box\";\r\nimport { InputLabel } from \"../api\";\r\nimport { AutocompleteProps } from \"./types\";\r\nimport { autocompleCore } from \"./core/core\";\r\nimport { autocompleteEvent } from \"./core/event\";\r\nimport { AutoComplete as AutoCompletePrimeReact } from \"primereact/autocomplete\";\r\n\r\n/**\r\n * Componente - `Autocomplete`\r\n *\r\n * AutoComplete é um componente de entrada que fornece sugestões em tempo real enquanto é digitado\r\n */\r\nexport const Autocomplete = ({ ...props }: AutocompleteProps) => {\r\n return (\r\n <Box className={\"autocomplete\" + (props.className ?? \"\")}\r\n css={props.css}\r\n size={props.size ?? \"100\"}>\r\n <InputLabel {...props}/>\r\n <AutoCompletePrimeReact delay={props.searchDelay ?? 500}\r\n maxLength={props.searchMax}\r\n minLength={props.searchMin ?? 1}\r\n suggestions={props.data ?? []}\r\n value={props.value}\r\n {...autocompleCore(props)}\r\n {...autocompleteEvent(props)}/>\r\n <div data-name={props.name}\r\n id=\"j_feedback\"/>\r\n </Box>\r\n );\r\n};"],"names":["Box","children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement","InputLabel","iconPrefix","label","icon","required","autocompleCore","itemTemplate","dataTemplate","field","name","forceSelection","disabled","placeholder","inputClassName","appendTo","autocompleteEvent","completeMethod","event","onSearch","query","onChange","value","onSelect","Autocomplete","AutoCompletePrimeReact","delay","searchDelay","maxLength","searchMax","minLength","searchMin","suggestions","data"],"mappings":"0HAmBO,MAAMA,EAAM,EAAGC,cAAaC,MAC/B,MAAMC,EAAM,CACRC,KAAM,YAAaF,EAAME,MAAQ,QACjCC,UAAW,iBAAiBH,EAAMG,WAAa,QAC/CC,aAA2BC,IAAlBL,EAAMI,QAAwB,GAAKE,MAAMC,QAAQP,EAAMI,SAAWJ,EAAMI,SAASI,KAAK,KAAOR,EAAMI,QAC5GK,WAAuBJ,IAAhBL,EAAMS,MAAsB,GAAKH,MAAMC,QAAQP,EAAMS,OAAST,EAAMS,OAAOD,KAAK,KAAOR,EAAMS,OAGlGC,EAA2D,CAC7DC,UAAWC,EAAW,CAClB,MACAZ,EAAMW,WAAa,GACnBV,EAAIC,KACJD,EAAIE,UACJF,EAAIG,QACJH,EAAIQ,QAERI,MAAOb,EAAMC,IACba,GAAId,EAAMc,IAGd,OACIC,EAASC,cAAA,MAAA,IAAAN,GAAcX,EAAe,EChCjCkB,EAAa,EAAGC,aAAa,YAAalB,KAM5CA,EAAMmB,OACNJ,EAAGC,cAAA,IAAA,CAAAL,UAAU,cACXX,EAAMoB,MAAQL,EAAAC,cAAA,IAAA,CAAGL,UAAWO,EAAalB,EAAMoB,KAAO,UACtDpB,EAAMmB,MACNnB,EAAMqB,UAAYN,EAAAC,cAAA,OAAA,CAAML,UAAU,eAAsB,MCX/D,SAAUW,EACZtB,GAGA,MAAMuB,EAAqDvB,EAAMwB,aAC3D,CAAED,aAAcvB,EAAMwB,cACtB,CAAE,EACR,MAAO,CACHV,GAAId,EAAMc,GACVW,MAAO,OACPC,KAAM1B,EAAM0B,KACZC,gBAAgB,EAChBd,MAAOb,EAAMC,KAAO,CAAE,EACtB2B,SAAU5B,EAAM4B,SAChBP,SAAUrB,EAAMqB,SAChBQ,YAAa7B,EAAM6B,YACnBC,eAAgB,eAChBC,SAAU/B,EAAM+B,UAAY,OAC5BpB,UAAW,mCACRY,EAEX,CCjBM,SAAUS,EAAkBhC,GAC9B,MAAO,CACH,cAAAiC,CAAeC,GACXlC,EAAMmC,SAASD,EAAME,MACxB,EACD,QAAAC,CAASH,GACLlC,EAAMqC,SAASH,EAAMI,MACxB,EACD,QAAAC,CAASL,GACDlC,EAAMuC,UACNvC,EAAMuC,SAASL,EAAMI,QAIrC,CCba,MAAAE,EAAe,KAAMxC,KAE1Be,EAAAC,cAAClB,EAAG,CAACa,UAAW,gBAAkBX,EAAMW,WAAa,IAChDV,IAAKD,EAAMC,IACXC,KAAMF,EAAME,MAAQ,OACrBa,EAACC,cAAAC,EAAe,IAAAjB,IAChBe,EAACC,cAAAyB,GAAuBC,MAAO1C,EAAM2C,aAAe,IAC5BC,UAAW5C,EAAM6C,UACjBC,UAAW9C,EAAM+C,WAAa,EAC9BC,YAAahD,EAAMiD,MAAQ,GAC3BX,MAAOtC,EAAMsC,SACThB,EAAetB,MACfgC,EAAkBhC,KAC9Ce,EAAgBC,cAAA,MAAA,CAAA,YAAAhB,EAAM0B,KACjBZ,GAAG"}
|
package/box/_box.scss
CHANGED
|
@@ -1,30 +1,3 @@
|
|
|
1
|
-
:root {
|
|
2
|
-
--box-size-5: 5%;
|
|
3
|
-
--box-size-10: 10%;
|
|
4
|
-
--box-size-12-5: 12.5%;
|
|
5
|
-
--box-size-15: 15%;
|
|
6
|
-
--box-size-17-5: 17.5%;
|
|
7
|
-
--box-size-20: 20%;
|
|
8
|
-
--box-size-22-5: 25.5%;
|
|
9
|
-
--box-size-25: 25%;
|
|
10
|
-
--box-size-30: 30%;
|
|
11
|
-
--box-size-33: 33.3333%;
|
|
12
|
-
--box-size-35: 35%;
|
|
13
|
-
--box-size-40: 40%;
|
|
14
|
-
--box-size-45: 45%;
|
|
15
|
-
--box-size-50: 50%;
|
|
16
|
-
--box-size-55: 55%;
|
|
17
|
-
--box-size-60: 60%;
|
|
18
|
-
--box-size-65: 65%;
|
|
19
|
-
--box-size-70: 70%;
|
|
20
|
-
--box-size-75: 75%;
|
|
21
|
-
--box-size-80: 80%;
|
|
22
|
-
--box-size-85: 85%;
|
|
23
|
-
--box-size-90: 90%;
|
|
24
|
-
--box-size-95: 95%;
|
|
25
|
-
--box-size-100: 100%;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
1
|
$box-sizes: (
|
|
29
2
|
'5': 5%,
|
|
30
3
|
'10': 10%,
|
package/box/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../../src/box/box.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};"],"names":["children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement"],"mappings":"8EAmBmB,EAAGA,cAAaC,MAC/B,MAAMC,EAAM,CACRC,KAAM,YAAaF,EAAME,MAAQ,QACjCC,UAAW,iBAAiBH,EAAMG,WAAa,QAC/CC,aAA2BC,IAAlBL,EAAMI,QAAwB,GAAKE,MAAMC,QAAQP,EAAMI,SAAWJ,EAAMI,SAASI,KAAK,KAAOR,EAAMI,QAC5GK,WAAuBJ,IAAhBL,EAAMS,MAAsB,GAAKH,MAAMC,QAAQP,EAAMS,OAAST,EAAMS,OAAOD,KAAK,KAAOR,EAAMS,OAGlGC,EAA2D,CAC7DC,UAAWC,EAAAA,WAAW,CAClB,MACAZ,EAAMW,WAAa,GACnBV,EAAIC,KACJD,EAAIE,UACJF,EAAIG,QACJH,EAAIQ,QAERI,MAAOb,EAAMC,IACba,GAAId,EAAMc,IAGd,OACIC,EAASC,cAAA,MAAA,IAAAN,GAAcX,
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../../src/box/box.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};"],"names":["children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement"],"mappings":"8EAmBmB,EAAGA,cAAaC,MAC/B,MAAMC,EAAM,CACRC,KAAM,YAAaF,EAAME,MAAQ,QACjCC,UAAW,iBAAiBH,EAAMG,WAAa,QAC/CC,aAA2BC,IAAlBL,EAAMI,QAAwB,GAAKE,MAAMC,QAAQP,EAAMI,SAAWJ,EAAMI,SAASI,KAAK,KAAOR,EAAMI,QAC5GK,WAAuBJ,IAAhBL,EAAMS,MAAsB,GAAKH,MAAMC,QAAQP,EAAMS,OAAST,EAAMS,OAAOD,KAAK,KAAOR,EAAMS,OAGlGC,EAA2D,CAC7DC,UAAWC,EAAAA,WAAW,CAClB,MACAZ,EAAMW,WAAa,GACnBV,EAAIC,KACJD,EAAIE,UACJF,EAAIG,QACJH,EAAIQ,QAERI,MAAOb,EAAMC,IACba,GAAId,EAAMc,IAGd,OACIC,EAASC,cAAA,MAAA,IAAAN,GAAcX,EAAe"}
|
package/box/index.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ type AlignItemsProps =
|
|
|
33
33
|
| "align-items-xxl-end"
|
|
34
34
|
| "align-items-xxl-center"
|
|
35
35
|
| "align-items-xxl-baseline"
|
|
36
|
-
| "align-items-xxl-stretch"
|
|
36
|
+
| "align-items-xxl-stretch";
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
39
|
* Realiza o mapeamento dos valores da propriedades css `justify-content`
|
|
@@ -74,7 +74,7 @@ type JustifyContentProps =
|
|
|
74
74
|
| "justify-content-xxl-center"
|
|
75
75
|
| "justify-content-xxl-between"
|
|
76
76
|
| "justify-content-xxl-around"
|
|
77
|
-
| "justify-content-xxl-evenly"
|
|
77
|
+
| "justify-content-xxl-evenly";
|
|
78
78
|
|
|
79
79
|
/**
|
|
80
80
|
* Define as tipagens `default` de todos os componentes do pacote
|
package/box/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../src/box/box.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};"],"names":["Box","children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement"],"mappings":"mEAmBO,MAAMA,EAAM,EAAGC,cAAaC,MAC/B,MAAMC,EAAM,CACRC,KAAM,YAAaF,EAAME,MAAQ,QACjCC,UAAW,iBAAiBH,EAAMG,WAAa,QAC/CC,aAA2BC,IAAlBL,EAAMI,QAAwB,GAAKE,MAAMC,QAAQP,EAAMI,SAAWJ,EAAMI,SAASI,KAAK,KAAOR,EAAMI,QAC5GK,WAAuBJ,IAAhBL,EAAMS,MAAsB,GAAKH,MAAMC,QAAQP,EAAMS,OAAST,EAAMS,OAAOD,KAAK,KAAOR,EAAMS,OAGlGC,EAA2D,CAC7DC,UAAWC,EAAW,CAClB,MACAZ,EAAMW,WAAa,GACnBV,EAAIC,KACJD,EAAIE,UACJF,EAAIG,QACJH,EAAIQ,QAERI,MAAOb,EAAMC,IACba,GAAId,EAAMc,IAGd,OACIC,EAASC,cAAA,MAAA,IAAAN,GAAcX,
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../src/box/box.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};"],"names":["Box","children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement"],"mappings":"mEAmBO,MAAMA,EAAM,EAAGC,cAAaC,MAC/B,MAAMC,EAAM,CACRC,KAAM,YAAaF,EAAME,MAAQ,QACjCC,UAAW,iBAAiBH,EAAMG,WAAa,QAC/CC,aAA2BC,IAAlBL,EAAMI,QAAwB,GAAKE,MAAMC,QAAQP,EAAMI,SAAWJ,EAAMI,SAASI,KAAK,KAAOR,EAAMI,QAC5GK,WAAuBJ,IAAhBL,EAAMS,MAAsB,GAAKH,MAAMC,QAAQP,EAAMS,OAAST,EAAMS,OAAOD,KAAK,KAAOR,EAAMS,OAGlGC,EAA2D,CAC7DC,UAAWC,EAAW,CAClB,MACAZ,EAAMW,WAAa,GACnBV,EAAIC,KACJD,EAAIE,UACJF,EAAIG,QACJH,EAAIQ,QAERI,MAAOb,EAAMC,IACba,GAAId,EAAMc,IAGd,OACIC,EAASC,cAAA,MAAA,IAAAN,GAAcX,EAAe"}
|
package/editor/_editor.scss
CHANGED
|
@@ -1,25 +1,15 @@
|
|
|
1
|
-
:root {
|
|
2
|
-
--editor-font-size: 1em;
|
|
3
|
-
--editor-border-radius: 3px;
|
|
4
|
-
--editor-background: transparent;
|
|
5
|
-
--editor-border-color: var(--bs-gray-500, #adb5bd);
|
|
6
|
-
--editor-menu-font-size: 1.2em;
|
|
7
|
-
|
|
8
|
-
--editor-active-menu-color: var(--bs-primary, #0D6EFD);
|
|
9
|
-
}
|
|
10
|
-
|
|
11
1
|
.editor-container {
|
|
12
2
|
position: relative;
|
|
13
3
|
width: 100%;
|
|
14
4
|
display: flex;
|
|
15
5
|
flex-wrap: wrap;
|
|
16
|
-
border-radius:
|
|
17
|
-
border: 1px solid
|
|
6
|
+
border-radius: $editorToolbarBorderRadius;
|
|
7
|
+
border: 1px solid #{$shade300};
|
|
18
8
|
|
|
19
9
|
.editor {
|
|
20
10
|
width: 100%;
|
|
21
|
-
font-size:
|
|
22
|
-
background:
|
|
11
|
+
font-size: $fontSize;
|
|
12
|
+
background: $editorContentBg;
|
|
23
13
|
}
|
|
24
14
|
|
|
25
15
|
.editor-menu {
|
|
@@ -28,7 +18,7 @@
|
|
|
28
18
|
width: 100%;
|
|
29
19
|
padding: 2.5px;
|
|
30
20
|
align-items: center;
|
|
31
|
-
border-bottom: 1px solid
|
|
21
|
+
border-bottom: 1px solid #{$shade300};
|
|
32
22
|
|
|
33
23
|
&-group {
|
|
34
24
|
display: flex;
|
|
@@ -36,12 +26,13 @@
|
|
|
36
26
|
}
|
|
37
27
|
|
|
38
28
|
&-item {
|
|
29
|
+
color: $editorToolbarIconColor;
|
|
39
30
|
margin: auto 5px;
|
|
40
|
-
font-size:
|
|
31
|
+
font-size: calc($fontSize * 1.2);
|
|
41
32
|
}
|
|
42
33
|
|
|
43
34
|
&-item.active {
|
|
44
|
-
color:
|
|
35
|
+
color: $editorIconActiveColor;
|
|
45
36
|
}
|
|
46
37
|
}
|
|
47
38
|
|
|
@@ -53,7 +44,7 @@
|
|
|
53
44
|
|
|
54
45
|
.editor-menu::-webkit-scrollbar-thumb {
|
|
55
46
|
border-radius: 5px;
|
|
56
|
-
background:
|
|
47
|
+
background: $scrollThumbBg;
|
|
57
48
|
border: none;
|
|
58
49
|
}
|
|
59
50
|
|
|
@@ -93,8 +84,8 @@
|
|
|
93
84
|
padding: 10px;
|
|
94
85
|
|
|
95
86
|
a {
|
|
96
|
-
color:
|
|
97
|
-
text-decoration: underline solid
|
|
87
|
+
color: $primaryColor;
|
|
88
|
+
text-decoration: underline solid $primaryColor;
|
|
98
89
|
}
|
|
99
90
|
|
|
100
91
|
code {
|
|
@@ -110,7 +101,7 @@
|
|
|
110
101
|
}
|
|
111
102
|
|
|
112
103
|
.tiptap.ProseMirror-focused {
|
|
113
|
-
border-radius:
|
|
104
|
+
border-radius: $editorToolbarBorderRadius;
|
|
114
105
|
outline: none !important;
|
|
115
106
|
}
|
|
116
107
|
}
|
package/editor/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../../src/box/box.tsx","../../src/editor/core/text.tsx","../../src/editor/core/link.tsx","../../src/editor/core/bold.tsx","../../src/editor/core/code.tsx","../../src/editor/core/color.tsx","../../src/editor/core/image.tsx","../../src/editor/core/italic.tsx","../../src/editor/core/strike.tsx","../../src/editor/core/orderlist.tsx","../../src/editor/core/underline.tsx","../../src/editor/core/highlight.tsx","../../src/editor/core/bulletlist.tsx","../../src/editor/core/index.tsx","../../src/api/input.tsx","../../src/editor/const.ts","../../src/editor/editor.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Text`\r\n * Extensão para formatar o texto com tamanho específico\r\n */\r\nexport const Text = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n\r\n return active && (\r\n <>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"heading\", { level: 1 }) ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleHeading({ level: 1 }).run();\r\n }}><i className=\"bi bi-type-h1\"/></a>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"heading\", { level: 2 }) ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleHeading({ level: 2 }).run();\r\n }}><i className=\"bi bi-type-h2\"/></a>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"heading\", { level: 3 }) ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleHeading({ level: 3 }).run();\r\n }}><i className=\"bi bi-type-h3\"/></a>\r\n </>\r\n );\r\n};","import { EditorCoreProps } from \"../types\";\r\nimport React, { useEffect, useState } from \"react\";\r\n\r\n/**\r\n * Core - `Link`\r\n * Extensão para formatar adicionar link no documento\r\n */\r\nexport const Link = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n const [open, setOpen] = useState<boolean>(false);\r\n const [link, setLink] = useState<string>(\"\");\r\n\r\n useEffect(() => {\r\n setLink(\"\");\r\n }, [open]);\r\n\r\n function handleLink() {\r\n if (link === \"\") {\r\n editor.chain().focus().extendMarkRange(\"link\").unsetLink().run();\r\n } else {\r\n editor.chain().focus().extendMarkRange(\"link\").setLink({ href: link }).run();\r\n }\r\n setOpen(false);\r\n }\r\n\r\n return active && (\r\n <>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"link\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n if (!editor.isActive(\"link\")) {\r\n setOpen(!open);\r\n } else {\r\n editor.chain().focus().unsetLink().run();\r\n }\r\n }}><i className=\"bi bi-link\"/></a>\r\n {open && <div className=\"editor-link\">\r\n <input className=\"form-control form-control-sm\"\r\n placeholder=\"https://example.com.br\"\r\n style={{ fontSize: \".8em\", flex: 1 }}\r\n type=\"text\"\r\n value={link}\r\n onChange={event => setLink(event.target.value)}/>\r\n <a className=\"text-primary ms-2\"\r\n href=\"#\"\r\n style={{ fontSize: \".8em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n handleLink();\r\n }}><i className=\"bi bi-save me-1\"/>Save</a>\r\n </div>}\r\n </>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Bold`\r\n * Extensão para renderizar texto em negrito\r\n */\r\nexport const Bold = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"bold\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleBold().run();\r\n }}><i className=\"bi bi-type-bold\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Code`\r\n * Extensão para renderizar texto em formato de código\r\n */\r\nexport const Code = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"code\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleCode().run();\r\n }}><i className=\"bi bi-code-slash\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Color`\r\n * Extensão para formatar o texto com cor especifica\r\n */\r\nexport const Color = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <input\r\n style={{\r\n width: \"22px\",\r\n height: \"20px\",\r\n borderRadius: \"5px\",\r\n margin: \"auto 2.5px\",\r\n border: \"2px solid var(--editor-border-color)\",\r\n }}\r\n type=\"color\"\r\n value={editor.getAttributes(\"textStyle\").color ?? \"#000000\"}\r\n onChange={event => editor.chain().focus().setColor(event.target.value).run()}/>\r\n );\r\n};","import { EditorCoreProps } from \"../types\";\r\nimport React, { useEffect, useState } from \"react\";\r\n\r\n/**\r\n * Core - `Image`\r\n * Extensão para adicionar imagem no documento\r\n */\r\nexport const Image = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n const [file, setFile] = useState<any>(null);\r\n\r\n const handlePaste = (event: any) => {\r\n const items = (event.clipboardData || event.originalEvent.clipboardData).items;\r\n for (const item of items) {\r\n if (item.type.indexOf(\"image\") === 0) {\r\n const file = item.getAsFile();\r\n const reader = new FileReader();\r\n reader.onload = (event) => {\r\n editor.chain().focus().setImage({ src: event?.target?.result as string }).run();\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (editor.view.dom.parentNode !== null && active) {\r\n editor.view.dom.parentNode.addEventListener(\"paste\", handlePaste);\r\n }\r\n return () => {\r\n editor.view.dom.parentNode?.removeEventListener(\"paste\", handlePaste);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (file?.name !== undefined) {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n editor.chain().focus().setImage({ src: reader.result as string }).run();\r\n };\r\n }\r\n }, [file]);\r\n\r\n return active && (\r\n <div className=\"editor-image\">\r\n <input accept=\"image/png, image/jpeg\"\r\n name=\"editor-image\"\r\n type=\"file\"\r\n onChange={event => setFile(event.target.files?.[0])}/>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"link\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n }}><i className=\"bi bi-image\"/></a>\r\n </div>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Italic`\r\n * Extensão para renderizar texto em itálico\r\n */\r\nexport const Italic = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"italic\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleItalic().run();\r\n }}><i className=\"bi bi-type-italic\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Strike`\r\n * Extensão para renderizar texto em strike text\r\n */\r\nexport const Strike = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"strike\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleStrike().run();\r\n }}><i className=\"bi bi-type-strikethrough\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Orderlist`\r\n * Extensão para renderizar texto em lista ordenada\r\n */\r\nexport const Orderlist = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"orderedList\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleOrderedList().run();\r\n }}><i className=\"bi bi-list-ol\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Underline`\r\n * Extensão para renderizar texto em underline text\r\n */\r\nexport const Underline = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"underline\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleUnderline().run();\r\n }}><i className=\"bi bi-type-underline\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Highlight`\r\n * Extensão para marcar texto no formato de marca texto\r\n */\r\nexport const Highlight = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"highlight\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleHighlight().run();\r\n }}><i className=\"bi bi-highlighter\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Bulletlist`\r\n * Extensão para renderizar texto em lista\r\n */\r\nexport const Bulletlist = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"bulletList\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleBulletList().run();\r\n }}><i className=\"bi bi-list-task\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { Text } from \"./text\";\r\nimport { Link } from \"./link\";\r\nimport { Bold } from \"./bold\";\r\nimport { Code } from \"./code\";\r\nimport { Color } from \"./color\";\r\nimport { Image } from \"./image\";\r\nimport { Italic } from \"./italic\";\r\nimport { Strike } from \"./strike\";\r\nimport { Orderlist } from \"./orderlist\";\r\nimport { Underline } from \"./underline\";\r\nimport { Highlight } from \"./highlight\";\r\nimport { Bulletlist } from \"./bulletlist\";\r\nimport { EditorCoreProps, EditorOptionsProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Menu`\r\n * Componente que renderiza todas as opções de menu do componente\r\n */\r\nexport const EditorMenu = ({ editor, options }: EditorCoreProps & { options: EditorOptionsProps }) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return (\r\n <div className=\"editor-menu\">\r\n <div className=\"editor-menu-group\">\r\n <Text active={options.text}\r\n editor={editor}/>\r\n <Bold active={options.bold}\r\n editor={editor}/>\r\n <Italic active={options.italic}\r\n editor={editor}/>\r\n <Color active={options.color}\r\n editor={editor}/>\r\n <Strike active={options.strike}\r\n editor={editor}/>\r\n <Underline active={options.underline}\r\n editor={editor}/>\r\n <Code active={options.code}\r\n editor={editor}/>\r\n <Highlight active={options.highlight}\r\n editor={editor}/>\r\n </div>\r\n <div className=\"editor-menu-group\">\r\n <Bulletlist active={options.bulletlist}\r\n editor={editor}/>\r\n <Orderlist active={options.orderlist}\r\n editor={editor}/>\r\n <Link active={options.link}\r\n editor={editor}/>\r\n <Image active={options.image}\r\n editor={editor}/>\r\n </div>\r\n </div>\r\n );\r\n};","import React from \"react\";\r\nimport { ApiFieldComponentProps } from \"./types\";\r\n\r\n/**\r\n * API - `InputLabel`\r\n *\r\n * Um componente utilizado como label em todos os componente de campo do pacote.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const InputLabel = ({ iconPrefix = \"bi bi-\", ...props }: ApiFieldComponentProps) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return props.label\r\n && <p className='form-label'>\r\n {props.icon && <i className={iconPrefix + props.icon + \" me-1\"}/>}\r\n {props.label}\r\n {props.required && <span className=\"text-danger\">*</span>}\r\n </p>;\r\n};","import { EditorOptionsProps } from \"./types\";\r\n\r\nexport const editorBasic: EditorOptionsProps = {\r\n text: true,\r\n bold: true,\r\n italic: true,\r\n color: true,\r\n strike: false,\r\n underline: false,\r\n code: false,\r\n highlight: false,\r\n bulletlist: false,\r\n orderlist: false,\r\n link: false,\r\n image: false\r\n};\r\n\r\nexport const editorFull: EditorOptionsProps = {\r\n text: true,\r\n bold: true,\r\n italic: true,\r\n color: true,\r\n strike: true,\r\n underline: true,\r\n code: true,\r\n highlight: true,\r\n bulletlist: true,\r\n orderlist: true,\r\n link: true,\r\n image: true\r\n};","import { Box } from \"../box\";\r\nimport { EditorMenu } from \"./core\";\r\nimport { InputLabel } from \"../api\";\r\nimport { EditorProps } from \"./types\";\r\nimport Link from \"@tiptap/extension-link\";\r\nimport Image from \"@tiptap/extension-image\";\r\nimport StarterKit from \"@tiptap/starter-kit\";\r\nimport { Color } from \"@tiptap/extension-color\";\r\nimport { editorBasic, editorFull } from \"./const\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport Underline from \"@tiptap/extension-underline\";\r\nimport Highlight from \"@tiptap/extension-highlight\";\r\nimport TextStyle from \"@tiptap/extension-text-style\";\r\nimport { EditorContent as EditorTipTap, useEditor } from \"@tiptap/react\";\r\n\r\n/**\r\n * Componente - `Editor`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar container de edição de texto.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const Editor = ({ options = \"basic\", iconPrefix = \"bi bi-\", ...props }: EditorProps) => {\r\n const [edition, setEdition] = useState(false);\r\n const editor = useEditor({\r\n extensions: [\r\n StarterKit,\r\n Underline,\r\n Highlight,\r\n Color,\r\n TextStyle,\r\n Link.configure({\r\n validate: (href) => /^https?:\\/\\//.test(href),\r\n HTMLAttributes: {\r\n rel: \"\"\r\n }\r\n }),\r\n Image.configure({\r\n allowBase64: true\r\n })\r\n ],\r\n editable: !props.disabled,\r\n content: props.value ?? \"\",\r\n onFocus: () => setEdition(true),\r\n onBlur: () => setEdition(false),\r\n onUpdate: ({ editor }) => {\r\n props.onChange(editor.getHTML());\r\n }\r\n });\r\n\r\n if (!editor) {\r\n console.error(\"Não foi possível realizar o carregamento do editor de texto.\");\r\n return null;\r\n }\r\n\r\n useEffect(() => {\r\n if (editor && !edition) {\r\n editor?.commands.setContent(props.value);\r\n }\r\n }, [props.value]);\r\n\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return (\r\n <Box className={props.className}\r\n css={props.css}\r\n size={props.size ?? \"100\"}>\r\n <InputLabel {...props}/>\r\n <div className=\"editor-container\">\r\n {!props.disabled\r\n && <EditorMenu editor={editor}\r\n options={options === \"basic\" ? editorBasic : options === \"full\" ? editorFull : options}/>}\r\n <EditorTipTap className=\"editor\"\r\n disabled={props.disabled}\r\n editor={editor}\r\n id={props.id}\r\n name={props.name}\r\n style={{ minHeight: (props.height ?? 100) + \"px\" }}/>\r\n </div>\r\n <div data-name={props.name}\r\n id=\"j_feedback\"/>\r\n </Box>\r\n );\r\n};\r\n\r\nexport default Editor;"],"names":["Box","children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement","Text","editor","active","Fragment","isActive","level","href","fontSize","onClick","event","preventDefault","chain","focus","toggleHeading","run","Link","open","setOpen","useState","link","setLink","useEffect","unsetLink","placeholder","flex","type","value","onChange","target","extendMarkRange","Bold","toggleBold","Code","toggleCode","Color","width","height","borderRadius","margin","border","getAttributes","color","setColor","Image","file","setFile","handlePaste","items","clipboardData","originalEvent","item","indexOf","getAsFile","reader","FileReader","onload","setImage","src","result","readAsDataURL","view","dom","parentNode","addEventListener","removeEventListener","name","accept","files","Italic","toggleItalic","Strike","toggleStrike","Orderlist","toggleOrderedList","Underline","toggleUnderline","Highlight","toggleHighlight","Bulletlist","toggleBulletList","EditorMenu","options","text","bold","italic","strike","underline","code","highlight","bulletlist","orderlist","image","InputLabel","iconPrefix","label","icon","required","editorBasic","editorFull","edition","setEdition","useEditor","extensions","StarterKit","TextStyle","configure","validate","test","HTMLAttributes","rel","allowBase64","editable","disabled","content","onFocus","onBlur","onUpdate","getHTML","commands","setContent","EditorTipTap","minHeight","console","error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../../src/box/box.tsx","../../src/editor/core/text.tsx","../../src/editor/core/link.tsx","../../src/editor/core/bold.tsx","../../src/editor/core/code.tsx","../../src/editor/core/color.tsx","../../src/editor/core/image.tsx","../../src/editor/core/italic.tsx","../../src/editor/core/strike.tsx","../../src/editor/core/orderlist.tsx","../../src/editor/core/underline.tsx","../../src/editor/core/highlight.tsx","../../src/editor/core/bulletlist.tsx","../../src/editor/core/index.tsx","../../src/api/input.tsx","../../src/editor/const.ts","../../src/editor/editor.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Text`\r\n * Extensão para formatar o texto com tamanho específico\r\n */\r\nexport const Text = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n\r\n return active && (\r\n <>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"heading\", { level: 1 }) ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleHeading({ level: 1 }).run();\r\n }}><i className=\"bi bi-type-h1\"/></a>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"heading\", { level: 2 }) ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleHeading({ level: 2 }).run();\r\n }}><i className=\"bi bi-type-h2\"/></a>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"heading\", { level: 3 }) ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleHeading({ level: 3 }).run();\r\n }}><i className=\"bi bi-type-h3\"/></a>\r\n </>\r\n );\r\n};","import { EditorCoreProps } from \"../types\";\r\nimport React, { useEffect, useState } from \"react\";\r\n\r\n/**\r\n * Core - `Link`\r\n * Extensão para formatar adicionar link no documento\r\n */\r\nexport const Link = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n const [open, setOpen] = useState<boolean>(false);\r\n const [link, setLink] = useState<string>(\"\");\r\n\r\n useEffect(() => {\r\n setLink(\"\");\r\n }, [open]);\r\n\r\n function handleLink() {\r\n if (link === \"\") {\r\n editor.chain().focus().extendMarkRange(\"link\").unsetLink().run();\r\n } else {\r\n editor.chain().focus().extendMarkRange(\"link\").setLink({ href: link }).run();\r\n }\r\n setOpen(false);\r\n }\r\n\r\n return active && (\r\n <>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"link\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n if (!editor.isActive(\"link\")) {\r\n setOpen(!open);\r\n } else {\r\n editor.chain().focus().unsetLink().run();\r\n }\r\n }}><i className=\"bi bi-link\"/></a>\r\n {open && <div className=\"editor-link\">\r\n <input className=\"form-control form-control-sm\"\r\n placeholder=\"https://example.com.br\"\r\n style={{ fontSize: \".8em\", flex: 1 }}\r\n type=\"text\"\r\n value={link}\r\n onChange={event => setLink(event.target.value)}/>\r\n <a className=\"text-primary ms-2\"\r\n href=\"#\"\r\n style={{ fontSize: \".8em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n handleLink();\r\n }}><i className=\"bi bi-save me-1\"/>Save</a>\r\n </div>}\r\n </>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Bold`\r\n * Extensão para renderizar texto em negrito\r\n */\r\nexport const Bold = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"bold\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleBold().run();\r\n }}><i className=\"bi bi-type-bold\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Code`\r\n * Extensão para renderizar texto em formato de código\r\n */\r\nexport const Code = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"code\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleCode().run();\r\n }}><i className=\"bi bi-code-slash\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Color`\r\n * Extensão para formatar o texto com cor especifica\r\n */\r\nexport const Color = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <input\r\n style={{\r\n width: \"22px\",\r\n height: \"20px\",\r\n borderRadius: \"5px\",\r\n margin: \"auto 2.5px\",\r\n border: \"2px solid var(--editor-border-color)\",\r\n }}\r\n type=\"color\"\r\n value={editor.getAttributes(\"textStyle\").color ?? \"#000000\"}\r\n onChange={event => editor.chain().focus().setColor(event.target.value).run()}/>\r\n );\r\n};","import { EditorCoreProps } from \"../types\";\r\nimport React, { useEffect, useState } from \"react\";\r\n\r\n/**\r\n * Core - `Image`\r\n * Extensão para adicionar imagem no documento\r\n */\r\nexport const Image = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n const [file, setFile] = useState<any>(null);\r\n\r\n const handlePaste = (event: any) => {\r\n const items = (event.clipboardData || event.originalEvent.clipboardData).items;\r\n for (const item of items) {\r\n if (item.type.indexOf(\"image\") === 0) {\r\n const file = item.getAsFile();\r\n const reader = new FileReader();\r\n reader.onload = (event) => {\r\n editor.chain().focus().setImage({ src: event?.target?.result as string }).run();\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (editor.view.dom.parentNode !== null && active) {\r\n editor.view.dom.parentNode.addEventListener(\"paste\", handlePaste);\r\n }\r\n return () => {\r\n editor.view.dom.parentNode?.removeEventListener(\"paste\", handlePaste);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (file?.name !== undefined) {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n editor.chain().focus().setImage({ src: reader.result as string }).run();\r\n };\r\n }\r\n }, [file]);\r\n\r\n return active && (\r\n <div className=\"editor-image\">\r\n <input accept=\"image/png, image/jpeg\"\r\n name=\"editor-image\"\r\n type=\"file\"\r\n onChange={event => setFile(event.target.files?.[0])}/>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"link\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n }}><i className=\"bi bi-image\"/></a>\r\n </div>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Italic`\r\n * Extensão para renderizar texto em itálico\r\n */\r\nexport const Italic = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"italic\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleItalic().run();\r\n }}><i className=\"bi bi-type-italic\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Strike`\r\n * Extensão para renderizar texto em strike text\r\n */\r\nexport const Strike = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"strike\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleStrike().run();\r\n }}><i className=\"bi bi-type-strikethrough\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Orderlist`\r\n * Extensão para renderizar texto em lista ordenada\r\n */\r\nexport const Orderlist = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"orderedList\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleOrderedList().run();\r\n }}><i className=\"bi bi-list-ol\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Underline`\r\n * Extensão para renderizar texto em underline text\r\n */\r\nexport const Underline = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"underline\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleUnderline().run();\r\n }}><i className=\"bi bi-type-underline\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Highlight`\r\n * Extensão para marcar texto no formato de marca texto\r\n */\r\nexport const Highlight = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"highlight\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleHighlight().run();\r\n }}><i className=\"bi bi-highlighter\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Bulletlist`\r\n * Extensão para renderizar texto em lista\r\n */\r\nexport const Bulletlist = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"bulletList\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleBulletList().run();\r\n }}><i className=\"bi bi-list-task\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { Text } from \"./text\";\r\nimport { Link } from \"./link\";\r\nimport { Bold } from \"./bold\";\r\nimport { Code } from \"./code\";\r\nimport { Color } from \"./color\";\r\nimport { Image } from \"./image\";\r\nimport { Italic } from \"./italic\";\r\nimport { Strike } from \"./strike\";\r\nimport { Orderlist } from \"./orderlist\";\r\nimport { Underline } from \"./underline\";\r\nimport { Highlight } from \"./highlight\";\r\nimport { Bulletlist } from \"./bulletlist\";\r\nimport { EditorCoreProps, EditorOptionsProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Menu`\r\n * Componente que renderiza todas as opções de menu do componente\r\n */\r\nexport const EditorMenu = ({ editor, options }: EditorCoreProps & { options: EditorOptionsProps }) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return (\r\n <div className=\"editor-menu\">\r\n <div className=\"editor-menu-group\">\r\n <Text active={options.text}\r\n editor={editor}/>\r\n <Bold active={options.bold}\r\n editor={editor}/>\r\n <Italic active={options.italic}\r\n editor={editor}/>\r\n <Color active={options.color}\r\n editor={editor}/>\r\n <Strike active={options.strike}\r\n editor={editor}/>\r\n <Underline active={options.underline}\r\n editor={editor}/>\r\n <Code active={options.code}\r\n editor={editor}/>\r\n <Highlight active={options.highlight}\r\n editor={editor}/>\r\n </div>\r\n <div className=\"editor-menu-group\">\r\n <Bulletlist active={options.bulletlist}\r\n editor={editor}/>\r\n <Orderlist active={options.orderlist}\r\n editor={editor}/>\r\n <Link active={options.link}\r\n editor={editor}/>\r\n <Image active={options.image}\r\n editor={editor}/>\r\n </div>\r\n </div>\r\n );\r\n};","import React from \"react\";\r\nimport { ApiFieldComponentProps } from \"./types\";\r\n\r\n/**\r\n * API - `InputLabel`\r\n *\r\n * Um componente utilizado como label em todos os componente de campo do pacote.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const InputLabel = ({ iconPrefix = \"bi bi-\", ...props }: ApiFieldComponentProps) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return props.label\r\n && <p className='form-label'>\r\n {props.icon && <i className={iconPrefix + props.icon + \" me-1\"}/>}\r\n {props.label}\r\n {props.required && <span className=\"text-danger\">*</span>}\r\n </p>;\r\n};","import { EditorOptionsProps } from \"./types\";\r\n\r\nexport const editorBasic: EditorOptionsProps = {\r\n text: true,\r\n bold: true,\r\n italic: true,\r\n color: true,\r\n strike: false,\r\n underline: false,\r\n code: false,\r\n highlight: false,\r\n bulletlist: false,\r\n orderlist: false,\r\n link: false,\r\n image: false\r\n};\r\n\r\nexport const editorFull: EditorOptionsProps = {\r\n text: true,\r\n bold: true,\r\n italic: true,\r\n color: true,\r\n strike: true,\r\n underline: true,\r\n code: true,\r\n highlight: true,\r\n bulletlist: true,\r\n orderlist: true,\r\n link: true,\r\n image: true\r\n};","import { Box } from \"../box\";\r\nimport { EditorMenu } from \"./core\";\r\nimport { InputLabel } from \"../api\";\r\nimport { EditorProps } from \"./types\";\r\nimport Link from \"@tiptap/extension-link\";\r\nimport Image from \"@tiptap/extension-image\";\r\nimport StarterKit from \"@tiptap/starter-kit\";\r\nimport { Color } from \"@tiptap/extension-color\";\r\nimport { editorBasic, editorFull } from \"./const\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport Underline from \"@tiptap/extension-underline\";\r\nimport Highlight from \"@tiptap/extension-highlight\";\r\nimport TextStyle from \"@tiptap/extension-text-style\";\r\nimport { EditorContent as EditorTipTap, useEditor } from \"@tiptap/react\";\r\n\r\n/**\r\n * Componente - `Editor`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar container de edição de texto.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const Editor = ({ options = \"basic\", iconPrefix = \"bi bi-\", ...props }: EditorProps) => {\r\n const [edition, setEdition] = useState(false);\r\n const editor = useEditor({\r\n extensions: [\r\n StarterKit,\r\n Underline,\r\n Highlight,\r\n Color,\r\n TextStyle,\r\n Link.configure({\r\n validate: (href) => /^https?:\\/\\//.test(href),\r\n HTMLAttributes: {\r\n rel: \"\"\r\n }\r\n }),\r\n Image.configure({\r\n allowBase64: true\r\n })\r\n ],\r\n editable: !props.disabled,\r\n content: props.value ?? \"\",\r\n onFocus: () => setEdition(true),\r\n onBlur: () => setEdition(false),\r\n onUpdate: ({ editor }) => {\r\n props.onChange(editor.getHTML());\r\n }\r\n });\r\n\r\n if (!editor) {\r\n console.error(\"Não foi possível realizar o carregamento do editor de texto.\");\r\n return null;\r\n }\r\n\r\n useEffect(() => {\r\n if (editor && !edition) {\r\n editor?.commands.setContent(props.value);\r\n }\r\n }, [props.value]);\r\n\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return (\r\n <Box className={props.className}\r\n css={props.css}\r\n size={props.size ?? \"100\"}>\r\n <InputLabel {...props}/>\r\n <div className=\"editor-container\">\r\n {!props.disabled\r\n && <EditorMenu editor={editor}\r\n options={options === \"basic\" ? editorBasic : options === \"full\" ? editorFull : options}/>}\r\n <EditorTipTap className=\"editor\"\r\n disabled={props.disabled}\r\n editor={editor}\r\n id={props.id}\r\n name={props.name}\r\n style={{ minHeight: (props.height ?? 100) + \"px\" }}/>\r\n </div>\r\n <div data-name={props.name}\r\n id=\"j_feedback\"/>\r\n </Box>\r\n );\r\n};\r\n\r\nexport default Editor;"],"names":["Box","children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement","Text","editor","active","Fragment","isActive","level","href","fontSize","onClick","event","preventDefault","chain","focus","toggleHeading","run","Link","open","setOpen","useState","link","setLink","useEffect","unsetLink","placeholder","flex","type","value","onChange","target","extendMarkRange","Bold","toggleBold","Code","toggleCode","Color","width","height","borderRadius","margin","border","getAttributes","color","setColor","Image","file","setFile","handlePaste","items","clipboardData","originalEvent","item","indexOf","getAsFile","reader","FileReader","onload","setImage","src","result","readAsDataURL","view","dom","parentNode","addEventListener","removeEventListener","name","accept","files","Italic","toggleItalic","Strike","toggleStrike","Orderlist","toggleOrderedList","Underline","toggleUnderline","Highlight","toggleHighlight","Bulletlist","toggleBulletList","EditorMenu","options","text","bold","italic","strike","underline","code","highlight","bulletlist","orderlist","image","InputLabel","iconPrefix","label","icon","required","editorBasic","editorFull","edition","setEdition","useEditor","extensions","StarterKit","TextStyle","configure","validate","test","HTMLAttributes","rel","allowBase64","editable","disabled","content","onFocus","onBlur","onUpdate","getHTML","commands","setContent","EditorTipTap","minHeight","console","error"],"mappings":"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"}
|