UNPKG

primereact

Version:

PrimeReact is an open source UI library for React featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with Prime

2 lines (1 loc) 11.2 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),n=require("primereact/api"),t=require("primereact/componentbase"),r=require("primereact/hooks"),o=require("primereact/ripple"),i=require("primereact/utils");function a(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})}})),n.default=e,Object.freeze(n)}var c=a(e);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},l.apply(null,arguments)}function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function s(e,n){if("object"!=u(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!=u(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}function d(e){var n=s(e,"string");return"symbol"==u(n)?n:n+""}function p(e,n,t){return(n=d(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function f(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function m(e){if(Array.isArray(e))return f(e)}function b(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function v(e,n){if(e){if("string"==typeof e)return f(e,n);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?f(e,n):void 0}}function y(){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 k(e){return m(e)||b(e)||v(e)||y()}function g(e){if(Array.isArray(e))return e}function h(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,o,i,a,c=[],l=!0,u=!1;try{if(i=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;l=!1}else for(;!(l=(r=i.call(t)).done)&&(c.push(r.value),c.length!==n);l=!0);}catch(e){u=!0,o=e}finally{try{if(!l&&null!=t.return&&(a=t.return(),Object(a)!==a))return}finally{if(u)throw o}}return c}}function x(){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 O(e,n){return g(e)||h(e,n)||v(e,n)||x()}var j=t.ComponentBase.extend({defaultProps:{__TYPE:"Dock",id:null,style:null,className:null,model:null,tabIndex:0,onFocus:null,onBlur:null,position:"bottom",magnification:!0,header:null,footer:null,children:void 0},css:{classes:{icon:"p-dock-action-icon",action:function(e){return i.classNames("p-dock-action",{"p-disabled":e.disabled})},menuitem:function(e){var n=e.currentIndexState,t=e.index;return i.classNames("p-dock-item",{"p-dock-item-second-prev":n-2===t,"p-dock-item-prev":n-1===t,"p-dock-item-current":n===t,"p-dock-item-next":n+1===t,"p-dock-item-second-next":n+2===t,"p-focus":e.active})},content:"p-menuitem-content",header:"p-dock-header",menu:"p-dock-list",footer:"p-dock-footer",root:function(e){var n=e.props;return i.classNames("p-dock p-component p-dock-".concat(n.position),{"p-dock-magnification":n.magnification})},container:"p-dock-list-container"},styles:"\n@layer primereact {\n .p-dock {\n position: absolute;\n z-index: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n }\n\n .p-dock-list-container {\n display: flex;\n pointer-events: auto;\n }\n\n .p-dock-list {\n margin: 0;\n padding: 0;\n list-style: none;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: auto;\n }\n\n .p-dock-magnification .p-dock-item {\n transition: all .2s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: transform;\n }\n\n .p-dock-action {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n position: relative;\n overflow: hidden;\n cursor: default;\n }\n\n .p-dock-magnification .p-dock-item-second-prev,\n .p-dock-magnification .p-dock-item-second-next {\n transform: scale(1.2);\n }\n\n .p-dock-magnification .p-dock-item-prev,\n .p-dock-magnification .p-dock-item-next {\n transform: scale(1.4);\n }\n\n .p-dock-magnification .p-dock-item-current {\n transform: scale(1.6);\n z-index: 1;\n }\n\n /* Position */\n /* top */\n .p-dock-top {\n left: 0;\n top: 0;\n width: 100%;\n }\n\n .p-dock-top.p-dock-magnification .p-dock-item {\n transform-origin: center top;\n }\n\n .p-dock-top .p-dock-list-container {\n flex-direction: column-reverse;\n }\n\n /* bottom */\n .p-dock-bottom {\n left: 0;\n bottom: 0;\n width: 100%;\n }\n\n .p-dock-bottom.p-dock-magnification .p-dock-item {\n transform-origin: center bottom;\n }\n\n .p-dock-bottom .p-dock-list-container {\n flex-direction: column;\n }\n\n /* right */\n .p-dock-right {\n right: 0;\n top: 0;\n height: 100%;\n }\n\n .p-dock-right.p-dock-magnification .p-dock-item {\n transform-origin: center right;\n }\n\n .p-dock-right .p-dock-list {\n flex-direction: column;\n }\n\n /* left */\n .p-dock-left {\n left: 0;\n top: 0;\n height: 100%;\n }\n\n .p-dock-left.p-dock-magnification .p-dock-item {\n transform-origin: center left;\n }\n\n .p-dock-left .p-dock-list {\n flex-direction: column;\n }\n\n .p-dock-left .p-dock-list-container {\n flex-direction: row-reverse;\n }\n}\n"}});function S(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function w(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?S(Object(t),!0).forEach((function(n){p(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):S(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var E=c.memo(c.forwardRef((function(e,a){var u=O(c.useState(-3),2),s=u[0],d=u[1],f=O(c.useState(!1),2),m=f[0],b=f[1],v=O(c.useState(-1),2),y=v[0],g=v[1],h=r.useMergeProps(),x=c.useContext(n.PrimeReactContext),S=j.getProps(e,x),E=O(c.useState(S.id),2),D=E[0],P=E[1],N=j.setMetaData({props:S,state:{id:D,currentIndex:s}}),I=N.ptm,A=N.cx,H=N.isUnstyled,C=c.useRef(null),M=c.useRef(null);t.useHandleStyle(j.css.styles,H,{name:"dock"});var U=function(e,n,t){return I(e,{context:{index:t,item:n}})},q=function(){d(-3)},_=function(e){d(e)},R=function(e,n){n.command&&n.command({originalEvent:e,item:n}),e.preventDefault()},z=function(e){b(!0),G(0),S.onFocus&&S.onFocus(e)},B=function(e){b(!1),g(-1),S.onBlur&&S.onBlur(e)},F=function(e){switch(e.code){case"ArrowDown":"left"!==S.position&&"right"!==S.position||J(),e.preventDefault();break;case"ArrowUp":"left"!==S.position&&"right"!==S.position||T(),e.preventDefault();break;case"ArrowRight":"top"!==S.position&&"bottom"!==S.position||J(),e.preventDefault();break;case"ArrowLeft":"top"!==S.position&&"bottom"!==S.position||T(),e.preventDefault();break;case"Home":X(),e.preventDefault();break;case"End":L(),e.preventDefault();break;case"Enter":case"NumpadEnter":case"Space":K(),e.preventDefault()}},J=function(){var e=Y(y);G(e)},T=function(){var e=$(y);G(e)},X=function(){G(0)},L=function(){G(i.DomHandler.find(M.current,'li[data-pc-section="menuitem"][data-p-disabled="false"]').length-1)},K=function(){var e=i.DomHandler.findSingle(M.current,'li[id="'.concat("".concat(y),'"]')),n=e&&i.DomHandler.findSingle(e,'[data-pc-section="action"]');n?n.click():e&&e.click()},Y=function(e){var n=k(i.DomHandler.find(M.current,'li[data-pc-section="menuitem"][data-p-disabled="false"]')).findIndex((function(n){return n.id===e}));return n>-1?n+1:0},$=function(e){var n=k(i.DomHandler.find(M.current,'li[data-pc-section="menuitem"][data-p-disabled="false"]')).findIndex((function(n){return n.id===e}));return n>-1?n-1:0},G=function(e){var n=i.DomHandler.find(M.current,'li[data-pc-section="menuitem"][data-p-disabled="false"]');g(n[e>=n.length?n.length-1:e<0?0:e].getAttribute("id"))},Q=function(e){return e===y},V=function(e,n){if(!1===e.visible)return null;var t=e.disabled,r=e.icon,a=e.label,u=e.template,d=e.url,f=e.target,m=e.id||D+"_"+n,b=i.classNames("p-dock-action",{"p-disabled":t}),v=i.classNames("p-dock-action-icon",r),y=h({className:A("icon")},U("icon",e,n)),k=i.IconUtils.getJSXIcon(r,w({},y),{props:S}),g=h({href:d||"#",onFocus:function(e){return e.stopPropagation()},className:A("action",{disabled:t}),tabIndex:-1,target:f,"data-pr-tooltip":a,onClick:function(n){return R(n,e)}},U("action",e,n)),x=c.createElement("a",g,k,c.createElement(o.Ripple,null));u&&(x=i.ObjectUtils.getJSXElement(u,e,{onClick:function(n){return R(n,e)},className:b,iconClassName:v,"aria-hidden":"true",tabIndex:-1,element:x,props:S,index:n}));var O=h({className:A("content")},U("content",e,n)),j=Q(m),E=h(p(p({id:m,role:"menuitem","aria-label":a,"aria-disabled":t,"data-p-focused":j,"data-p-disabled":t||!1,className:A("menuitem",{currentIndexState:s,index:n,active:Q(m)})},"role","none"),"onMouseEnter",(function(){return _(n)})),U("menuitem",e,n));return c.createElement("li",l({},E,{key:m}),c.createElement("div",O,x))};r.useMountEffect((function(){D||P(i.UniqueComponentId())})),c.useImperativeHandle(a,(function(){return{props:S,getElement:function(){return C.current}}}));var W,Z,ee=function(){if(S.header){var e=i.ObjectUtils.getJSXElement(S.header,{props:S}),n=h({className:A("header")},I("header"));return c.createElement("div",n,e)}return null}(),ne=(W=S.model?S.model.map(V):null,Z=h({ref:M,className:A("menu"),role:"menu","aria-orientation":"bottom"===S.position||"top"===S.position?"horizontal":"vertical","aria-activedescendant":m?-1!==y?y:null:void 0,tabIndex:S.tabIndex||0,onFocus:z,onBlur:B,onKeyDown:F,onMouseLeave:q},I("menu")),c.createElement("ul",Z,W)),te=function(){if(S.footer){var e=i.ObjectUtils.getJSXElement(S.footer,{props:S}),n=h({className:A("footer")},I("footer"));return c.createElement("div",n,e)}return null}(),re=h({className:i.classNames(S.className,A("root")),style:S.style},j.getOtherProps(S),I("root")),oe=h({className:A("container")},I("container"));return c.createElement("div",l({id:S.id,ref:C},re),c.createElement("div",oe,ee,ne,te))})));E.displayName="Dock",exports.Dock=E;