@orangesix/react 1.2.2 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/api/index.d.ts +46 -2
  2. package/autocomplete/index.cjs.js +1 -1
  3. package/autocomplete/index.cjs.js.map +1 -1
  4. package/autocomplete/index.d.ts +12 -1
  5. package/autocomplete/index.esm.js +1 -1
  6. package/autocomplete/index.esm.js.map +1 -1
  7. package/button/_button.scss +56 -0
  8. package/button/index.cjs.js +2 -0
  9. package/button/index.cjs.js.map +1 -0
  10. package/button/index.d.ts +109 -0
  11. package/button/index.esm.js +2 -0
  12. package/button/index.esm.js.map +1 -0
  13. package/button/package.json +5 -0
  14. package/editor/index.d.ts +5 -0
  15. package/input/index.cjs.js +1 -1
  16. package/input/index.cjs.js.map +1 -1
  17. package/input/index.d.ts +44 -1
  18. package/input/index.esm.js +1 -1
  19. package/input/index.esm.js.map +1 -1
  20. package/inputfilter/index.cjs.js +1 -1
  21. package/inputfilter/index.cjs.js.map +1 -1
  22. package/inputfilter/index.d.ts +5 -0
  23. package/inputfilter/index.esm.js +1 -1
  24. package/inputfilter/index.esm.js.map +1 -1
  25. package/loading/index.d.ts +16 -16
  26. package/loading/package.json +5 -5
  27. package/message/index.cjs.js +2 -0
  28. package/message/index.cjs.js.map +1 -0
  29. package/message/index.d.ts +108 -0
  30. package/message/index.esm.js +2 -0
  31. package/message/index.esm.js.map +1 -0
  32. package/message/package.json +5 -0
  33. package/modal/index.cjs.js +1 -1
  34. package/modal/index.cjs.js.map +1 -1
  35. package/modal/index.d.ts +5 -0
  36. package/modal/index.esm.js +1 -1
  37. package/modal/index.esm.js.map +1 -1
  38. package/package.json +23 -28
  39. package/picklist/index.d.ts +2 -1
  40. package/radio/index.cjs.js +1 -1
  41. package/radio/index.cjs.js.map +1 -1
  42. package/radio/index.d.ts +44 -1
  43. package/radio/index.esm.js +1 -1
  44. package/radio/index.esm.js.map +1 -1
  45. package/select/index.cjs.js +1 -1
  46. package/select/index.cjs.js.map +1 -1
  47. package/select/index.d.ts +46 -2
  48. package/select/index.esm.js +1 -1
  49. package/select/index.esm.js.map +1 -1
  50. package/style/index.d.ts +1 -1
  51. package/switch/index.cjs.js +1 -1
  52. package/switch/index.cjs.js.map +1 -1
  53. package/switch/index.d.ts +44 -1
  54. package/switch/index.esm.js +1 -1
  55. package/switch/index.esm.js.map +1 -1
  56. package/table/index.cjs.js +1 -1
  57. package/table/index.cjs.js.map +1 -1
  58. package/table/index.d.ts +38 -4
  59. package/table/index.esm.js +1 -1
  60. package/table/index.esm.js.map +1 -1
  61. package/tablepivot/index.d.ts +2 -1
  62. package/tabview/index.cjs.js +1 -1
  63. package/tabview/index.cjs.js.map +1 -1
  64. package/tabview/index.d.ts +12 -1
  65. package/tabview/index.esm.js +1 -1
  66. package/tabview/index.esm.js.map +1 -1
  67. package/textarea/index.cjs.js +1 -1
  68. package/textarea/index.cjs.js.map +1 -1
  69. package/textarea/index.d.ts +44 -1
  70. package/textarea/index.esm.js +1 -1
  71. package/textarea/index.esm.js.map +1 -1
  72. package/utils/index.cjs.js +1 -1
  73. package/utils/index.cjs.js.map +1 -1
  74. package/utils/index.d.ts +10 -2
  75. package/utils/index.esm.js +1 -1
  76. package/utils/index.esm.js.map +1 -1
package/api/index.d.ts CHANGED
@@ -164,18 +164,54 @@ interface ApiFieldComponentProps {
164
164
  * Define a opção de filtro de dados do componente
165
165
  */
166
166
  keyfilter?: KeyFilterType;
167
+
168
+ /**
169
+ * Determina se campo é apenas de leitura
170
+ */
171
+ readonly?: boolean
167
172
  }
168
173
 
169
174
  /**
170
175
  * Define os tipos `default` para componente de entrada de dados controlled
176
+ * quando a propriedade `Readonly` estiver habilitada
171
177
  */
