@amsterdam/design-system-react 2.0.2 → 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/ImageSliderItem.d.ts +5 -5
- 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 +35 -18
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +61 -1860
- package/dist/index.esm.js +35 -18
- package/dist/index.esm.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +20 -19
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
|
});
|
|
@@ -1854,7 +1861,7 @@ var InvalidFormAlert = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
1854
1861
|
});
|
|
1855
1862
|
InvalidFormAlert.displayName = 'InvalidFormAlert';
|
|
1856
1863
|
|
|
1857
|
-
var _excluded$O = ["children", "className", "hint", "optional"];
|
|
1864
|
+
var _excluded$O = ["children", "className", "hint", "isPageHeading", "optional"];
|
|
1858
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; }
|
|
1859
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; }
|
|
1860
1867
|
/**
|
|
@@ -1864,9 +1871,10 @@ var Label = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
1864
1871
|
var children = _ref.children,
|
|
1865
1872
|
className = _ref.className,
|
|
1866
1873
|
hint = _ref.hint,
|
|
1874
|
+
isPageHeading = _ref.isPageHeading,
|
|
1867
1875
|
optional = _ref.optional,
|
|
1868
1876
|
restProps = _objectWithoutProperties(_ref, _excluded$O);
|
|
1869
|
-
|
|
1877
|
+
var labelElement = jsxs("label", _objectSpread$W(_objectSpread$W({}, restProps), {}, {
|
|
1870
1878
|
className: clsx('ams-label', className),
|
|
1871
1879
|
ref: ref,
|
|
1872
1880
|
children: [children, " ", jsx(Hint, {
|
|
@@ -1874,6 +1882,10 @@ var Label = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
1874
1882
|
optional: optional
|
|
1875
1883
|
})]
|
|
1876
1884
|
}));
|
|
1885
|
+
return isPageHeading ? jsx("h1", {
|
|
1886
|
+
className: "ams-label__heading",
|
|
1887
|
+
children: labelElement
|
|
1888
|
+
}) : labelElement;
|
|
1877
1889
|
});
|
|
1878
1890
|
Label.displayName = 'Label';
|
|
1879
1891
|
|
|
@@ -2169,7 +2181,7 @@ var MenuLink = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
2169
2181
|
});
|
|
2170
2182
|
MenuLink.displayName = 'Menu.Link';
|
|
2171
2183
|
|
|
2172
|
-
var _excluded$J = ["accessibleName", "children", "className"];
|
|
2184
|
+
var _excluded$J = ["accessibleName", "children", "className", "inWideWindow"];
|
|
2173
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; }
|
|
2174
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; }
|
|
2175
2187
|
var MenuRoot = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
@@ -2177,12 +2189,16 @@ var MenuRoot = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
2177
2189
|
accessibleName = _ref$accessibleName === void 0 ? 'Hoofdnavigatie' : _ref$accessibleName,
|
|
2178
2190
|
children = _ref.children,
|
|
2179
2191
|
className = _ref.className,
|
|
2192
|
+
inWideWindow = _ref.inWideWindow,
|
|
2180
2193
|
restProps = _objectWithoutProperties(_ref, _excluded$J);
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
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", {
|
|
2186
2202
|
className: "ams-visually-hidden",
|
|
2187
2203
|
id: "primary-navigation",
|
|
2188
2204
|
children: accessibleName
|
|
@@ -2350,9 +2366,9 @@ var PageFooter = Object.assign(PageFooterRoot, {
|
|
|
2350
2366
|
});
|
|
2351
2367
|
|
|
2352
2368
|
// TODO: we should set the breakpoint in JS somewhere and render this and the sass variables from that
|
|
2353
|
-
var
|
|
2354
|
-
medium: '
|
|
2355
|
-
wide: '
|
|
2369
|
+
var BREAKPOINTS = {
|
|
2370
|
+
medium: '37.5rem',
|
|
2371
|
+
wide: '72.5rem'
|
|
2356
2372
|
};
|
|
2357
2373
|
var useIsAfterBreakpoint = function useIsAfterBreakpoint(breakpoint) {
|
|
2358
2374
|
var _useState = useState(false),
|
|
@@ -2362,7 +2378,7 @@ var useIsAfterBreakpoint = function useIsAfterBreakpoint(breakpoint) {
|
|
|
2362
2378
|
useLayoutEffect(function () {
|
|
2363
2379
|
// Check for window object to avoid SSR issues
|
|
2364
2380
|
if (typeof window !== 'undefined') {
|
|
2365
|
-
var media = window.matchMedia("(min-width: ".concat(
|
|
2381
|
+
var media = window.matchMedia("(min-width: ".concat(BREAKPOINTS[breakpoint], ")"));
|
|
2366
2382
|
if (media.matches !== matches) {
|
|
2367
2383
|
setMatches(media.matches);
|
|
2368
2384
|
}
|
|
@@ -2872,6 +2888,7 @@ var SearchFieldButton = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
2872
2888
|
icon: SearchIcon,
|
|
2873
2889
|
iconOnly: true,
|
|
2874
2890
|
ref: ref,
|
|
2891
|
+
type: "submit",
|
|
2875
2892
|
children: children
|
|
2876
2893
|
}));
|
|
2877
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|