@pequity/squirrel 1.0.20-beta.1 → 1.0.20-beta.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 (144) hide show
  1. package/dist/cjs/chunks/_plugin-vue_export-helper.js +9 -1
  2. package/dist/cjs/chunks/p-action-bar.js +60 -1
  3. package/dist/cjs/chunks/p-card.js +28 -1
  4. package/dist/cjs/chunks/p-checkbox.js +24 -1
  5. package/dist/cjs/chunks/p-dropdown-select.js +414 -1
  6. package/dist/cjs/chunks/p-input-percent.js +53 -1
  7. package/dist/cjs/chunks/p-pagination-info.js +66 -1
  8. package/dist/cjs/chunks/p-pagination.js +122 -1
  9. package/dist/cjs/chunks/p-ring-loader.js +81 -1
  10. package/dist/cjs/chunks/p-select-btn.js +97 -1
  11. package/dist/cjs/chunks/p-select.js +123 -1
  12. package/dist/cjs/chunks/p-table-loader.js +70 -1
  13. package/dist/cjs/chunks/p-tabs.js +52 -1
  14. package/dist/cjs/config.js +105 -1
  15. package/dist/cjs/currency.js +9 -1
  16. package/dist/cjs/dom.js +27 -1
  17. package/dist/cjs/index.js +976 -1
  18. package/dist/cjs/inputClassesMixin.js +50 -1
  19. package/dist/cjs/inputClassesShared.js +76 -1
  20. package/dist/cjs/listKeyboardNavigation.js +110 -1
  21. package/dist/cjs/number.js +9 -1
  22. package/dist/cjs/object.js +4 -1
  23. package/dist/cjs/p-action-bar.js +3 -1
  24. package/dist/cjs/p-alert.js +65 -1
  25. package/dist/cjs/p-avatar.js +71 -1
  26. package/dist/cjs/p-btn.js +358 -2
  27. package/dist/cjs/p-card.js +3 -1
  28. package/dist/cjs/p-checkbox.js +3 -1
  29. package/dist/cjs/p-chips.js +110 -1
  30. package/dist/cjs/p-close-btn.js +36 -1
  31. package/dist/cjs/p-date-picker.js +139 -1
  32. package/dist/cjs/p-drawer.js +253 -1
  33. package/dist/cjs/p-dropdown-select.js +3 -1
  34. package/dist/cjs/p-dropdown.js +138 -1
  35. package/dist/cjs/p-file-upload.js +21 -1
  36. package/dist/cjs/p-info-icon.js +35 -1
  37. package/dist/cjs/p-inline-date-picker.js +142 -1
  38. package/dist/cjs/p-input-number.js +146 -1
  39. package/dist/cjs/p-input-percent.js +3 -1
  40. package/dist/cjs/p-input-search.js +110 -1
  41. package/dist/cjs/p-input.js +89 -1
  42. package/dist/cjs/p-loading.js +38 -1
  43. package/dist/cjs/p-modal.js +369 -1
  44. package/dist/cjs/p-pagination-info.js +3 -1
  45. package/dist/cjs/p-pagination.js +3 -1
  46. package/dist/cjs/p-progress-bar.js +41 -1
  47. package/dist/cjs/p-ring-loader.js +3 -1
  48. package/dist/cjs/p-select-btn.js +3 -1
  49. package/dist/cjs/p-select-list.js +4 -1
  50. package/dist/cjs/p-select-pill.js +111 -1
  51. package/dist/cjs/p-select.js +3 -1
  52. package/dist/cjs/p-skeleton-loader.js +73 -1
  53. package/dist/cjs/p-table-filter-icon.js +20 -1
  54. package/dist/cjs/p-table-header-cell.js +75 -1
  55. package/dist/cjs/p-table-loader.js +3 -1
  56. package/dist/cjs/p-table-sort.js +8 -1
  57. package/dist/cjs/p-table-td.js +88 -1
  58. package/dist/cjs/p-table.js +12 -1
  59. package/dist/cjs/p-tabs.js +3 -1
  60. package/dist/cjs/p-textarea.js +73 -1
  61. package/dist/cjs/p-toggle.js +114 -1
  62. package/dist/cjs/pagination.js +29 -1
  63. package/dist/cjs/string.js +12 -1
  64. package/dist/cjs/tailwind.js +4353 -1
  65. package/dist/cjs/text.js +16 -1
  66. package/dist/cjs/useInputClasses.js +44 -1
  67. package/dist/cjs/usePLoading.js +35 -1
  68. package/dist/cjs/usePModal.js +21 -1
  69. package/dist/cjs/usePTableColResize.js +81 -1
  70. package/dist/cjs/usePTableRowVirtualizer.js +31 -1
  71. package/dist/cjs/useSelectList.js +256 -1
  72. package/dist/es/chunks/_plugin-vue_export-helper.js +7 -6
  73. package/dist/es/chunks/p-action-bar.js +45 -36
  74. package/dist/es/chunks/p-card.js +18 -14
  75. package/dist/es/chunks/p-checkbox.js +14 -11
  76. package/dist/es/chunks/p-dropdown-select.js +232 -183
  77. package/dist/es/chunks/p-input-percent.js +34 -25
  78. package/dist/es/chunks/p-pagination-info.js +30 -24
  79. package/dist/es/chunks/p-pagination.js +78 -48
  80. package/dist/es/chunks/p-ring-loader.js +63 -40
  81. package/dist/es/chunks/p-select-btn.js +80 -59
  82. package/dist/es/chunks/p-select.js +81 -54
  83. package/dist/es/chunks/p-table-loader.js +46 -32
  84. package/dist/es/chunks/p-tabs.js +35 -29
  85. package/dist/es/config.js +2 -2
  86. package/dist/es/currency.js +3 -3
  87. package/dist/es/dom.js +24 -12
  88. package/dist/es/index.js +703 -519
  89. package/dist/es/inputClassesMixin.js +20 -14
  90. package/dist/es/inputClassesShared.js +60 -45
  91. package/dist/es/listKeyboardNavigation.js +86 -36
  92. package/dist/es/number.js +7 -2
  93. package/dist/es/object.js +2 -2
  94. package/dist/es/p-action-bar.js +2 -2
  95. package/dist/es/p-alert.js +35 -30
  96. package/dist/es/p-avatar.js +30 -27
  97. package/dist/es/p-btn.js +209 -164
  98. package/dist/es/p-card.js +2 -2
  99. package/dist/es/p-checkbox.js +2 -2
  100. package/dist/es/p-chips.js +60 -40
  101. package/dist/es/p-close-btn.js +20 -16
  102. package/dist/es/p-date-picker.js +66 -58
  103. package/dist/es/p-drawer.js +108 -89
  104. package/dist/es/p-dropdown-select.js +2 -2
  105. package/dist/es/p-dropdown.js +52 -33
  106. package/dist/es/p-file-upload.js +17 -9
  107. package/dist/es/p-info-icon.js +21 -16
  108. package/dist/es/p-inline-date-picker.js +64 -53
  109. package/dist/es/p-input-number.js +84 -66
  110. package/dist/es/p-input-percent.js +2 -2
  111. package/dist/es/p-input-search.js +43 -41
  112. package/dist/es/p-input.js +51 -45
  113. package/dist/es/p-loading.js +31 -22
  114. package/dist/es/p-modal.js +261 -174
  115. package/dist/es/p-pagination-info.js +2 -2
  116. package/dist/es/p-pagination.js +2 -2
  117. package/dist/es/p-progress-bar.js +26 -23
  118. package/dist/es/p-ring-loader.js +2 -2
  119. package/dist/es/p-select-btn.js +2 -2
  120. package/dist/es/p-select-list.js +2 -2
  121. package/dist/es/p-select-pill.js +58 -41
  122. package/dist/es/p-select.js +2 -2
  123. package/dist/es/p-skeleton-loader.js +34 -29
  124. package/dist/es/p-table-filter-icon.js +11 -11
  125. package/dist/es/p-table-header-cell.js +38 -33
  126. package/dist/es/p-table-loader.js +2 -2
  127. package/dist/es/p-table-sort.js +2 -2
  128. package/dist/es/p-table-td.js +76 -29
  129. package/dist/es/p-table.js +10 -6
  130. package/dist/es/p-tabs.js +2 -2
  131. package/dist/es/p-textarea.js +36 -34
  132. package/dist/es/p-toggle.js +53 -48
  133. package/dist/es/pagination.js +25 -8
  134. package/dist/es/string.js +10 -2
  135. package/dist/es/tailwind.js +1660 -1101
  136. package/dist/es/text.js +13 -8
  137. package/dist/es/useInputClasses.js +38 -22
  138. package/dist/es/usePLoading.js +31 -15
  139. package/dist/es/usePModal.js +15 -12
  140. package/dist/es/usePTableColResize.js +71 -39
  141. package/dist/es/usePTableRowVirtualizer.js +24 -15
  142. package/dist/es/useSelectList.js +234 -121
  143. package/dist/style.css +2124 -1
  144. package/package.json +1 -1
