@amsterdam/design-system-react 2.0.1 → 2.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.
- package/dist/Accordion/Accordion.d.ts +3 -3
- package/dist/Accordion/AccordionSection.d.ts +5 -5
- package/dist/App/App.d.ts +12 -0
- package/dist/App/App.js +8 -0
- package/dist/App/App.test.d.ts +5 -0
- package/dist/App/App.test.js +33 -0
- package/dist/App/index.d.ts +6 -0
- package/dist/App/index.js +5 -0
- package/dist/AppNavigation/AppNavigation.d.ts +45 -0
- package/dist/AppNavigation/AppNavigation.js +18 -0
- package/dist/AppNavigation/AppNavigation.test.d.ts +5 -0
- package/dist/AppNavigation/AppNavigation.test.js +33 -0
- package/dist/AppNavigation/AppNavigationButton.d.ts +18 -0
- package/dist/AppNavigation/AppNavigationButton.js +17 -0
- package/dist/AppNavigation/AppNavigationLink.d.ts +19 -0
- package/dist/AppNavigation/AppNavigationLink.js +19 -0
- package/dist/AppNavigation/AppNavigationMenu.d.ts +9 -0
- package/dist/AppNavigation/AppNavigationMenu.js +5 -0
- package/dist/AppNavigation/index.d.ts +6 -0
- package/dist/AppNavigation/index.js +5 -0
- package/dist/Badge/Badge.d.ts +4 -4
- package/dist/Blockquote/Blockquote.d.ts +5 -5
- package/dist/Breakout/BreakoutCell.d.ts +2 -2
- package/dist/Button/Button.d.ts +7 -5
- package/dist/Button/Button.js +1 -0
- package/dist/Card/Card.d.ts +9 -9
- package/dist/Card/CardHeading.d.ts +4 -4
- package/dist/Card/CardHeadingGroup.d.ts +5 -5
- package/dist/Card/CardImage.d.ts +2 -2
- package/dist/Checkbox/Checkbox.d.ts +5 -5
- package/dist/Column/Column.d.ts +5 -5
- package/dist/DateInput/DateInput.d.ts +4 -4
- package/dist/DescriptionList/DescriptionList.d.ts +5 -5
- package/dist/Dialog/Dialog.d.ts +6 -7
- package/dist/Field/Field.d.ts +5 -5
- package/dist/FieldSet/FieldSet.d.ts +20 -10
- package/dist/FieldSet/FieldSet.js +4 -3
- package/dist/FieldSet/FieldSet.test.js +7 -0
- package/dist/Figure/Figure.d.ts +3 -3
- package/dist/Figure/FigureCaption.d.ts +5 -5
- package/dist/FileList/FileList.d.ts +2 -2
- package/dist/FileList/FileListItem.d.ts +4 -4
- package/dist/Grid/Grid.d.ts +2 -2
- package/dist/Grid/GridCell.d.ts +2 -2
- package/dist/Heading/Heading.d.ts +10 -11
- package/dist/Heading/Heading.js +1 -0
- package/dist/Icon/Icon.d.ts +0 -4
- package/dist/IconButton/IconButton.d.ts +4 -2
- package/dist/IconButton/IconButton.js +1 -0
- package/dist/Image/Image.d.ts +5 -5
- package/dist/ImageSlider/ImageSlider.d.ts +4 -4
- package/dist/ImageSlider/ImageSlider.js +1 -1
- package/dist/ImageSlider/ImageSliderItem.d.ts +5 -5
- package/dist/ImageSlider/ImageSliderItem.js +1 -1
- package/dist/ImageSlider/ImageSliderThumbnails.d.ts +5 -5
- package/dist/InvalidFormAlert/InvalidFormAlertWithErrors.d.ts +2 -2
- package/dist/Label/Label.d.ts +14 -6
- package/dist/Label/Label.js +3 -2
- package/dist/Label/Label.test.js +5 -0
- package/dist/Link/Link.d.ts +4 -4
- package/dist/LinkList/LinkListLink.d.ts +9 -4
- package/dist/LinkList/LinkListLink.js +2 -0
- package/dist/Logo/Logo.d.ts +2 -2
- package/dist/Menu/Menu.d.ts +31 -10
- package/dist/Menu/Menu.js +6 -1
- package/dist/Menu/Menu.test.js +28 -11
- package/dist/Menu/MenuLink.d.ts +8 -2
- package/dist/Menu/MenuLink.test.js +1 -1
- package/dist/OrderedList/OrderedList.d.ts +5 -5
- package/dist/PageHeader/PageHeader.d.ts +7 -7
- package/dist/PageHeader/PageHeader.test.js +0 -4
- package/dist/PageHeader/PageHeaderGridCellNarrowWindowOnly.d.ts +1 -1
- package/dist/PageHeader/PageHeaderGridCellNarrowWindowOnly.js +0 -4
- package/dist/PageHeader/PageHeaderMenuLink.d.ts +6 -6
- package/dist/PageHeader/PageHeaderMenuLink.js +0 -4
- package/dist/PageHeading/PageHeading.d.ts +5 -5
- package/dist/Pagination/LinkItem.d.ts +3 -3
- package/dist/Pagination/Pagination.d.ts +4 -4
- package/dist/Paragraph/Paragraph.d.ts +5 -9
- package/dist/PasswordInput/PasswordInput.d.ts +4 -4
- package/dist/Radio/Radio.d.ts +5 -5
- package/dist/Row/Row.d.ts +5 -5
- package/dist/SearchField/SearchField.d.ts +3 -3
- package/dist/SearchField/SearchField.test.js +2 -19
- package/dist/SearchField/SearchFieldButton.js +1 -1
- package/dist/SearchField/SearchFieldButton.test.d.ts +5 -0
- package/dist/SearchField/SearchFieldButton.test.js +47 -0
- package/dist/SearchField/SearchFieldInput.d.ts +2 -2
- package/dist/Select/Select.d.ts +5 -5
- package/dist/Spotlight/Spotlight.d.ts +6 -6
- package/dist/Spotlight/Spotlight.js +0 -4
- package/dist/StandaloneLink/StandaloneLink.d.ts +4 -4
- package/dist/Table/TableCaption.d.ts +0 -4
- package/dist/TableOfContents/TableOfContents.d.ts +7 -7
- package/dist/TableOfContents/TableOfContentsLink.d.ts +4 -4
- package/dist/Tabs/Tabs.d.ts +11 -11
- package/dist/Tabs/TabsButton.d.ts +5 -5
- package/dist/Tabs/TabsPanel.d.ts +5 -5
- package/dist/TextArea/TextArea.d.ts +12 -6
- package/dist/TextInput/TextInput.d.ts +4 -4
- package/dist/TimeInput/TimeInput.d.ts +4 -4
- package/dist/UnorderedList/UnorderedList.d.ts +5 -5
- package/dist/common/useIsAfterBreakpoint.d.ts +4 -0
- package/dist/common/useIsAfterBreakpoint.js +4 -4
- package/dist/index.cjs.js +39 -24
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +61 -1860
- package/dist/index.esm.js +39 -24
- package/dist/index.esm.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +21 -20
package/dist/index.esm.js
CHANGED
|
@@ -1134,7 +1134,7 @@ var Hint = /*#__PURE__*/forwardRef(function (_ref2, ref) {
|
|
|
1134
1134
|
});
|
|
1135
1135
|
Hint.displayName = 'Hint';
|
|
1136
1136
|
|
|
1137
|
-
var _excluded$13 = ["children", "className", "hint", "invalid", "legend", "optional"];
|
|
1137
|
+
var _excluded$13 = ["children", "className", "hint", "invalid", "legend", "legendIsPageHeading", "optional"];
|
|
1138
1138
|
function ownKeys$1b(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1139
1139
|
function _objectSpread$1b(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1b(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1b(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1140
1140
|
/**
|
|
@@ -1146,17 +1146,24 @@ var FieldSet = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
1146
1146
|
hint = _ref.hint,
|
|
1147
1147
|
invalid = _ref.invalid,
|
|
1148
1148
|
legend = _ref.legend,
|
|
1149
|
+
legendIsPageHeading = _ref.legendIsPageHeading,
|
|
1149
1150
|
optional = _ref.optional,
|
|
1150
1151
|
restProps = _objectWithoutProperties(_ref, _excluded$13);
|
|
1152
|
+
var legendContent = jsxs(Fragment, {
|
|
1153
|
+
children: [legend, " ", jsx(Hint, {
|
|
1154
|
+
hint: hint,
|
|
1155
|
+
optional: optional
|
|
1156
|
+
})]
|
|
1157
|
+
});
|
|
1151
1158
|
return jsxs("fieldset", _objectSpread$1b(_objectSpread$1b({}, restProps), {}, {
|
|
1152
1159
|
className: clsx('ams-field-set', invalid && 'ams-field-set--invalid', className),
|
|
1153
1160
|
ref: ref,
|
|
1154
|
-
children: [
|
|
1161
|
+
children: [jsx("legend", {
|
|
1155
1162
|
className: "ams-field-set__legend",
|
|
1156
|
-
children:
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
})
|
|
1163
|
+
children: legendIsPageHeading ? jsx("h1", {
|
|
1164
|
+
className: "ams-field-set__heading",
|
|
1165
|
+
children: legendContent
|
|
1166
|
+
}) : legendContent
|
|
1160
1167
|
}), children]
|
|
1161
1168
|
}));
|
|
1162
1169
|
});
|
|
@@ -1449,12 +1456,10 @@ var ImageSliderItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
1449
1456
|
var itemClassName = useMemo(function () {
|
|
1450
1457
|
return clsx('ams-image-slider__item', isInView && 'ams-image-slider__item--in-view', className);
|
|
1451
1458
|
}, [isInView, className]);
|
|
1452
|
-
return jsx("div", _objectSpread$12(_objectSpread$12(
|
|
1459
|
+
return jsx("div", _objectSpread$12(_objectSpread$12({}, restProps), {}, {
|
|
1460
|
+
"aria-hidden": !isInView ? true : undefined,
|
|
1453
1461
|
className: itemClassName,
|
|
1454
|
-
ref: ref
|
|
1455
|
-
}, !isInView && {
|
|
1456
|
-
inert: ''
|
|
1457
|
-
}), {}, {
|
|
1462
|
+
ref: ref,
|
|
1458
1463
|
children: children
|
|
1459
1464
|
}));
|
|
1460
1465
|
});
|
|
@@ -1616,7 +1621,7 @@ var ImageSliderRoot = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
1616
1621
|
var sliderScrollerElement = targetRef.current;
|
|
1617
1622
|
if (!sliderScrollerElement || !element) return;
|
|
1618
1623
|
sliderScrollerElement.scrollTo({
|
|
1619
|
-
left:
|
|
1624
|
+
left: element.offsetLeft
|
|
1620
1625
|
});
|
|
1621
1626
|
}, []);
|
|
1622
1627
|
var goToSlideId = useCallback(function (id) {
|
|
@@ -1856,7 +1861,7 @@ var InvalidFormAlert = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
1856
1861
|
});
|
|
1857
1862
|
InvalidFormAlert.displayName = 'InvalidFormAlert';
|
|
1858
1863
|
|
|
1859
|
-
var _excluded$O = ["children", "className", "hint", "optional"];
|
|
1864
|
+
var _excluded$O = ["children", "className", "hint", "isPageHeading", "optional"];
|
|
1860
1865
|
function ownKeys$W(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1861
1866
|
function _objectSpread$W(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$W(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$W(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1862
1867
|
/**
|
|
@@ -1866,9 +1871,10 @@ var Label = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
1866
1871
|
var children = _ref.children,
|
|
1867
1872
|
className = _ref.className,
|
|
1868
1873
|
hint = _ref.hint,
|
|
1874
|
+
isPageHeading = _ref.isPageHeading,
|
|
1869
1875
|
optional = _ref.optional,
|
|
1870
1876
|
restProps = _objectWithoutProperties(_ref, _excluded$O);
|
|
1871
|
-
|
|
1877
|
+
var labelElement = jsxs("label", _objectSpread$W(_objectSpread$W({}, restProps), {}, {
|
|
1872
1878
|
className: clsx('ams-label', className),
|
|
1873
1879
|
ref: ref,
|
|
1874
1880
|
children: [children, " ", jsx(Hint, {
|
|
@@ -1876,6 +1882,10 @@ var Label = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
1876
1882
|
optional: optional
|
|
1877
1883
|
})]
|
|
1878
1884
|
}));
|
|
1885
|
+
return isPageHeading ? jsx("h1", {
|
|
1886
|
+
className: "ams-label__heading",
|
|
1887
|
+
children: labelElement
|
|
1888
|
+
}) : labelElement;
|
|
1879
1889
|
});
|
|
1880
1890
|
Label.displayName = 'Label';
|
|
1881
1891
|
|
|
@@ -2171,7 +2181,7 @@ var MenuLink = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
2171
2181
|
});
|
|
2172
2182
|
MenuLink.displayName = 'Menu.Link';
|
|
2173
2183
|
|
|
2174
|
-
var _excluded$J = ["accessibleName", "children", "className"];
|
|
2184
|
+
var _excluded$J = ["accessibleName", "children", "className", "inWideWindow"];
|
|
2175
2185
|
function ownKeys$L(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2176
2186
|
function _objectSpread$L(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$L(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$L(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
2177
2187
|
var MenuRoot = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
@@ -2179,12 +2189,16 @@ var MenuRoot = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
2179
2189
|
accessibleName = _ref$accessibleName === void 0 ? 'Hoofdnavigatie' : _ref$accessibleName,
|
|
2180
2190
|
children = _ref.children,
|
|
2181
2191
|
className = _ref.className,
|
|
2192
|
+
inWideWindow = _ref.inWideWindow,
|
|
2182
2193
|
restProps = _objectWithoutProperties(_ref, _excluded$J);
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2194
|
+
// In a medium or narrow window, the Menu is a child of the `nav` of Page Header.
|
|
2195
|
+
// In a wide window, we render a `nav` element and the related accessibility features.
|
|
2196
|
+
var Tag = inWideWindow ? 'nav' : 'div';
|
|
2197
|
+
return jsxs(Tag, _objectSpread$L(_objectSpread$L({}, restProps), {}, {
|
|
2198
|
+
"aria-labelledby": inWideWindow ? 'primary-navigation' : undefined,
|
|
2199
|
+
className: clsx('ams-menu', inWideWindow && "ams-menu--in-wide-window", className),
|
|
2200
|
+
ref: ref,
|
|
2201
|
+
children: [inWideWindow && jsx("h2", {
|
|
2188
2202
|
className: "ams-visually-hidden",
|
|
2189
2203
|
id: "primary-navigation",
|
|
2190
2204
|
children: accessibleName
|
|
@@ -2352,9 +2366,9 @@ var PageFooter = Object.assign(PageFooterRoot, {
|
|
|
2352
2366
|
});
|
|
2353
2367
|
|
|
2354
2368
|
// TODO: we should set the breakpoint in JS somewhere and render this and the sass variables from that
|
|
2355
|
-
var
|
|
2356
|
-
medium: '
|
|
2357
|
-
wide: '
|
|
2369
|
+
var BREAKPOINTS = {
|
|
2370
|
+
medium: '37.5rem',
|
|
2371
|
+
wide: '72.5rem'
|
|
2358
2372
|
};
|
|
2359
2373
|
var useIsAfterBreakpoint = function useIsAfterBreakpoint(breakpoint) {
|
|
2360
2374
|
var _useState = useState(false),
|
|
@@ -2364,7 +2378,7 @@ var useIsAfterBreakpoint = function useIsAfterBreakpoint(breakpoint) {
|
|
|
2364
2378
|
useLayoutEffect(function () {
|
|
2365
2379
|
// Check for window object to avoid SSR issues
|
|
2366
2380
|
if (typeof window !== 'undefined') {
|
|
2367
|
-
var media = window.matchMedia("(min-width: ".concat(
|
|
2381
|
+
var media = window.matchMedia("(min-width: ".concat(BREAKPOINTS[breakpoint], ")"));
|
|
2368
2382
|
if (media.matches !== matches) {
|
|
2369
2383
|
setMatches(media.matches);
|
|
2370
2384
|
}
|
|
@@ -2874,6 +2888,7 @@ var SearchFieldButton = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
2874
2888
|
icon: SearchIcon,
|
|
2875
2889
|
iconOnly: true,
|
|
2876
2890
|
ref: ref,
|
|
2891
|
+
type: "submit",
|
|
2877
2892
|
children: children
|
|
2878
2893
|
}));
|
|
2879
2894
|
});
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|