wjec-one 4.0.21 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@emotion/core"),require("react")):"function"==typeof define&&define.amd?define(["exports","@emotion/core","react"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).WJECOneLayout={},t.emotionCore,t.React)}(this,(function(t,e,n){"use strict";function g(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,g=Array(e);n<e;n++)g[n]=t[n];return g}function c(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var g=n.call(t,e||"default");if("object"!=typeof g)return g;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(t);e&&(g=g.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,g)}return n}function i(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?r(Object(n),!0).forEach((function(e){c(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function l(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var g,c,r,i,l=[],I=!0,o=!1;try{if(r=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;I=!1}else for(;!(I=(g=r.call(n)).done)&&(l.push(g.value),l.length!==e);I=!0);}catch(t){o=!0,c=t}finally{try{if(!I&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(o)throw c}}return l}}(t,e)||a(t,e)||function(){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 I(t){return function(t){if(Array.isArray(t))return g(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||a(t)||function(){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 o(t){return o="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},o(t)}function a(t,e){if(t){if("string"==typeof t)return g(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?g(t,e):void 0}}var u=function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];"development"===process.env.NODE_ENV&&e&&function(t){console.warn(t)}(t)},C=function(t){var e=Object.entries(t).filter((function(t){var e=l(t,2);return e[0],e[1].matches})).map((function(t){return l(t,1)[0]}));return e.length<1&&!Object.keys(t).includes("default")?["default"]:e},d=function(t,e){return I(new Set(t.map((function(t){return b(e[t])})).flat()))},A=function(t,e){if("string"==typeof t)return"grid-template: ".concat(t,";");var n=Object.keys(e);return Object.entries(t).map((function(t){var g=l(t,2),c=g[0],r=g[1];return"default"!==c||n.includes("default")?"\n @media ".concat(null==e?void 0:e[c]," {\n grid-template: ").concat(r,";\n }\n "):"grid-template: ".concat(r,";")})).join("\n")},b=function(){var t=function(t){return t.split(/\n/).map((function(t){return t.replace(/^\s+/,"")})).filter((function(t){return t&&!t.startsWith("/")})).map((function(t){var e,n,g=l(t.match(/'(.+?)'/),2),c=g[0],r=g[1],i=null===(e=t.substring(t.indexOf(c)+c.length))||void 0===e?void 0:e.trim();return{columns:null==r||null===(n=r.trim())||void 0===n?void 0:n.split(/\s+/),height:i}}))}(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"");return I(new Set(t.map((function(t){return t.columns})).flat().filter((function(t){return"..."!==t}))))},m=function(t){var e=s(t);return"".concat(e[0].toUpperCase()).concat(e.substring(1),"Section")},s=function(t){return"string"==typeof t?t:t.name},p=function(t,e){return Object.freeze(i(i({},t),e))},y=function(t){return function(e){var n;return function(t){var e;if(t){var n=t.getBoundingClientRect(),g=n.bottom,c=n.height,r=n.left,i=n.right,l=n.top,I=n.width,o=window.getComputedStyle(t);e={bottom:g,height:c,left:r,margin:{bottom:parseInt(o.getPropertyValue("margin-bottom")),left:parseInt(o.getPropertyValue("margin-left")),right:parseInt(o.getPropertyValue("margin-right")),top:parseInt(o.getPropertyValue("margin-top"))},padding:{bottom:parseInt(o.getPropertyValue("padding-bottom")),left:parseInt(o.getPropertyValue("padding-left")),right:parseInt(o.getPropertyValue("padding-right")),top:parseInt(o.getPropertyValue("padding-top"))},right:i,top:l,width:I}}return e}(null===(n=t.get(e))||void 0===n?void 0:n.current)}};t.initializeLayout=function(t){var g=t.defaultContainerProps,c=t.formats,r=t.gridTemplate,I=t.overrideDefaultFormat,a=t.sections;!function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},g=arguments.length>3?arguments[3]:void 0,c="string"==typeof t?{default:t}:t,r=Object.keys(c).filter((function(t){return"default"!==t})),i=Object.keys(n),l=Object.values(c).map((function(t){return b(t)})).flat(),I=e.map((function(t){return s(t)}));if(l.some((function(t){return!I.includes(t)})))throw new Error("WJEC One Layout: You must declare/define a section for each area of the grid (missing sections: ".concat(l.filter((function(t){return!I.includes(t)})).join(", "),")"));if("object"===o(t)&&!Object.hasOwn(t,"default"))throw new Error('WJEC One Layout: A "default" grid template must be defined');if(!r.every((function(t){return null==i?void 0:i.includes(t)})))throw new Error("WJEC One Layout: You must define a format for each grid template (missing formats: ".concat(r.filter((function(t){return!i.includes(t)})).join(", "),")"));i.includes("default")&&!g&&u('WJEC One Layout: Overriding the "'.concat("default","\" format can lead to unexpected behaviour. If you know what you're doing, you can set `overrideDefaultFormat: true` to suppress this message"))}(r,a,c,I),function(t){return t.map(s)}(a).map(m);var f=function(){var t=Object.freeze({activeFormats:[],activeSections:[]});return{context:n.createContext([t,void 0]),initialState:t,reducer:function(t,e){var n=e.payload;switch(e.type){case"SET_ACTIVE_FORMATS":return JSON.stringify(t.activeFormats.sort())===JSON.stringify(n.sort())?t:p(t,{activeFormats:n});case"SET_ACTIVE_SECTIONS":return JSON.stringify(t.activeSections.sort())===JSON.stringify(n.sort())?t:p(t,{activeSections:n});default:return t}}}}(),Z=f.context,G=f.initialState,W=f.reducer,v=new Map,V=function(t){var g=t.context,c=t.defaultProps,r=t.formats,i=void 0===r?{}:r,I=t.gridTemplate,o=t.initialState,a=t.reducer,b=Object.fromEntries(Object.entries(i).map((function(t){var e=l(t,2),n=e[0],g=e[1];return[n,window.matchMedia(g)]}))),m="string"==typeof I?{default:I}:I;return function(t){var r,s,y=t.alignHorizontal,f=void 0===y?null==c?void 0:c.alignHorizontal:y,Z=t.alignVertical,G=void 0===Z?null==c?void 0:c.alignVertical:Z,W=t.children,v=t.gap,V=void 0===v?null!==(r=null==c?void 0:c.gap)&&void 0!==r?r:0:v,X=t.width,h=void 0===X?null!==(s=null==c?void 0:c.width)&&void 0!==s?s:"auto":X,H=l(n.useReducer(a,o,(function(t){var e=C(b);return p(t,{activeFormats:e,activeSections:d(e,m)})})),2),Y=H[0],R=H[1];return n.useEffect((function(){var t=Object.values(b),e=function(){var t=C(b),e=d(t,m);R({payload:t,type:"SET_ACTIVE_FORMATS"}),R({payload:e,type:"SET_ACTIVE_SECTIONS"})};return t.forEach((function(t){t.addEventListener("change",e)})),function(){t.forEach((function(t){t.removeEventListener("change",e)}))}}),[]),n.useEffect((function(){Y.activeFormats.length>1&&u("WJEC One Layout: Two or more of your layout formats have overlapping media queries; this may result in unexpected behaviour as only one CSS grid template can be active at a time (conflicting formats: ".concat(Y.activeFormats.join(", "),")"))}),[Y.activeFormats]),e.jsx(g.Provider,{value:[Y,R]},e.jsx("div",{css:e.css("align-content:",G,";display:grid;gap:",V,";",A(I,i)," justify-items:",f,";width:",h,";")},W))}}({context:Z,defaultProps:g,formats:c,gridTemplate:r,initialState:G,reducer:W}),X=Object.fromEntries(a.map((function(t){var g=m(t),c=function(t,g,c){var r=function(t){return"string"==typeof t?{autoHide:!0,name:t}:t}(t),i=r.autoHide,I=r.defaultProps,o=s(t),a=function(t){var r=t.alignHorizontal,a=void 0===r?null==I?void 0:I.alignHorizontal:r,C=t.alignVertical,d=void 0===C?null==I?void 0:I.alignVertical:C,A=t.children,b=t.margin,m=void 0===b?null==I?void 0:I.margin:b,s=l(n.useContext(g),1)[0].activeSections,p=n.useRef(),y=n.useMemo((function(){return!i||s.includes(o)}),[s,i,o]);return n.useLayoutEffect((function(){return c.has(o)&&u('WJEC One Layout: Multiple isntances of section "'.concat(o,'" found; this may lead to unexpected behaviour, especially if you attempt to calculate the layout for this section')),c.set(o,p),function(){var t;(null===(t=c.get(o))||void 0===t?void 0:t.current)===p.current&&c.delete(o)}}),[o,p.current]),y?e.jsx("section",{css:e.css({alignSelf:d,gridArea:o,justifySelf:a,margin:m},"production"===process.env.NODE_ENV?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudEZhY3RvcnkuanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZFd0IiLCJmaWxlIjoiY29tcG9uZW50RmFjdG9yeS5qc3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZHVjZXIsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vY29yZSc7XHJcbmltcG9ydCB7IGRldmVsb3Blcldhcm5pbmcgfSBmcm9tIFwiLi4vdXRpbHNcIjtcclxuaW1wb3J0IHsgZ2V0QWN0aXZlRm9ybWF0cywgZ2V0QWN0aXZlU2VjdGlvbnMsIGdldEdyaWRUZW1wbGF0ZUNTUywgZ2V0U2VjdGlvbkNvbXBvbmVudE5hbWUsIGdldFNlY3Rpb25Db25maWcsIGdldFNlY3Rpb25OYW1lLCB1cGRhdGVTdGF0ZSB9IGZyb20gJy4vdXRpbHMnO1xyXG5leHBvcnQgY29uc3QgY3JlYXRlQ29udGFpbmVyQ29tcG9uZW50ID0gKHsgY29udGV4dCwgZGVmYXVsdFByb3BzLCBmb3JtYXRzID0ge30sIGdyaWRUZW1wbGF0ZSwgaW5pdGlhbFN0YXRlLCByZWR1Y2VyIH0pID0+IHtcclxuICAgIGNvbnN0IGZvcm1hdFF1ZXJpZXNNYXAgPSBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoZm9ybWF0cykubWFwKChbZm9ybWF0LCBxdWVyeV0pID0+IFtmb3JtYXQsIHdpbmRvdy5tYXRjaE1lZGlhKHF1ZXJ5KV0pKTtcclxuICAgIGNvbnN0IGdyaWRUZW1wbGF0ZU1hcCA9IHR5cGVvZiBncmlkVGVtcGxhdGUgPT09ICdzdHJpbmcnXHJcbiAgICAgICAgPyB7IGRlZmF1bHQ6IGdyaWRUZW1wbGF0ZSB9XHJcbiAgICAgICAgOiBncmlkVGVtcGxhdGU7XHJcbiAgICBjb25zdCBDb21wb25lbnQgPSAoeyBhbGlnbkhvcml6b250YWwgPSBkZWZhdWx0UHJvcHM/LmFsaWduSG9yaXpvbnRhbCwgYWxpZ25WZXJ0aWNhbCA9IGRlZmF1bHRQcm9wcz8uYWxpZ25WZXJ0aWNhbCwgY2hpbGRyZW4sIGdhcCA9IGRlZmF1bHRQcm9wcz8uZ2FwID8/IDAsIHdpZHRoID0gZGVmYXVsdFByb3BzPy53aWR0aCA/PyAnYXV0bycgfSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IFtsYXlvdXRTdGF0ZSwgZGlzcGF0Y2hdID0gdXNlUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsU3RhdGUsIChzdGF0ZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBhY3RpdmVGb3JtYXRzID0gZ2V0QWN0aXZlRm9ybWF0cyhmb3JtYXRRdWVyaWVzTWFwKTtcclxuICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZVN0YXRlKHN0YXRlLCB7IGFjdGl2ZUZvcm1hdHMsIGFjdGl2ZVNlY3Rpb25zOiBnZXRBY3RpdmVTZWN0aW9ucyhhY3RpdmVGb3JtYXRzLCBncmlkVGVtcGxhdGVNYXApIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1lZGlhUXVlcmllcyA9IE9iamVjdC52YWx1ZXMoZm9ybWF0UXVlcmllc01hcCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVyID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlRm9ybWF0cyA9IGdldEFjdGl2ZUZvcm1hdHMoZm9ybWF0UXVlcmllc01hcCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmVTZWN0aW9ucyA9IGdldEFjdGl2ZVNlY3Rpb25zKGFjdGl2ZUZvcm1hdHMsIGdyaWRUZW1wbGF0ZU1hcCk7XHJcbiAgICAgICAgICAgICAgICBkaXNwYXRjaCh7IHBheWxvYWQ6IGFjdGl2ZUZvcm1hdHMsIHR5cGU6ICdTRVRfQUNUSVZFX0ZPUk1BVFMnIH0pO1xyXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goeyBwYXlsb2FkOiBhY3RpdmVTZWN0aW9ucywgdHlwZTogJ1NFVF9BQ1RJVkVfU0VDVElPTlMnIH0pO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBtZWRpYVF1ZXJpZXMuZm9yRWFjaCgobWVkaWEpID0+IHtcclxuICAgICAgICAgICAgICAgIG1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGxpc3RlbmVyKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBtZWRpYVF1ZXJpZXMuZm9yRWFjaCgobWVkaWEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtZWRpYS5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBsaXN0ZW5lcik7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9LCBbXSk7XHJcbiAgICAgICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGxheW91dFN0YXRlLmFjdGl2ZUZvcm1hdHMubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cclxuICAgICAgICAgICAgICAgIGRldmVsb3Blcldhcm5pbmcoYFdKRUMgT25lIExheW91dDogVHdvIG9yIG1vcmUgb2YgeW91ciBsYXlvdXQgZm9ybWF0cyBoYXZlIG92ZXJsYXBwaW5nIG1lZGlhIHF1ZXJpZXM7IHRoaXMgbWF5IHJlc3VsdCBpbiB1bmV4cGVjdGVkIGJlaGF2aW91ciBhcyBvbmx5IG9uZSBDU1MgZ3JpZCB0ZW1wbGF0ZSBjYW4gYmUgYWN0aXZlIGF0IGEgdGltZSAoY29uZmxpY3RpbmcgZm9ybWF0czogJHtsYXlvdXRTdGF0ZS5hY3RpdmVGb3JtYXRzLmpvaW4oJywgJyl9KWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgW2xheW91dFN0YXRlLmFjdGl2ZUZvcm1hdHNdKTtcclxuICAgICAgICByZXR1cm4gKDxjb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtbbGF5b3V0U3RhdGUsIGRpc3BhdGNoXX0+XHJcbiAgICAgICAgPGRpdiBjc3M9e2NzcyBgXHJcbiAgICAgICAgICAgICAgYWxpZ24tY29udGVudDogJHthbGlnblZlcnRpY2FsfTtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgICAgICAgIGdhcDogJHtnYXB9O1xyXG4gICAgICAgICAgICAgICR7Z2V0R3JpZFRlbXBsYXRlQ1NTKGdyaWRUZW1wbGF0ZSwgZm9ybWF0cyl9XHJcbiAgICAgICAgICAgICAganVzdGlmeS1pdGVtczogJHthbGlnbkhvcml6b250YWx9O1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAke3dpZHRofTtcclxuICAgICAgICAgICAgYH0+XHJcbiAgICAgICAgICB7Y2hpbGRyZW59XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvY29udGV4dC5Qcm92aWRlcj4pO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBDb21wb25lbnQ7XHJcbn07XHJcbmV4cG9ydCBjb25zdCBjcmVhdGVTZWN0aW9uQ29tcG9uZW50ID0gKHNlY3Rpb24sIGNvbnRleHQsIHNlY3Rpb25SZWZNYXApID0+IHtcclxuICAgIGNvbnN0IHsgYXV0b0hpZGUsIGRlZmF1bHRQcm9wcyB9ID0gZ2V0U2VjdGlvbkNvbmZpZyhzZWN0aW9uKTtcclxuICAgIGNvbnN0IHNlY3Rpb25OYW1lID0gZ2V0U2VjdGlvbk5hbWUoc2VjdGlvbik7XHJcbiAgICBjb25zdCBDb21wb25lbnQgPSAoeyBhbGlnbkhvcml6b250YWwgPSBkZWZhdWx0UHJvcHM/LmFsaWduSG9yaXpvbnRhbCwgYWxpZ25WZXJ0aWNhbCA9IGRlZmF1bHRQcm9wcz8uYWxpZ25WZXJ0aWNhbCwgY2hpbGRyZW4sIG1hcmdpbiA9IGRlZmF1bHRQcm9wcz8ubWFyZ2luIH0pID0+IHtcclxuICAgICAgICBjb25zdCBbeyBhY3RpdmVTZWN0aW9ucyB9XSA9IHVzZUNvbnRleHQoY29udGV4dCk7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvblJlZiA9IHVzZVJlZigpO1xyXG4gICAgICAgIGNvbnN0IHNob3dTZWN0aW9uID0gdXNlTWVtbygoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghYXV0b0hpZGUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBhY3RpdmVTZWN0aW9ucy5pbmNsdWRlcyhzZWN0aW9uTmFtZSk7XHJcbiAgICAgICAgfSwgW2FjdGl2ZVNlY3Rpb25zLCBhdXRvSGlkZSwgc2VjdGlvbk5hbWVdKTtcclxuICAgICAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoc2VjdGlvblJlZk1hcC5oYXMoc2VjdGlvbk5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxyXG4gICAgICAgICAgICAgICAgZGV2ZWxvcGVyV2FybmluZyhgV0pFQyBPbmUgTGF5b3V0OiBNdWx0aXBsZSBpc250YW5jZXMgb2Ygc2VjdGlvbiBcIiR7c2VjdGlvbk5hbWV9XCIgZm91bmQ7IHRoaXMgbWF5IGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvdXIsIGVzcGVjaWFsbHkgaWYgeW91IGF0dGVtcHQgdG8gY2FsY3VsYXRlIHRoZSBsYXlvdXQgZm9yIHRoaXMgc2VjdGlvbmApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHNlY3Rpb25SZWZNYXAuc2V0KHNlY3Rpb25OYW1lLCBzZWN0aW9uUmVmKTtcclxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChzZWN0aW9uUmVmTWFwLmdldChzZWN0aW9uTmFtZSk/LmN1cnJlbnQgPT09IHNlY3Rpb25SZWYuY3VycmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHNlY3Rpb25SZWZNYXAuZGVsZXRlKHNlY3Rpb25OYW1lKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9LCBbc2VjdGlvbk5hbWUsIHNlY3Rpb25SZWYuY3VycmVudF0pO1xyXG4gICAgICAgIHJldHVybiBzaG93U2VjdGlvblxyXG4gICAgICAgICAgICA/ICg8c2VjdGlvbiBjc3M9e3tcclxuICAgICAgICAgICAgICAgICAgICBhbGlnblNlbGY6IGFsaWduVmVydGljYWwsXHJcbiAgICAgICAgICAgICAgICAgICAgZ3JpZEFyZWE6IHNlY3Rpb25OYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlTZWxmOiBhbGlnbkhvcml6b250YWwsXHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luXHJcbiAgICAgICAgICAgICAgICB9fSByZWY9e3NlY3Rpb25SZWZ9PlxyXG4gICAgICAgICAge2NoaWxkcmVufVxyXG4gICAgICAgIDwvc2VjdGlvbj4pXHJcbiAgICAgICAgICAgIDogbnVsbDtcclxuICAgIH07XHJcbiAgICBDb21wb25lbnQuZGlzcGxheU5hbWUgPSBnZXRTZWN0aW9uQ29tcG9uZW50TmFtZShzZWN0aW9uTmFtZSk7XHJcbiAgICByZXR1cm4gQ29tcG9uZW50O1xyXG59O1xyXG4iXX0= */"),ref:p},A):null};return a.displayName=m(o),a}(t,Z,v);return[g,c]}))),h=function(t){return function(){var e=l(n.useContext(t),1)[0];return{activeFormats:e.activeFormats,activeSections:e.activeSections}}}(Z);return i(i({calculateLayoutForSection:y(v),LayoutContainer:V},X),{},{useLayout:h})}}));
1
+ !function(g,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("wjec-one/utils"),require("@emotion/core"),require("react")):"function"==typeof define&&define.amd?define(["exports","wjec-one/utils","@emotion/core","react"],t):t((g="undefined"!=typeof globalThis?globalThis:g||self).WJECOneLayout={},g.WJECOneUtils,g.emotionCore,g.React)}(this,function(g,t,e,I){"use strict";const C=g=>{const t=Object.entries(g).filter(([g,t])=>t.matches).map(([g])=>g);return t.length<1&&!Object.keys(g).includes("default")?["default"]:t},l=(g,t)=>[...new Set(g.map(g=>c(t[g])).flat())],A=(g,t)=>{if("string"==typeof g)return`grid-template: ${g};`;const e=Object.keys(t);return Object.entries(g).map(([g,I])=>"default"!==g||e.includes("default")?`\n @media ${t?.[g]} {\n grid-template: ${I};\n }\n `:`grid-template: ${I};`).join("\n")},c=(g="")=>{const t=(g=>g.split(/\n/).map(g=>g.replace(/^\s+/,"")).filter(g=>g&&!g.startsWith("/")).map(g=>{const[t,e]=g.match(/'(.+?)'/),I=g.substring(g.indexOf(t)+t.length)?.trim();return{columns:e?.trim()?.split(/\s+/),height:I}}))(g);return[...new Set(t.map(({columns:g})=>g).flat().filter(g=>"..."!==g))]},a=g=>{const t=i(g);return`${t[0].toUpperCase()}${t.substring(1)}Section`},i=g=>"string"==typeof g?g:g.name,d=(g,t)=>Object.freeze({...g,...t}),n=g=>t=>(g=>{let t;if(g){const{bottom:e,height:I,left:C,right:l,top:A,width:c}=g.getBoundingClientRect(),a=window.getComputedStyle(g);t={bottom:e,height:I,left:C,margin:{bottom:parseInt(a.getPropertyValue("margin-bottom")),left:parseInt(a.getPropertyValue("margin-left")),right:parseInt(a.getPropertyValue("margin-right")),top:parseInt(a.getPropertyValue("margin-top"))},padding:{bottom:parseInt(a.getPropertyValue("padding-bottom")),left:parseInt(a.getPropertyValue("padding-left")),right:parseInt(a.getPropertyValue("padding-right")),top:parseInt(a.getPropertyValue("padding-top"))},right:l,top:A,width:c}}return t})(g.get(t)?.current);g.initializeLayout=({defaultContainerProps:g,formats:o,gridTemplate:u,overrideDefaultFormat:b,sections:r})=>{((g,e,I={},C)=>{const l="string"==typeof g?{default:g}:g,A=Object.keys(l).filter(g=>"default"!==g),a=Object.keys(I),d=Object.values(l).map(g=>c(g)).flat(),n=e.map(g=>i(g));if(d.some(g=>!n.includes(g)))throw new Error(`WJEC One Layout: You must declare/define a section for each area of the grid (missing sections: ${d.filter(g=>!n.includes(g)).join(", ")})`);if("object"==typeof g&&!Object.hasOwn(g,"default"))throw new Error('WJEC One Layout: A "default" grid template must be defined');if(!A.every(g=>a?.includes(g)))throw new Error(`WJEC One Layout: You must define a format for each grid template (missing formats: ${A.filter(g=>!a.includes(g)).join(", ")})`);a.includes("default")&&!C&&t.developerWarning('WJEC One Layout: Overriding the "default" format can lead to unexpected behaviour. If you know what you\'re doing, you can set `overrideDefaultFormat: true` to suppress this message')})(u,r,o,b),(g=>g.map(i))(r).map(a);const{context:s,initialState:Z,reducer:m}=(()=>{const g=Object.freeze({activeFormats:[],activeSections:[]});return{context:I.createContext([g,void 0]),initialState:g,reducer:(g,{payload:t,type:e})=>{switch(e){case"SET_ACTIVE_FORMATS":return JSON.stringify(g.activeFormats.sort())===JSON.stringify(t.sort())?g:d(g,{activeFormats:t});case"SET_ACTIVE_SECTIONS":return JSON.stringify(g.activeSections.sort())===JSON.stringify(t.sort())?g:d(g,{activeSections:t});default:return g}}}})(),G=new Map,W=(({context:g,defaultProps:c,formats:a={},gridTemplate:i,initialState:n,reducer:o})=>{const u=Object.fromEntries(Object.entries(a).map(([g,t])=>[g,window.matchMedia(t)])),b="string"==typeof i?{default:i}:i;return({alignHorizontal:r=c?.alignHorizontal,alignVertical:s=c?.alignVertical,children:Z,gap:m=c?.gap??0,width:G=c?.width??"auto"})=>{const[W,p]=I.useReducer(o,n,g=>{const t=C(u);return d(g,{activeFormats:t,activeSections:l(t,b)})});return I.useEffect(()=>{const g=Object.values(u),t=()=>{const g=C(u),t=l(g,b);p({payload:g,type:"SET_ACTIVE_FORMATS"}),p({payload:t,type:"SET_ACTIVE_SECTIONS"})};return g.forEach(g=>{g.addEventListener("change",t)}),()=>{g.forEach(g=>{g.removeEventListener("change",t)})}},[]),I.useEffect(()=>{W.activeFormats.length>1&&t.developerWarning(`WJEC One Layout: Two or more of your layout formats have overlapping media queries; this may result in unexpected behaviour as only one CSS grid template can be active at a time (conflicting formats: ${W.activeFormats.join(", ")})`)},[W.activeFormats]),e.jsx(g.Provider,{value:[W,p]},e.jsx("div",{css:e.css("align-content:",s,";display:grid;gap:",m,";",A(i,a)," justify-items:",r,";width:",G,";")},Z))}})({context:s,defaultProps:g,formats:o,gridTemplate:u,initialState:Z,reducer:m}),p=Object.fromEntries(r.map(g=>{const C=a(g),l=((g,C,l)=>{const{autoHide:A,defaultProps:c}=(g=>"string"==typeof g?{autoHide:!0,name:g}:g)(g),d=i(g),n=({alignHorizontal:g=c?.alignHorizontal,alignVertical:a=c?.alignVertical,children:i,margin:n=c?.margin})=>{const[{activeSections:o}]=I.useContext(C),u=I.useRef(void 0),b=I.useMemo(()=>!A||o.includes(d),[o,A,d]);return I.useLayoutEffect(()=>(l.has(d)&&t.developerWarning(`WJEC One Layout: Multiple isntances of section "${d}" found; this may lead to unexpected behaviour, especially if you attempt to calculate the layout for this section`),l.set(d,u),()=>{l.get(d)?.current===u.current&&l.delete(d)}),[d,u.current]),b?e.jsx("section",{css:e.css({alignSelf:a,gridArea:d,justifySelf:g,margin:n},"production"===process.env.NODE_ENV?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudEZhY3RvcnkuanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZFd0IiLCJmaWxlIjoiY29tcG9uZW50RmFjdG9yeS5qc3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZHVjZXIsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2NvcmUnO1xuaW1wb3J0IHsgZGV2ZWxvcGVyV2FybmluZyB9IGZyb20gJ3dqZWMtb25lL3V0aWxzJztcbmltcG9ydCB7IGdldEFjdGl2ZUZvcm1hdHMsIGdldEFjdGl2ZVNlY3Rpb25zLCBnZXRHcmlkVGVtcGxhdGVDU1MsIGdldFNlY3Rpb25Db21wb25lbnROYW1lLCBnZXRTZWN0aW9uQ29uZmlnLCBnZXRTZWN0aW9uTmFtZSwgdXBkYXRlU3RhdGUgfSBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCBjb25zdCBjcmVhdGVDb250YWluZXJDb21wb25lbnQgPSAoeyBjb250ZXh0LCBkZWZhdWx0UHJvcHMsIGZvcm1hdHMgPSB7fSwgZ3JpZFRlbXBsYXRlLCBpbml0aWFsU3RhdGUsIHJlZHVjZXIgfSkgPT4ge1xuICAgIGNvbnN0IGZvcm1hdFF1ZXJpZXNNYXAgPSBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoZm9ybWF0cykubWFwKChbZm9ybWF0LCBxdWVyeV0pID0+IFtmb3JtYXQsIHdpbmRvdy5tYXRjaE1lZGlhKHF1ZXJ5KV0pKTtcbiAgICBjb25zdCBncmlkVGVtcGxhdGVNYXAgPSB0eXBlb2YgZ3JpZFRlbXBsYXRlID09PSAnc3RyaW5nJ1xuICAgICAgICA/IHsgZGVmYXVsdDogZ3JpZFRlbXBsYXRlIH1cbiAgICAgICAgOiBncmlkVGVtcGxhdGU7XG4gICAgY29uc3QgQ29tcG9uZW50ID0gKHsgYWxpZ25Ib3Jpem9udGFsID0gZGVmYXVsdFByb3BzPy5hbGlnbkhvcml6b250YWwsIGFsaWduVmVydGljYWwgPSBkZWZhdWx0UHJvcHM/LmFsaWduVmVydGljYWwsIGNoaWxkcmVuLCBnYXAgPSBkZWZhdWx0UHJvcHM/LmdhcCA/PyAwLCB3aWR0aCA9IGRlZmF1bHRQcm9wcz8ud2lkdGggPz8gJ2F1dG8nIH0pID0+IHtcbiAgICAgICAgY29uc3QgW2xheW91dFN0YXRlLCBkaXNwYXRjaF0gPSB1c2VSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxTdGF0ZSwgKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhY3RpdmVGb3JtYXRzID0gZ2V0QWN0aXZlRm9ybWF0cyhmb3JtYXRRdWVyaWVzTWFwKTtcbiAgICAgICAgICAgIHJldHVybiB1cGRhdGVTdGF0ZShzdGF0ZSwgeyBhY3RpdmVGb3JtYXRzLCBhY3RpdmVTZWN0aW9uczogZ2V0QWN0aXZlU2VjdGlvbnMoYWN0aXZlRm9ybWF0cywgZ3JpZFRlbXBsYXRlTWFwKSB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtZWRpYVF1ZXJpZXMgPSBPYmplY3QudmFsdWVzKGZvcm1hdFF1ZXJpZXNNYXApO1xuICAgICAgICAgICAgY29uc3QgbGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlRm9ybWF0cyA9IGdldEFjdGl2ZUZvcm1hdHMoZm9ybWF0UXVlcmllc01hcCk7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlU2VjdGlvbnMgPSBnZXRBY3RpdmVTZWN0aW9ucyhhY3RpdmVGb3JtYXRzLCBncmlkVGVtcGxhdGVNYXApO1xuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHsgcGF5bG9hZDogYWN0aXZlRm9ybWF0cywgdHlwZTogJ1NFVF9BQ1RJVkVfRk9STUFUUycgfSk7XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goeyBwYXlsb2FkOiBhY3RpdmVTZWN0aW9ucywgdHlwZTogJ1NFVF9BQ1RJVkVfU0VDVElPTlMnIH0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIG1lZGlhUXVlcmllcy5mb3JFYWNoKChtZWRpYSkgPT4ge1xuICAgICAgICAgICAgICAgIG1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGxpc3RlbmVyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBtZWRpYVF1ZXJpZXMuZm9yRWFjaCgobWVkaWEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbWVkaWEucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgbGlzdGVuZXIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSwgW10pO1xuICAgICAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGxheW91dFN0YXRlLmFjdGl2ZUZvcm1hdHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgICAgICAgICAgZGV2ZWxvcGVyV2FybmluZyhgV0pFQyBPbmUgTGF5b3V0OiBUd28gb3IgbW9yZSBvZiB5b3VyIGxheW91dCBmb3JtYXRzIGhhdmUgb3ZlcmxhcHBpbmcgbWVkaWEgcXVlcmllczsgdGhpcyBtYXkgcmVzdWx0IGluIHVuZXhwZWN0ZWQgYmVoYXZpb3VyIGFzIG9ubHkgb25lIENTUyBncmlkIHRlbXBsYXRlIGNhbiBiZSBhY3RpdmUgYXQgYSB0aW1lIChjb25mbGljdGluZyBmb3JtYXRzOiAke2xheW91dFN0YXRlLmFjdGl2ZUZvcm1hdHMuam9pbignLCAnKX0pYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIFtsYXlvdXRTdGF0ZS5hY3RpdmVGb3JtYXRzXSk7XG4gICAgICAgIHJldHVybiAoPGNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e1tsYXlvdXRTdGF0ZSwgZGlzcGF0Y2hdfT5cclxuICAgICAgICA8ZGl2IGNzcz17Y3NzIGBcclxuICAgICAgICAgICAgICBhbGlnbi1jb250ZW50OiAke2FsaWduVmVydGljYWx9O1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgICAgICAgICAgZ2FwOiAke2dhcH07XHJcbiAgICAgICAgICAgICAgJHtnZXRHcmlkVGVtcGxhdGVDU1MoZ3JpZFRlbXBsYXRlLCBmb3JtYXRzKX1cclxuICAgICAgICAgICAgICBqdXN0aWZ5LWl0ZW1zOiAke2FsaWduSG9yaXpvbnRhbH07XHJcbiAgICAgICAgICAgICAgd2lkdGg6ICR7d2lkdGh9O1xyXG4gICAgICAgICAgICBgfT5cclxuICAgICAgICAgIHtjaGlsZHJlbn1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9jb250ZXh0LlByb3ZpZGVyPik7XG4gICAgfTtcbiAgICByZXR1cm4gQ29tcG9uZW50O1xufTtcbmV4cG9ydCBjb25zdCBjcmVhdGVTZWN0aW9uQ29tcG9uZW50ID0gKHNlY3Rpb24sIGNvbnRleHQsIHNlY3Rpb25SZWZNYXApID0+IHtcbiAgICBjb25zdCB7IGF1dG9IaWRlLCBkZWZhdWx0UHJvcHMgfSA9IGdldFNlY3Rpb25Db25maWcoc2VjdGlvbik7XG4gICAgY29uc3Qgc2VjdGlvbk5hbWUgPSBnZXRTZWN0aW9uTmFtZShzZWN0aW9uKTtcbiAgICBjb25zdCBDb21wb25lbnQgPSAoeyBhbGlnbkhvcml6b250YWwgPSBkZWZhdWx0UHJvcHM/LmFsaWduSG9yaXpvbnRhbCwgYWxpZ25WZXJ0aWNhbCA9IGRlZmF1bHRQcm9wcz8uYWxpZ25WZXJ0aWNhbCwgY2hpbGRyZW4sIG1hcmdpbiA9IGRlZmF1bHRQcm9wcz8ubWFyZ2luIH0pID0+IHtcbiAgICAgICAgY29uc3QgW3sgYWN0aXZlU2VjdGlvbnMgfV0gPSB1c2VDb250ZXh0KGNvbnRleHQpO1xuICAgICAgICBjb25zdCBzZWN0aW9uUmVmID0gdXNlUmVmKHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IHNob3dTZWN0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWF1dG9IaWRlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYWN0aXZlU2VjdGlvbnMuaW5jbHVkZXMoc2VjdGlvbk5hbWUpO1xuICAgICAgICB9LCBbYWN0aXZlU2VjdGlvbnMsIGF1dG9IaWRlLCBzZWN0aW9uTmFtZV0pO1xuICAgICAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHNlY3Rpb25SZWZNYXAuaGFzKHNlY3Rpb25OYW1lKSkge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgICAgICAgICAgZGV2ZWxvcGVyV2FybmluZyhgV0pFQyBPbmUgTGF5b3V0OiBNdWx0aXBsZSBpc250YW5jZXMgb2Ygc2VjdGlvbiBcIiR7c2VjdGlvbk5hbWV9XCIgZm91bmQ7IHRoaXMgbWF5IGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvdXIsIGVzcGVjaWFsbHkgaWYgeW91IGF0dGVtcHQgdG8gY2FsY3VsYXRlIHRoZSBsYXlvdXQgZm9yIHRoaXMgc2VjdGlvbmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2VjdGlvblJlZk1hcC5zZXQoc2VjdGlvbk5hbWUsIHNlY3Rpb25SZWYpO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc2VjdGlvblJlZk1hcC5nZXQoc2VjdGlvbk5hbWUpPy5jdXJyZW50ID09PSBzZWN0aW9uUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VjdGlvblJlZk1hcC5kZWxldGUoc2VjdGlvbk5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sIFtzZWN0aW9uTmFtZSwgc2VjdGlvblJlZi5jdXJyZW50XSk7XG4gICAgICAgIHJldHVybiBzaG93U2VjdGlvblxuICAgICAgICAgICAgPyAoPHNlY3Rpb24gY3NzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduU2VsZjogYWxpZ25WZXJ0aWNhbCxcbiAgICAgICAgICAgICAgICAgICAgZ3JpZEFyZWE6IHNlY3Rpb25OYW1lLFxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5U2VsZjogYWxpZ25Ib3Jpem9udGFsLFxuICAgICAgICAgICAgICAgICAgICBtYXJnaW5cbiAgICAgICAgICAgICAgICB9fSByZWY9e3NlY3Rpb25SZWZ9PlxyXG4gICAgICAgICAge2NoaWxkcmVufVxyXG4gICAgICAgIDwvc2VjdGlvbj4pXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgfTtcbiAgICBDb21wb25lbnQuZGlzcGxheU5hbWUgPSBnZXRTZWN0aW9uQ29tcG9uZW50TmFtZShzZWN0aW9uTmFtZSk7XG4gICAgcmV0dXJuIENvbXBvbmVudDtcbn07XG4iXX0= */"),ref:u},i):null};return n.displayName=a(d),n})(g,s,G);return[C,l]})),V=(g=>()=>{const[{activeFormats:t,activeSections:e}]=I.useContext(g);return{activeFormats:t,activeSections:e}})(s);return{calculateLayoutForSection:n(G),LayoutContainer:W,...p,useLayout:V}}});
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("wjec-one/utils"),require("react"),require("wjec-one/store")):"function"==typeof define&&define.amd?define(["exports","wjec-one/utils","react","wjec-one/store"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).WJECOneLocalization={},e.WJECOneUtils,e.React,e.WJECOneStore)}(this,(function(e,t,r,n){"use strict";function o(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var a=function(e){var n=e.props.children,o=void 0!==n;return"string"!=typeof n&&"number"!=typeof n&&r.Children.forEach(n,(function(e){l(e)&&a(e)||(o="string"==typeof e)})),t.developerError("A value passed to strings.format() can only contain a string, a number, or another FormattedPart",!o),o},l=function(e){return r.isValidElement(e)},u=t.getLocalizationStrings(),s=function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Object.keys(e)[0],i=function(e){return function(n,o){var i;if(function(e,t){return Object.keys(t).includes(e)}(n,e)){var u=function(e,t,r){return Object.hasOwn(t,"count")&&"number"==typeof t.count&&Object.hasOwn(r,"".concat(String(e),"_plural"))}(n,o,e),s=u&&1!==o.count?e["".concat(String(n),"_plural")]:e[n],f=t.filterValidEntries(s.split(/({[^}]+})/g)).map((function(e,t){var n=e,i=e.match(/{(.*)}/);return i&&(n=o[i[1]]),l(n)?a(n)&&r.cloneElement(n,c(c({},n.props),{},{key:t})):n}));i=r.createElement(r.Fragment,{},f)}else i=r.createElement(r.Fragment,{},[n]);return i}},u=function(){return Object.keys(e)},s=function(t){var r=e[t],n=i(r),o=c(c({},r),{},{format:n});return"Proxy"in self?new self.Proxy(o,{get:function(e,t,r){return Reflect.has(e,t)?Reflect.get(e,t,r):t}}):o},f=function(e,t){var r=t.payload;switch(t.type){case"RECEIVE_STRINGS":return e.set("strings",Object.freeze(r));case"SELECT_LOCALE":return e.set("locale",r);default:return e}},p={availableLocales:u(),locale:o,strings:s(o)},g=n.createContext(f,p,(function(e,t){var r=e.locale,n=t.strings;return{strings:r&&r!==o?s(r):n}})),b=g.context,y=g.hook,v=g.provider,O=function(e){var t=n.createSimpleAction("RECEIVE_STRINGS"),r=n.createSimpleAction("SELECT_LOCALE");return{selectLocale:n.createAsyncAction((function(n,o){n(r(o)),n(t(e(o)))}))}}(s),d=O.selectLocale;return{getLocales:u,getStringsForLocale:s,localizationContext:b,LocalizationProvider:v,selectLocale:d,useLocalization:y}},f=s(u,t.getConfig().defaultLocale||Object.keys(u)[0]),p=f.getLocales,g=f.localizationContext,b=f.LocalizationProvider,y=f.selectLocale,v=f.useLocalization;e.LocalizationProvider=b,e.getLocales=p,e.initialiseLocalization=s,e.localizationContext=g,e.selectLocale=y,e.useLocalization=v}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("wjec-one/utils"),require("react"),require("wjec-one/store")):"function"==typeof define&&define.amd?define(["exports","wjec-one/utils","react","wjec-one/store"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).WJECOneLocalization={},e.WJECOneUtils,e.React,e.WJECOneStore)}(this,function(e,t,o,n){"use strict";const r=e=>{const n=e.props.children;let c=void 0!==n;return"string"!=typeof n&&"number"!=typeof n&&o.Children.forEach(n,e=>{a(e)&&r(e)||(c="string"==typeof e)}),t.developerError("A value passed to strings.format() can only contain a string, a number, or another FormattedPart",!c),c},a=e=>o.isValidElement(e),c=t.getLocalizationStrings(),i=t.getConfig().defaultLocale||Object.keys(c)[0],l=(e,c=Object.keys(e)[0])=>{const i=e=>(n,c)=>{let i;if(((e,t)=>Object.keys(t).includes(e))(n,e)){const l=((e,t,o)=>Object.hasOwn(t,"count")&&"number"==typeof t.count&&Object.hasOwn(o,`${String(e)}_plural`))(n,c,e),s=l&&1!==c.count?e[`${String(n)}_plural`]:e[n],u=t.filterValidEntries(s.split(/({[^}]+})/g)).map((e,t)=>{let n=e;const i=e.match(/{(.*)}/);return i&&(n=c[i[1]]),a(n)?r(n)&&o.cloneElement(n,{...n.props,key:t}):n});i=o.createElement(o.Fragment,{},u)}else i=o.createElement(o.Fragment,{},[n]);return i},l=()=>Object.keys(e),s=t=>{const o=e[t],n=i(o),r={...o,format:n};return"Proxy"in self?new self.Proxy(r,{get:(e,t,o)=>Reflect.has(e,t)?Reflect.get(e,t,o):t}):r},u=(e,{payload:t,type:o})=>{switch(o){case"RECEIVE_STRINGS":return e.set("strings",Object.freeze(t));case"SELECT_LOCALE":return e.set("locale",t);default:return e}},f={availableLocales:l(),locale:c,strings:s(c)},{context:g,hook:p,provider:L}=n.createContext(u,f,({locale:e},{strings:t})=>({strings:e&&e!==c?s(e):t})),{selectLocale:d}=(e=>{const t=n.createSimpleAction("RECEIVE_STRINGS"),o=n.createSimpleAction("SELECT_LOCALE");return{selectLocale:n.createAsyncAction((n,r)=>{n(o(r)),n(t(e(r)))})}})(s);return{getLocales:l,getStringsForLocale:s,localizationContext:g,LocalizationProvider:L,selectLocale:d,useLocalization:p}},{getLocales:s,localizationContext:u,LocalizationProvider:f,selectLocale:g,useLocalization:p}=l(c,i);e.LocalizationProvider=f,e.getLocales=s,e.initialiseLocalization=l,e.localizationContext=u,e.selectLocale=g,e.useLocalization=p});