172
- interface ApiFieldControlledProps {
178
+ interface ApiFieldReadonlyControlledProps {
179
+ /**
180
+ * Define o valor do componente controlado
181
+ */
182
+ value: any
183
+
184
+ /**
185
+ * Determina se campo é apenas de leitura
186
+ */
187
+ readonly: true
188
+
189
+ /**
190
+ * Função para alterar o valor do componente controlado
191
+ */
192
+ onChange?: (value: any) => void
173
193
 
194
+ /**
195
+ * Função quando um usuário sai de um componente controlado
196
+ */
197
+ onBlur?: (value: any) => void
198
+ }
199
+
200
+ /**
201
+ Define os tipos `default` para componente de entrada de dados controlled
202
+ quando a propriedade `Readonly` estiver desabilitada
203
+ */
204
+ interface ApiFieldWritableControlledProps {
174
205
  /**
175
206
  * Define o valor do componente controlado
176
207
  */
177
208
  value: any
178
209
 
210
+ /**
211
+ * Determina se campo é apenas de leitura
212
+ */
213
+ readonly?: false
214
+
179
215
  /**
180
216
  * Função para alterar o valor do componente controlado
181
217
  */
@@ -187,6 +223,13 @@ interface ApiFieldControlledProps {
187
223
  onBlur?: (value: any) => void
188
224
  }
189
225
 
226
+ /**
227
+ * Define os tipos `default` para componente de entrada de dados controlled
228
+ */
229
+ type ApiFieldControlledProps =
230
+ | ApiFieldReadonlyControlledProps
231
+ | ApiFieldWritableControlledProps;
232
+
190
233
  /**
191
234
  * Define os tipos `default` para componente de entrada de dados HookFomr
192
235
  */
@@ -258,4 +301,5 @@ type TApiFieldHookFormProps = ApiFieldHookFormProps;
258
301
  type IApiFieldComponentProps = ApiFieldComponentProps;
259
302
  type IApiFieldControlledProps = ApiFieldControlledProps;
260
303
 
261
- export { type IAPIComponentProps, type IAlignItemsProps, type IApiFieldComponentProps, type IApiFieldControlledProps, type IJustifyContentProps, InputFeedback, InputLabel, InputProps, type TApiFieldHookFormProps, type TApiFieldModeProps };
304
+ export { InputFeedback, InputLabel, InputProps };
305
+ export type { IAPIComponentProps, IAlignItemsProps, IApiFieldComponentProps, IApiFieldControlledProps, IJustifyContentProps, TApiFieldHookFormProps, TApiFieldModeProps };
@@ -1,2 +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"}));
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:e.forceSelect??!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
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +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 { ApiComponentProps, 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 entrada de dados 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};\r\n\r\n/**\r\n * API - `InputFeedback`\r\n *\r\n * Um componente utilizado como container de feedback em todos os componente de entrada de dados do pacote.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const InputFeedback = ({ errors, name, ...props }: ApiFieldComponentProps & { errors?: any }) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return !props.mode || props.mode === \"Controlled\"\r\n ? <div data-name={name}\r\n id=\"j_feedback\"/>\r\n : <div className={(!errors[name ?? \"\"] ? \"\" : \"invalid-feedback is-invalid\")}\r\n data-name={name ?? \"\"}\r\n id=\"j_feedback\"\r\n style={{ display: errors[name ?? \"\"] ? \"block\" : \"none\" }}>{!errors[name ?? \"\"] ? \"\" : errors[name ?? \"\"].message}</div>;\r\n};\r\n\r\n/**\r\n * API - `InputProps`\r\n *\r\n * Retorna o objeto com as `Props` do core dos componentes de entrada de dados\r\n */\r\nexport function InputProps<T extends ApiComponentProps & ApiFieldComponentProps & { ref: any }>(props: T) {\r\n return {\r\n ref: props.ref,\r\n\r\n id: props.id,\r\n name: props.name,\r\n required: props.required,\r\n disabled: props.disabled,\r\n placeholder: props.placeholder,\r\n\r\n className: props.className,\r\n style: { width: \"100%\" },\r\n\r\n keyfilter: props.keyfilter,\r\n };\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"}
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 { ApiComponentProps, 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 entrada de dados 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};\r\n\r\n/**\r\n * API - `InputFeedback`\r\n *\r\n * Um componente utilizado como container de feedback em todos os componente de entrada de dados do pacote.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const InputFeedback = ({ errors, name, ...props }: ApiFieldComponentProps & { errors?: any }) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return !props.mode || props.mode === \"Controlled\"\r\n ? <div data-name={name}\r\n id=\"j_feedback\"/>\r\n : <div className={(!errors[name ?? \"\"] ? \"\" : \"invalid-feedback is-invalid\")}\r\n data-name={name ?? \"\"}\r\n id=\"j_feedback\"\r\n style={{ display: errors[name ?? \"\"] ? \"block\" : \"none\" }}>{!errors[name ?? \"\"] ? \"\" : errors[name ?? \"\"].message}</div>;\r\n};\r\n\r\n/**\r\n * API - `InputProps`\r\n *\r\n * Retorna o objeto com as `Props` do core dos componentes de entrada de dados\r\n */\r\nexport function InputProps<T extends ApiComponentProps & ApiFieldComponentProps & { ref: any }>(props: T) {\r\n return {\r\n ref: props.ref,\r\n\r\n id: props.id,\r\n name: props.name,\r\n required: props.required,\r\n disabled: props.disabled,\r\n placeholder: props.placeholder,\r\n\r\n className: props.className,\r\n style: { width: \"100%\" },\r\n\r\n keyfilter: props.keyfilter,\r\n };\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: props.forceSelect ?? 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","forceSelect","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,eAAgB3B,EAAM4B,cAAe,EACrCf,MAAOb,EAAMC,KAAO,CAAE,EACtB4B,SAAU7B,EAAM6B,SAChBR,SAAUrB,EAAMqB,SAChBS,YAAa9B,EAAM8B,YACnBC,eAAgB,eAChBC,SAAUhC,EAAMgC,UAAY,OAC5BrB,UAAW,mCACRY,EAEX,CCjBM,SAAUU,EAAkBjC,GAC9B,MAAO,CACH,cAAAkC,CAAeC,GACXnC,EAAMoC,SAASD,EAAME,MACxB,EACD,QAAAC,CAASH,GACLnC,EAAMsC,SAASH,EAAMI,MACxB,EACD,QAAAC,CAASL,GACDnC,EAAMwC,UACNxC,EAAMwC,SAASL,EAAMI,QAIrC,sBCb4B,KAAMvC,KAE1Be,EAAAC,cAAClB,EAAG,CAACa,UAAW,gBAAkBX,EAAMW,WAAa,IAChDV,IAAKD,EAAMC,IACXC,KAAMF,EAAME,MAAQ,OACrBa,EAACC,cAAAC,EAAe,IAAAjB,IAChBe,EAACC,cAAAyB,EAAAA,cAAuBC,MAAO1C,EAAM2C,aAAe,IAC5BC,UAAW5C,EAAM6C,UACjBC,UAAW9C,EAAM+C,WAAa,EAC9BC,YAAahD,EAAMiD,MAAQ,GAC3BV,MAAOvC,EAAMuC,SACTjB,EAAetB,MACfiC,EAAkBjC,KAC9Ce,EAAgBC,cAAA,MAAA,CAAA,YAAAhB,EAAM0B,KACjBZ,GAAG"}
@@ -86,6 +86,11 @@ interface ApiFieldComponentProps {
86
86
  * Define a opção de filtro de dados do componente
87
87
  */
88
88
  keyfilter?: KeyFilterType;
89
+
90
+ /**
91
+ * Determina se campo é apenas de leitura
92
+ */
93
+ readonly?: boolean
89
94
  }
90
95
 
91
96
  interface AutocompleteDataProps {
@@ -122,6 +127,11 @@ interface AutocompleteProps extends ApiComponentProps, ApiFieldComponentProps {
122
127
  */
123
128
  appendTo?: "self" | HTMLElement;
124
129
 
130
+ /**
131
+ * Determina se é obrigatório a seleção do elemento
132
+ */
133
+ forceSelect?: boolean
134
+
125
135
  /**
126
136
  * Define o tempo para realizar a pesquisa da sugestão de dados.
127
137
  */
@@ -162,4 +172,5 @@ declare const Autocomplete: ({ ...props }: AutocompleteProps) => React.JSX.Eleme
162
172
 
163
173
  type IAutocompleteDataProps = AutocompleteDataProps;
164
174
 
165
- export { Autocomplete, type IAutocompleteDataProps };
175
+ export { Autocomplete };
176
+ export type { IAutocompleteDataProps };
@@ -1,2 +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};
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},l={className:a(["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:e.forceSelect??!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 n(e){return{completeMethod(a){e.onSearch(a.query)},onChange(a){e.onChange(a.value)},onSelect(a){e.onSelect&&e.onSelect(a.value)}}}const c=({...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,...l(a),...n(a)}),e.createElement("div",{"data-name":a.name,id:"j_feedback"}));export{c as Autocomplete};
2
2
  //# sourceMappingURL=index.esm.js.map
@@ -1 +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 { ApiComponentProps, 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 entrada de dados 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};\r\n\r\n/**\r\n * API - `InputFeedback`\r\n *\r\n * Um componente utilizado como container de feedback em todos os componente de entrada de dados do pacote.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const InputFeedback = ({ errors, name, ...props }: ApiFieldComponentProps & { errors?: any }) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return !props.mode || props.mode === \"Controlled\"\r\n ? <div data-name={name}\r\n id=\"j_feedback\"/>\r\n : <div className={(!errors[name ?? \"\"] ? \"\" : \"invalid-feedback is-invalid\")}\r\n data-name={name ?? \"\"}\r\n id=\"j_feedback\"\r\n style={{ display: errors[name ?? \"\"] ? \"block\" : \"none\" }}>{!errors[name ?? \"\"] ? \"\" : errors[name ?? \"\"].message}</div>;\r\n};\r\n\r\n/**\r\n * API - `InputProps`\r\n *\r\n * Retorna o objeto com as `Props` do core dos componentes de entrada de dados\r\n */\r\nexport function InputProps<T extends ApiComponentProps & ApiFieldComponentProps & { ref: any }>(props: T) {\r\n return {\r\n ref: props.ref,\r\n\r\n id: props.id,\r\n name: props.name,\r\n required: props.required,\r\n disabled: props.disabled,\r\n placeholder: props.placeholder,\r\n\r\n className: props.className,\r\n style: { width: \"100%\" },\r\n\r\n keyfilter: props.keyfilter,\r\n };\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"}
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 { ApiComponentProps, 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 entrada de dados 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};\r\n\r\n/**\r\n * API - `InputFeedback`\r\n *\r\n * Um componente utilizado como container de feedback em todos os componente de entrada de dados do pacote.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const InputFeedback = ({ errors, name, ...props }: ApiFieldComponentProps & { errors?: any }) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return !props.mode || props.mode === \"Controlled\"\r\n ? <div data-name={name}\r\n id=\"j_feedback\"/>\r\n : <div className={(!errors[name ?? \"\"] ? \"\" : \"invalid-feedback is-invalid\")}\r\n data-name={name ?? \"\"}\r\n id=\"j_feedback\"\r\n style={{ display: errors[name ?? \"\"] ? \"block\" : \"none\" }}>{!errors[name ?? \"\"] ? \"\" : errors[name ?? \"\"].message}</div>;\r\n};\r\n\r\n/**\r\n * API - `InputProps`\r\n *\r\n * Retorna o objeto com as `Props` do core dos componentes de entrada de dados\r\n */\r\nexport function InputProps<T extends ApiComponentProps & ApiFieldComponentProps & { ref: any }>(props: T) {\r\n return {\r\n ref: props.ref,\r\n\r\n id: props.id,\r\n name: props.name,\r\n required: props.required,\r\n disabled: props.disabled,\r\n placeholder: props.placeholder,\r\n\r\n className: props.className,\r\n style: { width: \"100%\" },\r\n\r\n keyfilter: props.keyfilter,\r\n };\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: props.forceSelect ?? 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","forceSelect","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,eAAgB3B,EAAM4B,cAAe,EACrCf,MAAOb,EAAMC,KAAO,CAAE,EACtB4B,SAAU7B,EAAM6B,SAChBR,SAAUrB,EAAMqB,SAChBS,YAAa9B,EAAM8B,YACnBC,eAAgB,eAChBC,SAAUhC,EAAMgC,UAAY,OAC5BrB,UAAW,mCACRY,EAEX,CCjBM,SAAUU,EAAkBjC,GAC9B,MAAO,CACH,cAAAkC,CAAeC,GACXnC,EAAMoC,SAASD,EAAME,MACxB,EACD,QAAAC,CAASH,GACLnC,EAAMsC,SAASH,EAAMI,MACxB,EACD,QAAAC,CAASL,GACDnC,EAAMwC,UACNxC,EAAMwC,SAASL,EAAMI,QAIrC,CCba,MAAAE,EAAe,KAAMzC,KAE1Be,EAAAC,cAAClB,EAAG,CAACa,UAAW,gBAAkBX,EAAMW,WAAa,IAChDV,IAAKD,EAAMC,IACXC,KAAMF,EAAME,MAAQ,OACrBa,EAACC,cAAAC,EAAe,IAAAjB,IAChBe,EAACC,cAAA0B,GAAuBC,MAAO3C,EAAM4C,aAAe,IAC5BC,UAAW7C,EAAM8C,UACjBC,UAAW/C,EAAMgD,WAAa,EAC9BC,YAAajD,EAAMkD,MAAQ,GAC3BX,MAAOvC,EAAMuC,SACTjB,EAAetB,MACfiC,EAAkBjC,KAC9Ce,EAAgBC,cAAA,MAAA,CAAA,YAAAhB,EAAM0B,KACjBZ,GAAG"}
@@ -0,0 +1,56 @@
1
+ $box-sizes: (
2
+ '5': 5%,
3
+ '10': 10%,
4
+ '12-5':12.5%,
5
+ '15': 15%,
6
+ '17-5':17.5%,
7
+ '20': 20%,
8
+ '22-5':25.5%,
9
+ '25': 25%,
10
+ '30': 30%,
11
+ '33': 33%,
12
+ '35': 35%,
13
+ '40': 40%,
14
+ '45': 45%,
15
+ '50': 50%,
16
+ '55': 55%,
17
+ '60': 60%,
18
+ '65': 65%,
19
+ '70': 70%,
20
+ '75': 75%,
21
+ '80': 80%,
22
+ '85': 85%,
23
+ '90': 90%,
24
+ '95': 95%,
25
+ '100': 100%
26
+ ) !default;
27
+
28
+ $box-space-margin: .5rem !default;
29
+ $box-space-padding: .5rem !default;
30
+
31
+ .box {
32
+ display: flex;
33
+ flex-wrap: wrap;
34
+ position: relative;
35
+
36
+ @each $key, $value in $box-sizes {
37
+ &.box-size-#{$key} {
38
+ width: calc(var(--box-size-#{$key}, #{$value}) - #{$box-space-margin});
39
+ margin: calc(#{$box-space-margin} / 2) calc(#{$box-space-margin} / 2);
40
+ padding: #{$box-space-padding};
41
+
42
+ @media (max-width: 576px) {
43
+ width: calc(100% - #{$box-space-margin});
44
+ }
45
+ }
46
+ }
47
+
48
+ &.box-direction-row {
49
+ flex-direction: row;
50
+ }
51
+
52
+ &.box-direction-column {
53
+ flex-direction: column;
54
+ }
55
+ }
56
+
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("react"),i=require("primereact/button");exports.Button=({...a})=>e.createElement(i.Button,{badge:a.badge,badgeClassName:a.badgeClassName,className:a.className,disabled:a.disabled,icon:void 0!==a.icon?`${a.iconPrefix??"bi bi-"}${a.icon??""} ${a.label?"me-1":""}`:void 0,iconPos:a.iconPos,id:a.id,label:a.label,link:a.isLink,loading:a.isLoading,pt:{loadingIcon:{className:"me-1"}},ref:a.ref,severity:a.color,size:a.size,style:a.css,type:a.type,onClick:a.onClick});
2
+ //# sourceMappingURL=index.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs.js","sources":["../../src/button/button.tsx"],"sourcesContent":["import React from \"react\";\r\nimport { ButtonProps } from \"./types\";\r\nimport { Button as ButtonPrimeReact } from \"primereact/button\";\r\n\r\n/**\r\n * Componente - `Button`\r\n *\r\n * Um componente versátil que pode ser utilizado para realizar ações por exemplo em formulários de dados.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const Button = ({ ...props }: ButtonProps) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return (\r\n <ButtonPrimeReact badge={props.badge}\r\n badgeClassName={props.badgeClassName}\r\n className={props.className}\r\n disabled={props.disabled}\r\n icon={props.icon !== undefined ? `${props.iconPrefix ?? \"bi bi-\"}${props.icon ?? \"\"} ${props.label ? \"me-1\" : \"\"}` : undefined}\r\n iconPos={props.iconPos}\r\n id={props.id}\r\n label={props.label}\r\n link={props.isLink}\r\n loading={props.isLoading}\r\n pt={{ loadingIcon: { className: \"me-1\" } }}\r\n ref={props.ref}\r\n severity={props.color}\r\n size={props.size}\r\n style={props.css}\r\n type={props.type}\r\n onClick={props.onClick}/>\r\n );\r\n};"],"names":["props","React","createElement","ButtonPrimeReact","Button","badge","badgeClassName","className","disabled","icon","undefined","iconPrefix","label","iconPos","id","link","isLink","loading","isLoading","pt","loadingIcon","ref","severity","color","size","style","css","type","onClick"],"mappings":"kFAUsB,KAAMA,KAOpBC,EAAAC,cAACC,EAAgBC,OAAA,CAACC,MAAOL,EAAMK,MACbC,eAAgBN,EAAMM,eACtBC,UAAWP,EAAMO,UACjBC,SAAUR,EAAMQ,SAChBC,UAAqBC,IAAfV,EAAMS,KAAqB,GAAGT,EAAMW,YAAc,WAAWX,EAAMS,MAAQ,MAAMT,EAAMY,MAAQ,OAAS,UAAOF,EACrHG,QAASb,EAAMa,QACfC,GAAId,EAAMc,GACVF,MAAOZ,EAAMY,MACbG,KAAMf,EAAMgB,OACZC,QAASjB,EAAMkB,UACfC,GAAI,CAAEC,YAAa,CAAEb,UAAW,SAChCc,IAAKrB,EAAMqB,IACXC,SAAUtB,EAAMuB,MAChBC,KAAMxB,EAAMwB,KACZC,MAAOzB,EAAM0B,IACbC,KAAM3B,EAAM2B,KACZC,QAAS5B,EAAM4B"}
@@ -0,0 +1,109 @@
1
+ import React, { CSSProperties, Ref } 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
+ interface ButtonProps extends Omit<ApiComponentProps, "size"> {
30
+ /**
31
+ * Define o objeto de referência do botão
32
+ */
33
+ ref?: Ref<any>
34
+
35
+ /**
36
+ * Define o tipo do botão
37
+ */
38
+ type?: "submit" | "reset" | "button";
39
+
40
+ /**
41
+ * Define o legenda do botão
42
+ */
43
+ label?: string
44
+
45
+ /**
46
+ * Desabilita a ação no botão
47
+ */
48
+ disabled?: boolean
49
+
50
+ /**
51
+ * Define o tamanho do botão
52
+ */
53
+ size?: "small" | "large";
54
+
55
+ /**
56
+ * Define o conteúdo do badge dentro do botão
57
+ */
58
+ badge?: string
59
+
60
+ /**
61
+ * Define a classe de estilização do badge de do botão
62
+ */
63
+ badgeClassName?: string
64
+
65
+ /**
66
+ * Define se o botão vai ser do tipo link
67
+ */
68
+ isLink?: boolean
69
+
70
+ /**
71
+ * Define se botão está estado de loading
72
+ */
73
+ isLoading?: boolean
74
+
75
+ /**
76
+ * Define o prefixo dos icones do pacote
77
+ */
78
+ iconPrefix?: "bi bi-" | "pi pi-"
79
+
80
+ /**
81
+ * Define o icone que vai ser utilizando no botão
82
+ */
83
+ icon?: string
84
+
85
+ /**
86
+ * Define a posição do icone dentro do botão
87
+ */
88
+ iconPos?: "top" | "bottom" | "left" | "right";
89
+
90
+ /**
91
+ * Define a cor do botão
92
+ */
93
+ color?: "secondary" | "success" | "info" | "warning" | "danger" | "help" | "contrast";
94
+
95
+ /**
96
+ * Evento de click dentro do botão
97
+ */
98
+ onClick?: () => void
99
+ }
100
+
101
+ /**
102
+ * Componente - `Button`
103
+ *
104
+ * Um componente versátil que pode ser utilizado para realizar ações por exemplo em formulários de dados.
105
+ * Permite personalizar o estilo e o conteúdo através de propriedades.
106
+ */
107
+ declare const Button: ({ ...props }: ButtonProps) => React.JSX.Element;
108
+
109
+ export { Button };
@@ -0,0 +1,2 @@
1
+ import e from"react";import{Button as i}from"primereact/button";const a=({...a})=>e.createElement(i,{badge:a.badge,badgeClassName:a.badgeClassName,className:a.className,disabled:a.disabled,icon:void 0!==a.icon?`${a.iconPrefix??"bi bi-"}${a.icon??""} ${a.label?"me-1":""}`:void 0,iconPos:a.iconPos,id:a.id,label:a.label,link:a.isLink,loading:a.isLoading,pt:{loadingIcon:{className:"me-1"}},ref:a.ref,severity:a.color,size:a.size,style:a.css,type:a.type,onClick:a.onClick});export{a as Button};
2
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":["../../src/button/button.tsx"],"sourcesContent":["import React from \"react\";\r\nimport { ButtonProps } from \"./types\";\r\nimport { Button as ButtonPrimeReact } from \"primereact/button\";\r\n\r\n/**\r\n * Componente - `Button`\r\n *\r\n * Um componente versátil que pode ser utilizado para realizar ações por exemplo em formulários de dados.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const Button = ({ ...props }: ButtonProps) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return (\r\n <ButtonPrimeReact badge={props.badge}\r\n badgeClassName={props.badgeClassName}\r\n className={props.className}\r\n disabled={props.disabled}\r\n icon={props.icon !== undefined ? `${props.iconPrefix ?? \"bi bi-\"}${props.icon ?? \"\"} ${props.label ? \"me-1\" : \"\"}` : undefined}\r\n iconPos={props.iconPos}\r\n id={props.id}\r\n label={props.label}\r\n link={props.isLink}\r\n loading={props.isLoading}\r\n pt={{ loadingIcon: { className: \"me-1\" } }}\r\n ref={props.ref}\r\n severity={props.color}\r\n size={props.size}\r\n style={props.css}\r\n type={props.type}\r\n onClick={props.onClick}/>\r\n );\r\n};"],"names":["Button","props","React","createElement","ButtonPrimeReact","badge","badgeClassName","className","disabled","icon","undefined","iconPrefix","label","iconPos","id","link","isLink","loading","isLoading","pt","loadingIcon","ref","severity","color","size","style","css","type","onClick"],"mappings":"gEAUa,MAAAA,EAAS,KAAMC,KAOpBC,EAAAC,cAACC,EAAgB,CAACC,MAAOJ,EAAMI,MACbC,eAAgBL,EAAMK,eACtBC,UAAWN,EAAMM,UACjBC,SAAUP,EAAMO,SAChBC,UAAqBC,IAAfT,EAAMQ,KAAqB,GAAGR,EAAMU,YAAc,WAAWV,EAAMQ,MAAQ,MAAMR,EAAMW,MAAQ,OAAS,UAAOF,EACrHG,QAASZ,EAAMY,QACfC,GAAIb,EAAMa,GACVF,MAAOX,EAAMW,MACbG,KAAMd,EAAMe,OACZC,QAAShB,EAAMiB,UACfC,GAAI,CAAEC,YAAa,CAAEb,UAAW,SAChCc,IAAKpB,EAAMoB,IACXC,SAAUrB,EAAMsB,MAChBC,KAAMvB,EAAMuB,KACZC,MAAOxB,EAAMyB,IACbC,KAAM1B,EAAM0B,KACZC,QAAS3B,EAAM2B"}
@@ -0,0 +1,5 @@
1
+ {
2
+ "main": "./index.cjs.js",
3
+ "module": "./index.esm.js",
4
+ "types": "./index.d.ts"
5
+ }
package/editor/index.d.ts CHANGED
@@ -86,6 +86,11 @@ interface ApiFieldComponentProps {
86
86
  * Define a opção de filtro de dados do componente
87
87
  */
88
88
  keyfilter?: KeyFilterType;
89
+
90
+ /**
91
+ * Determina se campo é apenas de leitura
92
+ */
93
+ readonly?: boolean
89
94
  }
90
95
 
91
96
  interface EditorProps extends ApiComponentProps, ApiFieldComponentProps {
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react"),t=require("primereact/utils"),r=require("primereact/inputtext"),a=require("primereact/password"),n=require("primereact/inputmask");const s=({children:r,...a})=>{const n={size:`box-size-${a.size??"100"}`,direction:`box-direction-${a.direction??"row"}`,justify:void 0===a.justify?"":Array.isArray(a.justify)?a.justify?.join(" "):a.justify,align:void 0===a.align?"":Array.isArray(a.align)?a.align?.join(" "):a.align},s={className:t.classNames(["box",a.className??"",n.size,n.direction,n.justify,n.align]),style:a.css,id:a.id};return e.createElement("div",{...s},r)},o=({iconPrefix:t="bi bi-",...r})=>r.label&&e.createElement("p",{className:"form-label"},r.icon&&e.createElement("i",{className:t+r.icon+" me-1"}),r.label,r.required&&e.createElement("span",{className:"text-danger"},"*")),l=({errors:t,name:r,...a})=>a.mode&&"Controlled"!==a.mode?e.createElement("div",{className:t[r??""]?"invalid-feedback is-invalid":"","data-name":r??"",id:"j_feedback",style:{display:t[r??""]?"block":"none"}},t[r??""]?t[r??""].message:""):e.createElement("div",{"data-name":r,id:"j_feedback"});function i(e){return{ref:e.ref,id:e.id,name:e.name,required:e.required,disabled:e.disabled,placeholder:e.placeholder,className:e.className,style:{width:"100%"},keyfilter:e.keyfilter}}var u=e=>null==e;var c=e=>!u(e)&&!Array.isArray(e)&&(e=>"object"==typeof e)(e)&&!(e=>e instanceof Date)(e),d=e=>c(e)&&e.target?"checkbox"===e.target.type?e.target.checked:e.target.value:e,m=e=>{const t=e.constructor&&e.constructor.prototype;return c(t)&&t.hasOwnProperty("isPrototypeOf")},f="undefined"!=typeof window&&void 0!==window.HTMLElement&&"undefined"!=typeof document;function p(e){let t;const r=Array.isArray(e),a="undefined"!=typeof FileList&&e instanceof FileList;if(e instanceof Date)t=new Date(e);else if(e instanceof Set)t=new Set(e);else{if(f&&(e instanceof Blob||a)||!r&&!c(e))return e;if(t=r?[]:{},r||m(e))for(const r in e)e.hasOwnProperty(r)&&(t[r]=p(e[r]));else t=e}return t}var g=e=>Array.isArray(e)?e.filter(Boolean):[],b=e=>void 0===e,y=(e,t,r)=>{if(!t||!c(e))return r;const a=g(t.split(/[,[\].]+?/)).reduce(((e,t)=>u(e)?e:e[t]),e);return b(a)||a===e?b(e[t])?r:e[t]:a},v=e=>"boolean"==typeof e,h=(e,t,r)=>{let a=-1;const n=(e=>/^\w*$/.test(e))(t)?[t]:g(t.replace(/["|']|\]/g,"").split(/\.|\[/));const s=n.length,o=s-1;for(;++a<s;){const t=n[a];let s=r;if(a!==o){const r=e[t];s=c(r)||Array.isArray(r)?r:isNaN(+n[a+1])?{}:[]}if("__proto__"===t||"constructor"===t||"prototype"===t)return;e[t]=s,e=e[t]}return e};const _="blur",C="change",k="all",w=e.createContext(null),E=()=>e.useContext(w);var x=(e,t,r,a=!0)=>{const n={defaultValues:t._defaultValues};for(const s in e)Object.defineProperty(n,s,{get:()=>{const n=s;return t._proxyFormState[n]!==k&&(t._proxyFormState[n]=!a||k),r&&(r[n]=!0),e[n]}});return n},B=(e,t,r,a)=>{r(e);const{name:n,...s}=e;return c(o=s)&&!Object.keys(o).length||Object.keys(s).length>=Object.keys(t).length||Object.keys(s).find((e=>!0===t[e]));var o},j=(e,t,r)=>{return!e||!t||e===t||(a=e,Array.isArray(a)?a:[a]).some((e=>e&&(r?e===t:e.startsWith(t)||t.startsWith(e))));var a};function V(t){const r=e.useRef(t);r.current=t,e.useEffect((()=>{const e=!t.disabled&&r.current.subject&&r.current.subject.subscribe({next:r.current.next});return()=>{e&&e.unsubscribe()}}),[t.disabled])}var F=(e,t,r,a,n)=>"string"==typeof e?y(r,e,n):Array.isArray(e)?e.map((e=>y(r,e))):r;function A(t){const r=E(),{name:a,disabled:n,control:s=r.control,shouldUnregister:o}=t,l=((e,t)=>e.has((e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e)(t)))(s._names.array,a),i=function(t){const r=E(),{control:a=r.control,name:n,defaultValue:s,disabled:o,exact:l}=t||{},i=e.useRef(n);i.current=n,V({disabled:o,subject:a._subjects.values,next:e=>{j(i.current,e.name,l)&&c(p(F(i.current,a._names,e.values||a._formValues,!1,s)))}});const[u,c]=e.useState(a._getWatch(n,s));return e.useEffect((()=>a._removeUnmounted())),u}({control:s,name:a,defaultValue:y(s._formValues,a,y(s._defaultValues,a,t.defaultValue)),exact:!0}),u=function(t){const r=E(),{control:a=r.control,disabled:n,name:s,exact:o}=t||{},[l,i]=e.useState(a._formState),u=e.useRef(!0),c=e.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1}),d=e.useRef(s);return d.current=s,V({disabled:n,next:e=>u.current&&j(d.current,e.name,o)&&B(e,c.current,a._updateFormState)&&i({...a._formState,...e}),subject:a._subjects.state}),e.useEffect((()=>(u.current=!0,c.current.isValid&&a._updateValid(!0),()=>{u.current=!1})),[a]),e.useMemo((()=>x(l,a,c.current,!1)),[l,a])}({control:s,name:a,exact:!0}),c=e.useRef(s.register(a,{...t.rules,value:i,...v(t.disabled)?{disabled:t.disabled}:{}})),m=e.useMemo((()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!y(u.errors,a)},isDirty:{enumerable:!0,get:()=>!!y(u.dirtyFields,a)},isTouched:{enumerable:!0,get:()=>!!y(u.touchedFields,a)},isValidating:{enumerable:!0,get:()=>!!y(u.validatingFields,a)},error:{enumerable:!0,get:()=>y(u.errors,a)}})),[u,a]),f=e.useMemo((()=>({name:a,value:i,...v(n)||u.disabled?{disabled:u.disabled||n}:{},onChange:e=>c.current.onChange({target:{value:d(e),name:a},type:C}),onBlur:()=>c.current.onBlur({target:{value:y(s._formValues,a),name:a},type:_}),ref:e=>{const t=y(s._fields,a);t&&e&&(t._f.ref={focus:()=>e.focus(),select:()=>e.select(),setCustomValidity:t=>e.setCustomValidity(t),reportValidity:()=>e.reportValidity()})}})),[a,s._formValues,n,u.disabled,i,s._fields]);return e.useEffect((()=>{const e=s._options.shouldUnregister||o,t=(e,t)=>{const r=y(s._fields,e);r&&r._f&&(r._f.mount=t)};if(t(a,!0),e){const e=p(y(s._options.defaultValues,a));h(s._defaultValues,a,e),b(y(s._formValues,a))&&h(s._formValues,a,e)}return!l&&s.register(a),()=>{(l?e&&!s._state.action:e)?s.unregister(a):t(a,!1)}}),[a,s,l,o]),e.useEffect((()=>{s._updateDisabledField({disabled:n,fields:s._fields,name:a})}),[n,a,s]),e.useMemo((()=>({field:f,formState:u,fieldState:m})),[f,u,m])}const q=e=>e.render(A(e));function N({core:t,password:s,masker:o,...i}){return e.createElement(q,{render:({field:u,formState:{errors:c}})=>e.createElement(e.Fragment,null,void 0!==i.mask?e.createElement(n.InputMask,{...t,...u,...o,invalid:!!c[i.name],required:i.required,onBlur:e=>i.onBlur?i.onBlur(e.target.value):u.onBlur(),onChange:e=>void 0!==i.onChange?i.onChange(e.target.value):u.onChange(e)}):"password"===i.type?e.createElement(a.Password,{...t,...u,...s,autoComplete:"current-password",invalid:!!c[i.name],required:i.required,onBlur:e=>i.onBlur?i.onBlur(e.target.value):u.onBlur(),onChange:e=>void 0!==i.onChange?i.onChange(e.target.value):u.onChange(e)}):e.createElement(r.InputText,{...t,...u,invalid:!!c[i.name],ref:i.ref,required:i.required,onBlur:e=>i.onBlur?i.onBlur(e.target.value):u.onBlur(),onChange:e=>void 0!==i.onChange?i.onChange(e.target.value):u.onChange(e)}),e.createElement(l,{...i,errors:c})),control:i.control,name:i.name,rules:{required:!!i.required&&"Campo obrigatório"}})}function S({core:t,password:s,masker:o,...i}){return e.createElement(e.Fragment,null,void 0!==i.mask?e.createElement(n.InputMask,{...t,...o,value:i.value,onBlur:e=>{i.onBlur&&i.onBlur(e.target.value)},onChange:e=>i.onChange(e.target.value)}):"password"===i.type?e.createElement(a.Password,{...t,...s,autoComplete:"current-password",value:i.value,onBlur:e=>{i.onBlur&&i.onBlur(e.target.value)},onChange:e=>i.onChange(e.target.value)}):e.createElement(r.InputText,{...t,ref:i.ref,value:i.value,onBlur:e=>{i.onBlur&&i.onBlur(e.target.value)},onChange:e=>i.onChange(e.target.value)}),e.createElement(l,{...i}))}exports.Input=function(t){let r=t,a="small"===t.sizes?"p-inputtext-sm":"large"===t.sizes?"p-inputtext-lg":"",n={...i(r),className:a,type:t.type??"text"},l={appendTo:"self",feedback:t.passwordFeedback,footer:t.passwordFooterTemplate,header:t.passwordHeaderTemplate,mediumLabel:"Média",promptLabel:"Por favor, insira uma senha",pt:{input:{className:"w-100"}},strongLabel:"Forte",toggleMask:t.passwordShow,weakLabel:"Fraca",content:t.passwordTemplate},u={mask:"cpf"===t.mask?"999.999.999-99":"cnpj"===t.mask?"00.000.000/0000-00":t.mask,autoClear:t.maskAutoClear};return e.createElement(s,{className:t.className,css:t.css,size:t.size??"100"},e.createElement(o,{...t}),t.mode&&"Controlled"!==t.mode?e.createElement(N,{core:n,masker:u,password:l,...r}):e.createElement(S,{core:n,masker:u,password:l,...r}))};
1
+ "use strict";var e=require("react"),r=require("primereact/utils"),t=require("primereact/inputtext"),a=require("primereact/password"),n=require("primereact/inputmask");function o(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var s=o(e);const l=({children:t,...a})=>{const n={size:`box-size-${a.size??"100"}`,direction:`box-direction-${a.direction??"row"}`,justify:void 0===a.justify?"":Array.isArray(a.justify)?a.justify?.join(" "):a.justify,align:void 0===a.align?"":Array.isArray(a.align)?a.align?.join(" "):a.align},o={className:r.classNames(["box",a.className??"",n.size,n.direction,n.justify,n.align]),style:a.css,id:a.id};return e.createElement("div",{...o},t)},i=({iconPrefix:r="bi bi-",...t})=>t.label&&e.createElement("p",{className:"form-label"},t.icon&&e.createElement("i",{className:r+t.icon+" me-1"}),t.label,t.required&&e.createElement("span",{className:"text-danger"},"*")),u=({errors:r,name:t,...a})=>a.mode&&"Controlled"!==a.mode?e.createElement("div",{className:r[t??""]?"invalid-feedback is-invalid":"","data-name":t??"",id:"j_feedback",style:{display:r[t??""]?"block":"none"}},r[t??""]?r[t??""].message:""):e.createElement("div",{"data-name":t,id:"j_feedback"});function d(e){return{ref:e.ref,id:e.id,name:e.name,required:e.required,disabled:e.disabled,placeholder:e.placeholder,className:e.className,style:{width:"100%"},keyfilter:e.keyfilter}}var c=e=>null==e;var m=e=>!c(e)&&!Array.isArray(e)&&(e=>"object"==typeof e)(e)&&!(e=>e instanceof Date)(e),f=e=>m(e)&&e.target?"checkbox"===e.target.type?e.target.checked:e.target.value:e,p="undefined"!=typeof window&&void 0!==window.HTMLElement&&"undefined"!=typeof document;function g(e){let r;const t=Array.isArray(e),a="undefined"!=typeof FileList&&e instanceof FileList;if(e instanceof Date)r=new Date(e);else if(e instanceof Set)r=new Set(e);else{if(p&&(e instanceof Blob||a)||!t&&!m(e))return e;if(r=t?[]:{},t||(e=>{const r=e.constructor&&e.constructor.prototype;return m(r)&&r.hasOwnProperty("isPrototypeOf")})(e))for(const t in e)e.hasOwnProperty(t)&&(r[t]=g(e[t]));else r=e}return r}var y=e=>Array.isArray(e)?e.filter(Boolean):[],b=e=>void 0===e,v=(e,r,t)=>{if(!r||!m(e))return t;const a=y(r.split(/[,[\].]+?/)).reduce(((e,r)=>c(e)?e:e[r]),e);return b(a)||a===e?b(e[r])?t:e[r]:a},h=e=>"boolean"==typeof e,C=(e,r,t)=>{let a=-1;const n=(e=>/^\w*$/.test(e))(r)?[r]:y(r.replace(/["|']|\]/g,"").split(/\.|\[/));const o=n.length,s=o-1;for(;++a<o;){const r=n[a];let o=t;if(a!==s){const t=e[r];o=m(t)||Array.isArray(t)?t:isNaN(+n[a+1])?{}:[]}if("__proto__"===r||"constructor"===r||"prototype"===r)return;e[r]=o,e=e[r]}};const _="blur",w="change",k="all",E=e.createContext(null),B=()=>e.useContext(E);const x="undefined"!=typeof window?s.useLayoutEffect:s.useEffect;function V(r){const t=B(),{control:a=t.control,disabled:n,name:o,exact:s}=r||{},[l,i]=e.useState(a._formState),u=e.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return x((()=>a._subscribe({name:o,formState:u.current,exact:s,callback:e=>{!n&&i({...a._formState,...e})}})),[o,n,s]),e.useEffect((()=>{u.current.isValid&&a._setValid(!0)}),[a]),e.useMemo((()=>((e,r,t,a=!0)=>{const n={defaultValues:r._defaultValues};for(const o in e)Object.defineProperty(n,o,{get:()=>{const n=o;return r._proxyFormState[n]!==k&&(r._proxyFormState[n]=!a||k),t&&(t[n]=!0),e[n]}});return n})(l,a,u.current,!1)),[l,a])}function j(r){const t=B(),{control:a=t.control,name:n,defaultValue:o,disabled:s,exact:l}=r||{},i=e.useRef(o),[u,d]=e.useState(a._getWatch(n,i.current));return x((()=>a._subscribe({name:n,formState:{values:!0},exact:l,callback:e=>!s&&d(((e,r,t,a,n)=>"string"==typeof e?v(t,e,n):Array.isArray(e)?e.map((e=>v(t,e))):t)(n,a._names,e.values||a._formValues,0,i.current))})),[n,a,s,l]),e.useEffect((()=>a._removeUnmounted())),u}const F=r=>r.render(function(r){const t=B(),{name:a,disabled:n,control:o=t.control,shouldUnregister:s}=r,l=((e,r)=>e.has((e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e)(r)))(o._names.array,a),i=j({control:o,name:a,defaultValue:v(o._formValues,a,v(o._defaultValues,a,r.defaultValue)),exact:!0}),u=V({control:o,name:a,exact:!0}),d=e.useRef(r),c=e.useRef(o.register(a,{...r.rules,value:i,...h(r.disabled)?{disabled:r.disabled}:{}})),m=e.useMemo((()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!v(u.errors,a)},isDirty:{enumerable:!0,get:()=>!!v(u.dirtyFields,a)},isTouched:{enumerable:!0,get:()=>!!v(u.touchedFields,a)},isValidating:{enumerable:!0,get:()=>!!v(u.validatingFields,a)},error:{enumerable:!0,get:()=>v(u.errors,a)}})),[u,a]),p=e.useCallback((e=>c.current.onChange({target:{value:f(e),name:a},type:w})),[a]),y=e.useCallback((()=>c.current.onBlur({target:{value:v(o._formValues,a),name:a},type:_})),[a,o._formValues]),k=e.useCallback((e=>{const r=v(o._fields,a);r&&e&&(r._f.ref={focus:()=>e.focus(),select:()=>e.select(),setCustomValidity:r=>e.setCustomValidity(r),reportValidity:()=>e.reportValidity()})}),[o._fields,a]),E=e.useMemo((()=>({name:a,value:i,...h(n)||u.disabled?{disabled:u.disabled||n}:{},onChange:p,onBlur:y,ref:k})),[a,n,u.disabled,p,y,k,i]);return e.useEffect((()=>{const e=o._options.shouldUnregister||s;o.register(a,{...d.current.rules,...h(d.current.disabled)?{disabled:d.current.disabled}:{}});const r=(e,r)=>{const t=v(o._fields,e);t&&t._f&&(t._f.mount=r)};if(r(a,!0),e){const e=g(v(o._options.defaultValues,a));C(o._defaultValues,a,e),b(v(o._formValues,a))&&C(o._formValues,a,e)}return!l&&o.register(a),()=>{(l?e&&!o._state.action:e)?o.unregister(a):r(a,!1)}}),[a,o,l,s]),e.useEffect((()=>{o._setDisabledField({disabled:n,name:a})}),[n,a,o]),e.useMemo((()=>({field:E,formState:u,fieldState:m})),[E,u,m])}(r));function O({core:r,password:o,masker:s,...l}){return e.createElement(F,{render:({field:i,formState:{errors:d}})=>e.createElement(e.Fragment,null,void 0!==l.mask?e.createElement(n.InputMask,{...r,...i,...s,invalid:!!d[l.name],readOnly:l.readonly,required:l.required,onBlur:e=>l.onBlur?l.onBlur(e.target.value):i.onBlur(),onChange:e=>void 0!==l.onChange?l.onChange(e.target.value):i.onChange(e)}):"password"===l.type?e.createElement(a.Password,{...r,...i,...o,autoComplete:"current-password",invalid:!!d[l.name],readOnly:l.readonly,required:l.required,onBlur:e=>l.onBlur?l.onBlur(e.target.value):i.onBlur(),onChange:e=>void 0!==l.onChange?l.onChange(e.target.value):i.onChange(e)}):e.createElement(t.InputText,{...r,...i,invalid:!!d[l.name],readOnly:l.readonly,ref:l.ref,required:l.required,onBlur:e=>l.onBlur?l.onBlur(e.target.value):i.onBlur(),onChange:e=>void 0!==l.onChange?l.onChange(e.target.value):i.onChange(e)}),e.createElement(u,{...l,errors:d})),control:l.control,name:l.name,rules:{required:!!l.required&&"Campo obrigatório"}})}function q({core:r,password:o,masker:s,...l}){return e.createElement(e.Fragment,null,void 0!==l.mask?e.createElement(n.InputMask,{...r,...s,readOnly:l.readonly,value:l.value,onBlur:e=>{l.onBlur&&l.onBlur(e.target.value)},onChange:e=>{l.onChange&&l.onChange(e.target.value)}}):"password"===l.type?e.createElement(a.Password,{...r,...o,autoComplete:"current-password",readOnly:l.readonly,value:l.value,onBlur:e=>{l.onBlur&&l.onBlur(e.target.value)},onChange:e=>{l.onChange&&l.onChange(e.target.value)}}):e.createElement(t.InputText,{...r,readOnly:l.readonly,ref:l.ref,value:l.value,onBlur:e=>{l.onBlur&&l.onBlur(e.target.value)},onChange:e=>{l.onChange&&l.onChange(e.target.value)}}),e.createElement(u,{...l}))}exports.Input=function(r){let t=r,a="small"===r.sizes?"p-inputtext-sm":"large"===r.sizes?"p-inputtext-lg":"",n={...d(t),className:a,type:r.type??"text"},o={appendTo:"self",feedback:r.passwordFeedback,footer:r.passwordFooterTemplate,header:r.passwordHeaderTemplate,mediumLabel:"Média",promptLabel:"Por favor, insira uma senha",pt:{input:{className:"w-100"}},strongLabel:"Forte",toggleMask:r.passwordShow,weakLabel:"Fraca",content:r.passwordTemplate},s={mask:"cpf"===r.mask?"999.999.999-99":"cnpj"===r.mask?"99.999.999/9999-99":r.mask,autoClear:r.maskAutoClear};return e.createElement(l,{className:r.className,css:r.css,size:r.size??"100"},e.createElement(i,{...r}),r.mode&&"Controlled"!==r.mode?e.createElement(O,{core:n,masker:s,password:o,...t}):e.createElement(q,{core:n,masker:s,password:o,...t}))};
2
2
  //# sourceMappingURL=index.cjs.js.map