@@ -1 +1,142 @@
1
- "use strict";const r=require("dayjs"),i=require("./inputClassesMixin.js"),n=require("v-calendar"),t=require("vue"),o=require("./chunks/_plugin-vue_export-helper.js"),d={highlight:{class:"bg-primary",contentClass:"text-white"}},u={input:"DD-MMM-YYYY",data:"YYYY-MM-DD"},m=t.defineComponent({name:"PInlineDatePicker",components:{DatePicker:n.DatePicker},mixins:[i],inheritAttrs:!1,props:{modelValue:{type:String,default:""},label:{type:String,default:""},errorMsg:{type:String,default:""},required:{type:Boolean,default:!1},minDate:{type:Date,default:null},maxDate:{type:Date,default:null},timezone:{type:String,default:""}},emits:["update:modelValue"],data(){return{innerValue:null,selectAttribute:d}},computed:{masks(){return Object.assign(u,this.$attrs.masks)},attrs(){const{class:e,style:s,...a}=this.$attrs;return a},listeners(){return Object.keys(this.$attrs).reduce((e,s)=>s.startsWith("on")?{...e,[s]:this.$attrs[s]}:e,{})},style(){return this.$attrs.style},styleDatepicker(){return this.errorMsg?{border:"1px solid var(--color-on-error)"}:{}}},watch:{modelValue:{handler(e){const s=r(e,this.masks.data).toDate();if(e&&s.toString()==="Invalid Date"){this.$emit("update:modelValue",null);return}this.innerValue=e?r(e,this.masks.data).toDate():null;const a=this.$refs.datepicker;a&&this.innerValue&&a.move(this.innerValue)},immediate:!0}},methods:{dayclick(e){this.$emit("update:modelValue",e.id)}}}),c=["data-has-error"];function p(e,s,a,k,y,D){const l=t.resolveComponent("DatePicker");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass([{hidden:e.$attrs.hidden},e.$attrs.class]),"data-has-error":!!e.errorMsg,style:t.normalizeStyle(e.style)},[t.renderSlot(e.$slots,"label",{label:e.label,labelClasses:e.labelClasses},()=>[e.label?(t.openBlock(),t.createElementBlock("label",{key:0,class:t.normalizeClass(e.labelClasses)},t.toDisplayString(e.label),3)):t.createCommentVNode("",!0)]),t.createVNode(l,t.mergeProps({ref:"datepicker",class:{"pointer-events-none opacity-70":e.$attrs.disabled},"model-value":e.innerValue,"select-attribute":e.selectAttribute,"min-date":e.minDate||null,"max-date":e.maxDate||null,masks:e.masks,style:e.styleDatepicker,timezone:e.timezone},e.listeners,{onDayclick:e.dayclick}),null,16,["class","model-value","select-attribute","min-date","max-date","masks","style","timezone","onDayclick"]),t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass(e.errorMsgClasses)},t.toDisplayString(e.errorMsg),3),[[t.vShow,e.errorMsg]])],14,c)}const h=o._export_sfc(m,[["render",p]]);module.exports=h;
1
+ "use strict";
2
+ const dayjs = require("dayjs");
3
+ const inputClassesMixin = require("./inputClassesMixin.js");
4
+ const vCalendar = require("v-calendar");
5
+ const vue = require("vue");
6
+ const _pluginVue_exportHelper = require("./chunks/_plugin-vue_export-helper.js");
7
+ const selectAttribute = { highlight: { class: "bg-primary", contentClass: "text-white" } };
8
+ const DEFAULT_MASKS = {
9
+ // The mask for the input
10
+ input: "DD-MMM-YYYY",
11
+ // The mask for the model value
12
+ data: "YYYY-MM-DD"
13
+ };
14
+ const _sfc_main = vue.defineComponent({
15
+ name: "PInlineDatePicker",
16
+ components: {
17
+ DatePicker: vCalendar.DatePicker
18
+ },
19
+ mixins: [inputClassesMixin],
20
+ inheritAttrs: false,
21
+ props: {
22
+ modelValue: {
23
+ type: String,
24
+ default: ""
25
+ },
26
+ label: {
27
+ type: String,
28
+ default: ""
29
+ },
30
+ errorMsg: {
31
+ type: String,
32
+ default: ""
33
+ },
34
+ required: {
35
+ type: Boolean,
36
+ default: false
37
+ },
38
+ minDate: {
39
+ type: Date,
40
+ default: null
41
+ },
42
+ maxDate: {
43
+ type: Date,
44
+ default: null
45
+ },
46
+ timezone: {
47
+ type: String,
48
+ default: ""
49
+ }
50
+ },
51
+ emits: ["update:modelValue"],
52
+ data() {
53
+ return {
54
+ // innerValue is a Date object
55
+ innerValue: null,
56
+ selectAttribute
57
+ };
58
+ },
59
+ computed: {
60
+ masks() {
61
+ return Object.assign(DEFAULT_MASKS, this.$attrs.masks);
62
+ },
63
+ attrs() {
64
+ const { class: classes, style, ...rest } = this.$attrs;
65
+ return rest;
66
+ },
67
+ listeners() {
68
+ return Object.keys(this.$attrs).reduce((acc, curr) => {
69
+ if (curr.startsWith("on")) {
70
+ return { ...acc, [curr]: this.$attrs[curr] };
71
+ } else {
72
+ return acc;
73
+ }
74
+ }, {});
75
+ },
76
+ style() {
77
+ return this.$attrs.style;
78
+ },
79
+ styleDatepicker() {
80
+ return this.errorMsg ? { border: "1px solid var(--color-on-error)" } : {};
81
+ }
82
+ },
83
+ watch: {
84
+ modelValue: {
85
+ handler(nV) {
86
+ const date = dayjs(nV, this.masks.data).toDate();
87
+ if (nV && date.toString() === "Invalid Date") {
88
+ this.$emit("update:modelValue", null);
89
+ return;
90
+ }
91
+ this.innerValue = nV ? dayjs(nV, this.masks.data).toDate() : null;
92
+ const datepicker = this.$refs.datepicker;
93
+ if (datepicker && this.innerValue) {
94
+ datepicker.move(this.innerValue);
95
+ }
96
+ },
97
+ immediate: true
98
+ }
99
+ },
100
+ methods: {
101
+ dayclick(e) {
102
+ this.$emit("update:modelValue", e.id);
103
+ }
104
+ }
105
+ });
106
+ const _hoisted_1 = ["data-has-error"];
107
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
108
+ const _component_DatePicker = vue.resolveComponent("DatePicker");
109
+ return vue.openBlock(), vue.createElementBlock("div", {
110
+ class: vue.normalizeClass([{ hidden: _ctx.$attrs.hidden }, _ctx.$attrs.class]),
111
+ "data-has-error": !!_ctx.errorMsg,
112
+ style: vue.normalizeStyle(_ctx.style)
113
+ }, [
114
+ vue.renderSlot(_ctx.$slots, "label", {
115
+ label: _ctx.label,
116
+ labelClasses: _ctx.labelClasses
117
+ }, () => [
118
+ _ctx.label ? (vue.openBlock(), vue.createElementBlock("label", {
119
+ key: 0,
120
+ class: vue.normalizeClass(_ctx.labelClasses)
121
+ }, vue.toDisplayString(_ctx.label), 3)) : vue.createCommentVNode("", true)
122
+ ]),
123
+ vue.createVNode(_component_DatePicker, vue.mergeProps({
124
+ ref: "datepicker",
125
+ class: { "pointer-events-none opacity-70": _ctx.$attrs.disabled },
126
+ "model-value": _ctx.innerValue,
127
+ "select-attribute": _ctx.selectAttribute,
128
+ "min-date": _ctx.minDate || null,
129
+ "max-date": _ctx.maxDate || null,
130
+ masks: _ctx.masks,
131
+ style: _ctx.styleDatepicker,
132
+ timezone: _ctx.timezone
133
+ }, _ctx.listeners, { onDayclick: _ctx.dayclick }), null, 16, ["class", "model-value", "select-attribute", "min-date", "max-date", "masks", "style", "timezone", "onDayclick"]),
134
+ vue.withDirectives(vue.createElementVNode("div", {
135
+ class: vue.normalizeClass(_ctx.errorMsgClasses)
136
+ }, vue.toDisplayString(_ctx.errorMsg), 3), [
137
+ [vue.vShow, _ctx.errorMsg]
138
+ ])
139
+ ], 14, _hoisted_1);
140
+ }
141
+ const pInlineDatePicker = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["render", _sfc_render]]);
142
+ module.exports = pInlineDatePicker;
@@ -1 +1,146 @@
1
- "use strict";const b=require("./p-info-icon.js"),C=require("./inputClassesMixin.js"),h=require("vue-currency-input"),e=require("vue"),S=require("lodash-es"),d=require("./number.js"),N=require("./chunks/_plugin-vue_export-helper.js"),v=["locale","currency","currencyDisplay","hideGroupingSeparatorOnFocus","hideCurrencySymbolOnFocus","hideNegligibleDecimalDigitsOnFocus","precision","autoDecimalDigits","valueRange","useGrouping","valueScaling"],V=e.defineComponent({name:"PInputNumber",components:{PInfoIcon:b},mixins:[C],inheritAttrs:!1,props:{modelValue:{type:[Number,String],default:null},label:{type:String,default:""},errorMsg:{type:String,default:""},required:{type:Boolean,default:!1},selectOnClick:{type:Boolean,default:!0},tooltipText:{type:String,default:""}},emits:["update:modelValue","change"],setup(t,{attrs:l,emit:u,expose:i}){const n={locale:"en-US",currency:"USD",precision:0,currencyDisplay:"hidden"},c=e.computed(()=>(v.forEach(s=>{const r=l[S.kebabCase(s)];r&&typeof r<"u"&&(n[s]=r)}),n)),{inputRef:o,numberValue:a,setValue:p}=h.useCurrencyInput(c.value,!1);e.watch(a,s=>{u("update:modelValue",d.toNumberOrNull(s))}),e.watch(()=>t.modelValue,s=>{p(d.toNumberOrNull(s))});const m=e.computed(()=>{const{class:s,style:r,...g}=l;return g}),f=e.computed(()=>l.style),y=()=>{t.selectOnClick&&o.value.select()};return i({setValue:p}),{inputRef:o,computedAttrs:m,style:f,focus:y}}}),k=["data-has-error"],I={class:"flex flex-row items-center"},D={class:"relative w-full"},B={key:0};function E(t,l,u,i,n,c){const o=e.resolveComponent("PInfoIcon");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([{hidden:t.$attrs.hidden},t.$attrs.class]),"data-has-error":!!t.errorMsg,style:e.normalizeStyle(t.style)},[e.createElementVNode("div",I,[e.renderSlot(t.$slots,"label",{label:t.label,labelClasses:t.labelClasses},()=>[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,class:e.normalizeClass(t.labelClasses)},e.toDisplayString(t.label),3)):e.createCommentVNode("",!0)]),t.tooltipText?(e.openBlock(),e.createBlock(o,{key:0,text:t.tooltipText,class:"ml-1"},null,8,["text"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",D,[t.$slots.prefix?(e.openBlock(),e.createElementBlock("div",B,[e.renderSlot(t.$slots,"prefix")])):e.createCommentVNode("",!0),e.createElementVNode("input",e.mergeProps({ref:"inputRef",type:"text"},t.computedAttrs,{class:t.inputClasses,onFocus:l[0]||(l[0]=(...a)=>t.focus&&t.focus(...a))}),null,16)]),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.errorMsgClasses)},e.toDisplayString(t.errorMsg),3),[[e.vShow,t.errorMsg]])],14,k)}const O=N._export_sfc(V,[["render",E]]);module.exports=O;
1
+ "use strict";
2
+ const pInfoIcon = require("./p-info-icon.js");
3
+ const inputClassesMixin = require("./inputClassesMixin.js");
4
+ const vueCurrencyInput = require("vue-currency-input");
5
+ const vue = require("vue");
6
+ const lodashEs = require("lodash-es");
7
+ const number = require("./number.js");
8
+ const _pluginVue_exportHelper = require("./chunks/_plugin-vue_export-helper.js");
9
+ const ALL_OPTIONS = [
10
+ "locale",
11
+ "currency",
12
+ "currencyDisplay",
13
+ "hideGroupingSeparatorOnFocus",
14
+ "hideCurrencySymbolOnFocus",
15
+ "hideNegligibleDecimalDigitsOnFocus",
16
+ "precision",
17
+ "autoDecimalDigits",
18
+ "valueRange",
19
+ "useGrouping",
20
+ "valueScaling"
21
+ ];
22
+ const _sfc_main = vue.defineComponent({
23
+ name: "PInputNumber",
24
+ components: {
25
+ PInfoIcon: pInfoIcon
26
+ },
27
+ mixins: [inputClassesMixin],
28
+ inheritAttrs: false,
29
+ props: {
30
+ modelValue: {
31
+ type: [Number, String],
32
+ default: null
33
+ },
34
+ label: {
35
+ type: String,
36
+ default: ""
37
+ },
38
+ errorMsg: {
39
+ type: String,
40
+ default: ""
41
+ },
42
+ required: {
43
+ type: Boolean,
44
+ default: false
45
+ },
46
+ selectOnClick: {
47
+ type: Boolean,
48
+ default: true
49
+ },
50
+ tooltipText: {
51
+ type: String,
52
+ default: ""
53
+ }
54
+ },
55
+ emits: ["update:modelValue", "change"],
56
+ setup(props, { attrs, emit, expose }) {
57
+ const DEFAULTS = {
58
+ locale: "en-US",
59
+ currency: "USD",
60
+ precision: 0,
61
+ currencyDisplay: "hidden"
62
+ };
63
+ const inputCurrencyOptions = vue.computed(() => {
64
+ ALL_OPTIONS.forEach((key) => {
65
+ const attr = attrs[lodashEs.kebabCase(key)];
66
+ if (attr && typeof attr !== "undefined") {
67
+ DEFAULTS[key] = attr;
68
+ }
69
+ });
70
+ return DEFAULTS;
71
+ });
72
+ const { inputRef, numberValue, setValue } = vueCurrencyInput.useCurrencyInput(
73
+ inputCurrencyOptions.value,
74
+ false
75
+ );
76
+ vue.watch(numberValue, (value) => {
77
+ emit("update:modelValue", number.toNumberOrNull(value));
78
+ });
79
+ vue.watch(
80
+ () => props.modelValue,
81
+ (value) => {
82
+ setValue(number.toNumberOrNull(value));
83
+ }
84
+ );
85
+ const computedAttrs = vue.computed(() => {
86
+ const { class: classes, style: style2, ...rest } = attrs;
87
+ return rest;
88
+ });
89
+ const style = vue.computed(() => {
90
+ return attrs.style;
91
+ });
92
+ const focus = () => {
93
+ props.selectOnClick && inputRef.value.select();
94
+ };
95
+ expose({ setValue });
96
+ return { inputRef, computedAttrs, style, focus };
97
+ }
98
+ });
99
+ const _hoisted_1 = ["data-has-error"];
100
+ const _hoisted_2 = { class: "flex flex-row items-center" };
101
+ const _hoisted_3 = { class: "relative w-full" };
102
+ const _hoisted_4 = { key: 0 };
103
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
104
+ const _component_PInfoIcon = vue.resolveComponent("PInfoIcon");
105
+ return vue.openBlock(), vue.createElementBlock("div", {
106
+ class: vue.normalizeClass([{ hidden: _ctx.$attrs.hidden }, _ctx.$attrs.class]),
107
+ "data-has-error": !!_ctx.errorMsg,
108
+ style: vue.normalizeStyle(_ctx.style)
109
+ }, [
110
+ vue.createElementVNode("div", _hoisted_2, [
111
+ vue.renderSlot(_ctx.$slots, "label", {
112
+ label: _ctx.label,
113
+ labelClasses: _ctx.labelClasses
114
+ }, () => [
115
+ _ctx.label ? (vue.openBlock(), vue.createElementBlock("label", {
116
+ key: 0,
117
+ class: vue.normalizeClass(_ctx.labelClasses)
118
+ }, vue.toDisplayString(_ctx.label), 3)) : vue.createCommentVNode("", true)
119
+ ]),
120
+ _ctx.tooltipText ? (vue.openBlock(), vue.createBlock(_component_PInfoIcon, {
121
+ key: 0,
122
+ text: _ctx.tooltipText,
123
+ class: "ml-1"
124
+ }, null, 8, ["text"])) : vue.createCommentVNode("", true)
125
+ ]),
126
+ vue.createElementVNode("div", _hoisted_3, [
127
+ !!_ctx.$slots.prefix ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [
128
+ vue.renderSlot(_ctx.$slots, "prefix")
129
+ ])) : vue.createCommentVNode("", true),
130
+ vue.createElementVNode("input", vue.mergeProps({
131
+ ref: "inputRef",
132
+ type: "text"
133
+ }, _ctx.computedAttrs, {
134
+ class: _ctx.inputClasses,
135
+ onFocus: _cache[0] || (_cache[0] = (...args) => _ctx.focus && _ctx.focus(...args))
136
+ }), null, 16)
137
+ ]),
138
+ vue.withDirectives(vue.createElementVNode("div", {
139
+ class: vue.normalizeClass(_ctx.errorMsgClasses)
140
+ }, vue.toDisplayString(_ctx.errorMsg), 3), [
141
+ [vue.vShow, _ctx.errorMsg]
142
+ ])
143
+ ], 14, _hoisted_1);
144
+ }
145
+ const PInputNumber = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["render", _sfc_render]]);
146
+ module.exports = PInputNumber;
@@ -1 +1,3 @@
1
- "use strict";const e=require("./chunks/p-input-percent.js");module.exports=e._sfc_main;
1
+ "use strict";
2
+ const pInputPercent_vue_vue_type_script_setup_true_lang = require("./chunks/p-input-percent.js");
3
+ module.exports = pInputPercent_vue_vue_type_script_setup_true_lang._sfc_main;
@@ -1 +1,110 @@
1
- "use strict";const l=require("./p-input.js"),a=require("./inputClassesShared.js"),t=require("vue"),u=require("./chunks/_plugin-vue_export-helper.js"),i=t.defineComponent({name:"PInputSearch",components:{PInput:l},inheritAttrs:!1,props:{modelValue:{type:String,default:""},size:{type:String,default:"md",validator(e){return Object.keys(a.INPUT_SIZES).includes(e)}},showEnterIcon:{type:Boolean,default:!1}},emits:["update:modelValue","enter"],data(){return{query:this.modelValue,showEnterIconOnFocus:!1}},computed:{searchIconClasses(){return`search search-${this.size}`},enterIconClasses(){return`enter enter-${this.size}`},clearIconClasses(){return`clear clear-${this.size}`}},watch:{modelValue(e){this.query=e},query(e){this.$emit("update:modelValue",e)}},methods:{clearSearch(){this.query="",requestAnimationFrame(()=>{this.$refs.searchInput.$el.querySelector("input").focus()})},keydownEnter(){this.$emit("enter",this.query)}}});function c(e,o,d,m,h,I){const r=t.resolveComponent("PInput"),s=t.resolveDirective("tooltip");return t.openBlock(),t.createBlock(r,t.mergeProps({ref:"searchInput",modelValue:e.query,"onUpdate:modelValue":o[1]||(o[1]=n=>e.query=n),size:e.size},e.$attrs,{role:"searchbox",onFocus:o[2]||(o[2]=n=>e.showEnterIconOnFocus=!0),onFocusout:o[3]||(o[3]=n=>e.showEnterIconOnFocus=!1),onKeydown:t.withKeys(e.keydownEnter,["enter"])}),{prefix:t.withCtx(()=>[t.createElementVNode("i",{class:t.normalizeClass(["icon absolute bg-no-repeat outline-none",e.searchIconClasses])},null,2)]),suffix:t.withCtx(()=>[e.query&&e.showEnterIcon&&e.showEnterIconOnFocus?t.withDirectives((t.openBlock(),t.createElementBlock("i",{key:0,class:t.normalizeClass(["icon absolute bg-no-repeat outline-none",e.enterIconClasses])},null,2)),[[s,{content:"Press enter to search",delay:{show:100,hide:0}},void 0,{bottom:!0}]]):t.createCommentVNode("",!0),e.query?(t.openBlock(),t.createElementBlock("button",{key:1,role:"button","aria-label":"Clear search input",class:t.normalizeClass(["icon absolute cursor-pointer bg-no-repeat",e.clearIconClasses]),onClick:o[0]||(o[0]=(...n)=>e.clearSearch&&e.clearSearch(...n))},null,2)):t.createCommentVNode("",!0)]),_:1},16,["modelValue","size","onKeydown"])}const p=u._export_sfc(i,[["render",c],["__scopeId","data-v-3de99c69"]]);module.exports=p;
1
+ "use strict";
2
+ const pInput = require("./p-input.js");
3
+ const inputClassesShared = require("./inputClassesShared.js");
4
+ const vue = require("vue");
5
+ const _pluginVue_exportHelper = require("./chunks/_plugin-vue_export-helper.js");
6
+ const _sfc_main = vue.defineComponent({
7
+ name: "PInputSearch",
8
+ components: {
9
+ PInput: pInput
10
+ },
11
+ inheritAttrs: false,
12
+ props: {
13
+ modelValue: {
14
+ type: String,
15
+ default: ""
16
+ },
17
+ size: {
18
+ type: String,
19
+ default: "md",
20
+ validator(value) {
21
+ return Object.keys(inputClassesShared.INPUT_SIZES).includes(value);
22
+ }
23
+ },
24
+ showEnterIcon: {
25
+ type: Boolean,
26
+ default: false
27
+ }
28
+ },
29
+ emits: ["update:modelValue", "enter"],
30
+ data() {
31
+ return {
32
+ query: this.modelValue,
33
+ showEnterIconOnFocus: false
34
+ };
35
+ },
36
+ computed: {
37
+ searchIconClasses() {
38
+ return `search search-${this.size}`;
39
+ },
40
+ enterIconClasses() {
41
+ return `enter enter-${this.size}`;
42
+ },
43
+ clearIconClasses() {
44
+ return `clear clear-${this.size}`;
45
+ }
46
+ },
47
+ watch: {
48
+ modelValue(value) {
49
+ this.query = value;
50
+ },
51
+ query(value) {
52
+ this.$emit("update:modelValue", value);
53
+ }
54
+ },
55
+ methods: {
56
+ clearSearch() {
57
+ this.query = "";
58
+ requestAnimationFrame(() => {
59
+ this.$refs.searchInput.$el.querySelector("input").focus();
60
+ });
61
+ },
62
+ keydownEnter() {
63
+ this.$emit("enter", this.query);
64
+ }
65
+ }
66
+ });
67
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
68
+ const _component_PInput = vue.resolveComponent("PInput");
69
+ const _directive_tooltip = vue.resolveDirective("tooltip");
70
+ return vue.openBlock(), vue.createBlock(_component_PInput, vue.mergeProps({
71
+ ref: "searchInput",
72
+ modelValue: _ctx.query,
73
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.query = $event),
74
+ size: _ctx.size
75
+ }, _ctx.$attrs, {
76
+ role: "searchbox",
77
+ onFocus: _cache[2] || (_cache[2] = ($event) => _ctx.showEnterIconOnFocus = true),
78
+ onFocusout: _cache[3] || (_cache[3] = ($event) => _ctx.showEnterIconOnFocus = false),
79
+ onKeydown: vue.withKeys(_ctx.keydownEnter, ["enter"])
80
+ }), {
81
+ prefix: vue.withCtx(() => [
82
+ vue.createElementVNode("i", {
83
+ class: vue.normalizeClass(["icon absolute bg-no-repeat outline-none", _ctx.searchIconClasses])
84
+ }, null, 2)
85
+ ]),
86
+ suffix: vue.withCtx(() => [
87
+ _ctx.query && _ctx.showEnterIcon && _ctx.showEnterIconOnFocus ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("i", {
88
+ key: 0,
89
+ class: vue.normalizeClass(["icon absolute bg-no-repeat outline-none", _ctx.enterIconClasses])
90
+ }, null, 2)), [
91
+ [
92
+ _directive_tooltip,
93
+ { content: "Press enter to search", delay: { show: 100, hide: 0 } },
94
+ void 0,
95
+ { bottom: true }
96
+ ]
97
+ ]) : vue.createCommentVNode("", true),
98
+ _ctx.query ? (vue.openBlock(), vue.createElementBlock("button", {
99
+ key: 1,
100
+ role: "button",
101
+ "aria-label": "Clear search input",
102
+ class: vue.normalizeClass(["icon absolute cursor-pointer bg-no-repeat", _ctx.clearIconClasses]),
103
+ onClick: _cache[0] || (_cache[0] = (...args) => _ctx.clearSearch && _ctx.clearSearch(...args))
104
+ }, null, 2)) : vue.createCommentVNode("", true)
105
+ ]),
106
+ _: 1
107
+ }, 16, ["modelValue", "size", "onKeydown"]);
108
+ }
109
+ const PInputSearch = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-3de99c69"]]);
110
+ module.exports = PInputSearch;
@@ -1 +1,89 @@
1
- "use strict";const o=require("./inputClassesMixin.js"),e=require("vue"),n=require("./chunks/_plugin-vue_export-helper.js"),r={TEXT:"text",PASSWORD:"password"},i=e.defineComponent({name:"PInput",mixins:[o],inheritAttrs:!1,props:{modelValue:{type:[String,Number],default:""},type:{type:String,default:r.TEXT,validator(s){return Object.values(r).includes(s)}},label:{type:String,default:""},errorMsg:{type:String,default:""},required:{type:Boolean,default:!1}},emits:["update:modelValue"],computed:{attrs(){const{class:s,style:t,...l}=this.$attrs;return l},style(){return this.$attrs.style}}}),d=["data-has-error"],u={class:"relative w-full"},p={key:0},m=["type","value"],c={key:1};function y(s,t,l,g,v,S){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([{hidden:s.$attrs.hidden},s.$attrs.class]),"data-has-error":!!s.errorMsg,style:e.normalizeStyle(s.style)},[e.renderSlot(s.$slots,"label",{label:s.label,labelClasses:s.labelClasses},()=>[s.label?(e.openBlock(),e.createElementBlock("label",{key:0,class:e.normalizeClass(s.labelClasses)},e.toDisplayString(s.label),3)):e.createCommentVNode("",!0)]),e.createElementVNode("div",u,[s.$slots.prefix?(e.openBlock(),e.createElementBlock("div",p,[e.renderSlot(s.$slots,"prefix")])):e.createCommentVNode("",!0),e.createElementVNode("input",e.mergeProps({type:s.type,value:s.modelValue},s.attrs,{class:s.inputClasses,onInput:t[0]||(t[0]=a=>s.$emit("update:modelValue",a.target.value))}),null,16,m),s.$slots.suffix?(e.openBlock(),e.createElementBlock("div",c,[e.renderSlot(s.$slots,"suffix")])):e.createCommentVNode("",!0)]),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(s.errorMsgClasses)},e.toDisplayString(s.errorMsg),3),[[e.vShow,s.errorMsg]])],14,d)}const f=n._export_sfc(i,[["render",y]]);module.exports=f;
1
+ "use strict";
2
+ const inputClassesMixin = require("./inputClassesMixin.js");
3
+ const vue = require("vue");
4
+ const _pluginVue_exportHelper = require("./chunks/_plugin-vue_export-helper.js");
5
+ const INPUT_TYPES = { TEXT: "text", PASSWORD: "password" };
6
+ const _sfc_main = vue.defineComponent({
7
+ name: "PInput",
8
+ mixins: [inputClassesMixin],
9
+ inheritAttrs: false,
10
+ props: {
11
+ modelValue: {
12
+ type: [String, Number],
13
+ default: ""
14
+ },
15
+ type: {
16
+ type: String,
17
+ default: INPUT_TYPES.TEXT,
18
+ validator(value) {
19
+ return Object.values(INPUT_TYPES).includes(value);
20
+ }
21
+ },
22
+ label: {
23
+ type: String,
24
+ default: ""
25
+ },
26
+ errorMsg: {
27
+ type: String,
28
+ default: ""
29
+ },
30
+ required: {
31
+ type: Boolean,
32
+ default: false
33
+ }
34
+ },
35
+ emits: ["update:modelValue"],
36
+ computed: {
37
+ attrs() {
38
+ const { class: classes, style, ...rest } = this.$attrs;
39
+ return rest;
40
+ },
41
+ style() {
42
+ return this.$attrs.style;
43
+ }
44
+ }
45
+ });
46
+ const _hoisted_1 = ["data-has-error"];
47
+ const _hoisted_2 = { class: "relative w-full" };
48
+ const _hoisted_3 = { key: 0 };
49
+ const _hoisted_4 = ["type", "value"];
50
+ const _hoisted_5 = { key: 1 };
51
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
52
+ return vue.openBlock(), vue.createElementBlock("div", {
53
+ class: vue.normalizeClass([{ hidden: _ctx.$attrs.hidden }, _ctx.$attrs.class]),
54
+ "data-has-error": !!_ctx.errorMsg,
55
+ style: vue.normalizeStyle(_ctx.style)
56
+ }, [
57
+ vue.renderSlot(_ctx.$slots, "label", {
58
+ label: _ctx.label,
59
+ labelClasses: _ctx.labelClasses
60
+ }, () => [
61
+ _ctx.label ? (vue.openBlock(), vue.createElementBlock("label", {
62
+ key: 0,
63
+ class: vue.normalizeClass(_ctx.labelClasses)
64
+ }, vue.toDisplayString(_ctx.label), 3)) : vue.createCommentVNode("", true)
65
+ ]),
66
+ vue.createElementVNode("div", _hoisted_2, [
67
+ !!_ctx.$slots.prefix ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
68
+ vue.renderSlot(_ctx.$slots, "prefix")
69
+ ])) : vue.createCommentVNode("", true),
70
+ vue.createElementVNode("input", vue.mergeProps({
71
+ type: _ctx.type,
72
+ value: _ctx.modelValue
73
+ }, _ctx.attrs, {
74
+ class: _ctx.inputClasses,
75
+ onInput: _cache[0] || (_cache[0] = (event) => _ctx.$emit("update:modelValue", event.target.value))
76
+ }), null, 16, _hoisted_4),
77
+ !!_ctx.$slots.suffix ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5, [
78
+ vue.renderSlot(_ctx.$slots, "suffix")
79
+ ])) : vue.createCommentVNode("", true)
80
+ ]),
81
+ vue.withDirectives(vue.createElementVNode("div", {
82
+ class: vue.normalizeClass(_ctx.errorMsgClasses)
83
+ }, vue.toDisplayString(_ctx.errorMsg), 3), [
84
+ [vue.vShow, _ctx.errorMsg]
85
+ ])
86
+ ], 14, _hoisted_1);
87
+ }
88
+ const PInput = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["render", _sfc_render]]);
89
+ module.exports = PInput;
@@ -1 +1,38 @@
1
- "use strict";const e=require("vue"),n=require("./usePLoading.js"),a=require("./chunks/_plugin-vue_export-helper.js"),s=t=>(e.pushScopeId("data-v-3a800f21"),t=t(),e.popScopeId(),t),r={key:0,class:"fixed left-0 top-0 z-[120] flex w-full justify-center","aria-live":"polite","aria-busy":"true"},c=s(()=>e.createElementVNode("div",{class:"bg-blue-10 h-8 rounded-b border-x border-b border-p-gray-30 px-4 pt-2 text-sm font-semibold leading-none text-p-purple-60 shadow"}," Loading... ",-1)),i=[c],d=e.defineComponent({name:"PLoading",__name:"p-loading",setup(t){const{show:o}=n.usePLoading();return(l,u)=>(e.openBlock(),e.createBlock(e.Transition,{name:"pm-backdrop-transition","enter-active-class":"fadeInDown","leave-active-class":"fadeOutUp"},{default:e.withCtx(()=>[e.unref(o)?(e.openBlock(),e.createElementBlock("div",r,i)):e.createCommentVNode("",!0)]),_:1}))}}),p=a._export_sfc(d,[["__scopeId","data-v-3a800f21"]]);module.exports=p;
1
+ "use strict";
2
+ const vue = require("vue");
3
+ const usePLoading = require("./usePLoading.js");
4
+ const _pluginVue_exportHelper = require("./chunks/_plugin-vue_export-helper.js");
5
+ const _withScopeId = (n) => (vue.pushScopeId("data-v-3a800f21"), n = n(), vue.popScopeId(), n);
6
+ const _hoisted_1 = {
7
+ key: 0,
8
+ class: "fixed left-0 top-0 z-[120] flex w-full justify-center",
9
+ "aria-live": "polite",
10
+ "aria-busy": "true"
11
+ };
12
+ const _hoisted_2 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "bg-blue-10 h-8 rounded-b border-x border-b border-p-gray-30 px-4 pt-2 text-sm font-semibold leading-none text-p-purple-60 shadow" }, " Loading... ", -1));
13
+ const _hoisted_3 = [
14
+ _hoisted_2
15
+ ];
16
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
17
+ ...{
18
+ name: "PLoading"
19
+ },
20
+ __name: "p-loading",
21
+ setup(__props) {
22
+ const { show } = usePLoading.usePLoading();
23
+ return (_ctx, _cache) => {
24
+ return vue.openBlock(), vue.createBlock(vue.Transition, {
25
+ name: "pm-backdrop-transition",
26
+ "enter-active-class": "fadeInDown",
27
+ "leave-active-class": "fadeOutUp"
28
+ }, {
29
+ default: vue.withCtx(() => [
30
+ vue.unref(show) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, _hoisted_3)) : vue.createCommentVNode("", true)
31
+ ]),
32
+ _: 1
33
+ });
34
+ };
35
+ }
36
+ });
37
+ const pLoading = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-3a800f21"]]);
38
+ module.exports = pLoading;