dinocollab-core 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rollupPluginBabelHelpers.js +1 -1
- package/dist/api-context/popover-global.js +1 -1
- package/dist/components/create.multi-select-dropdown.js +2 -0
- package/dist/components/create.multi-select-dropdown.js.map +1 -0
- package/dist/filter-bar/base.js +2 -0
- package/dist/filter-bar/base.js.map +1 -0
- package/dist/filter-bar/create.filter-bar.js +2 -0
- package/dist/filter-bar/create.filter-bar.js.map +1 -0
- package/dist/filter-bar/create.filter-menu.js +2 -0
- package/dist/filter-bar/create.filter-menu.js.map +1 -0
- package/dist/filter-bar/create.filter-panel.js +2 -0
- package/dist/filter-bar/create.filter-panel.js.map +1 -0
- package/dist/filter-bar/create.filtered.js +2 -0
- package/dist/filter-bar/create.filtered.js.map +1 -0
- package/dist/filter-bar/create.sort-menu.js +2 -0
- package/dist/filter-bar/create.sort-menu.js.map +1 -0
- package/dist/filter-bar/demo.js +2 -0
- package/dist/filter-bar/demo.js.map +1 -0
- package/dist/filter-bar/types.js +2 -0
- package/dist/filter-bar/types.js.map +1 -0
- package/dist/filter-bar/ui.units.js +2 -0
- package/dist/filter-bar/ui.units.js.map +1 -0
- package/dist/form/create.input.js +1 -1
- package/dist/form/create.input.js.map +1 -1
- package/dist/form/create.text-editor.js +1 -1
- package/dist/form/create.text-editor.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/table/dino.js +1 -1
- package/dist/table/dino.js.map +1 -1
- package/dist/table/toolbar-pannel.js +1 -1
- package/dist/table/toolbar-pannel.js.map +1 -1
- package/dist/table/ui.units.js +1 -1
- package/dist/table/ui.units.js.map +1 -1
- package/dist/table-grid/create.table-grid.js +2 -0
- package/dist/table-grid/create.table-grid.js.map +1 -0
- package/dist/table-grid/dino.js +2 -0
- package/dist/table-grid/dino.js.map +1 -0
- package/dist/table-grid/helpers.js +2 -0
- package/dist/table-grid/helpers.js.map +1 -0
- package/dist/table-grid/item-actions.js +2 -0
- package/dist/table-grid/item-actions.js.map +1 -0
- package/dist/table-grid/toolbar-pannel.js +2 -0
- package/dist/table-grid/toolbar-pannel.js.map +1 -0
- package/dist/types/{lab → components}/create.multi-select-dropdown.d.ts +5 -5
- package/dist/types/components/index.d.ts +2 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/lab/{create.select-mul-with-api/index.d.ts → select-mul-with-api/create.select-mul-with-api.d.ts} +1 -1
- package/dist/types/lab/select-mul-with-api/index.d.ts +2 -0
- package/dist/types/lab/{create.select-mul-with-api → select-mul-with-api}/types.d.ts +1 -1
- package/dist/types/{lab/table-grid → table-grid}/item-actions.d.ts +1 -1
- package/dist/types/{lab/table-grid → table-grid}/toolbar-pannel.d.ts +1 -1
- package/dist/types/{lab/table-grid → table-grid}/types.d.ts +1 -1
- package/package.json +4 -10
- package/dist/index.d.ts +0 -928
- /package/dist/types/{lab/filter-bar → filter-bar}/base.d.ts +0 -0
- /package/dist/types/{lab/filter-bar → filter-bar}/create.filter-bar.d.ts +0 -0
- /package/dist/types/{lab/filter-bar → filter-bar}/create.filter-menu.d.ts +0 -0
- /package/dist/types/{lab/filter-bar → filter-bar}/create.filter-panel.d.ts +0 -0
- /package/dist/types/{lab/filter-bar → filter-bar}/create.filtered.d.ts +0 -0
- /package/dist/types/{lab/filter-bar → filter-bar}/create.sort-menu.d.ts +0 -0
- /package/dist/types/{lab/filter-bar → filter-bar}/demo.d.ts +0 -0
- /package/dist/types/{lab/filter-bar → filter-bar}/index.d.ts +0 -0
- /package/dist/types/{lab/filter-bar → filter-bar}/types.d.ts +0 -0
- /package/dist/types/{lab/filter-bar → filter-bar}/ui.units.d.ts +0 -0
- /package/dist/types/lab/{create.select-mul-with-api → select-mul-with-api}/table-custom.d.ts +0 -0
- /package/dist/types/lab/{create.select-mul-with-api → select-mul-with-api}/ui.units.d.ts +0 -0
- /package/dist/types/{lab/table-grid → table-grid}/create.table-grid.d.ts +0 -0
- /package/dist/types/{lab/table-grid → table-grid}/demo.d.ts +0 -0
- /package/dist/types/{lab/table-grid → table-grid}/dino.d.ts +0 -0
- /package/dist/types/{lab/table-grid → table-grid}/helpers.d.ts +0 -0
- /package/dist/types/{lab/table-grid → table-grid}/index.d.ts +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function t(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}function r(t){if(Array.isArray(t))return t}function e(r){if(Array.isArray(r))return t(r)}function n(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function o(t,r,e,n,o,i,a){try{var u=t[i](a),c=u.value}catch(t){return void e(t)}u.done?r(c):Promise.resolve(c).then(n,o)}function i(t){return function(){var r=this,e=arguments;return new Promise((function(n,i){var a=t.apply(r,e);function u(t){o(a,n,i,u,c,"next",t)}function c(t){o(a,n,i,u,c,"throw",t)}u(void 0)}))}}function a(t,r,e){return r=l(r),j(t,h()?Reflect.construct(r,e||[],l(t).constructor):r.apply(t,e))}function u(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function c(t,r){for(var e=0;e<r.length;e++){var n=r[e];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,A(n.key),n)}}function f(t,r,e){return r&&c(t.prototype,r),e&&c(t,e),Object.defineProperty(t,"prototype",{writable:!1}),t}function s(t,r,e){return(r=A(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}function y(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),r&&E(t,r)}function h(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(h=function(){return!!t})()}function p(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function b(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,u=[],c=!0,f=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;c=!1}else for(;!(c=(n=i.call(e)).done)&&(u.push(n.value),u.length!==r);c=!0);}catch(t){f=!0,o=t}finally{try{if(!c&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(f)throw o}}return u}}function v(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function d(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function g(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))),e.push.apply(e,n)}return e}function m(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?g(Object(e),!0).forEach((function(r){s(t,r,e[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):g(Object(e)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}))}return t}function w(t,r){if(null==t)return{};var e,n,o=O(t,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)e=i[n],-1===r.indexOf(e)&&{}.propertyIsEnumerable.call(t,e)&&(o[e]=t[e])}return o}function O(t,r){if(null==t)return{};var e={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==r.indexOf(n))continue;e[n]=t[n]}return e}function j(t,r){if(r&&("object"==typeof r||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return n(t)}function P(){P=function(){return r};var t,r={},e=Object.prototype,n=e.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function c(t,r,e,n){return Object.defineProperty(t,r,{value:e,enumerable:!n,configurable:!n,writable:!n})}try{c({},"")}catch(t){c=function(t,r,e){return t[r]=e}}function f(r,e,n,o){var i=e&&e.prototype instanceof y?e:y,a=Object.create(i.prototype);return c(a,"_invoke",function(r,e,n){var o=1;return function(i,a){if(3===o)throw Error("Generator is already running");if(4===o){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var u=n.delegate;if(u){var c=O(u,n);if(c){if(c===l)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(1===o)throw o=4,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=3;var f=s(r,e,n);if("normal"===f.type){if(o=n.done?4:2,f.arg===l)continue;return{value:f.arg,done:n.done}}"throw"===f.type&&(o=4,n.method="throw",n.arg=f.arg)}}}(r,n,new S(o||[])),!0),a}function s(t,r,e){try{return{type:"normal",arg:t.call(r,e)}}catch(t){return{type:"throw",arg:t}}}r.wrap=f;var l={};function y(){}function h(){}function p(){}var b={};c(b,i,(function(){return this}));var v=Object.getPrototypeOf,d=v&&v(v(x([])));d&&d!==e&&n.call(d,i)&&(b=d);var g=p.prototype=y.prototype=Object.create(b);function m(t){["next","throw","return"].forEach((function(r){c(t,r,(function(t){return this._invoke(r,t)}))}))}function w(t,r){function e(o,i,a,u){var c=s(t[o],t,i);if("throw"!==c.type){var f=c.arg,l=f.value;return l&&"object"==typeof l&&n.call(l,"__await")?r.resolve(l.__await).then((function(t){e("next",t,a,u)}),(function(t){e("throw",t,a,u)})):r.resolve(l).then((function(t){f.value=t,a(f)}),(function(t){return e("throw",t,a,u)}))}u(c.arg)}var o;c(this,"_invoke",(function(t,n){function i(){return new r((function(r,o){e(t,n,r,o)}))}return o=o?o.then(i,i):i()}),!0)}function O(r,e){var n=e.method,o=r.i[n];if(o===t)return e.delegate=null,"throw"===n&&r.i.return&&(e.method="return",e.arg=t,O(r,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),l;var i=s(o,r.i,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,l;var a=i.arg;return a?a.done?(e[r.r]=a.value,e.next=r.n,"return"!==e.method&&(e.method="next",e.arg=t),e.delegate=null,l):a:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function j(t){this.tryEntries.push(t)}function E(r){var e=r[4]||{};e.type="normal",e.arg=t,r[4]=e}function S(t){this.tryEntries=[[-1]],t.forEach(j,this),this.reset(!0)}function x(r){if(null!=r){var e=r[i];if(e)return e.call(r);if("function"==typeof r.next)return r;if(!isNaN(r.length)){var o=-1,a=function e(){for(;++o<r.length;)if(n.call(r,o))return e.value=r[o],e.done=!1,e;return e.value=t,e.done=!0,e};return a.next=a}}throw new TypeError(typeof r+" is not iterable")}return h.prototype=p,c(g,"constructor",p),c(p,"constructor",h),h.displayName=c(p,u,"GeneratorFunction"),r.isGeneratorFunction=function(t){var r="function"==typeof t&&t.constructor;return!!r&&(r===h||"GeneratorFunction"===(r.displayName||r.name))},r.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,c(t,u,"GeneratorFunction")),t.prototype=Object.create(g),t},r.awrap=function(t){return{__await:t}},m(w.prototype),c(w.prototype,a,(function(){return this})),r.AsyncIterator=w,r.async=function(t,e,n,o,i){void 0===i&&(i=Promise);var a=new w(f(t,e,n,o),i);return r.isGeneratorFunction(e)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},m(g),c(g,u,"Generator"),c(g,i,(function(){return this})),c(g,"toString",(function(){return"[object Generator]"})),r.keys=function(t){var r=Object(t),e=[];for(var n in r)e.unshift(n);return function t(){for(;e.length;)if((n=e.pop())in r)return t.value=n,t.done=!1,t;return t.done=!0,t}},r.values=x,S.prototype={constructor:S,reset:function(r){if(this.prev=this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(E),!r)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0][4];if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(r){if(this.done)throw r;var e=this;function n(t){a.type="throw",a.arg=r,e.next=t}for(var o=e.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i[4],u=this.prev,c=i[1],f=i[2];if(-1===i[0])return n("end"),!1;if(!c&&!f)throw Error("try statement without catch or finally");if(null!=i[0]&&i[0]<=u){if(u<c)return this.method="next",this.arg=t,n(c),!0;if(u<f)return n(f),!1}}},abrupt:function(t,r){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n[0]>-1&&n[0]<=this.prev&&this.prev<n[2]){var o=n;break}}o&&("break"===t||"continue"===t)&&o[0]<=r&&r<=o[2]&&(o=null);var i=o?o[4]:{};return i.type=t,i.arg=r,o?(this.method="next",this.next=o[2],l):this.complete(i)},complete:function(t,r){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&r&&(this.next=r),l},finish:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e[2]===t)return this.complete(e[4],e[3]),E(e),l}},catch:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e[0]===t){var n=e[4];if("throw"===n.type){var o=n.arg;E(e)}return o}}throw Error("illegal catch attempt")},delegateYield:function(r,e,n){return this.delegate={i:x(r),r:e,n:n},"next"===this.method&&(this.arg=t),l}},r}function E(t,r){return E=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,r){return t.__proto__=r,t},E(t,r)}function S(t,e){return r(t)||b(t,e)||k(t,e)||v()}function x(t){return r(t)||p(t)||k(t)||v()}function _(t){return e(t)||p(t)||k(t)||d()}function T(t,r){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,r);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}function A(t){var r=T(t,"string");return"symbol"==typeof r?r:r+""}function I(t){return I="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},I(t)}function k(r,e){if(r){if("string"==typeof r)return t(r,e);var n={}.toString.call(r).slice(8,-1);return"Object"===n&&r.constructor&&(n=r.constructor.name),"Map"===n||"Set"===n?Array.from(r):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(r,e):void 0}}export{t as arrayLikeToArray,r as arrayWithHoles,e as arrayWithoutHoles,n as assertThisInitialized,i as asyncToGenerator,a as callSuper,u as classCallCheck,f as createClass,s as defineProperty,l as getPrototypeOf,y as inherits,h as isNativeReflectConstruct,p as iterableToArray,b as iterableToArrayLimit,v as nonIterableRest,d as nonIterableSpread,m as objectSpread2,w as objectWithoutProperties,O as objectWithoutPropertiesLoose,j as possibleConstructorReturn,P as regeneratorRuntime,E as setPrototypeOf,S as slicedToArray,x as toArray,_ as toConsumableArray,T as toPrimitive,A as toPropertyKey,I as typeof,k as unsupportedIterableToArray};
|
|
1
|
+
function t(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}function r(t){if(Array.isArray(t))return t}function e(r){if(Array.isArray(r))return t(r)}function n(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function o(t,r,e,n,o,i,a){try{var u=t[i](a),c=u.value}catch(t){return void e(t)}u.done?r(c):Promise.resolve(c).then(n,o)}function i(t){return function(){var r=this,e=arguments;return new Promise((function(n,i){var a=t.apply(r,e);function u(t){o(a,n,i,u,c,"next",t)}function c(t){o(a,n,i,u,c,"throw",t)}u(void 0)}))}}function a(t,r,e){return r=y(r),P(t,p()?Reflect.construct(r,e||[],y(t).constructor):r.apply(t,e))}function u(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function c(t,r){for(var e=0;e<r.length;e++){var n=r[e];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,I(n.key),n)}}function f(t,r,e){return r&&c(t.prototype,r),e&&c(t,e),Object.defineProperty(t,"prototype",{writable:!1}),t}function s(t,r){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=G(t))||r){e&&(t=e);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==e.return||e.return()}finally{if(u)throw i}}}}function l(t,r,e){return(r=I(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function y(t){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},y(t)}function h(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),r&&S(t,r)}function p(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(p=function(){return!!t})()}function b(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function v(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,u=[],c=!0,f=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;c=!1}else for(;!(c=(n=i.call(e)).done)&&(u.push(n.value),u.length!==r);c=!0);}catch(t){f=!0,o=t}finally{try{if(!c&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(f)throw o}}return u}}function d(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function m(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function g(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))),e.push.apply(e,n)}return e}function w(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?g(Object(e),!0).forEach((function(r){l(t,r,e[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):g(Object(e)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}))}return t}function O(t,r){if(null==t)return{};var e,n,o=j(t,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)e=i[n],-1===r.indexOf(e)&&{}.propertyIsEnumerable.call(t,e)&&(o[e]=t[e])}return o}function j(t,r){if(null==t)return{};var e={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==r.indexOf(n))continue;e[n]=t[n]}return e}function P(t,r){if(r&&("object"==typeof r||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return n(t)}function E(){E=function(){return r};var t,r={},e=Object.prototype,n=e.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function c(t,r,e,n){return Object.defineProperty(t,r,{value:e,enumerable:!n,configurable:!n,writable:!n})}try{c({},"")}catch(t){c=function(t,r,e){return t[r]=e}}function f(r,e,n,o){var i=e&&e.prototype instanceof y?e:y,a=Object.create(i.prototype);return c(a,"_invoke",function(r,e,n){var o=1;return function(i,a){if(3===o)throw Error("Generator is already running");if(4===o){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var u=n.delegate;if(u){var c=O(u,n);if(c){if(c===l)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(1===o)throw o=4,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=3;var f=s(r,e,n);if("normal"===f.type){if(o=n.done?4:2,f.arg===l)continue;return{value:f.arg,done:n.done}}"throw"===f.type&&(o=4,n.method="throw",n.arg=f.arg)}}}(r,n,new S(o||[])),!0),a}function s(t,r,e){try{return{type:"normal",arg:t.call(r,e)}}catch(t){return{type:"throw",arg:t}}}r.wrap=f;var l={};function y(){}function h(){}function p(){}var b={};c(b,i,(function(){return this}));var v=Object.getPrototypeOf,d=v&&v(v(x([])));d&&d!==e&&n.call(d,i)&&(b=d);var m=p.prototype=y.prototype=Object.create(b);function g(t){["next","throw","return"].forEach((function(r){c(t,r,(function(t){return this._invoke(r,t)}))}))}function w(t,r){function e(o,i,a,u){var c=s(t[o],t,i);if("throw"!==c.type){var f=c.arg,l=f.value;return l&&"object"==typeof l&&n.call(l,"__await")?r.resolve(l.__await).then((function(t){e("next",t,a,u)}),(function(t){e("throw",t,a,u)})):r.resolve(l).then((function(t){f.value=t,a(f)}),(function(t){return e("throw",t,a,u)}))}u(c.arg)}var o;c(this,"_invoke",(function(t,n){function i(){return new r((function(r,o){e(t,n,r,o)}))}return o=o?o.then(i,i):i()}),!0)}function O(r,e){var n=e.method,o=r.i[n];if(o===t)return e.delegate=null,"throw"===n&&r.i.return&&(e.method="return",e.arg=t,O(r,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),l;var i=s(o,r.i,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,l;var a=i.arg;return a?a.done?(e[r.r]=a.value,e.next=r.n,"return"!==e.method&&(e.method="next",e.arg=t),e.delegate=null,l):a:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function j(t){this.tryEntries.push(t)}function P(r){var e=r[4]||{};e.type="normal",e.arg=t,r[4]=e}function S(t){this.tryEntries=[[-1]],t.forEach(j,this),this.reset(!0)}function x(r){if(null!=r){var e=r[i];if(e)return e.call(r);if("function"==typeof r.next)return r;if(!isNaN(r.length)){var o=-1,a=function e(){for(;++o<r.length;)if(n.call(r,o))return e.value=r[o],e.done=!1,e;return e.value=t,e.done=!0,e};return a.next=a}}throw new TypeError(typeof r+" is not iterable")}return h.prototype=p,c(m,"constructor",p),c(p,"constructor",h),h.displayName=c(p,u,"GeneratorFunction"),r.isGeneratorFunction=function(t){var r="function"==typeof t&&t.constructor;return!!r&&(r===h||"GeneratorFunction"===(r.displayName||r.name))},r.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,c(t,u,"GeneratorFunction")),t.prototype=Object.create(m),t},r.awrap=function(t){return{__await:t}},g(w.prototype),c(w.prototype,a,(function(){return this})),r.AsyncIterator=w,r.async=function(t,e,n,o,i){void 0===i&&(i=Promise);var a=new w(f(t,e,n,o),i);return r.isGeneratorFunction(e)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},g(m),c(m,u,"Generator"),c(m,i,(function(){return this})),c(m,"toString",(function(){return"[object Generator]"})),r.keys=function(t){var r=Object(t),e=[];for(var n in r)e.unshift(n);return function t(){for(;e.length;)if((n=e.pop())in r)return t.value=n,t.done=!1,t;return t.done=!0,t}},r.values=x,S.prototype={constructor:S,reset:function(r){if(this.prev=this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(P),!r)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0][4];if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(r){if(this.done)throw r;var e=this;function n(t){a.type="throw",a.arg=r,e.next=t}for(var o=e.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i[4],u=this.prev,c=i[1],f=i[2];if(-1===i[0])return n("end"),!1;if(!c&&!f)throw Error("try statement without catch or finally");if(null!=i[0]&&i[0]<=u){if(u<c)return this.method="next",this.arg=t,n(c),!0;if(u<f)return n(f),!1}}},abrupt:function(t,r){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n[0]>-1&&n[0]<=this.prev&&this.prev<n[2]){var o=n;break}}o&&("break"===t||"continue"===t)&&o[0]<=r&&r<=o[2]&&(o=null);var i=o?o[4]:{};return i.type=t,i.arg=r,o?(this.method="next",this.next=o[2],l):this.complete(i)},complete:function(t,r){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&r&&(this.next=r),l},finish:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e[2]===t)return this.complete(e[4],e[3]),P(e),l}},catch:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e[0]===t){var n=e[4];if("throw"===n.type){var o=n.arg;P(e)}return o}}throw Error("illegal catch attempt")},delegateYield:function(r,e,n){return this.delegate={i:x(r),r:e,n:n},"next"===this.method&&(this.arg=t),l}},r}function S(t,r){return S=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,r){return t.__proto__=r,t},S(t,r)}function x(t,e){return r(t)||v(t,e)||G(t,e)||d()}function _(t){return r(t)||b(t)||G(t)||d()}function A(t){return e(t)||b(t)||G(t)||m()}function T(t,r){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,r);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}function I(t){var r=T(t,"string");return"symbol"==typeof r?r:r+""}function k(t){return k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},k(t)}function G(r,e){if(r){if("string"==typeof r)return t(r,e);var n={}.toString.call(r).slice(8,-1);return"Object"===n&&r.constructor&&(n=r.constructor.name),"Map"===n||"Set"===n?Array.from(r):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(r,e):void 0}}export{t as arrayLikeToArray,r as arrayWithHoles,e as arrayWithoutHoles,n as assertThisInitialized,i as asyncToGenerator,a as callSuper,u as classCallCheck,f as createClass,s as createForOfIteratorHelper,l as defineProperty,y as getPrototypeOf,h as inherits,p as isNativeReflectConstruct,b as iterableToArray,v as iterableToArrayLimit,d as nonIterableRest,m as nonIterableSpread,w as objectSpread2,O as objectWithoutProperties,j as objectWithoutPropertiesLoose,P as possibleConstructorReturn,E as regeneratorRuntime,S as setPrototypeOf,x as slicedToArray,_ as toArray,A as toConsumableArray,T as toPrimitive,I as toPropertyKey,k as typeof,G as unsupportedIterableToArray};
|
|
2
2
|
//# sourceMappingURL=_rollupPluginBabelHelpers.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{inherits as o,createClass as e,objectSpread2 as t,classCallCheck as r,callSuper as n,defineProperty as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{
|
|
1
|
+
import{inherits as o,createClass as e,objectSpread2 as t,classCallCheck as r,callSuper as n,defineProperty as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as a,jsx as l}from"react/jsx-runtime";import c,{Component as s}from"react";import{Popover as u}from"@mui/material";import{ContentDefault as p}from"./ui.units.js";var h={open:function(){console.warn("PopoverGlobal provider not found!")},close:function(){console.warn("PopoverGlobal provider not found!")}},f=c.createContext(h),v=function(o){return l(f.Consumer,{children:o})},m=function(){function c(o){var e;return r(this,c),e=n(this,c,[o]),i(e,"openPopover",(function(o){clearTimeout(e.timer),e.setState(t({},o))})),i(e,"closePopover",(function(){clearTimeout(e.timer),e.setState({anchorEl:null},(function(){e.timer=setTimeout((function(){e.setState({content:l(p,{})})}),500)}))})),e.state={anchorEl:null,content:l(p,{})},e}return o(c,s),e(c,[{key:"componentDidMount",value:function(){h.open=this.openPopover,h.close=this.closePopover}},{key:"render",value:function(){var o=this;return a(f.Provider,{value:{open:this.openPopover,close:this.closePopover},children:[this.props.children,l(u,t(t({sx:{"& .MuiPaper-root.MuiPaper-elevation":{overflow:"hidden"}},anchorEl:this.state.anchorEl,open:Boolean(this.state.anchorEl),onClose:function(e,t){return o.closePopover(t)},anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},disableScrollLock:!0},this.state.popoverProps),{},{children:this.state.content}))]})}}])}(),d=function(o){return function(e){return l(m,{children:v((function(r){return l(o,t(t({},e),{},{contextPopover:r}))}))})}},P={Provider:m,Api:h,Context:f,mapContext:v};export{v as MapPopoverGlobalContext,h as PopoverGlobalApi,f as PopoverGlobalContext,m as PopoverGlobalProvider,P as default,d as withPopoverGlobalContext};
|
|
2
2
|
//# sourceMappingURL=popover-global.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{defineProperty as n,slicedToArray as o,objectSpread2 as e,toConsumableArray as r}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as l,Fragment as t,jsx as i}from"react/jsx-runtime";import{useState as a,useEffect as c}from"react";import{styled as u,Popover as s,Badge as p,badgeClasses as d,Box as h,Button as m,TextField as v,ToggleButtonGroup as f,ToggleButton as g,Typography as x,List as C,ListItem as b,FormControlLabel as y,Checkbox as P}from"@mui/material";import w from"@mui/icons-material/FilterAltOutlined";import{mergeObjects as j}from"../utils/helpers.js";import"../utils/query-param.js";import"../utils/dayjs-config.js";import z from"./help-tooltip.js";function A(n){return function(u){var s,p,d,A,S,L,T,q,B,D,F,H,I,R=a(null),Y=o(R,2),_=Y[0],E=Y[1],M=a([]),W=o(M,2),X=W[0],G=W[1],J=a(null!==(s=null!==(p=u.options)&&void 0!==p?p:n.options)&&void 0!==s?s:[]),K=o(J,2),Q=K[0],U=K[1],V=a(""),Z=o(V,2),$=Z[0],nn=Z[1],on=a("and"),en=o(on,2),rn=en[0],ln=en[1],tn={buttonProps:j(null==n?void 0:n.buttonProps,null===(d=u.slots)||void 0===d?void 0:d.buttonProps),contentProps:null!==(A=null!==(S=null===(L=u.slots)||void 0===L?void 0:L.contentPorps)&&void 0!==S?S:null==n?void 0:n.contentPorps)&&void 0!==A?A:{}},an=function(n,o){E(null)};return c((function(){u.options&&u.options.length>0&&U(u.options)}),[u.options]),c((function(){var n;G(null!==(n=u.value)&&void 0!==n?n:[])}),[u.value]),l(t,{children:[l(m,e(e({color:"inherit",endIcon:i(w,{})},tn.buttonProps),{},{onClick:function(n){E(n.currentTarget)},children:[n.btnText,i(O,{badgeContent:null===(T=u.value)||void 0===T?void 0:T.length,color:"error",overlap:"circular",sx:{transform:"translateY(-50%) translateX(24px)"}})]})),l(k,{open:Boolean(_),anchorEl:_,onClose:an,anchorOrigin:{vertical:"bottom",horizontal:"left"},children:[l(N,{className:"top",children:[i(v,{size:"small",placeholder:null!==(q=n.placeholder)&&void 0!==q?q:"Search",fullWidth:!0,value:$,onChange:function(n){return nn(n.target.value)}}),l(f,{size:"small",exclusive:!0,color:"primary",value:rn,onChange:function(n,o){o&&ln(o)},children:[i(g,{value:"and",children:"AND"}),i(g,{value:"or",children:"OR"})]}),i(z,{title:"Filter Logic",small:!0,children:l(x,{variant:"body2",color:"text.secondary",children:["Choose how multiple categories are applied.",i("br",{}),i("strong",{children:" AND "})," requires all selected categories, while",i("br",{}),i("strong",{children:" OR "})," matches any."]})})]}),i(h,e(e({className:"menu-content"},tn.contentProps),{},{children:i(C,{children:(D=null!==(B=u.value)&&void 0!==B?B:[],F=Q.filter((function(n){return n.toLowerCase().includes($.toLowerCase())})).sort((function(n,o){return n.localeCompare(o)})),H=F.filter((function(n){return D.includes(n)})),I=F.filter((function(n){return!D.includes(n)})),[].concat(r(H),r(I))).map((function(n){return i(b,{sx:{whiteSpace:"nowrap"},children:i(y,{label:n,control:i(P,{checked:X.includes(n),onChange:function(){return o=n,void G((function(n){return n.includes(o)?n.filter((function(n){return n!==o})):[].concat(r(n),[o])}));var o}})})},n)}))})})),l(N,{children:[i(m,{size:"small",onClick:function(){G([]),u.onChange&&u.onChange([])},color:"inherit",children:"Clear"}),i(h,{sx:{flex:1}}),i(m,{size:"small",onClick:function(){var n;G(null!==(n=u.value)&&void 0!==n?n:[]),an()},color:"inherit",children:"Cancel"}),i(m,{size:"small",variant:"contained",onClick:function(){u.onChange&&u.onChange(X),an()},children:"Apply"})]})]})]})}}var k=u(s)({".MuiPaper-root":{overflow:"hidden",position:"relative",width:"360px"},".menu-content":{overflowY:"auto",maxHeight:"".concat(290,"px"),margin:"2px 2px 2px 0"}}),O=u(p)(n({},"& .".concat(d.badge),{top:"-12px",right:"-6px"})),N=u(h)({alignItems:"center",display:"flex",gap:"6px",height:"58px",padding:"8px 10px",boxShadow:"rgba(99, 99, 99, 0.2) 0px 2px 8px 0px"});export{A as default};
|
|
2
|
+
//# sourceMappingURL=create.multi-select-dropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.multi-select-dropdown.js","sources":["../../src/components/create.multi-select-dropdown.tsx"],"sourcesContent":["import React, { FC, useEffect, useState } from 'react'\r\nimport { Badge, badgeClasses, Box, BoxProps, Button, ButtonProps, Checkbox } from '@mui/material'\r\nimport { FormControlLabel, List, ListItem, Popover, styled, TextField, ToggleButton, ToggleButtonGroup, Typography } from '@mui/material'\r\nimport FilterAltOutlinedIcon from '@mui/icons-material/FilterAltOutlined'\r\nimport { mergeObjects } from '../utils'\r\nimport HelpTooltip from './help-tooltip'\r\n\r\ntype ILogic = 'and' | 'or'\r\n\r\nexport interface IMultiSelectDropdownFilter {\r\n logic?: ILogic\r\n}\r\n\r\nexport interface IMultiSelectDropdownSlots {\r\n buttonProps?: ButtonProps\r\n contentPorps?: BoxProps\r\n}\r\n\r\nexport interface IMultiSelectDropdownProps {\r\n options?: string[]\r\n value?: string[]\r\n onChange?: (value: string[], filter?: IMultiSelectDropdownFilter) => void\r\n slots?: IMultiSelectDropdownSlots\r\n}\r\n\r\nexport interface IMultiSelectDropdownParams extends IMultiSelectDropdownSlots {\r\n btnText: string\r\n options?: string[]\r\n placeholder?: string\r\n}\r\n\r\nfunction CreateMultiSelectDropdown(params: IMultiSelectDropdownParams) {\r\n const MenuSelectMultiple: FC<IMultiSelectDropdownProps> = (props) => {\r\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null)\r\n const [selectedOptions, setSelectedOptions] = useState<string[]>([])\r\n const [options, setOptions] = useState<string[]>(props.options ?? params.options ?? [])\r\n const [search, setSearch] = useState('')\r\n const [filterLogic, setFilterLogic] = useState<ILogic>('and')\r\n\r\n const mergeConfig = {\r\n buttonProps: mergeObjects<ButtonProps>(params?.buttonProps, props.slots?.buttonProps),\r\n contentProps: props.slots?.contentPorps ?? params?.contentPorps ?? {}\r\n }\r\n\r\n const handleOpen = (event: React.MouseEvent<HTMLButtonElement>) => {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n\r\n const handleClose = (event?: {}, reason?: 'backdropClick' | 'escapeKeyDown') => {\r\n setAnchorEl(null)\r\n }\r\n\r\n const handleToggle = (value: string) => {\r\n setSelectedOptions((prev) => (prev.includes(value) ? prev.filter((t) => t !== value) : [...prev, value]))\r\n }\r\n\r\n const handleClear = () => {\r\n setSelectedOptions([])\r\n props.onChange && props.onChange([])\r\n }\r\n\r\n const handleCancel = () => {\r\n setSelectedOptions(props.value ?? [])\r\n handleClose()\r\n }\r\n\r\n const handleApply = () => {\r\n props.onChange && props.onChange(selectedOptions)\r\n handleClose()\r\n }\r\n\r\n const getOptions = () => {\r\n const values = props.value ?? []\r\n const list = options.filter((x) => x.toLowerCase().includes(search.toLowerCase())).sort((a, b) => a.localeCompare(b))\r\n\r\n const prioritized = list.filter((x) => values.includes(x))\r\n const others = list.filter((x) => !values.includes(x))\r\n\r\n return [...prioritized, ...others]\r\n }\r\n\r\n useEffect(() => {\r\n if (props.options && props.options.length > 0) setOptions(props.options)\r\n }, [props.options])\r\n\r\n useEffect(() => {\r\n setSelectedOptions(props.value ?? [])\r\n }, [props.value])\r\n\r\n return (\r\n <>\r\n <Button color='inherit' endIcon={<FilterAltOutlinedIcon />} {...mergeConfig.buttonProps} onClick={handleOpen}>\r\n {params.btnText}\r\n <ButtonBadge badgeContent={props.value?.length} color='error' overlap='circular' sx={{ transform: 'translateY(-50%) translateX(24px)' }} />\r\n </Button>\r\n <CustomPopover open={Boolean(anchorEl)} anchorEl={anchorEl} onClose={handleClose} anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}>\r\n <WrapActions className='top'>\r\n <TextField\r\n size='small'\r\n placeholder={params.placeholder ?? 'Search'}\r\n fullWidth\r\n value={search}\r\n onChange={(e) => setSearch(e.target.value)}\r\n />\r\n <ToggleButtonGroup\r\n size='small'\r\n exclusive\r\n color='primary'\r\n value={filterLogic}\r\n onChange={(_, value) => {\r\n if (value) setFilterLogic(value)\r\n }}\r\n >\r\n <ToggleButton value='and'>AND</ToggleButton>\r\n <ToggleButton value='or'>OR</ToggleButton>\r\n </ToggleButtonGroup>\r\n <HelpTooltip title='Filter Logic' small>\r\n <Typography variant='body2' color='text.secondary'>\r\n Choose how multiple categories are applied.\r\n <br />\r\n <strong> AND </strong> requires all selected categories, while\r\n <br />\r\n <strong> OR </strong> matches any.\r\n </Typography>\r\n </HelpTooltip>\r\n </WrapActions>\r\n <Box className='menu-content' {...mergeConfig.contentProps}>\r\n <List>\r\n {getOptions().map((x) => (\r\n <ListItem key={x} sx={{ whiteSpace: 'nowrap' }}>\r\n <FormControlLabel label={x} control={<Checkbox checked={selectedOptions.includes(x)} onChange={() => handleToggle(x)} />} />\r\n </ListItem>\r\n ))}\r\n </List>\r\n </Box>\r\n <WrapActions>\r\n <Button size='small' onClick={handleClear} color='inherit'>\r\n Clear\r\n </Button>\r\n <Box sx={{ flex: 1 }} />\r\n <Button size='small' onClick={handleCancel} color='inherit'>\r\n Cancel\r\n </Button>\r\n <Button size='small' variant='contained' onClick={handleApply}>\r\n Apply\r\n </Button>\r\n </WrapActions>\r\n </CustomPopover>\r\n </>\r\n )\r\n }\r\n\r\n return MenuSelectMultiple\r\n}\r\n\r\nexport default CreateMultiSelectDropdown\r\n\r\nconst heightItem = 58\r\nconst CustomPopover = styled(Popover)({\r\n '.MuiPaper-root': {\r\n overflow: 'hidden',\r\n position: 'relative',\r\n width: '360px'\r\n },\r\n '.menu-content': {\r\n overflowY: 'auto',\r\n // minWidth: '300px',\r\n maxHeight: `${heightItem * 5}px`,\r\n margin: '2px 2px 2px 0'\r\n }\r\n})\r\n\r\nconst ButtonBadge = styled(Badge)({\r\n [`& .${badgeClasses.badge}`]: {\r\n top: '-12px',\r\n right: '-6px'\r\n }\r\n})\r\nconst WrapActions = styled(Box)({\r\n alignItems: 'center',\r\n display: 'flex',\r\n gap: '6px',\r\n height: '58px',\r\n padding: '8px 10px',\r\n boxShadow: 'rgba(99, 99, 99, 0.2) 0px 2px 8px 0px'\r\n})\r\n"],"names":["CreateMultiSelectDropdown","params","props","_ref","_props$options","_props$slots","_ref2","_props$slots$contentP","_props$slots2","_props$value4","_params$placeholder","_props$value2","values","list","prioritized","others","_useState","useState","_useState2","_slicedToArray","anchorEl","setAnchorEl","_useState3","_useState4","selectedOptions","setSelectedOptions","_useState5","options","_useState6","setOptions","_useState7","_useState8","search","setSearch","_useState9","_useState0","filterLogic","setFilterLogic","mergeConfig","buttonProps","mergeObjects","slots","contentProps","contentPorps","handleClose","event","reason","useEffect","length","_props$value3","value","_jsxs","_Fragment","children","Button","_objectSpread","color","endIcon","_jsx","FilterAltOutlinedIcon","onClick","currentTarget","btnText","ButtonBadge","badgeContent","overlap","sx","transform","CustomPopover","open","Boolean","onClose","anchorOrigin","vertical","horizontal","WrapActions","className","TextField","size","placeholder","fullWidth","onChange","e","target","ToggleButtonGroup","exclusive","_","ToggleButton","HelpTooltip","title","small","Typography","variant","Box","List","filter","x","toLowerCase","includes","sort","a","b","localeCompare","concat","_toConsumableArray","map","ListItem","whiteSpace","FormControlLabel","label","control","Checkbox","checked","prev","t","flex","_props$value","styled","Popover","overflow","position","width","overflowY","maxHeight","heightItem","margin","Badge","_defineProperty","badgeClasses","badge","top","right","alignItems","display","gap","height","padding","boxShadow"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{inherits as e,createClass as r,classCallCheck as t,callSuper as i,defineProperty as a,toConsumableArray as n,objectSpread2 as l,createForOfIteratorHelper as u}from"../_virtual/_rollupPluginBabelHelpers.js";import{Component as o}from"react";import{ESearchMatch as s,EFieldValidate as c}from"./types.js";var f={root:"FilterPanel-root",list:"FilterPanel-list",item:"FilterPanel-item"},v=function(){function f(){var e;t(this,f);for(var r=arguments.length,o=new Array(r),v=0;v<r;v++)o[v]=arguments[v];return e=i(this,f,[].concat(o)),a(e,"mergeFilter",(function(e,r){var t,i,a=null!==(t=null==r?void 0:r.filter)&&void 0!==t?t:{};if(null!=e&&e.filter){var l=function(){var r,t,i=u,l=null!==(r=a[i])&&void 0!==r?r:[],o=null!==(t=null==e?void 0:e.filter[i])&&void 0!==t?t:[],s=new Set(l.map((function(e){return e.value}))),c=[].concat(n(l),n(o.filter((function(e){return!s.has(e.value)}))));c.length>0&&(a[i]=c)};for(var u in null==e?void 0:e.filter)l()}return{filter:Object.keys(a).length?a:{},details:null!==(i=null==r?void 0:r.details)&&void 0!==i?i:null==e?void 0:e.details}})),a(e,"patchFilterWithKey",(function(e,r,t){var i,a=l({},e.filter||{}),u=null!==(i=a[r])&&void 0!==i?i:[],o=!u.map((function(e){return e.value})).includes(t.value);return o&&(u=[].concat(n(u),[t])),a[r]=u,{isChanged:o,filterState:l(l({},e),{},{filter:a})}})),a(e,"deleteFilterWithKey",(function(e,r){var t=l({},e.filter||{}),i=r in t;return i&&delete t[r],{isChanged:i,filterState:l(l({},e),{},{filter:t})}})),a(e,"isFilterEmpty",(function(e){var r,t=Object.values(null!==(r=e.filter)&&void 0!==r?r:{});return t.length<1||t.every((function(e){return e.length<1}))})),a(e,"isYoutubeLink",(function(e){return/^https?:\/\/(www\.)?(youtube\.com|youtu\.be)\//.test(e)})),a(e,"isGenericLink",(function(e){return/^https?:\/\/[^ ]+$/.test(e)})),a(e,"isGuid",(function(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)})),a(e,"getFieldsMatches",(function(r,t,i){var a=t.trim().toLowerCase();if(!a)return r;var n={};for(var l in r){var o=l,c=r[o];if(c){var f,v=Array.isArray(c.searchMatches)?c.searchMatches:c.searchMatches?[c.searchMatches]:[],d=!1,h=u(v);try{for(h.s();!(f=h.n()).done;){var b=f.value;switch(b.rule){case s.AlwaysVisible:d=!0;break;case s.MatchOnly:"function"==typeof b.match&&b.match(a)&&(d=!0);break;case s.LinkYoutube:e.isYoutubeLink(a)&&(d=!0);break;case s.Link:e.isGenericLink(a)&&(d=!0);break;case s.Guid:e.isGuid(a)&&(d=!0)}if(d)break}}catch(e){h.e(e)}finally{h.f()}d&&(n[o]=c)}}return 0===Object.keys(n).length?i?r:{}:n})),a(e,"validated",(function(r,t,i){var a,n=r.trim().toLowerCase();if(!n)return{error:!0,message:"The ".concat(t.toString()," is required ")};var l,o=Array.isArray(null==i?void 0:i.validate)?null!==(a=null==i?void 0:i.validate)&&void 0!==a?a:[]:null!=i&&i.validate?[i.validate]:[],s={error:!1},f=u(o);try{for(f.s();!(l=f.n()).done;){var v=l.value;switch(v.rule){case c.LinkYoutube:var d;if(!e.isYoutubeLink(n))s.error=!0,s.message="The ".concat(null!==(d=null==i?void 0:i.label)&&void 0!==d?d:t.toString()," must be a valid YouTube link");break;case c.Link:var h;if(!e.isGenericLink(n))s.error=!0,s.message="The ".concat(null!==(h=null==i?void 0:i.label)&&void 0!==h?h:t.toString()," must be a valid URL link");break;case c.Custom:var b;if("function"==typeof v.custom&&!v.custom(n))s.error=!0,s.message="The ".concat(null!==(b=null==i?void 0:i.label)&&void 0!==b?b:t.toString()," is invalid")}if(s.error)break}}catch(e){f.e(e)}finally{f.f()}return s})),a(e,"getSortFields",(function(e){return Object.keys(e).reduce((function(r,t){var i=e[t];return!1!==(null==i?void 0:i.sortable)&&(r[t]=i),r}),{})})),e}return e(f,o),r(f)}();export{v as default,f as filterPanelClasses};
|
|
2
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sources":["../../src/filter-bar/base.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { EFieldValidate, ESearchMatch, IFilterField, IFilterFields, IFilterItemModel, IFilterModel, IFilterState } from './types'\r\n\r\nexport const filterPanelClasses = {\r\n root: 'FilterPanel-root',\r\n list: 'FilterPanel-list',\r\n item: 'FilterPanel-item'\r\n}\r\n\r\nexport default class FilterBarBase<P, S, T = any> extends Component<P, S> {\r\n //#region Filter\r\n mergeFilter = (f1?: IFilterState<T>, f2?: IFilterState<T>): IFilterState<T> => {\r\n const mergedFilter: IFilterModel<T> = f2?.filter ?? {}\r\n\r\n if (f1?.filter) {\r\n for (const key in f1?.filter) {\r\n const fieldKey = key as keyof T\r\n const existingItems = mergedFilter[fieldKey] ?? []\r\n const newItems = f1?.filter[fieldKey] ?? []\r\n\r\n const existingValues = new Set(existingItems.map((item) => item.value))\r\n\r\n const mergedItems = [...existingItems, ...newItems.filter((item) => !existingValues.has(item.value))]\r\n\r\n if (mergedItems.length > 0) {\r\n mergedFilter[fieldKey] = mergedItems\r\n }\r\n }\r\n }\r\n\r\n const result: IFilterState<T> = {\r\n filter: Object.keys(mergedFilter).length ? mergedFilter : {},\r\n details: f2?.details ?? f1?.details\r\n }\r\n\r\n return result\r\n }\r\n\r\n patchFilterWithKey = (filterState: IFilterState<T>, key: keyof IFilterModel<T>, value: IFilterItemModel) => {\r\n const clonedFilter: IFilterModel<T> = { ...(filterState.filter || {}) }\r\n let filter = clonedFilter[key] ?? []\r\n const isChanged = !filter.map((x) => x.value).includes(value.value)\r\n if (isChanged) filter = [...filter, value]\r\n clonedFilter[key] = filter\r\n return { isChanged, filterState: { ...filterState, filter: clonedFilter } }\r\n }\r\n\r\n deleteFilterWithKey = (filterState: IFilterState<T>, key: keyof IFilterModel<T>) => {\r\n const clonedFilter: IFilterModel<T> = { ...(filterState.filter || {}) }\r\n const isChanged = key in clonedFilter\r\n if (isChanged) delete clonedFilter[key]\r\n return { isChanged, filterState: { ...filterState, filter: clonedFilter } }\r\n }\r\n\r\n isFilterEmpty = (filterState: IFilterState<T>) => {\r\n const values = Object.values(filterState.filter ?? {})\r\n return values.length < 1 || values.every((x) => x.length < 1)\r\n }\r\n //#endregion\r\n\r\n //#region Field\r\n isYoutubeLink = (val: string) => /^https?:\\/\\/(www\\.)?(youtube\\.com|youtu\\.be)\\//.test(val)\r\n\r\n isGenericLink = (val: string) => /^https?:\\/\\/[^ ]+$/.test(val)\r\n\r\n isGuid = (val: string) => /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(val)\r\n\r\n getFieldsMatches = (fields: IFilterFields<T>, keyword: string, showAll?: boolean): IFilterFields<T> => {\r\n const trimmed = keyword.trim().toLowerCase()\r\n if (!trimmed) return fields\r\n\r\n const matched: IFilterFields<T> = {}\r\n\r\n for (const key in fields) {\r\n const field = key as keyof IFilterFields<T>\r\n const config = fields[field]\r\n if (!config) continue\r\n\r\n const matches = Array.isArray(config.searchMatches) ? config.searchMatches : config.searchMatches ? [config.searchMatches] : []\r\n\r\n let visible = false\r\n\r\n for (const matchObj of matches) {\r\n switch (matchObj.rule) {\r\n case ESearchMatch.AlwaysVisible:\r\n visible = true\r\n break\r\n case ESearchMatch.MatchOnly:\r\n if (typeof matchObj.match === 'function') {\r\n if (matchObj.match(trimmed)) visible = true\r\n }\r\n break\r\n case ESearchMatch.LinkYoutube:\r\n if (this.isYoutubeLink(trimmed)) visible = true\r\n break\r\n case ESearchMatch.Link:\r\n if (this.isGenericLink(trimmed)) visible = true\r\n break\r\n case ESearchMatch.Guid:\r\n if (this.isGuid(trimmed)) visible = true\r\n break\r\n default:\r\n break\r\n }\r\n\r\n if (visible) break\r\n }\r\n\r\n if (visible) matched[field] = config\r\n }\r\n return Object.keys(matched).length === 0 ? (showAll ? fields : {}) : matched\r\n }\r\n\r\n validated = (value: string, fieldKey: keyof IFilterModel<T>, filterField?: IFilterField): { error: boolean; message?: string } => {\r\n const trimmed = value.trim().toLowerCase()\r\n if (!trimmed) return { error: true, message: `The ${fieldKey.toString()} is required ` }\r\n const validate = Array.isArray(filterField?.validate) ? (filterField?.validate ?? []) : filterField?.validate ? [filterField.validate] : []\r\n const obj: { error: boolean; message?: string } = { error: false }\r\n for (const validateObj of validate) {\r\n switch (validateObj.rule) {\r\n case EFieldValidate.LinkYoutube:\r\n if (!this.isYoutubeLink(trimmed)) {\r\n obj.error = true\r\n obj.message = `The ${filterField?.label ?? fieldKey.toString()} must be a valid YouTube link`\r\n }\r\n break\r\n\r\n case EFieldValidate.Link:\r\n if (!this.isGenericLink(trimmed)) {\r\n obj.error = true\r\n obj.message = `The ${filterField?.label ?? fieldKey.toString()} must be a valid URL link`\r\n }\r\n break\r\n\r\n case EFieldValidate.Custom:\r\n if (typeof validateObj.custom === 'function' && !validateObj.custom(trimmed)) {\r\n obj.error = true\r\n obj.message = `The ${filterField?.label ?? fieldKey.toString()} is invalid`\r\n }\r\n break\r\n default:\r\n break\r\n }\r\n if (obj.error) break\r\n }\r\n return obj\r\n }\r\n //#endregion\r\n\r\n //#region Sort\r\n getSortFields = (fields: IFilterFields<T>) => {\r\n const keys = Object.keys(fields) as (keyof IFilterFields<T>)[]\r\n return keys.reduce<IFilterFields<T>>((a, b) => {\r\n const item = fields[b]\r\n if (item?.sortable !== false) {\r\n a[b] = item\r\n }\r\n return a\r\n }, {})\r\n }\r\n //#endregion\r\n}\r\n"],"names":["filterPanelClasses","root","list","item","FilterBarBase","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","f1","f2","_f2$filter","_f2$details","mergedFilter","filter","_loop","_mergedFilter$fieldKe","_f1$filter$fieldKey","fieldKey","key","existingItems","newItems","existingValues","Set","map","value","mergedItems","_toConsumableArray","has","Object","keys","details","filterState","_clonedFilter$key","clonedFilter","_objectSpread","isChanged","x","includes","_filterState$filter","values","every","val","test","fields","keyword","showAll","trimmed","trim","toLowerCase","matched","field","config","_step","matches","isArray","searchMatches","visible","_iterator","_createForOfIteratorHelper","s","n","done","matchObj","rule","ESearchMatch","AlwaysVisible","MatchOnly","match","LinkYoutube","isYoutubeLink","Link","isGenericLink","Guid","isGuid","err","e","f","filterField","_filterField$validate","error","message","toString","_step2","validate","obj","_iterator2","validateObj","EFieldValidate","_filterField$label","label","_filterField$label2","Custom","_filterField$label3","custom","reduce","a","b","sortable","_inherits","Component","_createClass"],"mappings":"qTAGO,IAAMA,EAAqB,CAChCC,KAAM,mBACNC,KAAM,mBACNC,KAAM,oBAGaC,aAA6B,SAAAA,IAAA,IAAAC,EAAAC,OAAAF,GAAA,IAAA,IAAAG,EAAAC,UAAAC,OAAAC,EAAAC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAsJ/C,OAtJ+CP,EAAAQ,EAAAC,KAAAV,EAAAW,GAAAA,OAAAL,IAChDM,EAAAX,EAAA,eACc,SAACY,EAAsBC,GAAyC,IAAAC,EAAAC,EACtEC,EAA0CF,QAA9BA,EAAoBD,aAAE,EAAFA,EAAII,kBAAMH,EAAAA,EAAI,CAAE,EAEtD,GAAIF,SAAAA,EAAIK,OAAQ,CAAA,IAAAC,EAAAA,WACgB,IAAAC,EAAAC,EACtBC,EAAWC,EACXC,EAAsCJ,QAAzBA,EAAGH,EAAaK,UAASF,IAAAA,EAAAA,EAAI,GAC1CK,EAA+B,QAAvBJ,EAAGR,aAAAA,EAAAA,EAAIK,OAAOI,UAASD,IAAAA,EAAAA,EAAI,GAEnCK,EAAiB,IAAIC,IAAIH,EAAcI,KAAI,SAAC7B,GAAI,OAAKA,EAAK8B,KAAK,KAE/DC,EAAW,GAAAnB,OAAAoB,EAAOP,GAAaO,EAAKN,EAASP,QAAO,SAACnB,GAAI,OAAM2B,EAAeM,IAAIjC,EAAK8B,MAAM,MAE/FC,EAAYzB,OAAS,IACvBY,EAAaK,GAAYQ,EAE5B,EAZD,IAAK,IAAMP,KAAOV,aAAE,EAAFA,EAAIK,OAAMC,GAa7B,CAOD,MALgC,CAC9BD,OAAQe,OAAOC,KAAKjB,GAAcZ,OAASY,EAAe,CAAE,EAC5DkB,gBAAOnB,EAAEF,aAAE,EAAFA,EAAIqB,eAAO,IAAAnB,EAAAA,EAAIH,aAAE,EAAFA,EAAIsB,YAI/BvB,EAAAX,EAEoB,sBAAA,SAACmC,EAA8Bb,EAA4BM,GAA2B,IAAAQ,EACnGC,EAAYC,EAA0BH,CAAAA,EAAAA,EAAYlB,QAAU,CAAA,GAC9DA,EAA0BmB,QAApBA,EAAGC,EAAaf,UAAIc,IAAAA,EAAAA,EAAI,GAC5BG,GAAatB,EAAOU,KAAI,SAACa,GAAC,OAAKA,EAAEZ,KAAK,IAAEa,SAASb,EAAMA,OAG7D,OAFIW,IAAWtB,EAAMP,GAAAA,OAAAoB,EAAOb,GAAQW,CAAAA,KACpCS,EAAaf,GAAOL,EACb,CAAEsB,UAAAA,EAAWJ,YAAWG,EAAAA,KAAOH,GAAW,CAAA,EAAA,CAAElB,OAAQoB,QAC5D1B,EAAAX,EAAA,uBAEqB,SAACmC,EAA8Bb,GACnD,IAAMe,EAAYC,EAA0BH,CAAAA,EAAAA,EAAYlB,QAAU,CAAA,GAC5DsB,EAAYjB,KAAOe,EAEzB,OADIE,UAAkBF,EAAaf,GAC5B,CAAEiB,UAAAA,EAAWJ,YAAWG,EAAAA,KAAOH,GAAW,CAAA,EAAA,CAAElB,OAAQoB,QAC5D1B,EAAAX,EAEe,iBAAA,SAACmC,GAAgC,IAAAO,EACzCC,EAASX,OAAOW,eAAMD,EAACP,EAAYlB,cAAM,IAAAyB,EAAAA,EAAI,CAAA,GACnD,OAAOC,EAAOvC,OAAS,GAAKuC,EAAOC,OAAM,SAACJ,GAAC,OAAKA,EAAEpC,OAAS,QAI7DO,EAAAX,EACgB,iBAAA,SAAC6C,GAAW,MAAK,iDAAiDC,KAAKD,EAAI,IAAAlC,EAAAX,EAE3E,iBAAA,SAAC6C,GAAW,MAAK,qBAAqBC,KAAKD,EAAI,IAAAlC,EAAAX,EAEtD,UAAA,SAAC6C,GAAW,MAAK,kEAAkEC,KAAKD,EAAI,IAAAlC,EAAAX,EAElF,oBAAA,SAAC+C,EAA0BC,EAAiBC,GAC7D,IAAMC,EAAUF,EAAQG,OAAOC,cAC/B,IAAKF,EAAS,OAAOH,EAErB,IAAMM,EAA4B,CAAE,EAEpC,IAAK,IAAM/B,KAAOyB,EAAQ,CACxB,IAAMO,EAAQhC,EACRiC,EAASR,EAAOO,GACtB,GAAKC,EAAL,CAEA,IAI8BC,EAJxBC,EAAUnD,MAAMoD,QAAQH,EAAOI,eAAiBJ,EAAOI,cAAgBJ,EAAOI,cAAgB,CAACJ,EAAOI,eAAiB,GAEzHC,GAAU,EAAKC,EAAAC,EAEIL,GAAO,IAA9B,IAAAI,EAAAE,MAAAP,EAAAK,EAAAG,KAAAC,MAAgC,CAAA,IAArBC,EAAQV,EAAA5B,MACjB,OAAQsC,EAASC,MACf,KAAKC,EAAaC,cAChBT,GAAU,EACV,MACF,KAAKQ,EAAaE,UACc,mBAAnBJ,EAASK,OACdL,EAASK,MAAMrB,KAAUU,GAAU,GAEzC,MACF,KAAKQ,EAAaI,YACZxE,EAAKyE,cAAcvB,KAAUU,GAAU,GAC3C,MACF,KAAKQ,EAAaM,KACZ1E,EAAK2E,cAAczB,KAAUU,GAAU,GAC3C,MACF,KAAKQ,EAAaQ,KACZ5E,EAAK6E,OAAO3B,KAAUU,GAAU,GAMxC,GAAIA,EAAS,KACd,CAAA,CAAA,MAAAkB,GAAAjB,EAAAkB,EAAAD,EAAA,CAAA,QAAAjB,EAAAmB,GAAA,CAEGpB,IAASP,EAAQC,GAASC,EAhCjB,CAiCd,CACD,OAAuC,IAAhCvB,OAAOC,KAAKoB,GAASjD,OAAgB6C,EAAUF,EAAS,CAAA,EAAMM,KACtE1C,EAAAX,EAEW,aAAA,SAAC4B,EAAeP,EAAiC4D,GAAoE,IAAAC,EACzHhC,EAAUtB,EAAMuB,OAAOC,cAC7B,IAAKF,EAAS,MAAO,CAAEiC,OAAO,EAAMC,eAAO1E,OAASW,EAASgE,WAAU,kBACvE,IAEkCC,EAF5BC,EAAWjF,MAAMoD,QAAQuB,aAAW,EAAXA,EAAaM,UAAkC,QAAzBL,EAAID,aAAAA,EAAAA,EAAaM,gBAAQL,IAAAA,EAAAA,EAAI,GAAMD,SAAAA,EAAaM,SAAW,CAACN,EAAYM,UAAY,GACnIC,EAA4C,CAAEL,OAAO,GAAOM,EAAA3B,EACxCyB,GAAQ,IAAlC,IAAAE,EAAA1B,MAAAuB,EAAAG,EAAAzB,KAAAC,MAAoC,CAAA,IAAzByB,EAAWJ,EAAA1D,MACpB,OAAQ8D,EAAYvB,MAClB,KAAKwB,EAAenB,YACgB,IAAAoB,EAAlC,IAAK5F,EAAKyE,cAAcvB,GACtBsC,EAAIL,OAAQ,EACZK,EAAIJ,QAAO,OAAA1E,OAA4B,QAA5BkF,EAAUX,aAAAA,EAAAA,EAAaY,aAAK,IAAAD,EAAAA,EAAIvE,EAASgE,WAAyC,iCAE/F,MAEF,KAAKM,EAAejB,KACgB,IAAAoB,EAAlC,IAAK9F,EAAK2E,cAAczB,GACtBsC,EAAIL,OAAQ,EACZK,EAAIJ,QAAO,OAAA1E,OAA4B,QAA5BoF,EAAUb,aAAAA,EAAAA,EAAaY,aAAK,IAAAC,EAAAA,EAAIzE,EAASgE,WAAqC,6BAE3F,MAEF,KAAKM,EAAeI,OAC4D,IAAAC,EAA9E,GAAkC,mBAAvBN,EAAYO,SAA0BP,EAAYO,OAAO/C,GAClEsC,EAAIL,OAAQ,EACZK,EAAIJ,QAAO,OAAA1E,OAA4B,QAA5BsF,EAAUf,aAAAA,EAAAA,EAAaY,aAAK,IAAAG,EAAAA,EAAI3E,EAASgE,WAAuB,eAMjF,GAAIG,EAAIL,MAAO,KAChB,CAAA,CAAA,MAAAL,GAAAW,EAAAV,EAAAD,EAAA,CAAA,QAAAW,EAAAT,GAAA,CACD,OAAOQ,KAIT7E,EAAAX,EACgB,iBAAA,SAAC+C,GAEf,OADaf,OAAOC,KAAKc,GACbmD,QAAyB,SAACC,EAAGC,GACvC,IAAMtG,EAAOiD,EAAOqD,GAIpB,OAHuB,KAAnBtG,aAAI,EAAJA,EAAMuG,YACRF,EAAEC,GAAKtG,GAEFqG,CACR,GAAE,OACJnG,CAAA,CAAA,OAAAsG,EAAAvG,EAtJuDwG,GAsJvDC,EAAAzG,EAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{inherits as e,createClass as t,objectSpread2 as r,classCallCheck as l,callSuper as a,defineProperty as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as n,jsxs as o}from"react/jsx-runtime";import{styled as s,Box as f,ClickAwayListener as u,IconButton as d,InputBase as h}from"@mui/material";import p from"@mui/icons-material/FilterList";import{ButtonClear as c,FilterHelpNotes as S}from"./ui.units.js";import m from"./create.filter-panel.js";import v from"./base.js";import g from"./create.filtered.js";function y(s){var y=m({fields:s.fields}),w=g();return function(){function m(e){var t;return l(this,m),t=a(this,m,[e]),i(t,"defaultState",{keyword:"",panelState:{anchorEl:null}}),i(t,"filterStateStore",{filter:{}}),i(t,"setFilterState",(function(e){t.props.value||(t.filterStateStore=e),t.props.onChange&&t.props.onChange(e)})),i(t,"refFilterButton",null),i(t,"refSortButton",null),i(t,"refInput",null),i(t,"refBeforeInput",null),i(t,"renderTextField",(function(){return o(f,{component:"label",htmlFor:t.configs.id,sx:{flex:1,display:"flex",alignItems:"flex-end"},children:[n(f,{ref:function(e){return t.refBeforeInput=e},sx:{height:"100%"}}),n(h,{id:t.configs.id,placeholder:t.configs.placeholder,fullWidth:!0,autoComplete:"off",inputRef:function(e){return t.refInput=e},onChange:function(e){return t.setState({keyword:e.target.value})},value:t.state.keyword,onFocus:function(){return t.showPanel("searchInput")},onKeyDown:t.handleKeyDown})]})})),i(t,"handleKeyDown",(function(e){var r=e.keyCode;if(13===r){if(!t.state.keyword)return;var l,a=t.patchFilterWithKey(t.filterState,"Search",{value:t.state.keyword});if(a.filterState.details="add",a.isChanged)null===(l=t.refInput)||void 0===l||l.blur(),t.setFilterState(a.filterState),t.setState(t.defaultState)}else if(27===r){var i;null===(i=t.refInput)||void 0===i||i.blur(),t.setState(t.defaultState)}})),i(t,"handleAdd",(function(e,r){var l,a=t.patchFilterWithKey(t.filterState,e,r);(a.filterState.details="add",a.isChanged)&&(null===(l=t.refInput)||void 0===l||l.blur(),t.setFilterState(a.filterState),t.setState(t.defaultState))})),i(t,"handleRemove",(function(e){var r,l=t.deleteFilterWithKey(t.filterState,e);(l.filterState.details="remove",l.isChanged)&&(null===(r=t.refInput)||void 0===r||r.blur(),t.setFilterState(l.filterState),t.forceUpdate())})),i(t,"handleClear",(function(){t.setFilterState({filter:{},details:"remove"}),t.setState(t.defaultState)})),i(t,"showPanel",(function(e){var r=null;switch(e){case"searchInput":r=t.refBeforeInput;break;case"filterButton":r=t.refFilterButton;break;case"sortButton":r=t.refSortButton}t.setState({panelState:{anchorEl:r,reason:e}})})),i(t,"closePanel",(function(){return t.setState({panelState:{anchorEl:null}})})),t.state=t.defaultState,t}return e(m,v),t(m,[{key:"filterState",get:function(){var e;return null!==(e=this.props.value)&&void 0!==e?e:this.filterStateStore}},{key:"configs",get:function(){var e,t,r,l;return{id:null!==(e=null!==(t=this.props.id)&&void 0!==t?t:s.id)&&void 0!==e?e:(new Date).getTime().toString(),placeholder:null!==(r=null!==(l=this.props.placeholder)&&void 0!==l?l:s.placeholder)&&void 0!==r?r:"Filter",helpNotes:s.helpNotes}}},{key:"render",value:function(){var e=this;return n(u,{onClickAway:this.closePanel,children:o(k,{children:[n(d,{ref:function(t){return e.refFilterButton=t},onClick:function(){return e.showPanel("filterButton")},children:n(p,{})}),o(C,{children:[n(w,{fields:s.fields,filterState:this.filterState,onRemove:this.handleRemove}),this.renderTextField()]}),n(c,{visibled:!this.isFilterEmpty(this.filterState),onClick:this.handleClear}),n(S,r({},this.configs.helpNotes)),n(y,r(r({},this.state.panelState),{},{keyword:this.state.keyword,onSubmit:this.handleAdd,onClose:this.closePanel}))]})})}}])}()}var k=s(f)({display:"flex",gap:"8px",width:"100%",borderRadius:"6px",transition:"all linear 0.2s",padding:"2px",backgroundColor:"#fafafa","&:hover":{backgroundColor:"#ededed"}}),C=s(f)({flex:1,minHeight:"40px",display:"flex",flexWrap:"wrap",alignItems:"center",gap:"6px"});export{y as default};
|
|
2
|
+
//# sourceMappingURL=create.filter-bar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.filter-bar.js","sources":["../../src/filter-bar/create.filter-bar.tsx"],"sourcesContent":["import React from 'react'\r\nimport { Box, ClickAwayListener, IconButton, InputBase, styled } from '@mui/material'\r\nimport FilterListIcon from '@mui/icons-material/FilterList'\r\nimport { ButtonClear, FilterHelpNotes, FilterHelpNotesProps } from './ui.units'\r\nimport { IFilterFields, IFilterItemModel, IFilterModel, FilterReason, IFilterState } from './types'\r\nimport CreateFilterPanel, { FilterPanelState } from './create.filter-panel'\r\nimport FilterBarBase from './base'\r\nimport CreateFiltered from './create.filtered'\r\n\r\nexport interface FilterBarParams<T> {\r\n fields: IFilterFields<T>\r\n id?: string\r\n placeholder?: string\r\n helpNotes?: FilterHelpNotesProps\r\n}\r\n\r\ninterface IProps<T> {\r\n id?: string\r\n placeholder?: string\r\n value?: IFilterState<T>\r\n onChange?: (value: IFilterState<T>) => void\r\n}\r\n\r\ninterface IState {\r\n panelState: FilterPanelState\r\n keyword: string\r\n}\r\n\r\nfunction CreateFilterBar<T>(params: FilterBarParams<T>) {\r\n const FilterPanelInstance = CreateFilterPanel<T>({ fields: params.fields })\r\n const FilteredInstance = CreateFiltered<T>()\r\n\r\n class FilterBar extends FilterBarBase<IProps<T>, IState, T> {\r\n defaultState: IState = { keyword: '', panelState: { anchorEl: null } }\r\n constructor(props: IProps<T>) {\r\n super(props)\r\n this.state = this.defaultState\r\n }\r\n\r\n filterStateStore: IFilterState<T> = { filter: {} }\r\n get filterState(): IFilterState<T> {\r\n return this.props.value ?? this.filterStateStore\r\n }\r\n\r\n setFilterState = (filterState: IFilterState<T>) => {\r\n if (!this.props.value) {\r\n this.filterStateStore = filterState\r\n }\r\n this.props.onChange && this.props.onChange(filterState)\r\n }\r\n\r\n get configs() {\r\n return {\r\n id: this.props.id ?? params.id ?? new Date().getTime().toString(),\r\n placeholder: this.props.placeholder ?? params.placeholder ?? 'Filter',\r\n helpNotes: params.helpNotes\r\n }\r\n }\r\n\r\n refFilterButton: HTMLButtonElement | null = null\r\n refSortButton: HTMLButtonElement | null = null\r\n render() {\r\n return (\r\n <ClickAwayListener onClickAway={this.closePanel}>\r\n <Wrapper>\r\n <IconButton ref={(ref) => (this.refFilterButton = ref)} onClick={() => this.showPanel('filterButton')}>\r\n <FilterListIcon />\r\n </IconButton>\r\n <Content>\r\n <FilteredInstance fields={params.fields} filterState={this.filterState} onRemove={this.handleRemove} />\r\n {this.renderTextField()}\r\n </Content>\r\n <ButtonClear visibled={!this.isFilterEmpty(this.filterState)} onClick={this.handleClear} />\r\n {/* <IconButton ref={(ref) => (this.refSortButton = ref)} onClick={() => this.showPanel('sortButton')}>\r\n <SwapVertIcon />\r\n </IconButton> */}\r\n <FilterHelpNotes {...this.configs.helpNotes} />\r\n <FilterPanelInstance {...this.state.panelState} keyword={this.state.keyword} onSubmit={this.handleAdd} onClose={this.closePanel} />\r\n </Wrapper>\r\n </ClickAwayListener>\r\n )\r\n }\r\n\r\n refInput: HTMLInputElement | null = null\r\n refBeforeInput: HTMLElement | null = null\r\n renderTextField = () => (\r\n <Box component='label' htmlFor={this.configs.id} sx={{ flex: 1, display: 'flex', alignItems: 'flex-end' }}>\r\n <Box ref={(ref: HTMLElement) => (this.refBeforeInput = ref)} sx={{ height: '100%' }} />\r\n <InputBase\r\n id={this.configs.id}\r\n placeholder={this.configs.placeholder}\r\n fullWidth\r\n autoComplete='off'\r\n inputRef={(ref: HTMLInputElement) => (this.refInput = ref)}\r\n onChange={(event) => this.setState({ keyword: event.target.value })}\r\n value={this.state.keyword}\r\n onFocus={() => this.showPanel('searchInput')}\r\n onKeyDown={this.handleKeyDown}\r\n />\r\n </Box>\r\n )\r\n\r\n handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {\r\n const keyCode: number = event.keyCode\r\n if (keyCode === 13) {\r\n if (!this.state.keyword) return\r\n const temp = this.patchFilterWithKey(this.filterState, 'Search', { value: this.state.keyword })\r\n temp.filterState.details = 'add'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.setState(this.defaultState)\r\n }\r\n } else if (keyCode === 27) {\r\n this.refInput?.blur()\r\n this.setState(this.defaultState)\r\n }\r\n }\r\n\r\n handleAdd = (key: keyof IFilterModel<T>, value: IFilterItemModel) => {\r\n const temp = this.patchFilterWithKey(this.filterState, key, value)\r\n temp.filterState.details = 'add'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.setState(this.defaultState)\r\n }\r\n }\r\n\r\n handleRemove = (key: keyof IFilterModel<T>) => {\r\n const temp = this.deleteFilterWithKey(this.filterState, key)\r\n temp.filterState.details = 'remove'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.forceUpdate()\r\n }\r\n }\r\n\r\n handleClear = () => {\r\n this.setFilterState({ filter: {}, details: 'remove' })\r\n this.setState(this.defaultState)\r\n }\r\n\r\n showPanel = (reason: FilterReason) => {\r\n let anchorEl = null\r\n switch (reason) {\r\n case 'searchInput':\r\n anchorEl = this.refBeforeInput\r\n break\r\n case 'filterButton':\r\n anchorEl = this.refFilterButton\r\n break\r\n case 'sortButton':\r\n anchorEl = this.refSortButton\r\n break\r\n default:\r\n break\r\n }\r\n this.setState({ panelState: { anchorEl, reason } })\r\n }\r\n\r\n closePanel = () => this.setState({ panelState: { anchorEl: null } })\r\n }\r\n\r\n return FilterBar\r\n}\r\n\r\nexport default CreateFilterBar\r\n\r\nconst Wrapper = styled(Box)({\r\n display: 'flex',\r\n gap: '8px',\r\n width: '100%',\r\n borderRadius: '6px',\r\n transition: 'all linear 0.2s',\r\n padding: '2px',\r\n backgroundColor: '#fafafa',\r\n '&:hover': { backgroundColor: '#ededed' }\r\n})\r\n\r\nconst Content = styled(Box)({\r\n flex: 1,\r\n minHeight: '40px',\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n gap: '6px'\r\n})\r\n"],"names":["CreateFilterBar","params","FilterPanelInstance","CreateFilterPanel","fields","FilteredInstance","CreateFiltered","FilterBar","props","_this","_classCallCheck","_callSuper","_defineProperty","keyword","panelState","anchorEl","filter","filterState","value","filterStateStore","onChange","_jsxs","Box","component","htmlFor","configs","id","sx","flex","display","alignItems","children","_jsx","ref","refBeforeInput","height","InputBase","placeholder","fullWidth","autoComplete","inputRef","refInput","event","setState","target","state","onFocus","showPanel","onKeyDown","handleKeyDown","keyCode","_this$refInput","temp","patchFilterWithKey","details","isChanged","blur","setFilterState","defaultState","_this$refInput2","key","_this$refInput3","_this$refInput4","deleteFilterWithKey","forceUpdate","reason","refFilterButton","refSortButton","_inherits","FilterBarBase","_createClass","get","_this$props$value","this","_ref2","_this$props$id","_ref3","_this$props$placehold","Date","getTime","toString","helpNotes","_this2","ClickAwayListener","onClickAway","closePanel","Wrapper","IconButton","onClick","FilterListIcon","Content","onRemove","handleRemove","renderTextField","ButtonClear","visibled","isFilterEmpty","handleClear","FilterHelpNotes","_objectSpread","onSubmit","handleAdd","onClose","styled","gap","width","borderRadius","transition","padding","backgroundColor","minHeight","flexWrap"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{inherits as e,createClass as r,classCallCheck as t,callSuper as o,defineProperty as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as n,jsxs as l}from"react/jsx-runtime";import{Fragment as a}from"react";import{styled as s,Box as u,RadioGroup as d,MenuList as c,MenuItem as m,Typography as f,Divider as p,Button as v,TextField as h,FormControlLabel as g,Radio as b}from"@mui/material";import S,{filterPanelClasses as x}from"./base.js";import"../form/validator.js";import"../form/dino-form.js";import{convertFormDataToJson as y}from"../form/helper.js";function C(s){return function(){function d(e){var r;return t(this,d),r=o(this,d,[e]),i(r,"renderFrom",(function(e){var t,o=s.fields[e],i=null!==(t=null==o?void 0:o.label)&&void 0!==t?t:e.toString();return n("form",{onSubmit:function(t){return r.handleSubmit(e,t)},children:l(j,{children:[n(u,{className:"top-bar",children:n(f,{variant:"subtitle2",children:i})}),n(u,{className:"content",children:r.renderWithMode(e)}),"select"===(null==o?void 0:o.type)&&n(p,{variant:"middle"}),l(u,{className:"actions",children:[n(v,{size:"small",color:"inherit",onClick:r.props.onCancel,children:"Cancel"}),n(v,{size:"small",color:"primary",type:"submit",sx:{fontWeight:700},children:"Apply"})]})]})})})),i(r,"renderWithMode",(function(e){var t=s.fields[e],o=r.state.messageError;return"select"===(null==t?void 0:t.type)?n(k,{name:e.toString(),className:o?"error":"",onChange:function(){return r.setState({messageError:void 0})},children:t.options.map((function(e,r){var t;return n(g,{value:e.value,control:n(b,{}),label:null!==(t=e.label)&&void 0!==t?t:e.value},e.value.toString()+r)}))}):n(h,{autoFocus:!0,name:e.toString(),size:"small",error:!!o,helperText:o})})),i(r,"handleSubmit",(function(e,t){var o;t.preventDefault(),t.stopPropagation();var i=new FormData(t.currentTarget),n=null===(o=y(i)[e])||void 0===o?void 0:o.toString(),l=s.fields[e],a=r.validated(null!=n?n:"",e,l);if(a.error)r.setState({messageError:a.message});else{var u,d=void 0;if("select"===(null==l?void 0:l.type))d=null===(u=l.options.find((function(e){return e.value===n})))||void 0===u?void 0:u.label;r.props.onSubmit&&r.props.onSubmit(e,d?{value:n,label:d}:{value:n})}})),r.state={fieldSelected:null},r}return e(d,S),r(d,[{key:"render",value:function(){var e=this,r=this.state.fieldSelected;if(r)return this.renderFrom(r);var t=Object.keys(s.fields).filter((function(e){return!!e}));return n(c,{className:x.list,sx:{minWidth:"200px"},children:t.map((function(r,t){var o,i=s.fields[r];return i?n(m,{className:x.item,onClick:function(){return e.setState({fieldSelected:r,messageError:void 0})},children:null!==(o=null==i?void 0:i.label)&&void 0!==o?o:r.toString()},r.toString()+t):n(a,{},r.toString()+t)}))})}}])}()}var j=s(u)({minWidth:"200px",borderRadius:"4px",overflow:"hidden",".top-bar":{background:"#000",padding:"8px",".MuiTypography-root":{color:"#fff"}},".content":{padding:"8px"},".actions":{display:"flex",alignItems:"center",justifyContent:"flex-end",padding:"8px"}}),k=s(d)({marginLeft:"-8px",marginRight:"-8px","&.error .MuiRadio-root":{color:"#d32f2f"},".MuiFormControlLabel-root":{margin:0},".MuiFormControlLabel-root:hover":{backgroundColor:"rgba(25, 118, 210, 0.04)"}});export{C as default};
|
|
2
|
+
//# sourceMappingURL=create.filter-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.filter-menu.js","sources":["../../src/filter-bar/create.filter-menu.tsx"],"sourcesContent":["import React, { Fragment } from 'react'\r\nimport { Box, Button, ButtonProps, Divider } from '@mui/material'\r\nimport { FormControlLabel, MenuItem, MenuList, Radio, RadioGroup, styled, TextField, Typography } from '@mui/material'\r\nimport FilterBarBase, { filterPanelClasses } from './base'\r\nimport { IFilterModel, IFilterPanelParams, IFilterPannelSubmitFunc } from './types'\r\nimport { convertFormDataToJson } from '../form'\r\n\r\ninterface IProps<T> {\r\n onSubmit?: IFilterPannelSubmitFunc<T>\r\n onCancel?: ButtonProps['onClick']\r\n}\r\n\r\ninterface IState<T> {\r\n fieldSelected: keyof IFilterModel<T> | null\r\n messageError?: string\r\n}\r\n\r\nfunction CreateFilterMenu<T>(params: IFilterPanelParams<T>) {\r\n class FilterMenu extends FilterBarBase<IProps<T>, IState<T>, T> {\r\n constructor(props: IProps<T>) {\r\n super(props)\r\n this.state = { fieldSelected: null }\r\n }\r\n\r\n render() {\r\n const { fieldSelected } = this.state\r\n if (!!fieldSelected) return this.renderFrom(fieldSelected)\r\n const keys = Object.keys(params.fields).filter((x) => !!x) as (keyof IFilterModel<T>)[]\r\n return (\r\n <MenuList className={filterPanelClasses.list} sx={{ minWidth: '200px' }}>\r\n {keys.map((x, i) => {\r\n const item = params.fields[x]\r\n if (!item) return <Fragment key={x.toString() + i} />\r\n return (\r\n <MenuItem\r\n key={x.toString() + i}\r\n className={filterPanelClasses.item}\r\n onClick={() => this.setState({ fieldSelected: x, messageError: undefined })}\r\n >\r\n {item?.label ?? x.toString()}\r\n </MenuItem>\r\n )\r\n })}\r\n </MenuList>\r\n )\r\n }\r\n\r\n renderFrom = (fieldSelected: keyof IFilterModel<T>) => {\r\n const fieldConfig = params.fields[fieldSelected]\r\n const label = fieldConfig?.label ?? fieldSelected.toString()\r\n return (\r\n <form onSubmit={(e) => this.handleSubmit(fieldSelected, e)}>\r\n <WrapPanelFilterMode>\r\n <Box className='top-bar'>\r\n <Typography variant='subtitle2'>{label}</Typography>\r\n </Box>\r\n <Box className='content'>{this.renderWithMode(fieldSelected)}</Box>\r\n {fieldConfig?.type === 'select' && <Divider variant='middle' />}\r\n <Box className='actions'>\r\n <Button size='small' color='inherit' onClick={this.props.onCancel}>\r\n Cancel\r\n </Button>\r\n <Button size='small' color='primary' type='submit' sx={{ fontWeight: 700 }}>\r\n Apply\r\n </Button>\r\n </Box>\r\n </WrapPanelFilterMode>\r\n </form>\r\n )\r\n }\r\n\r\n renderWithMode = (fieldSelected: keyof IFilterModel<T>) => {\r\n const fieldConfig = params.fields[fieldSelected]\r\n const { messageError } = this.state\r\n switch (fieldConfig?.type) {\r\n case 'select':\r\n return (\r\n <CustomRadioGroup\r\n name={fieldSelected.toString()}\r\n className={messageError ? 'error' : ''}\r\n onChange={() => this.setState({ messageError: undefined })}\r\n >\r\n {fieldConfig.options.map((x, i) => (\r\n <FormControlLabel key={x.value.toString() + i} value={x.value} control={<Radio />} label={x.label ?? x.value} />\r\n ))}\r\n </CustomRadioGroup>\r\n )\r\n case 'string':\r\n default:\r\n return <TextField autoFocus name={fieldSelected.toString()} size='small' error={!!messageError} helperText={messageError} />\r\n }\r\n }\r\n\r\n handleSubmit = (fieldSelected: keyof IFilterModel<T>, event: React.FormEvent<HTMLFormElement>) => {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n const formData = new FormData(event.currentTarget as HTMLFormElement)\r\n const obj = convertFormDataToJson<T>(formData)\r\n const value = obj[fieldSelected as keyof T]?.toString()\r\n\r\n const fieldConfig = params.fields[fieldSelected]\r\n const validate = this.validated(value ?? '', fieldSelected, fieldConfig)\r\n if (validate.error) {\r\n this.setState({ messageError: validate.message })\r\n return\r\n }\r\n\r\n let label: string | undefined = undefined\r\n if (fieldConfig?.type === 'select') {\r\n label = fieldConfig.options.find((x) => x.value === value)?.label\r\n }\r\n\r\n this.props.onSubmit && this.props.onSubmit(fieldSelected, label ? { value, label } : { value })\r\n }\r\n }\r\n\r\n return FilterMenu\r\n}\r\n\r\nexport default CreateFilterMenu\r\n\r\nconst WrapPanelFilterMode = styled(Box)({\r\n minWidth: '200px',\r\n borderRadius: '4px',\r\n overflow: 'hidden',\r\n '.top-bar': {\r\n background: '#000',\r\n padding: '8px',\r\n '.MuiTypography-root': {\r\n color: '#fff'\r\n }\r\n },\r\n '.content': {\r\n padding: '8px'\r\n },\r\n '.actions': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n padding: '8px'\r\n }\r\n})\r\n\r\nconst CustomRadioGroup = styled(RadioGroup)({\r\n marginLeft: '-8px',\r\n marginRight: '-8px',\r\n '&.error .MuiRadio-root': {\r\n color: '#d32f2f'\r\n },\r\n '.MuiFormControlLabel-root': {\r\n margin: 0\r\n },\r\n '.MuiFormControlLabel-root:hover': {\r\n backgroundColor: 'rgba(25, 118, 210, 0.04)'\r\n }\r\n})\r\n"],"names":["CreateFilterMenu","params","FilterMenu","props","_this","_classCallCheck","_callSuper","_defineProperty","fieldSelected","_fieldConfig$label","fieldConfig","fields","label","toString","_jsx","onSubmit","e","handleSubmit","children","_jsxs","WrapPanelFilterMode","Box","className","Typography","variant","renderWithMode","type","Divider","Button","size","color","onClick","onCancel","sx","fontWeight","messageError","state","CustomRadioGroup","name","onChange","setState","undefined","options","map","x","i","_x$label","FormControlLabel","value","control","Radio","TextField","autoFocus","error","helperText","event","_obj$fieldSelected","preventDefault","stopPropagation","formData","FormData","currentTarget","convertFormDataToJson","validate","validated","message","_fieldConfig$options$","find","_inherits","FilterBarBase","_createClass","key","_this2","this","renderFrom","keys","Object","filter","MenuList","filterPanelClasses","list","minWidth","_item$label","item","MenuItem","Fragment","styled","borderRadius","overflow","background","padding","display","alignItems","justifyContent","RadioGroup","marginLeft","marginRight","margin","backgroundColor"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{inherits as r,createClass as e,objectSpread2 as n,classCallCheck as o,callSuper as t,defineProperty as s}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a,Fragment as i,jsxs as p}from"react/jsx-runtime";import{styled as l,Box as c,Popper as u,Fade as d,MenuList as h,MenuItem as m}from"@mui/material";import f,{filterPanelClasses as b}from"./base.js";import k from"./create.filter-menu.js";import v from"./create.sort-menu.js";function C(l){var c=k(l),C=v(),x=function(){function k(){var r;o(this,k);for(var e=arguments.length,n=new Array(e),u=0;u<e;u++)n[u]=arguments[u];return r=t(this,k,[].concat(n)),s(r,"renderContent",(function(){switch(r.props.reason){case"searchInput":return r.renderSearchInput();case"filterButton":return a(c,{onCancel:r.props.onClose,onSubmit:function(e,n){r.props.onSubmit&&r.props.onSubmit(e,n),r.props.onClose&&r.props.onClose()}});case"sortButton":return a(C,{})}})),s(r,"renderSearchInput",(function(){var e;if("searchInput"!==r.props.reason)return a(i,{});var n=r.getFieldsMatches(l.fields,null!==(e=r.props.keyword)&&void 0!==e?e:""),o=Object.keys(n).filter((function(r){return!!r}));return p(h,{className:b.list,children:[o.map((function(e,n){var o,t=l.fields[e];return p(m,{className:b.item,onClick:function(){return r.handleClick(e)},children:[null!==(o=null==t?void 0:t.label)&&void 0!==o?o:e.toString(),' "',r.props.keyword,'"']},e.toString()+n)})),r.props.keyword&&p(m,{className:b.item,onClick:function(){return r.handleClick("Search")},children:['Search "',r.props.keyword,'"']})]})})),s(r,"handleClick",(function(e){r.props.onSubmit&&r.props.onSubmit(e,{value:r.props.keyword})})),r}return r(k,f),e(k,[{key:"render",value:function(){var r=this,e=Boolean(this.props.anchorEl)&&(!!this.props.keyword||"searchInput"!==this.props.reason);return a(u,{anchorEl:this.props.anchorEl,open:e,placement:"bottom-start",transition:!0,sx:{zIndex:1350},children:function(e){var o=e.TransitionProps;return a(d,n(n({},o),{},{timeout:0,children:a(S,{className:b.root,children:r.renderContent()})}))}})}}])}();return x}var S=l(c)({borderRadius:"4px",boxShadow:"rgba(0, 0, 0, 0.06) 0px 5px 22px, rgba(0, 0, 0, 0.04) 0px 0px 0px 0.5px",backgroundColor:"#fff"});export{C as default};
|
|
2
|
+
//# sourceMappingURL=create.filter-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.filter-panel.js","sources":["../../src/filter-bar/create.filter-panel.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react'\r\nimport { Popper, Fade, Box, styled, MenuList, MenuItem } from '@mui/material'\r\nimport { IFilterModel, FilterReason, IFilterPanelParams, IFilterPannelSubmitFunc } from './types'\r\nimport FilterBarBase, { filterPanelClasses } from './base'\r\nimport CreateFilterMenu from './create.filter-menu'\r\nimport CreateFilterSort from './create.sort-menu'\r\n\r\nexport interface FilterPanelState {\r\n anchorEl: HTMLElement | null\r\n reason?: FilterReason\r\n}\r\n\r\ninterface IProps<T> extends FilterPanelState, PropsWithChildren {\r\n keyword?: string\r\n onSubmit?: IFilterPannelSubmitFunc<T>\r\n onClose?: () => void\r\n}\r\n\r\nfunction CreateFilterPanel<T>(params: IFilterPanelParams<T>) {\r\n const FilterMenuInstance = CreateFilterMenu<T>(params)\r\n const SortMenuInstance = CreateFilterSort<T>(params)\r\n\r\n class FilterPanel extends FilterBarBase<IProps<T>, {}, T> {\r\n render() {\r\n const isOpen = Boolean(this.props.anchorEl) && (!!this.props.keyword || this.props.reason !== 'searchInput')\r\n return (\r\n <Popper anchorEl={this.props.anchorEl} open={isOpen} placement='bottom-start' transition sx={{ zIndex: 1350 }}>\r\n {({ TransitionProps }) => (\r\n <Fade {...TransitionProps} timeout={0}>\r\n <Wrapper className={filterPanelClasses.root}>{this.renderContent()}</Wrapper>\r\n </Fade>\r\n )}\r\n </Popper>\r\n )\r\n }\r\n\r\n renderContent = () => {\r\n switch (this.props.reason) {\r\n case 'searchInput':\r\n return this.renderSearchInput()\r\n case 'filterButton':\r\n return (\r\n <FilterMenuInstance\r\n onCancel={this.props.onClose}\r\n onSubmit={(f, v) => {\r\n this.props.onSubmit && this.props.onSubmit(f, v)\r\n this.props.onClose && this.props.onClose()\r\n }}\r\n />\r\n )\r\n case 'sortButton':\r\n return <SortMenuInstance />\r\n default:\r\n break\r\n }\r\n }\r\n\r\n renderSearchInput = () => {\r\n if (this.props.reason !== 'searchInput') return <></>\r\n const fields = this.getFieldsMatches(params.fields, this.props.keyword ?? '')\r\n const keys = Object.keys(fields).filter((x) => !!x) as (keyof IFilterModel<T>)[]\r\n return (\r\n <MenuList className={filterPanelClasses.list}>\r\n {keys.map((x, i) => {\r\n const item = params.fields[x]\r\n return (\r\n <MenuItem key={x.toString() + i} className={filterPanelClasses.item} onClick={() => this.handleClick(x)}>\r\n {item?.label ?? x.toString()} \"{this.props.keyword}\"\r\n </MenuItem>\r\n )\r\n })}\r\n {this.props.keyword && (\r\n <MenuItem className={filterPanelClasses.item} onClick={() => this.handleClick('Search')}>\r\n Search \"{this.props.keyword}\"{/* <FilterHelpNotes title='The quick search includes' items={[]} /> */}\r\n </MenuItem>\r\n )}\r\n </MenuList>\r\n )\r\n }\r\n handleClick = (key: keyof IFilterModel<T>) => {\r\n if (!this.props.onSubmit) return\r\n this.props.onSubmit(key, { value: this.props.keyword })\r\n }\r\n }\r\n return FilterPanel\r\n}\r\n\r\nexport default CreateFilterPanel\r\n\r\nconst Wrapper = styled(Box)({\r\n borderRadius: '4px',\r\n boxShadow: 'rgba(0, 0, 0, 0.06) 0px 5px 22px, rgba(0, 0, 0, 0.04) 0px 0px 0px 0.5px',\r\n backgroundColor: '#fff'\r\n})\r\n"],"names":["CreateFilterPanel","params","FilterMenuInstance","CreateFilterMenu","SortMenuInstance","CreateFilterSort","FilterPanel","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","props","reason","renderSearchInput","_jsx","onCancel","onClose","onSubmit","f","v","_this$props$keyword","fields","getFieldsMatches","keyword","keys","Object","filter","x","_jsxs","MenuList","className","filterPanelClasses","list","map","i","_item$label","item","MenuItem","onClick","handleClick","children","label","toString","key","value","_inherits","FilterBarBase","_createClass","_this2","isOpen","Boolean","anchorEl","Popper","open","placement","transition","sx","zIndex","TransitionProps","_ref","Fade","_objectSpread","timeout","Wrapper","root","renderContent","styled","Box","borderRadius","boxShadow","backgroundColor"],"mappings":"+bAkBA,SAASA,EAAqBC,GAC5B,IAAMC,EAAqBC,EAAoBF,GACzCG,EAAmBC,IAEnBC,aAAY,SAAAA,IAAA,IAAAC,EAAAC,OAAAF,GAAA,IAAA,IAAAG,EAAAC,UAAAC,OAAAC,EAAAC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GA4Df,OA5DeP,EAAAQ,EAAAC,KAAAV,EAAAW,GAAAA,OAAAL,IAAAM,EAAAX,EAAA,iBAcA,WACd,OAAQA,EAAKY,MAAMC,QACjB,IAAK,cACH,OAAOb,EAAKc,oBACd,IAAK,eACH,OACEC,EAACpB,GACCqB,SAAUhB,EAAKY,MAAMK,QACrBC,SAAU,SAACC,EAAGC,GACZpB,EAAKY,MAAMM,UAAYlB,EAAKY,MAAMM,SAASC,EAAGC,GAC9CpB,EAAKY,MAAMK,SAAWjB,EAAKY,MAAMK,SACnC,IAGN,IAAK,aACH,OAAOF,EAAClB,EAAgB,QAI7Bc,EAAAX,EAAA,qBAEmB,WAAK,IAAAqB,EACvB,GAA0B,gBAAtBrB,EAAKY,MAAMC,OAA0B,OAAOE,QAChD,IAAMO,EAAStB,EAAKuB,iBAAiB7B,EAAO4B,OAA0B,QAApBD,EAAErB,EAAKY,MAAMY,eAAOH,IAAAA,EAAAA,EAAI,IACpEI,EAAOC,OAAOD,KAAKH,GAAQK,QAAO,SAACC,GAAC,QAAOA,KACjD,OACEC,EAACC,GAASC,UAAWC,EAAmBC,eACrCR,EAAKS,KAAI,SAACN,EAAGO,GAAK,IAAAC,EACXC,EAAO3C,EAAO4B,OAAOM,GAC3B,OACEC,EAACS,EAAQ,CAAwBP,UAAWC,EAAmBK,KAAME,QAAS,WAAF,OAAQvC,EAAKwC,YAAYZ,EAAE,EAAAa,SAAA,CACzF,QADyFL,EACpGC,aAAI,EAAJA,EAAMK,aAAKN,IAAAA,EAAAA,EAAIR,EAAEe,WAAU,KAAI3C,EAAKY,MAAMY,QAAO,MADrCI,EAAEe,WAAaR,EAIjC,IACAnC,EAAKY,MAAMY,SACVK,EAACS,EAAS,CAAAP,UAAWC,EAAmBK,KAAME,QAAS,WAAF,OAAQvC,EAAKwC,YAAY,SAAS,EAAAC,SAAA,CAAA,WAC5EzC,EAAKY,MAAMY,qBAK7Bb,EAAAX,EACa,eAAA,SAAC4C,GACR5C,EAAKY,MAAMM,UAChBlB,EAAKY,MAAMM,SAAS0B,EAAK,CAAEC,MAAO7C,EAAKY,MAAMY,aAC9CxB,CAAA,CAAA,OAAA8C,EAAA/C,EA5DuBgD,GA4DvBC,EAAAjD,EAAA,CAAA,CAAA6C,IAAA,SAAAC,MA3DD,WAAM,IAAAI,EAAAxC,KACEyC,EAASC,QAAQ1C,KAAKG,MAAMwC,cAAgB3C,KAAKG,MAAMY,SAAiC,gBAAtBf,KAAKG,MAAMC,QACnF,OACEE,EAACsC,EAAM,CAACD,SAAU3C,KAAKG,MAAMwC,SAAUE,KAAMJ,EAAQK,UAAU,eAAeC,YAAW,EAAAC,GAAI,CAAEC,OAAQ,eACpG,gBAAGC,EAAeC,EAAfD,gBAAe,OACjB5C,EAAC8C,EAAIC,EAAAA,KAAKH,GAAe,GAAA,CAAEI,QAAS,WAClChD,EAACiD,EAAQ,CAAAjC,UAAWC,EAAmBiC,cAAOhB,EAAKiB,oBAC9C,GAIf,IAAC,IAkDH,OAAOnE,CACT,CAIA,IAAMiE,EAAUG,EAAOC,EAAPD,CAAY,CAC1BE,aAAc,MACdC,UAAW,0EACXC,gBAAiB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{inherits as e,createClass as r,classCallCheck as n,callSuper as t,defineProperty as l}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as o,jsxs as a}from"react/jsx-runtime";import{Component as i}from"react";import{Chip as u,Typography as s}from"@mui/material";function c(){var c=function(){function c(){var e;n(this,c);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return e=t(this,c,[].concat(o)),l(e,"handleRemove",(function(r){e.props.onRemove&&e.props.onRemove(r)})),e}return e(c,i),r(c,[{key:"render",value:function(){var e,r=this;return Object.keys(null!==(e=this.props.filterState.filter)&&void 0!==e?e:{}).map((function(e,n){var t,l,i,c=null===(t=r.props.filterState.filter)||void 0===t?void 0:t[e],p=r.props.fields[e];return o(u,{onDelete:function(){return r.handleRemove(e)},size:"small",label:a(s,{component:"span",variant:"caption",children:[null!==(l=null!==(i=null==p?void 0:p.label)&&void 0!==i?i:null==e?void 0:e.toString())&&void 0!==l?l:"Search"," ",null==c?void 0:c.map((function(e){var r;return'"'.concat(null!==(r=e.label)&&void 0!==r?r:e.value,'"')})).join(" ")]})},"".concat(null==e?void 0:e.toString()).concat(n))}))}}])}();return c}export{c as default};
|
|
2
|
+
//# sourceMappingURL=create.filtered.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.filtered.js","sources":["../../src/filter-bar/create.filtered.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { Chip, Typography } from '@mui/material'\r\nimport { IFilterFields, IFilterModel, IFilterState } from './types'\r\n\r\ninterface IProps<T> {\r\n fields: IFilterFields<T>\r\n filterState: IFilterState<T>\r\n onRemove?: (key: keyof IFilterModel<T>) => void\r\n}\r\n\r\nfunction CreateFiltered<T>() {\r\n class Filtered extends Component<IProps<T>> {\r\n render() {\r\n const keys = Object.keys(this.props.filterState.filter ?? {}) as (keyof IFilterModel<T>)[]\r\n return keys.map((key, i) => {\r\n const item = this.props.filterState.filter?.[key]\r\n const config = this.props.fields[key]\r\n return (\r\n <Chip\r\n key={`${key?.toString()}${i}`}\r\n onDelete={() => this.handleRemove(key)}\r\n size='small'\r\n label={\r\n <Typography component='span' variant='caption'>\r\n {config?.label ?? key?.toString() ?? 'Search'} {item?.map((x) => `\"${x.label ?? x.value}\"`).join(' ')}\r\n </Typography>\r\n }\r\n />\r\n )\r\n })\r\n }\r\n\r\n handleRemove = (key: keyof IFilterModel<T>) => {\r\n if (!this.props.onRemove) return\r\n this.props.onRemove(key)\r\n }\r\n }\r\n return Filtered\r\n}\r\n\r\nexport default CreateFiltered\r\n"],"names":["CreateFiltered","Filtered","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","key","props","onRemove","_inherits","Component","_createClass","value","_this$props$filterSta","_this2","Object","keys","filterState","filter","map","i","_this2$props$filterSt","_ref","_config$label","item","config","fields","_jsx","Chip","onDelete","handleRemove","size","label","_jsxs","Typography","component","variant","children","toString","x","_x$label","join"],"mappings":"qRAUA,SAASA,IAAc,IACfC,aAAS,SAAAA,IAAA,IAAAC,EAAAC,OAAAF,GAAA,IAAA,IAAAG,EAAAC,UAAAC,OAAAC,EAAAC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAwBZ,OAxBYP,EAAAQ,EAAAC,KAAAV,EAAAW,GAAAA,OAAAL,IAAAM,EAAAX,EAqBE,gBAAA,SAACY,GACTZ,EAAKa,MAAMC,UAChBd,EAAKa,MAAMC,SAASF,MACrBZ,CAAA,CAAA,OAAAe,EAAAhB,EAxBoBiB,GAwBpBC,EAAAlB,EAAA,CAAA,CAAAa,IAAA,SAAAM,MAvBD,WAAM,IAAAC,EAAAC,EAAAX,KAEJ,OADaY,OAAOC,KAAkCH,QAA9BA,EAACV,KAAKI,MAAMU,YAAYC,kBAAML,EAAAA,EAAI,CAAA,GAC9CM,KAAI,SAACb,EAAKc,GAAK,IAAAC,EAAAC,EAAAC,EACnBC,EAAoCH,QAAhCA,EAAGP,EAAKP,MAAMU,YAAYC,kBAAMG,SAA7BA,EAAgCf,GACvCmB,EAASX,EAAKP,MAAMmB,OAAOpB,GACjC,OACEqB,EAACC,EAEC,CAAAC,SAAU,WAAF,OAAQf,EAAKgB,aAAaxB,EAAI,EACtCyB,KAAK,QACLC,MACEC,EAACC,EAAW,CAAAC,UAAU,OAAOC,QAAQ,UAClCC,SAAA,CAAgC,QAAhCf,UAAAC,EAAAE,aAAM,EAANA,EAAQO,aAAK,IAAAT,EAAAA,EAAIjB,aAAG,EAAHA,EAAKgC,kBAAUhB,IAAAA,EAAAA,EAAI,SAAW,IAAAE,aAAI,EAAJA,EAAML,KAAI,SAACoB,GAAC,IAAAC,EAAA,MAAA,IAAApC,OAAgBoC,QAAhBA,EAASD,EAAEP,aAAKQ,IAAAA,EAAAA,EAAID,EAAE3B,MAAK,IAAA,IAAK6B,KAAK,YALhGrC,OAAGE,aAAAA,EAAAA,EAAKgC,YAAUlC,OAAGgB,GAUhC,GACF,IAAC,IAOH,OAAO3B,CACT"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{inherits as r,createClass as e,classCallCheck as i,callSuper as n}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as l,jsx as t}from"react/jsx-runtime";import{List as a,ListItem as c,ListItemButton as s,ListItemText as d}from"@mui/material";import h from"./base.js";function m(m){var u=function(){function m(){return i(this,m),n(this,m,arguments)}return r(m,h),e(m,[{key:"render",value:function(){return l(a,{disablePadding:!0,children:[t(c,{children:t(s,{children:t(d,{children:"Item 1"})})}),t(c,{children:t(s,{children:"Item 2"})}),t(c,{children:t(s,{children:"Item 3"})}),t(c,{children:t(s,{children:"Item 4"})}),t(c,{children:t(s,{children:"Item 5"})})]})}}])}();return u}export{m as default};
|
|
2
|
+
//# sourceMappingURL=create.sort-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.sort-menu.js","sources":["../../src/filter-bar/create.sort-menu.tsx"],"sourcesContent":["import { List, ListItem, ListItemButton, ListItemText } from '@mui/material'\r\nimport FilterBarBase from './base'\r\nimport { IFilterPanelParams, IFilterPannelSubmitFunc } from './types'\r\n\r\ninterface IProps<T> {\r\n onSubmit?: IFilterPannelSubmitFunc<T>\r\n}\r\n\r\ninterface IState<T> {}\r\n\r\nfunction CreateFilterSort<T>(params: IFilterPanelParams<T>): React.ComponentType<IProps<T>> {\r\n class FilterSort extends FilterBarBase<IProps<T>, IState<T>, T> {\r\n render() {\r\n // const sortFields = this.getSortFields(params.fields)\r\n // const keys = Object.keys(sortFields) as (keyof FilterFields<T>)[]\r\n return (\r\n <List disablePadding>\r\n <ListItem>\r\n <ListItemButton>\r\n <ListItemText>Item 1</ListItemText>\r\n </ListItemButton>\r\n </ListItem>\r\n <ListItem>\r\n <ListItemButton>Item 2</ListItemButton>\r\n </ListItem>\r\n <ListItem>\r\n <ListItemButton>Item 3</ListItemButton>\r\n </ListItem>\r\n <ListItem>\r\n <ListItemButton>Item 4</ListItemButton>\r\n </ListItem>\r\n <ListItem>\r\n <ListItemButton>Item 5</ListItemButton>\r\n </ListItem>\r\n </List>\r\n )\r\n }\r\n }\r\n\r\n return FilterSort\r\n}\r\n\r\nexport default CreateFilterSort\r\n"],"names":["CreateFilterSort","params","FilterSort","_classCallCheck","_callSuper","this","arguments","_inherits","FilterBarBase","_createClass","key","value","_jsxs","List","disablePadding","children","_jsx","ListItem","ListItemButton","ListItemText"],"mappings":"4RAUA,SAASA,EAAoBC,GAA6B,IAClDC,aAAW,SAAAA,IAAA,OAAAC,OAAAD,GAAAE,EAAAC,KAAAH,EAAAI,UAAA,CAAA,OAAAC,EAAAL,EAAQM,GAARC,EAAAP,EAAA,CAAA,CAAAQ,IAAA,SAAAC,MACf,WAGE,OACEC,EAACC,EAAI,CAACC,gBACJ,EAAAC,SAAA,CAAAC,EAACC,EAAQ,CAAAF,SACPC,EAACE,YACCF,EAACG,EAAkC,CAAAJ,SAAA,eAGvCC,EAACC,EAAQ,CAAAF,SACPC,EAACE,EAAsC,CAAAH,SAAA,aAEzCC,EAACC,EACC,CAAAF,SAAAC,EAACE,EAAc,CAAAH,SAAA,aAEjBC,EAACC,EAAQ,CAAAF,SACPC,EAACE,yBAEHF,EAACC,EACC,CAAAF,SAAAC,EAACE,EAAsC,CAAAH,SAAA,eAI/C,IAAC,IAGH,OAAOb,CACT"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"react/jsx-runtime";import"@mui/material";import{EFieldValidate as e,ESearchMatch as t}from"./types.js";import l from"./create.filter-bar.js";var a;!function(e){e.Val1="Val1",e.Val2="Val2",e.Val3="Val3"}(a||(a={})),l({helpNotes:{items:["Id","Title","Asset Id"]},fields:{Id:{type:"string",searchMatches:{rule:t.Guid}},Title:{type:"string",searchMatches:{rule:t.AlwaysVisible}},AssetId:{type:"string",label:"Asset ID"},Link:{type:"string",searchMatches:{rule:t.Link},validate:{rule:e.Link}},YoutubeLink:{type:"string",label:"Youtube",searchMatches:{rule:t.LinkYoutube},validate:{rule:e.LinkYoutube}},Enum:{type:"select",label:"Enum Field",options:[{value:a.Val1},{value:a.Val2},{value:a.Val3,label:"Value 3"}]}}});
|
|
2
|
+
//# sourceMappingURL=demo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo.js","sources":["../../src/filter-bar/demo.tsx"],"sourcesContent":["import { FC } from 'react'\r\nimport { Container } from '@mui/material'\r\nimport { EFieldValidate, ESearchMatch } from './types'\r\nimport CreateFilterBar from './create.filter-bar'\r\n\r\nenum EDataEnum {\r\n 'Val1' = 'Val1',\r\n 'Val2' = 'Val2',\r\n 'Val3' = 'Val3'\r\n}\r\n\r\ninterface Data {\r\n Id: string\r\n Title: string\r\n AssetId: string\r\n YoutubeLink: string\r\n Link: string\r\n Enum: EDataEnum\r\n}\r\n\r\nconst FilterBarInstance = CreateFilterBar<Data>({\r\n helpNotes: { items: ['Id', 'Title', 'Asset Id'] },\r\n fields: {\r\n Id: { type: 'string', searchMatches: { rule: ESearchMatch.Guid } },\r\n Title: { type: 'string', searchMatches: { rule: ESearchMatch.AlwaysVisible } },\r\n AssetId: { type: 'string', label: 'Asset ID' },\r\n Link: { type: 'string', searchMatches: { rule: ESearchMatch.Link }, validate: { rule: EFieldValidate.Link } },\r\n YoutubeLink: {\r\n type: 'string',\r\n label: 'Youtube',\r\n searchMatches: { rule: ESearchMatch.LinkYoutube },\r\n validate: { rule: EFieldValidate.LinkYoutube }\r\n },\r\n Enum: {\r\n type: 'select',\r\n label: 'Enum Field',\r\n options: [{ value: EDataEnum.Val1 }, { value: EDataEnum.Val2 }, { value: EDataEnum.Val3, label: 'Value 3' }]\r\n }\r\n }\r\n})\r\n\r\nconst FilterBarDemo: FC = () => {\r\n return (\r\n <Container maxWidth='xl' sx={{ padding: '50px 0' }}>\r\n <FilterBarInstance />\r\n </Container>\r\n )\r\n}\r\n\r\nexport default FilterBarDemo\r\n"],"names":["EDataEnum","CreateFilterBar","helpNotes","items","fields","Id","type","searchMatches","rule","ESearchMatch","Guid","Title","AlwaysVisible","AssetId","label","Link","validate","EFieldValidate","YoutubeLink","LinkYoutube","Enum","options","value","Val1","Val2","Val3"],"mappings":"oJAKA,IAAKA,GAAL,SAAKA,GACHA,EAAA,KAAA,OACAA,EAAA,KAAA,OACAA,EAAA,KAAA,MACD,CAJD,CAAKA,IAAAA,EAIJ,CAAA,IAWyBC,EAAsB,CAC9CC,UAAW,CAAEC,MAAO,CAAC,KAAM,QAAS,aACpCC,OAAQ,CACNC,GAAI,CAAEC,KAAM,SAAUC,cAAe,CAAEC,KAAMC,EAAaC,OAC1DC,MAAO,CAAEL,KAAM,SAAUC,cAAe,CAAEC,KAAMC,EAAaG,gBAC7DC,QAAS,CAAEP,KAAM,SAAUQ,MAAO,YAClCC,KAAM,CAAET,KAAM,SAAUC,cAAe,CAAEC,KAAMC,EAAaM,MAAQC,SAAU,CAAER,KAAMS,EAAeF,OACrGG,YAAa,CACXZ,KAAM,SACNQ,MAAO,UACPP,cAAe,CAAEC,KAAMC,EAAaU,aACpCH,SAAU,CAAER,KAAMS,EAAeE,cAEnCC,KAAM,CACJd,KAAM,SACNQ,MAAO,aACPO,QAAS,CAAC,CAAEC,MAAOtB,EAAUuB,MAAQ,CAAED,MAAOtB,EAAUwB,MAAQ,CAAEF,MAAOtB,EAAUyB,KAAMX,MAAO"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var i,n;!function(i){i.AlwaysVisible="AlwaysVisible",i.MatchOnly="MatchOnly",i.LinkYoutube="LinkYoutube",i.Link="Link",i.Guid="Guid"}(i||(i={})),function(i){i.LinkYoutube="LinkYoutube",i.Link="Link",i.Custom="Custom"}(n||(n={}));export{n as EFieldValidate,i as ESearchMatch};
|
|
2
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../src/filter-bar/types.ts"],"sourcesContent":["export type FilterReason = 'searchInput' | 'filterButton' | 'sortButton'\r\n\r\ntype Dictionary<T, V, E = any> = {\r\n [key in keyof T | keyof E]?: V\r\n}\r\n\r\ntype SingleOrArray<T> = T | T[]\r\n\r\n//#region Search Match\r\nexport enum ESearchMatch {\r\n AlwaysVisible = 'AlwaysVisible',\r\n MatchOnly = 'MatchOnly',\r\n LinkYoutube = 'LinkYoutube',\r\n Link = 'Link',\r\n Guid = 'Guid'\r\n}\r\n\r\ninterface ISearchMatchBase {\r\n rule: ESearchMatch\r\n}\r\n\r\ninterface ISearchMatchMatchOnly extends ISearchMatchBase {\r\n rule: ESearchMatch.MatchOnly\r\n match: (value: string) => boolean\r\n}\r\n\r\ninterface ISearchMatchQuickly extends ISearchMatchBase {\r\n rule: ESearchMatch.AlwaysVisible | ESearchMatch.LinkYoutube | ESearchMatch.Link | ESearchMatch.Guid\r\n}\r\n\r\ntype IFieldSearchMatch = ISearchMatchMatchOnly | ISearchMatchQuickly\r\n//#endregion\r\n\r\n//#region Sort\r\n// interface SortModel<T> {\r\n// value: 'asc' | 'desc'\r\n// }\r\n//\r\n\r\n//#region Validate\r\nexport enum EFieldValidate {\r\n LinkYoutube = 'LinkYoutube',\r\n Link = 'Link',\r\n Custom = 'Custom'\r\n}\r\n\r\ninterface IFieldValidateBase {\r\n rule: EFieldValidate\r\n}\r\ninterface IFieldValidateCustom extends IFieldValidateBase {\r\n rule: EFieldValidate.Custom\r\n custom: (value: string) => boolean\r\n}\r\n\r\ninterface IFieldValidateQuickly extends IFieldValidateBase {\r\n rule: EFieldValidate.Link | EFieldValidate.LinkYoutube\r\n}\r\n\r\ntype IFieldValidate = IFieldValidateQuickly | IFieldValidateCustom\r\n//#endregion\r\n\r\n//#region Filter Field\r\ninterface IFilterFieldBase {\r\n label?: string\r\n /** @default string */\r\n type?: 'string' | 'select'\r\n searchMatches?: SingleOrArray<IFieldSearchMatch>\r\n /** @default true */\r\n sortable?: boolean\r\n /** @default Required */\r\n validate?: SingleOrArray<IFieldValidate>\r\n}\r\n\r\nexport interface IFilterFieldString extends IFilterFieldBase {\r\n type?: 'string'\r\n}\r\n\r\nexport interface IFilterFieldSelect extends IFilterFieldBase {\r\n type: 'select'\r\n options: { value: string; label?: string }[]\r\n}\r\n\r\nexport type IFilterField = IFilterFieldString | IFilterFieldSelect\r\n\r\nexport type IFilterFields<T> = Dictionary<T, IFilterField, { Search?: string }>\r\n\r\nexport interface IFilterItemModel {\r\n value?: string | number | boolean\r\n label?: string\r\n /** @default true */\r\n sortable?: boolean\r\n}\r\n\r\nexport type IFilterModel<T> = Dictionary<T, IFilterItemModel[], { Search?: string }>\r\n\r\nexport interface IFilterState<T> {\r\n filter?: IFilterModel<T>\r\n details?: 'add' | 'remove'\r\n}\r\n//#endregion\r\nexport interface IFilterPanelParams<T> {\r\n fields: IFilterFields<T>\r\n}\r\n\r\nexport type IFilterPannelSubmitFunc<T> = (filed: keyof IFilterModel<T>, value: IFilterItemModel) => void\r\n"],"names":["ESearchMatch","EFieldValidate"],"mappings":"IASYA,EA+BAC,GA/BZ,SAAYD,GACVA,EAAA,cAAA,gBACAA,EAAA,UAAA,YACAA,EAAA,YAAA,cACAA,EAAA,KAAA,OACAA,EAAA,KAAA,MACD,CAND,CAAYA,IAAAA,EAMX,CAAA,IAyBD,SAAYC,GACVA,EAAA,YAAA,cACAA,EAAA,KAAA,OACAA,EAAA,OAAA,QACD,CAJD,CAAYA,IAAAA,EAIX,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as t,Fragment as i}from"react/jsx-runtime";import{styled as e,Box as n,Tooltip as l,Fade as o,IconButton as r,Typography as m}from"@mui/material";import a from"@mui/icons-material/Close";import c from"../components/help-tooltip.js";var s=function(i){return t(u,{children:t(l,{title:"Remove filter",children:t(o,{in:i.visibled,unmountOnExit:!0,children:t(r,{size:"small",onClick:i.onClick,children:t(a,{fontSize:"small"})})})})})},p=function(e){var n;return!e.items||e.items.length<1?t(i,{}):t(u,{children:t(c,{small:!0,title:null!==(n=e.title)&&void 0!==n?n:"The search includes",children:t(d,{children:e.items.map((function(i,e){return t(m,{component:"li",variant:"body2",children:i},e)}))})})})},u=e(n)({display:"flex",flex:"0 0 auto",width:"40px",height:"40px",justifyContent:"center",alignItems:"center"}),d=e("ul")({paddingLeft:"1.7rem",marginBottom:0,li:{position:"relative",textAlign:"justify","&::before":{content:'"►"',display:"block",position:"absolute",top:"50%",right:"calc(100% + 6px)",transform:"translateY(-50%)",fontSize:"0.9em"}}});export{s as ButtonClear,p as FilterHelpNotes};
|
|
2
|
+
//# sourceMappingURL=ui.units.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.units.js","sources":["../../src/filter-bar/ui.units.tsx"],"sourcesContent":["import React, { FC } from 'react'\r\nimport { Box, Fade, IconButton, IconButtonProps, styled, Tooltip, Typography } from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close'\r\nimport HelpTooltip from '../components/help-tooltip'\r\n\r\ninterface ButtonClearProps {\r\n visibled?: boolean\r\n onClick: IconButtonProps['onClick']\r\n}\r\n\r\nexport const ButtonClear: FC<ButtonClearProps> = (props) => (\r\n <WrapIcon>\r\n <Tooltip title='Remove filter'>\r\n <Fade in={props.visibled} unmountOnExit>\r\n <IconButton size='small' onClick={props.onClick}>\r\n <CloseIcon fontSize='small' />\r\n </IconButton>\r\n </Fade>\r\n </Tooltip>\r\n </WrapIcon>\r\n)\r\n\r\nexport interface FilterHelpNotesProps {\r\n title?: string\r\n items?: string[]\r\n}\r\n\r\nexport const FilterHelpNotes: FC<FilterHelpNotesProps> = (props) => {\r\n if (!props.items || props.items.length < 1) return <></>\r\n return (\r\n <WrapIcon>\r\n <HelpTooltip small title={props.title ?? 'The search includes'}>\r\n <WrapList>\r\n {props.items.map((item, index) => (\r\n <Typography key={index} component='li' variant='body2'>\r\n {item}\r\n </Typography>\r\n ))}\r\n </WrapList>\r\n </HelpTooltip>\r\n </WrapIcon>\r\n )\r\n}\r\n\r\nconst WrapIcon = styled(Box)({\r\n display: 'flex',\r\n flex: '0 0 auto',\r\n width: '40px',\r\n height: '40px',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n})\r\n\r\nconst WrapList = styled('ul')({\r\n paddingLeft: '1.7rem',\r\n marginBottom: 0,\r\n li: {\r\n position: 'relative',\r\n textAlign: 'justify',\r\n '&::before': {\r\n content: '\"►\"',\r\n display: 'block',\r\n position: 'absolute',\r\n top: '50%',\r\n right: 'calc(100% + 6px)',\r\n transform: 'translateY(-50%)',\r\n fontSize: '0.9em'\r\n }\r\n }\r\n})\r\n"],"names":["ButtonClear","props","_jsx","WrapIcon","children","Tooltip","title","Fade","in","visibled","unmountOnExit","IconButton","size","onClick","CloseIcon","fontSize","FilterHelpNotes","_props$title","items","length","HelpTooltip","small","WrapList","map","item","index","Typography","component","variant","styled","Box","display","flex","width","height","justifyContent","alignItems","paddingLeft","marginBottom","li","position","textAlign","content","top","right","transform"],"mappings":"uPAUaA,EAAoC,SAACC,GAAK,OACrDC,EAACC,EAAQ,CAAAC,SACPF,EAACG,EAAO,CAACC,MAAM,gBAAeF,SAC5BF,EAACK,EAAK,CAAAC,GAAIP,EAAMQ,SAAUC,eAAa,EAAAN,SACrCF,EAACS,EAAW,CAAAC,KAAK,QAAQC,QAASZ,EAAMY,iBACtCX,EAACY,EAAU,CAAAC,SAAS,iBAIjB,EAQAC,EAA4C,SAACf,GAAS,IAAAgB,EACjE,OAAKhB,EAAMiB,OAASjB,EAAMiB,MAAMC,OAAS,EAAUjB,QAEjDA,EAACC,EACC,CAAAC,SAAAF,EAACkB,EAAY,CAAAC,OAAM,EAAAf,MAAkB,QAAbW,EAAEhB,EAAMK,aAAK,IAAAW,EAAAA,EAAI,sBAAqBb,SAC5DF,EAACoB,EACE,CAAAlB,SAAAH,EAAMiB,MAAMK,KAAI,SAACC,EAAMC,GAAK,OAC3BvB,EAACwB,EAAuB,CAAAC,UAAU,KAAKC,QAAQ,QAAOxB,SACnDoB,GADcC,EAGlB,SAKX,EAEMtB,EAAW0B,EAAOC,EAAPD,CAAY,CAC3BE,QAAS,OACTC,KAAM,WACNC,MAAO,OACPC,OAAQ,OACRC,eAAgB,SAChBC,WAAY,WAGRd,EAAWO,EAAO,KAAPA,CAAa,CAC5BQ,YAAa,SACbC,aAAc,EACdC,GAAI,CACFC,SAAU,WACVC,UAAW,UACX,YAAa,CACXC,QAAS,MACTX,QAAS,QACTS,SAAU,WACVG,IAAK,MACLC,MAAO,mBACPC,UAAW,mBACX9B,SAAU"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{inherits as e,createClass as t,objectSpread2 as r,classCallCheck as o,callSuper as a,defineProperty as i,objectWithoutProperties as n,asyncToGenerator as l,regeneratorRuntime as s}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as
|
|
1
|
+
import{inherits as e,createClass as t,objectSpread2 as r,classCallCheck as o,callSuper as a,defineProperty as i,objectWithoutProperties as n,asyncToGenerator as l,regeneratorRuntime as s}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as p,jsx as u,Fragment as d}from"react/jsx-runtime";import{Component as c}from"react";import{styled as m,Box as h,TextField as v,InputAdornment as f,IconButton as g,Collapse as b,CircularProgress as x}from"@mui/material";import S from"@mui/icons-material/ContentPaste";import{mergeObjects as k}from"../utils/helpers.js";import"../utils/query-param.js";import"../utils/dayjs-config.js";import{getErrorMessage as y}from"./helper.js";import"../components/breadcrumbs.js";import"clipboard-copy";import"@mui/icons-material/Done";import"@mui/icons-material/ContentCopy";import"../components/create.multi-select-dropdown.js";import j from"../components/image-with-fallback.js";import"../components/help-tooltip.js";import"../components/text-editor.js";var P=["srcValue","element","alt","fallbackSrc","debounceDelay"],C=function(m){return function(){function x(e){var t,p;return o(this,x),p=a(this,x,[e]),i(p,"_cachedSlots",{}),i(p,"mapTextFieldProps",(function(){var e,t,o,a,i=y(p.props.messageErrors,p.props.name),n={fullWidth:!0,variant:"outlined",name:null===(e=p.props.name)||void 0===e?void 0:e.toString(),error:i.error,helperText:i.message,disabled:p.props.disabled,onBlur:function(){p.props.name&&p.props.onBlur&&p.props.onBlur(p.props.name)},label:p.getLabel(),placeholder:p.props.placeholder,InputLabelProps:p.state.value?{shrink:!0}:{},value:null!==(t=p.state.value)&&void 0!==t?t:"",onChange:p.handleChange};return!0===p.slots.pastenable&&(n.InputProps={endAdornment:u(f,{position:"end",children:u(g,{onClick:p.handlePaste,edge:"end",children:u(S,{})})})}),null!==(o=p.slots)&&void 0!==o&&o.maxLength&&(n.inputProps=r(r({},n.inputProps),{},{maxLength:p.slots.maxLength})),k({},n,null===(a=p.slots)||void 0===a?void 0:a.textFieldProps)})),i(p,"renderImageSide",(function(e){var t,o="left"===e?p.slots.imageLeft:p.slots.imageRight;if(!o)return u(d,{});var a=o.srcValue,i=o.element,l=o.alt,s=void 0===l?"input-image":l,c=o.fallbackSrc,m=void 0===c?"":c,h=o.debounceDelay,v=void 0===h?700:h,f=n(o,P);if(i)return u(w,{children:u(i,{value:p.state.value,model:p.props.data})});var g=a?a(p.state.value,p.props.data):null!==(t=f.src)&&void 0!==t?t:p.state.value,x={src:g,alt:s,fallbackSrc:m,debounceDelay:v};return u(b,{sx:{mx:"10px"},in:!!g,unmountOnExit:!0,orientation:"horizontal",children:u(w,{children:u(j,r(r(r({},f),x),{},{loading:u(L,{})}))})})})),i(p,"mergeSlots",(function(e){var t=k({},m,e),o=t.imageLeft,a=t.imageRight;return null!=o&&o.mirror&&!a?(t.imageRight=r({},o),delete t.imageRight.mirror):null!=a&&a.mirror&&!o&&(t.imageLeft=r({},a),delete t.imageLeft.mirror),t})),i(p,"getLabel",(function(){var e,t,r;if(p.props.label)return null!==(e=p.slots)&&void 0!==e&&e.maxLength?"".concat(p.props.label," (").concat(null!==(t=null===(r=p.state.value)||void 0===r?void 0:r.length)&&void 0!==t?t:0,"/").concat(p.slots.maxLength,")"):p.props.label})),i(p,"handleChange",(function(e){p.setState((function(t){return r(r({},t),{},{value:e.target.value})}))})),i(p,"handlePaste",l(s().mark((function e(){var t;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,navigator.clipboard.readText();case 3:t=e.sent,p.setState({value:t}),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.error("Error clipboard:",e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})))),p._cachedSlots=null!==(t=p.mergeSlots(e.slots))&&void 0!==t?t:{},p.state={value:p.defaulValue},p}return e(x,c),t(x,[{key:"slots",get:function(){return this._cachedSlots}},{key:"defaulValue",get:function(){var e,t,r=this.props,o=r.data,a=r.name;return null!==(e=this.props.defaultValue)&&void 0!==e?e:o&&a?null===(t=o[a])||void 0===t?void 0:t.toString():void 0}},{key:"componentDidUpdate",value:function(e){e.slots!==this.props.slots&&(this._cachedSlots=this.mergeSlots(this.props.slots))}},{key:"shouldComponentUpdate",value:function(e){var t=this.props,r=t.name;t.slots;if(r){var o,a,i,n,l=null!==(o=null===(a=this.props.data)||void 0===a||null===(a=a[r])||void 0===a?void 0:a.toString())&&void 0!==o?o:"",s=null!==(i=null===(n=e.data)||void 0===n||null===(n=n[r])||void 0===n?void 0:n.toString())&&void 0!==i?i:"";if(l!==s)return this.setState({value:s}),!1}return e.slots,!0}},{key:"render",value:function(){var e;return p(h,{sx:{display:"flex",alignItems:"center"},children:[!!this.props.disabled&&u("input",{hidden:!0,name:null===(e=this.props.name)||void 0===e?void 0:e.toString(),defaultValue:this.defaulValue}),this.renderImageSide("left"),u(v,r({},this.mapTextFieldProps())),this.renderImageSide("right")]})}}])}()},L=function(){return u("div",{children:u(x,{size:24})})},w=m(h)({fontSize:"1rem",height:"var(--input-base-image-size, 54px)",width:"var(--input-base-image-size, 54px)",position:"relative",borderRadius:"8px",boxShadow:"rgba(0, 0, 0, 0.16) 0px 1px 4px",overflow:"hidden","& > img":{position:"absolute",top:0,left:0,backgroundRepeat:"no-repeat",height:"100%",width:"100%",backgroundSize:"contain"},"& > div":{position:"absolute",top:0,left:0,height:"100%",width:"100%",background:"#fafafa",zIndex:1,display:"flex",alignItems:"center",justifyContent:"center"}});export{C as default};
|
|
2
2
|
//# sourceMappingURL=create.input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.input.js","sources":["../../src/form/create.input.tsx"],"sourcesContent":["import React, { Component, ComponentType, FC } from 'react'\r\nimport { Box, CircularProgress, Collapse, IconButton, InputAdornment, styled, TextField, TextFieldProps } from '@mui/material'\r\nimport ContentPasteIcon from '@mui/icons-material/ContentPaste'\r\nimport { mergeObjects } from '../utils'\r\nimport { IFormInputBase } from './types'\r\nimport { getErrorMessage } from './helper'\r\nimport { ImageWithFallback, IImageWithFallbackPropsOwner } from '../components'\r\n\r\nexport interface InputBaseImage<T> extends Partial<IImageWithFallbackPropsOwner> {\r\n srcValue?: (value: any, model?: Partial<T>) => string\r\n element?: React.ComponentType<{ value: any; model?: Partial<T> }>\r\n mirror?: boolean\r\n}\r\n\r\nexport interface IInputSlots<T> {\r\n maxLength?: number\r\n textFieldProps?: TextFieldProps\r\n pastenable?: boolean\r\n imageLeft?: InputBaseImage<T>\r\n imageRight?: InputBaseImage<T>\r\n}\r\n\r\nexport interface IInputProps<T> extends IFormInputBase<T> {\r\n slots?: IInputSlots<T>\r\n}\r\n\r\nexport interface IInputState {\r\n value?: string\r\n}\r\n\r\nexport interface IInputParams<T> extends IInputSlots<T> {}\r\n\r\nconst CreateInput = function <T>(params?: IInputParams<T>): ComponentType<IInputProps<T>> {\r\n class InputBase extends Component<IInputProps<T>, IInputState> {\r\n private _cachedSlots: IInputSlots<T> = {}\r\n constructor(props: IInputProps<T>) {\r\n super(props)\r\n this._cachedSlots = this.mergeSlots(props.slots) ?? {}\r\n this.state = { value: this.defaulValue }\r\n }\r\n\r\n get slots() {\r\n return this._cachedSlots\r\n }\r\n\r\n get defaulValue(): string {\r\n const { data, name } = this.props\r\n return this.props.defaultValue ?? (!!data && !!name ? data[name]?.toString() : undefined)\r\n }\r\n\r\n componentDidUpdate(prevProps: IInputProps<T>) {\r\n if (prevProps.slots !== this.props.slots) {\r\n this._cachedSlots = this.mergeSlots(this.props.slots)\r\n }\r\n }\r\n\r\n shouldComponentUpdate(nextProps: Readonly<IInputProps<T>>): boolean {\r\n const { name, slots } = this.props\r\n if (!!name) {\r\n const currentDataValue = this.props.data?.[name]?.toString() ?? ''\r\n const nextDataValue = nextProps.data?.[name]?.toString() ?? ''\r\n if (currentDataValue !== nextDataValue) {\r\n this.setState({ value: nextDataValue })\r\n return false\r\n }\r\n }\r\n\r\n if (slots !== nextProps.slots) {\r\n return true\r\n }\r\n return true\r\n }\r\n\r\n mapTextFieldProps = (): TextFieldProps => {\r\n const errorMessage = getErrorMessage(this.props.messageErrors, this.props.name)\r\n const tfp: TextFieldProps = {\r\n fullWidth: true,\r\n variant: 'outlined',\r\n name: this.props.name?.toString(),\r\n error: errorMessage.error,\r\n helperText: errorMessage.message,\r\n disabled: this.props.disabled,\r\n onBlur: () => {\r\n if (!this.props.name) return\r\n this.props.onBlur && this.props.onBlur(this.props.name)\r\n },\r\n label: this.getLabel(),\r\n placeholder: this.props.placeholder,\r\n InputLabelProps: !!this.state.value ? { shrink: true } : {},\r\n value: this.state.value ?? '',\r\n onChange: this.handleChange\r\n }\r\n if (this.slots.pastenable === true) {\r\n tfp.InputProps = {\r\n endAdornment: (\r\n <InputAdornment position='end'>\r\n <IconButton onClick={this.handlePaste} edge='end'>\r\n <ContentPasteIcon />\r\n </IconButton>\r\n </InputAdornment>\r\n )\r\n }\r\n }\r\n if (this.slots?.maxLength) tfp.inputProps = { ...tfp.inputProps, maxLength: this.slots.maxLength }\r\n return mergeObjects<TextFieldProps>({}, tfp, this.slots?.textFieldProps)\r\n }\r\n\r\n //#region Render\r\n render() {\r\n return (\r\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\r\n {!!this.props.disabled && <input hidden name={this.props.name?.toString()} defaultValue={this.defaulValue} />}\r\n {this.renderImageSide('left')}\r\n <TextField {...this.mapTextFieldProps()} />\r\n {this.renderImageSide('right')}\r\n </Box>\r\n )\r\n }\r\n\r\n renderImageSide = (side: 'left' | 'right') => {\r\n const image = side === 'left' ? this.slots.imageLeft : this.slots.imageRight\r\n if (!image) return <></>\r\n const { srcValue, element, alt = 'input-image', fallbackSrc = '', debounceDelay = 700, ...imageOther } = image\r\n if (element) {\r\n const Element = element\r\n return (\r\n <WrapImage>\r\n <Element value={this.state.value} model={this.props.data} />\r\n </WrapImage>\r\n )\r\n }\r\n const src = srcValue ? srcValue(this.state.value, this.props.data) : imageOther.src ?? this.state.value\r\n const imageProps: IImageWithFallbackPropsOwner = { src, alt, fallbackSrc, debounceDelay }\r\n return (\r\n <Collapse sx={{ mx: '10px' }} in={!!src} unmountOnExit orientation='horizontal'>\r\n <WrapImage>\r\n <ImageWithFallback {...imageOther} {...imageProps} loading={<LoadingCircularProgress />} />\r\n </WrapImage>\r\n </Collapse>\r\n )\r\n }\r\n //#endregion\r\n\r\n private mergeSlots = (currentSlots?: IInputSlots<T>): IInputSlots<T> => {\r\n const base = mergeObjects<IInputSlots<T>>({}, params, currentSlots)\r\n const { imageLeft, imageRight } = base\r\n\r\n // mirror from left to right\r\n if (imageLeft?.mirror && !imageRight) {\r\n base.imageRight = { ...imageLeft }\r\n delete base.imageRight.mirror\r\n }\r\n // mirror from right to left\r\n else if (imageRight?.mirror && !imageLeft) {\r\n base.imageLeft = { ...imageRight }\r\n delete base.imageLeft.mirror\r\n }\r\n\r\n return base\r\n }\r\n\r\n getLabel = () => {\r\n if (!this.props.label) return\r\n if (!this.slots?.maxLength) return this.props.label\r\n return `${this.props.label} (${this.state.value?.length ?? 0}/${this.slots.maxLength})`\r\n }\r\n\r\n handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n this.setState((st) => ({ ...st, value: event.target.value }))\r\n }\r\n\r\n handlePaste = async () => {\r\n try {\r\n const clipboardText = await navigator.clipboard.readText()\r\n this.setState({ value: clipboardText })\r\n } catch (error) {\r\n console.error('Error clipboard:', error)\r\n }\r\n }\r\n }\r\n return InputBase\r\n}\r\n\r\nexport default CreateInput\r\n\r\n// export type InputTextType<T> = ReturnType<typeof CreateInputBase<T>>\r\n\r\nconst LoadingCircularProgress: FC = () => (\r\n <div>\r\n <CircularProgress size={24} />\r\n </div>\r\n)\r\n\r\nconst WrapImage = styled(Box)({\r\n fontSize: '1rem',\r\n height: 'var(--input-base-image-size, 54px)',\r\n width: 'var(--input-base-image-size, 54px)',\r\n position: 'relative',\r\n borderRadius: '8px',\r\n boxShadow: 'rgba(0, 0, 0, 0.16) 0px 1px 4px',\r\n overflow: 'hidden',\r\n '& > img': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n backgroundRepeat: 'no-repeat',\r\n height: '100%',\r\n width: '100%',\r\n backgroundSize: 'contain'\r\n },\r\n '& > div': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n height: '100%',\r\n width: '100%',\r\n background: '#fafafa',\r\n zIndex: 1,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center'\r\n }\r\n})\r\n"],"names":["CreateInput","params","InputBase","props","_this$mergeSlots","_this","_classCallCheck","_callSuper","_defineProperty","_this$props$name","_this$state$value","_this$slots","_this$slots2","errorMessage","getErrorMessage","messageErrors","name","tfp","fullWidth","variant","toString","error","helperText","message","disabled","onBlur","label","getLabel","placeholder","InputLabelProps","state","value","shrink","onChange","handleChange","slots","pastenable","InputProps","endAdornment","_jsx","InputAdornment","position","children","IconButton","onClick","handlePaste","edge","ContentPasteIcon","maxLength","inputProps","_objectSpread","mergeObjects","textFieldProps","side","_imageOther$src","image","imageLeft","imageRight","srcValue","element","_image$alt","alt","_image$fallbackSrc","fallbackSrc","_image$debounceDelay","debounceDelay","imageOther","_objectWithoutProperties","_excluded","WrapImage","model","data","src","imageProps","Collapse","sx","mx","in","unmountOnExit","orientation","ImageWithFallback","loading","LoadingCircularProgress","currentSlots","base","mirror","_this$slots3","_this$state$value$len","_this$state$value2","concat","length","event","setState","st","target","_asyncToGenerator","_regeneratorRuntime","mark","_callee","clipboardText","wrap","_context","prev","next","navigator","clipboard","readText","sent","t0","console","stop","_cachedSlots","mergeSlots","defaulValue","_inherits","Component","_createClass","key","get","this","_this$props$defaultVa","_data$name","_this$props","defaultValue","undefined","prevProps","nextProps","_this$props2","_this$props$data$name","_this$props$data","_nextProps$data$name$","_nextProps$data","currentDataValue","nextDataValue","_this$props$name2","_jsxs","Box","display","alignItems","hidden","renderImageSide","TextField","mapTextFieldProps","CircularProgress","size","styled","fontSize","height","width","borderRadius","boxShadow","overflow","top","left","backgroundRepeat","backgroundSize","background","zIndex","justifyContent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create.input.js","sources":["../../src/form/create.input.tsx"],"sourcesContent":["import React, { Component, ComponentType, FC } from 'react'\r\nimport { Box, CircularProgress, Collapse, IconButton, InputAdornment, styled, TextField, TextFieldProps } from '@mui/material'\r\nimport ContentPasteIcon from '@mui/icons-material/ContentPaste'\r\nimport { mergeObjects } from '../utils'\r\nimport { IFormInputBase } from './types'\r\nimport { getErrorMessage } from './helper'\r\nimport { ImageWithFallback, IImageWithFallbackPropsOwner } from '../components'\r\n\r\nexport interface InputBaseImage<T> extends Partial<IImageWithFallbackPropsOwner> {\r\n srcValue?: (value: any, model?: Partial<T>) => string\r\n element?: React.ComponentType<{ value: any; model?: Partial<T> }>\r\n mirror?: boolean\r\n}\r\n\r\nexport interface IInputSlots<T> {\r\n maxLength?: number\r\n textFieldProps?: TextFieldProps\r\n pastenable?: boolean\r\n imageLeft?: InputBaseImage<T>\r\n imageRight?: InputBaseImage<T>\r\n}\r\n\r\nexport interface IInputProps<T> extends IFormInputBase<T> {\r\n slots?: IInputSlots<T>\r\n}\r\n\r\nexport interface IInputState {\r\n value?: string\r\n}\r\n\r\nexport interface IInputParams<T> extends IInputSlots<T> {}\r\n\r\nconst CreateInput = function <T>(params?: IInputParams<T>): ComponentType<IInputProps<T>> {\r\n class InputBase extends Component<IInputProps<T>, IInputState> {\r\n private _cachedSlots: IInputSlots<T> = {}\r\n constructor(props: IInputProps<T>) {\r\n super(props)\r\n this._cachedSlots = this.mergeSlots(props.slots) ?? {}\r\n this.state = { value: this.defaulValue }\r\n }\r\n\r\n get slots() {\r\n return this._cachedSlots\r\n }\r\n\r\n get defaulValue(): string {\r\n const { data, name } = this.props\r\n return this.props.defaultValue ?? (!!data && !!name ? data[name]?.toString() : undefined)\r\n }\r\n\r\n componentDidUpdate(prevProps: IInputProps<T>) {\r\n if (prevProps.slots !== this.props.slots) {\r\n this._cachedSlots = this.mergeSlots(this.props.slots)\r\n }\r\n }\r\n\r\n shouldComponentUpdate(nextProps: Readonly<IInputProps<T>>): boolean {\r\n const { name, slots } = this.props\r\n if (!!name) {\r\n const currentDataValue = this.props.data?.[name]?.toString() ?? ''\r\n const nextDataValue = nextProps.data?.[name]?.toString() ?? ''\r\n if (currentDataValue !== nextDataValue) {\r\n this.setState({ value: nextDataValue })\r\n return false\r\n }\r\n }\r\n\r\n if (slots !== nextProps.slots) {\r\n return true\r\n }\r\n return true\r\n }\r\n\r\n mapTextFieldProps = (): TextFieldProps => {\r\n const errorMessage = getErrorMessage(this.props.messageErrors, this.props.name)\r\n const tfp: TextFieldProps = {\r\n fullWidth: true,\r\n variant: 'outlined',\r\n name: this.props.name?.toString(),\r\n error: errorMessage.error,\r\n helperText: errorMessage.message,\r\n disabled: this.props.disabled,\r\n onBlur: () => {\r\n if (!this.props.name) return\r\n this.props.onBlur && this.props.onBlur(this.props.name)\r\n },\r\n label: this.getLabel(),\r\n placeholder: this.props.placeholder,\r\n InputLabelProps: !!this.state.value ? { shrink: true } : {},\r\n value: this.state.value ?? '',\r\n onChange: this.handleChange\r\n }\r\n if (this.slots.pastenable === true) {\r\n tfp.InputProps = {\r\n endAdornment: (\r\n <InputAdornment position='end'>\r\n <IconButton onClick={this.handlePaste} edge='end'>\r\n <ContentPasteIcon />\r\n </IconButton>\r\n </InputAdornment>\r\n )\r\n }\r\n }\r\n if (this.slots?.maxLength) tfp.inputProps = { ...tfp.inputProps, maxLength: this.slots.maxLength }\r\n return mergeObjects<TextFieldProps>({}, tfp, this.slots?.textFieldProps)\r\n }\r\n\r\n //#region Render\r\n render() {\r\n return (\r\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\r\n {!!this.props.disabled && <input hidden name={this.props.name?.toString()} defaultValue={this.defaulValue} />}\r\n {this.renderImageSide('left')}\r\n <TextField {...this.mapTextFieldProps()} />\r\n {this.renderImageSide('right')}\r\n </Box>\r\n )\r\n }\r\n\r\n renderImageSide = (side: 'left' | 'right') => {\r\n const image = side === 'left' ? this.slots.imageLeft : this.slots.imageRight\r\n if (!image) return <></>\r\n const { srcValue, element, alt = 'input-image', fallbackSrc = '', debounceDelay = 700, ...imageOther } = image\r\n if (element) {\r\n const Element = element\r\n return (\r\n <WrapImage>\r\n <Element value={this.state.value} model={this.props.data} />\r\n </WrapImage>\r\n )\r\n }\r\n const src = srcValue ? srcValue(this.state.value, this.props.data) : imageOther.src ?? this.state.value\r\n const imageProps: IImageWithFallbackPropsOwner = { src, alt, fallbackSrc, debounceDelay }\r\n return (\r\n <Collapse sx={{ mx: '10px' }} in={!!src} unmountOnExit orientation='horizontal'>\r\n <WrapImage>\r\n <ImageWithFallback {...imageOther} {...imageProps} loading={<LoadingCircularProgress />} />\r\n </WrapImage>\r\n </Collapse>\r\n )\r\n }\r\n //#endregion\r\n\r\n private mergeSlots = (currentSlots?: IInputSlots<T>): IInputSlots<T> => {\r\n const base = mergeObjects<IInputSlots<T>>({}, params, currentSlots)\r\n const { imageLeft, imageRight } = base\r\n\r\n // mirror from left to right\r\n if (imageLeft?.mirror && !imageRight) {\r\n base.imageRight = { ...imageLeft }\r\n delete base.imageRight.mirror\r\n }\r\n // mirror from right to left\r\n else if (imageRight?.mirror && !imageLeft) {\r\n base.imageLeft = { ...imageRight }\r\n delete base.imageLeft.mirror\r\n }\r\n\r\n return base\r\n }\r\n\r\n getLabel = () => {\r\n if (!this.props.label) return\r\n if (!this.slots?.maxLength) return this.props.label\r\n return `${this.props.label} (${this.state.value?.length ?? 0}/${this.slots.maxLength})`\r\n }\r\n\r\n handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n this.setState((st) => ({ ...st, value: event.target.value }))\r\n }\r\n\r\n handlePaste = async () => {\r\n try {\r\n const clipboardText = await navigator.clipboard.readText()\r\n this.setState({ value: clipboardText })\r\n } catch (error) {\r\n console.error('Error clipboard:', error)\r\n }\r\n }\r\n }\r\n return InputBase\r\n}\r\n\r\nexport default CreateInput\r\n\r\n// export type InputTextType<T> = ReturnType<typeof CreateInputBase<T>>\r\n\r\nconst LoadingCircularProgress: FC = () => (\r\n <div>\r\n <CircularProgress size={24} />\r\n </div>\r\n)\r\n\r\nconst WrapImage = styled(Box)({\r\n fontSize: '1rem',\r\n height: 'var(--input-base-image-size, 54px)',\r\n width: 'var(--input-base-image-size, 54px)',\r\n position: 'relative',\r\n borderRadius: '8px',\r\n boxShadow: 'rgba(0, 0, 0, 0.16) 0px 1px 4px',\r\n overflow: 'hidden',\r\n '& > img': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n backgroundRepeat: 'no-repeat',\r\n height: '100%',\r\n width: '100%',\r\n backgroundSize: 'contain'\r\n },\r\n '& > div': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n height: '100%',\r\n width: '100%',\r\n background: '#fafafa',\r\n zIndex: 1,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center'\r\n }\r\n})\r\n"],"names":["CreateInput","params","InputBase","props","_this$mergeSlots","_this","_classCallCheck","_callSuper","_defineProperty","_this$props$name","_this$state$value","_this$slots","_this$slots2","errorMessage","getErrorMessage","messageErrors","name","tfp","fullWidth","variant","toString","error","helperText","message","disabled","onBlur","label","getLabel","placeholder","InputLabelProps","state","value","shrink","onChange","handleChange","slots","pastenable","InputProps","endAdornment","_jsx","InputAdornment","position","children","IconButton","onClick","handlePaste","edge","ContentPasteIcon","maxLength","inputProps","_objectSpread","mergeObjects","textFieldProps","side","_imageOther$src","image","imageLeft","imageRight","srcValue","element","_image$alt","alt","_image$fallbackSrc","fallbackSrc","_image$debounceDelay","debounceDelay","imageOther","_objectWithoutProperties","_excluded","WrapImage","model","data","src","imageProps","Collapse","sx","mx","in","unmountOnExit","orientation","ImageWithFallback","loading","LoadingCircularProgress","currentSlots","base","mirror","_this$slots3","_this$state$value$len","_this$state$value2","concat","length","event","setState","st","target","_asyncToGenerator","_regeneratorRuntime","mark","_callee","clipboardText","wrap","_context","prev","next","navigator","clipboard","readText","sent","t0","console","stop","_cachedSlots","mergeSlots","defaulValue","_inherits","Component","_createClass","key","get","this","_this$props$defaultVa","_data$name","_this$props","defaultValue","undefined","prevProps","nextProps","_this$props2","_this$props$data$name","_this$props$data","_nextProps$data$name$","_nextProps$data","currentDataValue","nextDataValue","_this$props$name2","_jsxs","Box","display","alignItems","hidden","renderImageSide","TextField","mapTextFieldProps","CircularProgress","size","styled","fontSize","height","width","borderRadius","boxShadow","overflow","top","left","backgroundRepeat","backgroundSize","background","zIndex","justifyContent"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineProperty as e,objectWithoutProperties as t,objectSpread2 as n,inherits as r,createClass as o,classCallCheck as i,callSuper as l}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as s,jsxs as c}from"react/jsx-runtime";import{createRef as a,Component as u}from"react";import{styled as p,Box as m,IconButton as
|
|
1
|
+
import{defineProperty as e,objectWithoutProperties as t,objectSpread2 as n,inherits as r,createClass as o,classCallCheck as i,callSuper as l}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as s,jsxs as c}from"react/jsx-runtime";import{createRef as a,Component as u}from"react";import{styled as p,Box as m,IconButton as d,Typography as h,Tooltip as f}from"@mui/material";import g from"@mui/icons-material/Fullscreen";import v from"@mui/icons-material/FullscreenExit";import{getErrorMessage as x}from"./helper.js";import"../components/breadcrumbs.js";import"clipboard-copy";import"@mui/icons-material/Done";import"@mui/icons-material/ContentCopy";import"../components/create.multi-select-dropdown.js";import"../components/help-tooltip.js";import F,{textEditorClasses as C}from"../components/text-editor.js";var b=["children"];function y(t){return function(){function n(t){var r;return i(this,n),r=l(this,n,[t]),e(r,"handleFullscreenChange",(function(){r.setState({isFullscreen:!!document.fullscreenElement})})),e(r,"handleFullscreenToggle",(function(){r.contentRef.current&&(document.fullscreenElement?document.exitFullscreen():r.contentRef.current.requestFullscreen().catch((function(e){console.error("Error attempting to enable full-screen mode: ".concat(e.message))})))})),e(r,"getWrapClasses",(function(){var e=[];return r.state.isFullscreen&&e.push(C.fullscreen),e.join(" ")})),r.state={isFullscreen:!1},r.contentRef=a(),r}return r(n,u),o(n,[{key:"componentDidMount",value:function(){document.addEventListener("fullscreenchange",this.handleFullscreenChange)}},{key:"componentWillUnmount",value:function(){document.removeEventListener("fullscreenchange",this.handleFullscreenChange)}},{key:"render",value:function(){var e,n,r,o,i,l=this,a=x(this.props.messageErrors,this.props.name),u=null!==(e=null===(n=this.props.name?null===(r=this.props.data)||void 0===r?void 0:r[this.props.name]:"")||void 0===n?void 0:n.toString())&&void 0!==e?e:"";return c(m,{id:t.id,ref:this.contentRef,sx:{backgroundColor:"#fff"},children:[this.state.isFullscreen&&s(k,{children:s(h,{variant:"h4",sx:{fontWeight:600,flex:1,textAlign:"center"},children:t.title})}),c(j,{className:this.getWrapClasses(),children:[s(E,{children:s(f,{title:this.state.isFullscreen?"Exit Fullscreen":"Fullscreen",arrow:!0,children:s(S,{sx:{color:"#06c"},onClick:this.handleFullscreenToggle,children:this.state.isFullscreen?s(v,{}):s(g,{})})})}),s(W,{children:s(F,{defautValue:u,name:null!==(o=null===(i=this.props.name)||void 0===i?void 0:i.toString())&&void 0!==o?o:"",readOnly:this.props.disabled,error:a.error,onBlur:function(){var e,t;l.props.name&&(null===(e=(t=l.props).onBlur)||void 0===e||e.call(t,l.props.name))}})})]})]})}}])}()}var j=p(m)((function(t){var n=t.theme;return e(e({maxWidth:n.breakpoints.values.xl,margin:"0 auto",position:"relative"},"&.".concat(C.fullscreen," .").concat(C.root),{height:"calc(100vh - ".concat(74,"px)")}),"&.".concat(C.fullscreen),{width:"871px"})})),k=p(m)({height:"".concat(64,"px"),display:"flex",justifyContent:"center",alignItems:"center"}),E=p((function(e){var r=e.children,o=t(e,b);return s(m,n(n({},o),{},{children:s(m,{children:r})}))}))({position:"sticky",top:"-1px",zIndex:2,"& > div":{height:0,display:"flex",justifyContent:"right",padding:"0 6px"}}),S=p(d)({flex:"0 0 auto",marginTop:"1px",width:"40px",height:"40px"}),W=p(m)({backgroundColor:"#fff",width:"100%","& .ql-container":{fontFamily:'"Roboto", serif',fontSize:"14px"},"& .ql-toolbar":{position:"sticky",top:"-1px",backgroundColor:"#fff",zIndex:1}});export{y as default};
|
|
2
2
|
//# sourceMappingURL=create.text-editor.js.map
|