minerva-design 1.0.0 → 1.0.2
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/CHANGELOG.md +12 -0
- package/custom-elements.json +663 -0
- package/dist/angular/fesm2022/minerva-angular.mjs +1163 -34
- package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
- package/dist/angular/types/minerva-angular.d.ts +237 -1
- package/dist/core/calendar-date.d.cts +5 -0
- package/dist/core/calendar-date.d.ts +5 -0
- package/dist/core/contracts.cjs +1 -1
- package/dist/core/contracts.cjs.map +1 -1
- package/dist/core/contracts.js +1 -1
- package/dist/core/contracts.js.map +1 -1
- package/dist/core/index.cjs +6 -6
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.js +671 -630
- package/dist/core/index.js.map +1 -1
- package/dist/core/styling-hooks/components/date-picker.d.cts +45 -0
- package/dist/core/styling-hooks/components/date-picker.d.ts +45 -0
- package/dist/core/styling-hooks/manifest.d.cts +44 -0
- package/dist/core/styling-hooks/manifest.d.ts +44 -0
- package/dist/core/styling-hooks.cjs +1 -1
- package/dist/core/styling-hooks.cjs.map +1 -1
- package/dist/core/styling-hooks.js +62 -0
- package/dist/core/styling-hooks.js.map +1 -1
- package/dist/native/components/Calendar/Calendar.cjs +1 -1
- package/dist/native/components/Calendar/Calendar.cjs.map +1 -1
- package/dist/native/components/Calendar/Calendar.d.cts +2 -0
- package/dist/native/components/Calendar/Calendar.d.ts +2 -0
- package/dist/native/components/Calendar/Calendar.js +115 -112
- package/dist/native/components/Calendar/Calendar.js.map +1 -1
- package/dist/native/components/Checkbox/Checkbox.cjs +1 -1
- package/dist/native/components/Checkbox/Checkbox.cjs.map +1 -1
- package/dist/native/components/Checkbox/Checkbox.js +8 -8
- package/dist/native/components/Checkbox/CheckboxGroup.cjs +1 -1
- package/dist/native/components/Checkbox/CheckboxGroup.cjs.map +1 -1
- package/dist/native/components/Checkbox/CheckboxGroup.js +6 -6
- package/dist/native/components/DatePicker/DatePicker.cjs +2 -0
- package/dist/native/components/DatePicker/DatePicker.cjs.map +1 -0
- package/dist/native/components/DatePicker/DatePicker.d.cts +40 -0
- package/dist/native/components/DatePicker/DatePicker.d.ts +40 -0
- package/dist/native/components/DatePicker/DatePicker.js +110 -0
- package/dist/native/components/DatePicker/DatePicker.js.map +1 -0
- package/dist/native/components/DatePicker/index.cjs +1 -0
- package/dist/native/components/DatePicker/index.d.cts +2 -0
- package/dist/native/components/DatePicker/index.d.ts +2 -0
- package/dist/native/components/DatePicker/index.js +2 -0
- package/dist/native/components/Radio/RadioGroup.cjs +1 -1
- package/dist/native/components/Radio/RadioGroup.cjs.map +1 -1
- package/dist/native/components/Radio/RadioGroup.js +9 -9
- package/dist/native/components/Switch/Switch.cjs +1 -1
- package/dist/native/components/Switch/Switch.cjs.map +1 -1
- package/dist/native/components/Switch/Switch.js +23 -23
- package/dist/native/components/Switch/Switch.js.map +1 -1
- package/dist/native/index.cjs +1 -1
- package/dist/native/index.d.cts +1 -0
- package/dist/native/index.d.ts +1 -0
- package/dist/native/index.js +70 -68
- package/dist/native/source/components/Calendar/Calendar.tsx +14 -6
- package/dist/native/source/components/DatePicker/DatePicker.tsx +201 -0
- package/dist/native/source/components/DatePicker/index.ts +2 -0
- package/dist/native/source/index.ts +1 -0
- package/dist/native/source/manifest.ts +6 -0
- package/dist/react/components/DatePicker/DatePicker.cjs +2 -0
- package/dist/react/components/DatePicker/DatePicker.cjs.map +1 -0
- package/dist/react/components/DatePicker/DatePicker.d.cts +13 -0
- package/dist/react/components/DatePicker/DatePicker.d.ts +13 -0
- package/dist/react/components/DatePicker/DatePicker.js +315 -0
- package/dist/react/components/DatePicker/DatePicker.js.map +1 -0
- package/dist/react/components/DatePicker/datePicker.module.scss.cjs +2 -0
- package/dist/react/components/DatePicker/datePicker.module.scss.cjs.map +1 -0
- package/dist/react/components/DatePicker/datePicker.module.scss.js +23 -0
- package/dist/react/components/DatePicker/datePicker.module.scss.js.map +1 -0
- package/dist/react/components/DatePicker/index.cjs +1 -0
- package/dist/react/components/DatePicker/index.d.cts +5 -0
- package/dist/react/components/DatePicker/index.d.ts +5 -0
- package/dist/react/components/DatePicker/index.js +3 -0
- package/dist/react/components/DatePicker/types.d.cts +97 -0
- package/dist/react/components/DatePicker/types.d.ts +97 -0
- package/dist/react/components/Tooltip/Tooltip.cjs +1 -1
- package/dist/react/components/Tooltip/Tooltip.cjs.map +1 -1
- package/dist/react/components/Tooltip/Tooltip.js +5 -5
- package/dist/react/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/react/components/index.cjs +1 -1
- package/dist/react/components/index.d.cts +1 -0
- package/dist/react/components/index.d.ts +1 -0
- package/dist/react/components/index.js +3 -1
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.js +7 -6
- package/dist/react/style.css +1 -0
- package/dist/react/styles/date-picker.css +7 -0
- package/dist/taro/date-picker.d.ts +20 -0
- package/dist/taro/index.d.ts +1 -0
- package/dist/taro/index.js +1155 -990
- package/dist/uni/DatePicker.vue +225 -0
- package/dist/uni/DatePicker.vue.d.ts +36 -0
- package/dist/uni/MonthCalendar.vue +2 -0
- package/dist/uni/MonthCalendar.vue.d.ts +2 -0
- package/dist/uni/index.d.ts +1 -0
- package/dist/uni/index.js +1 -0
- package/dist/uni/manifest.d.ts +7 -0
- package/dist/uni/manifest.js +8 -0
- package/dist/vue/components/DatePicker/DatePicker.vue.d.ts +36 -0
- package/dist/vue/components/DatePicker/DatePicker.vue.js +7 -0
- package/dist/vue/components/DatePicker/DatePicker.vue.js.map +1 -0
- package/dist/vue/components/DatePicker/DatePicker.vue_vue_type_script_setup_true_lang.js +380 -0
- package/dist/vue/components/DatePicker/DatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/DatePicker/index.d.ts +2 -0
- package/dist/vue/components/DatePicker/index.js +2 -0
- package/dist/vue/components/DatePicker/types.d.ts +26 -0
- package/dist/vue/components/MonthCalendar/MonthCalendar.vue.d.ts +1 -1
- package/dist/vue/global.d.ts +108 -0
- package/dist/vue/groups/forms-pickers.d.ts +1 -0
- package/dist/vue/groups/forms-pickers.js +5 -2
- package/dist/vue/groups/forms-pickers.js.map +1 -1
- package/dist/vue/index.js +95 -94
- package/dist/weapp/controls.js +259 -76
- package/dist/weapp/date-picker/index.js +1 -0
- package/dist/weapp/date-picker/index.json +1 -0
- package/dist/weapp/date-picker/index.wxml +1 -0
- package/dist/weapp/date-picker/index.wxss +1 -0
- package/dist/weapp/types.d.ts +19 -0
- package/dist/web-components/cdn/minerva.js +461 -335
- package/dist/web-components/cdn/minerva.js.map +1 -1
- package/dist/web-components/components/date-picker/date-picker.d.ts +110 -0
- package/dist/web-components/components/date-picker/date-picker.js +378 -0
- package/dist/web-components/components/date-picker/date-picker.js.map +1 -0
- package/dist/web-components/elements/date-picker.d.ts +1 -0
- package/dist/web-components/elements/date-picker.js +8 -0
- package/dist/web-components/elements/date-picker.js.map +1 -0
- package/dist/web-components/html-custom-data.json +85 -0
- package/dist/web-components/index.d.ts +1 -0
- package/dist/web-components/index.js +8 -6
- package/dist/web-components/styles/DatePicker/datePicker.css.js +6 -0
- package/dist/web-components/styles/DatePicker/datePicker.css.js.map +1 -0
- package/dist/web-components/types/react.d.ts +12 -0
- package/dist/web-components/types/solid.d.ts +9 -0
- package/dist/web-components/types/svelte.d.ts +9 -0
- package/dist/web-components/types/vue.d.ts +10 -0
- package/package.json +9 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DOCUMENT, NgTemplateOutlet, isPlatformBrowser } from "@angular/common";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import { ChangeDetectionStrategy, Component, DestroyRef, Directive, ElementRef, Injectable, InjectionToken, Injector, PLATFORM_ID, SecurityContext, TemplateRef, ViewContainerRef, ViewEncapsulation, afterNextRender, afterRenderEffect, booleanAttribute, computed, contentChild, effect, forwardRef, inject, input, linkedSignal, makeEnvironmentProviders, model, numberAttribute, output, provideEnvironmentInitializer, signal, untracked, viewChild, viewChildren } from "@angular/core";
|
|
4
|
-
import { DEFAULT_LANGUAGE, DEFAULT_TAG_SEPARATORS, PALETTES, RATING_STAR_COUNT, addDays, clampNumber, cn, createCheckboxMachine, createRatingMachine, createSwitchMachine, createTypeahead, dayKey, designAttributes, findCascaderPath, flattenCascaderOptions, formatHasSeconds, formatNumberValue, formatTime, getNextIndex, getPageRange, getRatingKeyValue, getRatingStarFills, getVirtualRange, inferStepPrecision, isPalette, isSupportedLanguage, matchesAccept, messages, monthStart, parseNumberDraft, parseTimeInput, presetPalette, resolveDesign, resolveSize, resolveSpace, resolveTimeFormat, sameMonth, splitBySeparators, startOfToday, translate } from "../../core/index.js";
|
|
4
|
+
import { DEFAULT_LANGUAGE, DEFAULT_TAG_SEPARATORS, PALETTES, RATING_STAR_COUNT, addDays, clampNumber, cn, createCheckboxMachine, createRatingMachine, createSwitchMachine, createTypeahead, dayKey, designAttributes, findCascaderPath, flattenCascaderOptions, formatHasSeconds, formatNumberValue, formatTime, getNextIndex, getPageRange, getRatingKeyValue, getRatingStarFills, getVirtualRange, inferStepPrecision, isPalette, isSupportedLanguage, localDate, matchesAccept, messages, monthStart, parseDayKey, parseNumberDraft, parseTimeInput, presetPalette, resolveDesign, resolveSize, resolveSpace, resolveTimeFormat, sameMonth, splitBySeparators, startOfToday, translate } from "../../core/index.js";
|
|
5
5
|
import { FOCUS_SCOPE_UNMOUNT_EVENT, PALETTE_COOKIE_NAME, THEME_COOKIE_NAME, applyDesignAttributes, applyPosition, autoPosition, createDismissableLayer, createFocusScope, focusElement, generateCSSVariables, getDirection, getSystemTheme, getTabbables, hideOthers, isBilingualTheme, lockScroll, logicalArrowKey, parsePaletteCookie, parsePlacement, parseThemeCookie, readCookieValue, resolveTheme, serializeThemeCookie, waitForExitAnimation } from "../../dom/index.js";
|
|
6
6
|
import { FormGroupDirective, NG_VALUE_ACCESSOR, NgControl, NgForm } from "@angular/forms";
|
|
7
7
|
import { DomSanitizer } from "@angular/platform-browser";
|
|
@@ -951,6 +951,23 @@ const commandStyles = {
|
|
|
951
951
|
search: "_search_ddj2h_50",
|
|
952
952
|
searchIcon: "_searchIcon_ddj2h_74"
|
|
953
953
|
};
|
|
954
|
+
const datePickerStyles = {
|
|
955
|
+
calendarIcon: "_calendarIcon_6el17_22",
|
|
956
|
+
clearButton: "_clearButton_6el17_6",
|
|
957
|
+
datePicker: "_datePicker_6el17_1",
|
|
958
|
+
day: "_day_6el17_111",
|
|
959
|
+
footer: "_footer_6el17_157",
|
|
960
|
+
footerButton: "_footerButton_6el17_165",
|
|
961
|
+
grid: "_grid_6el17_92",
|
|
962
|
+
header: "_header_6el17_46",
|
|
963
|
+
heading: "_heading_6el17_54",
|
|
964
|
+
navButton: "_navButton_6el17_67",
|
|
965
|
+
navGroup: "_navGroup_6el17_61",
|
|
966
|
+
panel: "_panel_6el17_34",
|
|
967
|
+
popup: "_popup_6el17_29",
|
|
968
|
+
week: "_week_6el17_96",
|
|
969
|
+
weekday: "_weekday_6el17_103"
|
|
970
|
+
};
|
|
954
971
|
const descriptionListStyles = {
|
|
955
972
|
bordered: "_bordered_1v9yl_51",
|
|
956
973
|
descriptionList: "_descriptionList_1v9yl_1",
|
|
@@ -2230,13 +2247,13 @@ const PLACEMENT$1 = {
|
|
|
2230
2247
|
top: switchStyles.labelTop,
|
|
2231
2248
|
bottom: switchStyles.labelBottom
|
|
2232
2249
|
};
|
|
2233
|
-
const optionalBoolean$
|
|
2250
|
+
const optionalBoolean$9 = (value) => value === void 0 || value === null ? void 0 : booleanAttribute(value);
|
|
2234
2251
|
var MnSwitch = class MnSwitch extends MnFormValueControl {
|
|
2235
2252
|
constructor() {
|
|
2236
2253
|
super();
|
|
2237
2254
|
this.checked = input(void 0, {
|
|
2238
2255
|
...ngDevMode ? { debugName: "checked" } : /* istanbul ignore next */ {},
|
|
2239
|
-
transform: optionalBoolean$
|
|
2256
|
+
transform: optionalBoolean$9
|
|
2240
2257
|
});
|
|
2241
2258
|
this.checkedChange = output();
|
|
2242
2259
|
this.defaultChecked = input(false, {
|
|
@@ -2245,7 +2262,7 @@ var MnSwitch = class MnSwitch extends MnFormValueControl {
|
|
|
2245
2262
|
});
|
|
2246
2263
|
this.disabled = input(void 0, {
|
|
2247
2264
|
...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
|
|
2248
|
-
transform: optionalBoolean$
|
|
2265
|
+
transform: optionalBoolean$9
|
|
2249
2266
|
});
|
|
2250
2267
|
this.invalid = input(false, {
|
|
2251
2268
|
...ngDevMode ? { debugName: "invalid" } : /* istanbul ignore next */ {},
|
|
@@ -4722,7 +4739,7 @@ const PLACEMENT = {
|
|
|
4722
4739
|
left: "left-start",
|
|
4723
4740
|
right: "right-start"
|
|
4724
4741
|
};
|
|
4725
|
-
const optionalBoolean$
|
|
4742
|
+
const optionalBoolean$8 = (value) => value === void 0 || value === null ? void 0 : booleanAttribute(value);
|
|
4726
4743
|
var MnAutoComplete = class MnAutoComplete extends MnFormValueControl {
|
|
4727
4744
|
constructor() {
|
|
4728
4745
|
super();
|
|
@@ -4768,7 +4785,7 @@ var MnAutoComplete = class MnAutoComplete extends MnFormValueControl {
|
|
|
4768
4785
|
});
|
|
4769
4786
|
this.disabled = input(void 0, {
|
|
4770
4787
|
...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
|
|
4771
|
-
transform: optionalBoolean$
|
|
4788
|
+
transform: optionalBoolean$8
|
|
4772
4789
|
});
|
|
4773
4790
|
this.readOnly = input(false, {
|
|
4774
4791
|
...ngDevMode ? { debugName: "readOnly" } : /* istanbul ignore next */ {},
|
|
@@ -6788,7 +6805,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
6788
6805
|
}
|
|
6789
6806
|
});
|
|
6790
6807
|
const EMPTY_VALUE = [];
|
|
6791
|
-
const optionalBoolean$
|
|
6808
|
+
const optionalBoolean$7 = (value) => value === void 0 || value === null ? void 0 : booleanAttribute(value);
|
|
6792
6809
|
const widthAttribute = (value) => {
|
|
6793
6810
|
if (typeof value === "number") return value;
|
|
6794
6811
|
const text = String(value ?? "");
|
|
@@ -6806,7 +6823,7 @@ var MnCascader = class MnCascader extends MnFormValueControl {
|
|
|
6806
6823
|
this.displayRender = input(void 0, ...ngDevMode ? [{ debugName: "displayRender" }] : /* istanbul ignore next */ []);
|
|
6807
6824
|
this.disabled = input(void 0, {
|
|
6808
6825
|
...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
|
|
6809
|
-
transform: optionalBoolean$
|
|
6826
|
+
transform: optionalBoolean$7
|
|
6810
6827
|
});
|
|
6811
6828
|
this.placeholder = input(void 0, ...ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []);
|
|
6812
6829
|
this.allowClear = input(true, {
|
|
@@ -6829,15 +6846,15 @@ var MnCascader = class MnCascader extends MnFormValueControl {
|
|
|
6829
6846
|
this.id = input(void 0, ...ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []);
|
|
6830
6847
|
this.required = input(void 0, {
|
|
6831
6848
|
...ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {},
|
|
6832
|
-
transform: optionalBoolean$
|
|
6849
|
+
transform: optionalBoolean$7
|
|
6833
6850
|
});
|
|
6834
6851
|
this.readOnly = input(void 0, {
|
|
6835
6852
|
...ngDevMode ? { debugName: "readOnly" } : /* istanbul ignore next */ {},
|
|
6836
|
-
transform: optionalBoolean$
|
|
6853
|
+
transform: optionalBoolean$7
|
|
6837
6854
|
});
|
|
6838
6855
|
this.invalid = input(void 0, {
|
|
6839
6856
|
...ngDevMode ? { debugName: "invalid" } : /* istanbul ignore next */ {},
|
|
6840
|
-
transform: optionalBoolean$
|
|
6857
|
+
transform: optionalBoolean$7
|
|
6841
6858
|
});
|
|
6842
6859
|
this.showSearch = input(false, {
|
|
6843
6860
|
...ngDevMode ? { debugName: "showSearch" } : /* istanbul ignore next */ {},
|
|
@@ -7934,7 +7951,7 @@ function emptyContent(element, deps = () => void 0) {
|
|
|
7934
7951
|
} });
|
|
7935
7952
|
return empty.asReadonly();
|
|
7936
7953
|
}
|
|
7937
|
-
const optionalBoolean$
|
|
7954
|
+
const optionalBoolean$6 = (value) => value === void 0 || value === null ? void 0 : booleanAttribute(value);
|
|
7938
7955
|
const capitalize = (value) => value.charAt(0).toUpperCase() + value.slice(1);
|
|
7939
7956
|
var MnCheckbox = class MnCheckbox extends MnFormValueControl {
|
|
7940
7957
|
constructor() {
|
|
@@ -7947,7 +7964,7 @@ var MnCheckbox = class MnCheckbox extends MnFormValueControl {
|
|
|
7947
7964
|
});
|
|
7948
7965
|
this.disabled = input(void 0, {
|
|
7949
7966
|
...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
|
|
7950
|
-
transform: optionalBoolean$
|
|
7967
|
+
transform: optionalBoolean$6
|
|
7951
7968
|
});
|
|
7952
7969
|
this.indeterminate = input(false, {
|
|
7953
7970
|
...ngDevMode ? { debugName: "indeterminate" } : /* istanbul ignore next */ {},
|
|
@@ -7975,7 +7992,7 @@ var MnCheckbox = class MnCheckbox extends MnFormValueControl {
|
|
|
7975
7992
|
this.icon = input(void 0, ...ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []);
|
|
7976
7993
|
this.required = input(void 0, {
|
|
7977
7994
|
...ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {},
|
|
7978
|
-
transform: optionalBoolean$
|
|
7995
|
+
transform: optionalBoolean$6
|
|
7979
7996
|
});
|
|
7980
7997
|
this.error = input(false, {
|
|
7981
7998
|
...ngDevMode ? { debugName: "error" } : /* istanbul ignore next */ {},
|
|
@@ -9412,7 +9429,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
9412
9429
|
}]
|
|
9413
9430
|
}]
|
|
9414
9431
|
});
|
|
9415
|
-
const optionalBoolean$
|
|
9432
|
+
const optionalBoolean$5 = (value) => value === void 0 || value === null ? void 0 : booleanAttribute(value);
|
|
9416
9433
|
var MnFieldBase = class MnFieldBase {
|
|
9417
9434
|
fallbackInvalid() {
|
|
9418
9435
|
return this.controlInvalid();
|
|
@@ -9420,7 +9437,7 @@ var MnFieldBase = class MnFieldBase {
|
|
|
9420
9437
|
constructor() {
|
|
9421
9438
|
this.invalid = input(void 0, {
|
|
9422
9439
|
...ngDevMode ? { debugName: "invalid" } : /* istanbul ignore next */ {},
|
|
9423
|
-
transform: optionalBoolean$
|
|
9440
|
+
transform: optionalBoolean$5
|
|
9424
9441
|
});
|
|
9425
9442
|
this.required = input(false, {
|
|
9426
9443
|
...ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {},
|
|
@@ -12208,7 +12225,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
12208
12225
|
}
|
|
12209
12226
|
});
|
|
12210
12227
|
const MN_RADIO_GROUP = new InjectionToken("MN_RADIO_GROUP");
|
|
12211
|
-
const optionalBoolean$
|
|
12228
|
+
const optionalBoolean$4 = (value) => value === void 0 || value === null ? void 0 : booleanAttribute(value);
|
|
12212
12229
|
var MnRadioGroup = class MnRadioGroup extends MnFormValueControl {
|
|
12213
12230
|
constructor() {
|
|
12214
12231
|
super(...arguments);
|
|
@@ -12231,7 +12248,7 @@ var MnRadioGroup = class MnRadioGroup extends MnFormValueControl {
|
|
|
12231
12248
|
this.id = input(void 0, ...ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []);
|
|
12232
12249
|
this.disabled = input(void 0, {
|
|
12233
12250
|
...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
|
|
12234
|
-
transform: optionalBoolean$
|
|
12251
|
+
transform: optionalBoolean$4
|
|
12235
12252
|
});
|
|
12236
12253
|
this.direction = input("vertical", ...ngDevMode ? [{ debugName: "direction" }] : /* istanbul ignore next */ []);
|
|
12237
12254
|
this.size = input(void 0, ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
|
|
@@ -12242,7 +12259,7 @@ var MnRadioGroup = class MnRadioGroup extends MnFormValueControl {
|
|
|
12242
12259
|
this.helperText = input(void 0, ...ngDevMode ? [{ debugName: "helperText" }] : /* istanbul ignore next */ []);
|
|
12243
12260
|
this.required = input(void 0, {
|
|
12244
12261
|
...ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {},
|
|
12245
|
-
transform: optionalBoolean$
|
|
12262
|
+
transform: optionalBoolean$4
|
|
12246
12263
|
});
|
|
12247
12264
|
this.color = input(void 0, ...ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []);
|
|
12248
12265
|
this.s = radioStyles;
|
|
@@ -12727,7 +12744,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
12727
12744
|
}]
|
|
12728
12745
|
}
|
|
12729
12746
|
});
|
|
12730
|
-
const optionalBoolean$
|
|
12747
|
+
const optionalBoolean$3 = (value) => value === void 0 || value === null ? void 0 : booleanAttribute(value);
|
|
12731
12748
|
var MnRadioRegistry = class MnRadioRegistry {
|
|
12732
12749
|
constructor() {
|
|
12733
12750
|
this.radios = /* @__PURE__ */ new Set();
|
|
@@ -12780,7 +12797,7 @@ var MnRadio = class MnRadio {
|
|
|
12780
12797
|
});
|
|
12781
12798
|
this.disabled = input(void 0, {
|
|
12782
12799
|
...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
|
|
12783
|
-
transform: optionalBoolean$
|
|
12800
|
+
transform: optionalBoolean$3
|
|
12784
12801
|
});
|
|
12785
12802
|
this.name = input(void 0, ...ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []);
|
|
12786
12803
|
this.value = input(void 0, ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
|
|
@@ -14351,7 +14368,7 @@ const getOptions = (listbox) => Array.from(listbox.querySelectorAll(OPTION_SELEC
|
|
|
14351
14368
|
const isOptionDisabled = (option) => option.getAttribute("aria-disabled") === "true";
|
|
14352
14369
|
const findOption = (listbox, value) => value === null ? void 0 : getOptions(listbox).find((option) => option.dataset["value"] === value);
|
|
14353
14370
|
const isPrintable = (event) => event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey;
|
|
14354
|
-
const optionalBoolean$
|
|
14371
|
+
const optionalBoolean$2 = (value) => value === void 0 || value === null ? void 0 : booleanAttribute(value);
|
|
14355
14372
|
const VISUALLY_HIDDEN = "position: absolute; border: 0; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; word-wrap: normal";
|
|
14356
14373
|
var MnSelect = class MnSelect extends MnFormValueControl {
|
|
14357
14374
|
constructor() {
|
|
@@ -14371,11 +14388,11 @@ var MnSelect = class MnSelect extends MnFormValueControl {
|
|
|
14371
14388
|
});
|
|
14372
14389
|
this.disabled = input(void 0, {
|
|
14373
14390
|
...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
|
|
14374
|
-
transform: optionalBoolean$
|
|
14391
|
+
transform: optionalBoolean$2
|
|
14375
14392
|
});
|
|
14376
14393
|
this.required = input(void 0, {
|
|
14377
14394
|
...ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {},
|
|
14378
|
-
transform: optionalBoolean$
|
|
14395
|
+
transform: optionalBoolean$2
|
|
14379
14396
|
});
|
|
14380
14397
|
this.name = input(void 0, ...ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []);
|
|
14381
14398
|
this.id = input(void 0, ...ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []);
|
|
@@ -17543,13 +17560,13 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
17543
17560
|
}]
|
|
17544
17561
|
}
|
|
17545
17562
|
});
|
|
17546
|
-
const optionalBoolean = (value) => value === void 0 || value === null ? void 0 : booleanAttribute(value);
|
|
17547
|
-
function adjacentTabbable(anchor, container, backwards) {
|
|
17563
|
+
const optionalBoolean$1 = (value) => value === void 0 || value === null ? void 0 : booleanAttribute(value);
|
|
17564
|
+
function adjacentTabbable$1(anchor, container, backwards) {
|
|
17548
17565
|
const tabbables = getTabbables(container).filter((el) => el !== anchor && !anchor.contains(el) && !el.contains(anchor));
|
|
17549
17566
|
const follows = (el) => !!(anchor.compareDocumentPosition(el) & Node.DOCUMENT_POSITION_FOLLOWING);
|
|
17550
17567
|
return backwards ? [...tabbables].reverse().find((el) => !follows(el)) ?? null : tabbables.find(follows) ?? null;
|
|
17551
17568
|
}
|
|
17552
|
-
function tabLeavesPanel(panel, focused, backwards) {
|
|
17569
|
+
function tabLeavesPanel$1(panel, focused, backwards) {
|
|
17553
17570
|
if (!focused || !panel.contains(focused)) return false;
|
|
17554
17571
|
const tabbables = getTabbables(panel);
|
|
17555
17572
|
if (tabbables.length === 0) return true;
|
|
@@ -17584,20 +17601,20 @@ var MnTimePicker = class MnTimePicker extends MnFormValueControl {
|
|
|
17584
17601
|
this.id = input(void 0, ...ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []);
|
|
17585
17602
|
this.required = input(void 0, {
|
|
17586
17603
|
...ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {},
|
|
17587
|
-
transform: optionalBoolean
|
|
17604
|
+
transform: optionalBoolean$1
|
|
17588
17605
|
});
|
|
17589
17606
|
this.readOnly = input(void 0, {
|
|
17590
17607
|
...ngDevMode ? { debugName: "readOnly" } : /* istanbul ignore next */ {},
|
|
17591
|
-
transform: optionalBoolean
|
|
17608
|
+
transform: optionalBoolean$1
|
|
17592
17609
|
});
|
|
17593
17610
|
this.invalid = input(void 0, {
|
|
17594
17611
|
...ngDevMode ? { debugName: "invalid" } : /* istanbul ignore next */ {},
|
|
17595
|
-
transform: optionalBoolean
|
|
17612
|
+
transform: optionalBoolean$1
|
|
17596
17613
|
});
|
|
17597
17614
|
this.name = input("time-picker", ...ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []);
|
|
17598
17615
|
this.disabled = input(void 0, {
|
|
17599
17616
|
...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
|
|
17600
|
-
transform: optionalBoolean
|
|
17617
|
+
transform: optionalBoolean$1
|
|
17601
17618
|
});
|
|
17602
17619
|
this.clearable = input(true, {
|
|
17603
17620
|
...ngDevMode ? { debugName: "clearable" } : /* istanbul ignore next */ {},
|
|
@@ -17785,10 +17802,10 @@ var MnTimePicker = class MnTimePicker extends MnFormValueControl {
|
|
|
17785
17802
|
onPanelKeyDown(event) {
|
|
17786
17803
|
const panel = event.currentTarget;
|
|
17787
17804
|
const input = this.inputRef().nativeElement;
|
|
17788
|
-
if (event.key !== "Tab" || event.altKey || event.ctrlKey || event.metaKey || !tabLeavesPanel(panel, event.target, event.shiftKey)) return;
|
|
17805
|
+
if (event.key !== "Tab" || event.altKey || event.ctrlKey || event.metaKey || !tabLeavesPanel$1(panel, event.target, event.shiftKey)) return;
|
|
17789
17806
|
event.preventDefault();
|
|
17790
17807
|
const container = input.closest("[role=\"dialog\"], [role=\"alertdialog\"]") ?? input.ownerDocument.body;
|
|
17791
|
-
(event.shiftKey ? input : adjacentTabbable(input, container, false) ?? input).focus();
|
|
17808
|
+
(event.shiftKey ? input : adjacentTabbable$1(input, container, false) ?? input).focus();
|
|
17792
17809
|
this.setOpen(false);
|
|
17793
17810
|
}
|
|
17794
17811
|
static {
|
|
@@ -32018,6 +32035,1118 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
32018
32035
|
}]
|
|
32019
32036
|
}]
|
|
32020
32037
|
});
|
|
32021
|
-
|
|
32038
|
+
const optionalBoolean = (value) => value === void 0 || value === null ? void 0 : booleanAttribute(value);
|
|
32039
|
+
function adjacentTabbable(anchor, container, backwards) {
|
|
32040
|
+
const tabbables = getTabbables(container).filter((el) => el !== anchor && !anchor.contains(el) && !el.contains(anchor));
|
|
32041
|
+
const follows = (el) => !!(anchor.compareDocumentPosition(el) & Node.DOCUMENT_POSITION_FOLLOWING);
|
|
32042
|
+
return backwards ? [...tabbables].reverse().find((el) => !follows(el)) ?? null : tabbables.find(follows) ?? null;
|
|
32043
|
+
}
|
|
32044
|
+
function tabLeavesPanel(panel, focused, backwards) {
|
|
32045
|
+
if (!focused || !panel.contains(focused)) return false;
|
|
32046
|
+
const tabbables = getTabbables(panel);
|
|
32047
|
+
if (tabbables.length === 0) return true;
|
|
32048
|
+
if (backwards) return focused === panel || focused === tabbables[0];
|
|
32049
|
+
return focused === tabbables[tabbables.length - 1];
|
|
32050
|
+
}
|
|
32051
|
+
var MnDatePicker = class MnDatePicker extends MnFormValueControl {
|
|
32052
|
+
dayDisabled(key) {
|
|
32053
|
+
return !!(this.minDate() && key < this.minDate() || this.maxDate() && key > this.maxDate());
|
|
32054
|
+
}
|
|
32055
|
+
navigateMonth(offset) {
|
|
32056
|
+
this.month.set(monthStart(this.month(), offset));
|
|
32057
|
+
}
|
|
32058
|
+
syncMonth() {
|
|
32059
|
+
const date = parseDayKey(this.current());
|
|
32060
|
+
if (date) this.month.set(monthStart(date));
|
|
32061
|
+
}
|
|
32062
|
+
selectToday() {
|
|
32063
|
+
this.selectDate(/* @__PURE__ */ new Date());
|
|
32064
|
+
}
|
|
32065
|
+
selectDate(date) {
|
|
32066
|
+
if (this.isDisabled() || this.isReadOnly() || this.dayDisabled(dayKey(date))) return;
|
|
32067
|
+
this.draft.set(null);
|
|
32068
|
+
this.commit(dayKey(date));
|
|
32069
|
+
this.month.set(monthStart(date));
|
|
32070
|
+
this.setOpen(false);
|
|
32071
|
+
this.focus();
|
|
32072
|
+
}
|
|
32073
|
+
onDayKeyDown(event, date) {
|
|
32074
|
+
if (this.isDisabled() || this.isReadOnly()) return;
|
|
32075
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
32076
|
+
event.preventDefault();
|
|
32077
|
+
if (!event.repeat) this.selectDate(date);
|
|
32078
|
+
return;
|
|
32079
|
+
}
|
|
32080
|
+
let target;
|
|
32081
|
+
const weekday = (date.getDay() + 6) % 7;
|
|
32082
|
+
let key = event.key;
|
|
32083
|
+
if (getDirection(event.currentTarget) === "rtl") {
|
|
32084
|
+
if (key === "ArrowLeft") key = "ArrowRight";
|
|
32085
|
+
else if (key === "ArrowRight") key = "ArrowLeft";
|
|
32086
|
+
}
|
|
32087
|
+
switch (key) {
|
|
32088
|
+
case "ArrowLeft":
|
|
32089
|
+
target = addDays(date, -1);
|
|
32090
|
+
break;
|
|
32091
|
+
case "ArrowRight":
|
|
32092
|
+
target = addDays(date, 1);
|
|
32093
|
+
break;
|
|
32094
|
+
case "ArrowUp":
|
|
32095
|
+
target = addDays(date, -7);
|
|
32096
|
+
break;
|
|
32097
|
+
case "ArrowDown":
|
|
32098
|
+
target = addDays(date, 7);
|
|
32099
|
+
break;
|
|
32100
|
+
case "Home":
|
|
32101
|
+
target = addDays(date, -weekday);
|
|
32102
|
+
break;
|
|
32103
|
+
case "End":
|
|
32104
|
+
target = addDays(date, 6 - weekday);
|
|
32105
|
+
break;
|
|
32106
|
+
case "PageUp":
|
|
32107
|
+
case "PageDown": {
|
|
32108
|
+
const next = monthStart(date, (key === "PageUp" ? -1 : 1) * (event.shiftKey ? 12 : 1));
|
|
32109
|
+
target = localDate(next.getFullYear(), next.getMonth(), Math.min(date.getDate(), addDays(monthStart(next, 1), -1).getDate()));
|
|
32110
|
+
break;
|
|
32111
|
+
}
|
|
32112
|
+
default: return;
|
|
32113
|
+
}
|
|
32114
|
+
event.preventDefault();
|
|
32115
|
+
this.focusedKey.set(dayKey(target));
|
|
32116
|
+
this.pendingFocus.set(dayKey(target));
|
|
32117
|
+
if (!sameMonth(target, this.month())) this.month.set(monthStart(target));
|
|
32118
|
+
}
|
|
32119
|
+
constructor() {
|
|
32120
|
+
super();
|
|
32121
|
+
this.value = input(void 0, ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
|
|
32122
|
+
this.valueChange = output();
|
|
32123
|
+
this.change = output();
|
|
32124
|
+
this.defaultValue = input(void 0, ...ngDevMode ? [{ debugName: "defaultValue" }] : /* istanbul ignore next */ []);
|
|
32125
|
+
this.open = model(false, ...ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []);
|
|
32126
|
+
this.placeholder = input(void 0, ...ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []);
|
|
32127
|
+
this.label = input(void 0, ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
32128
|
+
this.ariaLabel = input(void 0, {
|
|
32129
|
+
...ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {},
|
|
32130
|
+
alias: "aria-label"
|
|
32131
|
+
});
|
|
32132
|
+
this.ariaLabelledby = input(void 0, {
|
|
32133
|
+
...ngDevMode ? { debugName: "ariaLabelledby" } : /* istanbul ignore next */ {},
|
|
32134
|
+
alias: "aria-labelledby"
|
|
32135
|
+
});
|
|
32136
|
+
this.ariaDescribedby = input(void 0, {
|
|
32137
|
+
...ngDevMode ? { debugName: "ariaDescribedby" } : /* istanbul ignore next */ {},
|
|
32138
|
+
alias: "aria-describedby"
|
|
32139
|
+
});
|
|
32140
|
+
this.id = input(void 0, ...ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []);
|
|
32141
|
+
this.required = input(void 0, {
|
|
32142
|
+
...ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {},
|
|
32143
|
+
transform: optionalBoolean
|
|
32144
|
+
});
|
|
32145
|
+
this.readOnly = input(void 0, {
|
|
32146
|
+
...ngDevMode ? { debugName: "readOnly" } : /* istanbul ignore next */ {},
|
|
32147
|
+
transform: optionalBoolean
|
|
32148
|
+
});
|
|
32149
|
+
this.invalid = input(void 0, {
|
|
32150
|
+
...ngDevMode ? { debugName: "invalid" } : /* istanbul ignore next */ {},
|
|
32151
|
+
transform: optionalBoolean
|
|
32152
|
+
});
|
|
32153
|
+
this.name = input("date-picker", ...ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []);
|
|
32154
|
+
this.disabled = input(void 0, {
|
|
32155
|
+
...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
|
|
32156
|
+
transform: optionalBoolean
|
|
32157
|
+
});
|
|
32158
|
+
this.clearable = input(true, {
|
|
32159
|
+
...ngDevMode ? { debugName: "clearable" } : /* istanbul ignore next */ {},
|
|
32160
|
+
transform: booleanAttribute
|
|
32161
|
+
});
|
|
32162
|
+
this.size = input("medium", ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
|
|
32163
|
+
this.minDate = input(void 0, ...ngDevMode ? [{ debugName: "minDate" }] : /* istanbul ignore next */ []);
|
|
32164
|
+
this.maxDate = input(void 0, ...ngDevMode ? [{ debugName: "maxDate" }] : /* istanbul ignore next */ []);
|
|
32165
|
+
this.locale = input(void 0, ...ngDevMode ? [{ debugName: "locale" }] : /* istanbul ignore next */ []);
|
|
32166
|
+
this.s = datePickerStyles;
|
|
32167
|
+
this.is = inputStyles;
|
|
32168
|
+
this.ib = iconButtonStyles;
|
|
32169
|
+
this.scope = injectScope();
|
|
32170
|
+
this.fieldContext = injectFormField();
|
|
32171
|
+
this.field = fieldWiring(this.fieldContext, {
|
|
32172
|
+
id: () => this.id(),
|
|
32173
|
+
describedBy: () => this.ariaDescribedby()
|
|
32174
|
+
});
|
|
32175
|
+
this.host = inject(ElementRef);
|
|
32176
|
+
this.inputRef = viewChild.required("input", ...ngDevMode ? [{ debugName: "inputRef" }] : /* istanbul ignore next */ []);
|
|
32177
|
+
this.panelRef = viewChild("panel", ...ngDevMode ? [{ debugName: "panelRef" }] : /* istanbul ignore next */ []);
|
|
32178
|
+
this.isDisabled = computed(() => this.disabled() ?? (this.formDisabled() || (this.fieldContext?.disabled() ?? false)), ...ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []);
|
|
32179
|
+
this.isReadOnly = computed(() => this.readOnly() ?? this.fieldContext?.readOnly() ?? false, ...ngDevMode ? [{ debugName: "isReadOnly" }] : /* istanbul ignore next */ []);
|
|
32180
|
+
this.isRequired = computed(() => this.required() ?? this.fieldContext?.required() ?? false, ...ngDevMode ? [{ debugName: "isRequired" }] : /* istanbul ignore next */ []);
|
|
32181
|
+
this.isInvalid = computed(() => this.invalid() ?? ((this.fieldContext?.invalid() ?? false) || this.controlInvalid()), ...ngDevMode ? [{ debugName: "isInvalid" }] : /* istanbul ignore next */ []);
|
|
32182
|
+
this.isOpen = computed(() => this.open() && !this.isDisabled() && !this.isReadOnly(), ...ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []);
|
|
32183
|
+
this.accessibleName = computed(() => this.label() ?? this.ariaLabel() ?? this.scope.t("datePicker.label"), ...ngDevMode ? [{ debugName: "accessibleName" }] : /* istanbul ignore next */ []);
|
|
32184
|
+
this.labelledBy = computed(() => this.ariaLabelledby() ?? (this.fieldContext && !this.label() && !this.ariaLabel() ? this.fieldContext.labelId() : null), ...ngDevMode ? [{ debugName: "labelledBy" }] : /* istanbul ignore next */ []);
|
|
32185
|
+
this.internal = signal(void 0, ...ngDevMode ? [{ debugName: "internal" }] : /* istanbul ignore next */ []);
|
|
32186
|
+
this.current = computed(() => {
|
|
32187
|
+
const value = this.value();
|
|
32188
|
+
return value === void 0 ? this.formValue() ?? this.internal() ?? this.defaultValue() ?? "" : value ?? "";
|
|
32189
|
+
}, ...ngDevMode ? [{ debugName: "current" }] : /* istanbul ignore next */ []);
|
|
32190
|
+
this.draft = signal(null, ...ngDevMode ? [{ debugName: "draft" }] : /* istanbul ignore next */ []);
|
|
32191
|
+
this.displayValue = computed(() => this.draft() ?? this.current(), ...ngDevMode ? [{ debugName: "displayValue" }] : /* istanbul ignore next */ []);
|
|
32192
|
+
this.headingId = injectId("date-picker-heading");
|
|
32193
|
+
this.weekdays = [
|
|
32194
|
+
"mon",
|
|
32195
|
+
"tue",
|
|
32196
|
+
"wed",
|
|
32197
|
+
"thu",
|
|
32198
|
+
"fri",
|
|
32199
|
+
"sat",
|
|
32200
|
+
"sun"
|
|
32201
|
+
];
|
|
32202
|
+
this.todayKey = dayKey(/* @__PURE__ */ new Date());
|
|
32203
|
+
this.month = signal(monthStart(/* @__PURE__ */ new Date()), ...ngDevMode ? [{ debugName: "month" }] : /* istanbul ignore next */ []);
|
|
32204
|
+
this.focusedKey = signal("", ...ngDevMode ? [{ debugName: "focusedKey" }] : /* istanbul ignore next */ []);
|
|
32205
|
+
this.pendingFocus = signal(null, ...ngDevMode ? [{ debugName: "pendingFocus" }] : /* istanbul ignore next */ []);
|
|
32206
|
+
this.key = dayKey;
|
|
32207
|
+
this.outside = (date) => !sameMonth(date, this.month());
|
|
32208
|
+
this.heading = computed(() => new Intl.DateTimeFormat(this.locale() ?? this.scope.language(), {
|
|
32209
|
+
year: "numeric",
|
|
32210
|
+
month: "long"
|
|
32211
|
+
}).format(this.month()), ...ngDevMode ? [{ debugName: "heading" }] : /* istanbul ignore next */ []);
|
|
32212
|
+
this.days = computed(() => {
|
|
32213
|
+
const first = monthStart(this.month());
|
|
32214
|
+
const start = addDays(first, -((first.getDay() + 6) % 7));
|
|
32215
|
+
return Array.from({ length: 42 }, (_, i) => addDays(start, i));
|
|
32216
|
+
}, ...ngDevMode ? [{ debugName: "days" }] : /* istanbul ignore next */ []);
|
|
32217
|
+
this.weeks = computed(() => Array.from({ length: 6 }, (_, i) => this.days().slice(i * 7, i * 7 + 7)), ...ngDevMode ? [{ debugName: "weeks" }] : /* istanbul ignore next */ []);
|
|
32218
|
+
this.activeKey = computed(() => {
|
|
32219
|
+
const keys = this.days().map(dayKey);
|
|
32220
|
+
return [
|
|
32221
|
+
this.focusedKey(),
|
|
32222
|
+
this.current(),
|
|
32223
|
+
this.todayKey,
|
|
32224
|
+
dayKey(this.month()),
|
|
32225
|
+
...keys
|
|
32226
|
+
].find((key) => key && keys.includes(key) && !this.dayDisabled(key));
|
|
32227
|
+
}, ...ngDevMode ? [{ debugName: "activeKey" }] : /* istanbul ignore next */ []);
|
|
32228
|
+
this.showClear = computed(() => this.clearable() && !!this.current() && !this.isDisabled() && !this.isReadOnly(), ...ngDevMode ? [{ debugName: "showClear" }] : /* istanbul ignore next */ []);
|
|
32229
|
+
this.placement = signal("bottom-start", ...ngDevMode ? [{ debugName: "placement" }] : /* istanbul ignore next */ []);
|
|
32230
|
+
this.panelDir = signal(void 0, ...ngDevMode ? [{ debugName: "panelDir" }] : /* istanbul ignore next */ []);
|
|
32231
|
+
this.inputRootClass = computed(() => cn(inputStyles.root, inputStyles.outline, classOf(inputStyles, this.size()), this.isInvalid() && inputStyles.invalid, this.isDisabled() && inputStyles.disabled), ...ngDevMode ? [{ debugName: "inputRootClass" }] : /* istanbul ignore next */ []);
|
|
32232
|
+
this.suffixClass = cn(inputStyles.addon, inputStyles.end);
|
|
32233
|
+
this.clearClass = cn(iconButtonStyles.iconButton, iconButtonStyles.neutral, iconButtonStyles["variant-ghost"], iconButtonStyles.small, iconButtonStyles.circle, datePickerStyles.clearButton);
|
|
32234
|
+
this.clearStates = {
|
|
32235
|
+
state: "inactive",
|
|
32236
|
+
size: "small",
|
|
32237
|
+
variant: "ghost",
|
|
32238
|
+
color: "neutral",
|
|
32239
|
+
shape: "circle"
|
|
32240
|
+
};
|
|
32241
|
+
this.contentStates = computed(() => {
|
|
32242
|
+
const placement = this.placement();
|
|
32243
|
+
const { side, align } = parsePlacement(placement);
|
|
32244
|
+
return {
|
|
32245
|
+
state: "open",
|
|
32246
|
+
side,
|
|
32247
|
+
align,
|
|
32248
|
+
placement
|
|
32249
|
+
};
|
|
32250
|
+
}, ...ngDevMode ? [{ debugName: "contentStates" }] : /* istanbul ignore next */ []);
|
|
32251
|
+
const panel = () => this.panelRef()?.nativeElement;
|
|
32252
|
+
anchoredPosition({
|
|
32253
|
+
anchor: () => this.inputRef().nativeElement,
|
|
32254
|
+
floating: panel,
|
|
32255
|
+
active: () => this.isOpen(),
|
|
32256
|
+
placement: "bottom-start",
|
|
32257
|
+
onPosition: (result) => this.placement.set(result.placement)
|
|
32258
|
+
});
|
|
32259
|
+
overlayLayer({
|
|
32260
|
+
element: panel,
|
|
32261
|
+
active: () => this.isOpen(),
|
|
32262
|
+
branches: () => [this.host.nativeElement],
|
|
32263
|
+
autoFocus: false,
|
|
32264
|
+
restoreFocus: () => false,
|
|
32265
|
+
onEscapeKeyDown: (event) => {
|
|
32266
|
+
if (event.defaultPrevented) return;
|
|
32267
|
+
const element = panel();
|
|
32268
|
+
const doc = element?.ownerDocument;
|
|
32269
|
+
if (element && doc && element.contains(doc.activeElement)) this.inputRef().nativeElement.focus();
|
|
32270
|
+
},
|
|
32271
|
+
onDismiss: () => this.setOpen(false)
|
|
32272
|
+
});
|
|
32273
|
+
afterRenderEffect(() => {
|
|
32274
|
+
const element = panel();
|
|
32275
|
+
const pending = this.pendingFocus();
|
|
32276
|
+
if (!element || !this.isOpen() || pending === null) return;
|
|
32277
|
+
untracked(() => {
|
|
32278
|
+
const cell = pending ? element.querySelector(`[data-date="${pending}"]`) : element.querySelector("[role=\"gridcell\"][tabindex=\"0\"]");
|
|
32279
|
+
if (cell) {
|
|
32280
|
+
this.pendingFocus.set(null);
|
|
32281
|
+
cell.focus();
|
|
32282
|
+
}
|
|
32283
|
+
});
|
|
32284
|
+
});
|
|
32285
|
+
afterRenderEffect(() => {
|
|
32286
|
+
const element = panel();
|
|
32287
|
+
if (!element || !this.isOpen()) return;
|
|
32288
|
+
untracked(() => {
|
|
32289
|
+
const anchorDir = getDirection(this.inputRef().nativeElement);
|
|
32290
|
+
const containerDir = element.parentElement ? getDirection(element.parentElement) : anchorDir;
|
|
32291
|
+
this.panelDir.set(anchorDir === containerDir ? void 0 : anchorDir);
|
|
32292
|
+
});
|
|
32293
|
+
});
|
|
32294
|
+
}
|
|
32295
|
+
ngOnInit() {
|
|
32296
|
+
this.internal.set(this.defaultValue() ?? "");
|
|
32297
|
+
super.ngOnInit();
|
|
32298
|
+
}
|
|
32299
|
+
writeValue(value) {
|
|
32300
|
+
this.draft.set(null);
|
|
32301
|
+
super.writeValue(value ?? "");
|
|
32302
|
+
}
|
|
32303
|
+
focus(options) {
|
|
32304
|
+
this.inputRef().nativeElement.focus(options);
|
|
32305
|
+
}
|
|
32306
|
+
setOpen(next) {
|
|
32307
|
+
if (this.open() !== next) this.open.set(next);
|
|
32308
|
+
}
|
|
32309
|
+
commit(next) {
|
|
32310
|
+
this.internal.set(next);
|
|
32311
|
+
this.valueChange.emit(next);
|
|
32312
|
+
this.change.emit(next);
|
|
32313
|
+
this.notifyChange(next);
|
|
32314
|
+
}
|
|
32315
|
+
onInput(text) {
|
|
32316
|
+
if (this.isDisabled() || this.isReadOnly()) return;
|
|
32317
|
+
this.draft.set(text);
|
|
32318
|
+
if (text === "") {
|
|
32319
|
+
this.commit("");
|
|
32320
|
+
return;
|
|
32321
|
+
}
|
|
32322
|
+
const date = parseDayKey(text, true);
|
|
32323
|
+
if (date && !this.dayDisabled(dayKey(date))) {
|
|
32324
|
+
this.commit(dayKey(date));
|
|
32325
|
+
this.month.set(monthStart(date));
|
|
32326
|
+
}
|
|
32327
|
+
}
|
|
32328
|
+
onBlur() {
|
|
32329
|
+
this.notifyTouched();
|
|
32330
|
+
const draft = this.draft();
|
|
32331
|
+
if (draft === null) return;
|
|
32332
|
+
const text = draft.trim();
|
|
32333
|
+
if (!this.isDisabled() && !this.isReadOnly()) {
|
|
32334
|
+
if (!text) {
|
|
32335
|
+
if (this.current()) this.commit("");
|
|
32336
|
+
} else {
|
|
32337
|
+
const date = parseDayKey(text, false);
|
|
32338
|
+
if (date && !this.dayDisabled(dayKey(date)) && dayKey(date) !== this.current()) {
|
|
32339
|
+
this.commit(dayKey(date));
|
|
32340
|
+
this.month.set(monthStart(date));
|
|
32341
|
+
}
|
|
32342
|
+
}
|
|
32343
|
+
}
|
|
32344
|
+
this.draft.set(null);
|
|
32345
|
+
this.inputRef().nativeElement.value = this.displayValue();
|
|
32346
|
+
}
|
|
32347
|
+
clear() {
|
|
32348
|
+
if (this.isDisabled() || this.isReadOnly()) return;
|
|
32349
|
+
this.draft.set(null);
|
|
32350
|
+
this.commit("");
|
|
32351
|
+
this.focus();
|
|
32352
|
+
}
|
|
32353
|
+
onRootClick(event) {
|
|
32354
|
+
if (event.target !== this.inputRef().nativeElement) return;
|
|
32355
|
+
if (this.isDisabled() || this.isReadOnly()) return;
|
|
32356
|
+
if (!this.open()) this.syncMonth();
|
|
32357
|
+
this.setOpen(!this.open());
|
|
32358
|
+
}
|
|
32359
|
+
onInputKeyDown(event) {
|
|
32360
|
+
if (event.key !== "ArrowDown") return;
|
|
32361
|
+
event.preventDefault();
|
|
32362
|
+
if (this.isDisabled() || this.isReadOnly()) return;
|
|
32363
|
+
if (!this.open()) {
|
|
32364
|
+
this.syncMonth();
|
|
32365
|
+
this.focusedKey.set(this.current());
|
|
32366
|
+
this.pendingFocus.set("");
|
|
32367
|
+
this.setOpen(true);
|
|
32368
|
+
} else this.panelRef()?.nativeElement.querySelector("[role=\"gridcell\"][tabindex=\"0\"]")?.focus();
|
|
32369
|
+
}
|
|
32370
|
+
onPanelKeyDown(event) {
|
|
32371
|
+
const panel = event.currentTarget;
|
|
32372
|
+
const input = this.inputRef().nativeElement;
|
|
32373
|
+
if (event.key !== "Tab" || event.altKey || event.ctrlKey || event.metaKey || !tabLeavesPanel(panel, event.target, event.shiftKey)) return;
|
|
32374
|
+
event.preventDefault();
|
|
32375
|
+
const container = input.closest("[role=\"dialog\"], [role=\"alertdialog\"]") ?? input.ownerDocument.body;
|
|
32376
|
+
(event.shiftKey ? input : adjacentTabbable(input, container, false) ?? input).focus();
|
|
32377
|
+
this.setOpen(false);
|
|
32378
|
+
}
|
|
32379
|
+
static {
|
|
32380
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
32381
|
+
minVersion: "12.0.0",
|
|
32382
|
+
version: "22.2.2",
|
|
32383
|
+
ngImport: i0,
|
|
32384
|
+
type: MnDatePicker,
|
|
32385
|
+
deps: [],
|
|
32386
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
32387
|
+
});
|
|
32388
|
+
}
|
|
32389
|
+
static {
|
|
32390
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
32391
|
+
minVersion: "17.0.0",
|
|
32392
|
+
version: "22.2.2",
|
|
32393
|
+
type: MnDatePicker,
|
|
32394
|
+
isStandalone: true,
|
|
32395
|
+
selector: "mn-date-picker",
|
|
32396
|
+
inputs: {
|
|
32397
|
+
value: {
|
|
32398
|
+
classPropertyName: "value",
|
|
32399
|
+
publicName: "value",
|
|
32400
|
+
isSignal: true,
|
|
32401
|
+
isRequired: false,
|
|
32402
|
+
transformFunction: null
|
|
32403
|
+
},
|
|
32404
|
+
defaultValue: {
|
|
32405
|
+
classPropertyName: "defaultValue",
|
|
32406
|
+
publicName: "defaultValue",
|
|
32407
|
+
isSignal: true,
|
|
32408
|
+
isRequired: false,
|
|
32409
|
+
transformFunction: null
|
|
32410
|
+
},
|
|
32411
|
+
open: {
|
|
32412
|
+
classPropertyName: "open",
|
|
32413
|
+
publicName: "open",
|
|
32414
|
+
isSignal: true,
|
|
32415
|
+
isRequired: false,
|
|
32416
|
+
transformFunction: null
|
|
32417
|
+
},
|
|
32418
|
+
placeholder: {
|
|
32419
|
+
classPropertyName: "placeholder",
|
|
32420
|
+
publicName: "placeholder",
|
|
32421
|
+
isSignal: true,
|
|
32422
|
+
isRequired: false,
|
|
32423
|
+
transformFunction: null
|
|
32424
|
+
},
|
|
32425
|
+
label: {
|
|
32426
|
+
classPropertyName: "label",
|
|
32427
|
+
publicName: "label",
|
|
32428
|
+
isSignal: true,
|
|
32429
|
+
isRequired: false,
|
|
32430
|
+
transformFunction: null
|
|
32431
|
+
},
|
|
32432
|
+
ariaLabel: {
|
|
32433
|
+
classPropertyName: "ariaLabel",
|
|
32434
|
+
publicName: "aria-label",
|
|
32435
|
+
isSignal: true,
|
|
32436
|
+
isRequired: false,
|
|
32437
|
+
transformFunction: null
|
|
32438
|
+
},
|
|
32439
|
+
ariaLabelledby: {
|
|
32440
|
+
classPropertyName: "ariaLabelledby",
|
|
32441
|
+
publicName: "aria-labelledby",
|
|
32442
|
+
isSignal: true,
|
|
32443
|
+
isRequired: false,
|
|
32444
|
+
transformFunction: null
|
|
32445
|
+
},
|
|
32446
|
+
ariaDescribedby: {
|
|
32447
|
+
classPropertyName: "ariaDescribedby",
|
|
32448
|
+
publicName: "aria-describedby",
|
|
32449
|
+
isSignal: true,
|
|
32450
|
+
isRequired: false,
|
|
32451
|
+
transformFunction: null
|
|
32452
|
+
},
|
|
32453
|
+
id: {
|
|
32454
|
+
classPropertyName: "id",
|
|
32455
|
+
publicName: "id",
|
|
32456
|
+
isSignal: true,
|
|
32457
|
+
isRequired: false,
|
|
32458
|
+
transformFunction: null
|
|
32459
|
+
},
|
|
32460
|
+
required: {
|
|
32461
|
+
classPropertyName: "required",
|
|
32462
|
+
publicName: "required",
|
|
32463
|
+
isSignal: true,
|
|
32464
|
+
isRequired: false,
|
|
32465
|
+
transformFunction: null
|
|
32466
|
+
},
|
|
32467
|
+
readOnly: {
|
|
32468
|
+
classPropertyName: "readOnly",
|
|
32469
|
+
publicName: "readOnly",
|
|
32470
|
+
isSignal: true,
|
|
32471
|
+
isRequired: false,
|
|
32472
|
+
transformFunction: null
|
|
32473
|
+
},
|
|
32474
|
+
invalid: {
|
|
32475
|
+
classPropertyName: "invalid",
|
|
32476
|
+
publicName: "invalid",
|
|
32477
|
+
isSignal: true,
|
|
32478
|
+
isRequired: false,
|
|
32479
|
+
transformFunction: null
|
|
32480
|
+
},
|
|
32481
|
+
name: {
|
|
32482
|
+
classPropertyName: "name",
|
|
32483
|
+
publicName: "name",
|
|
32484
|
+
isSignal: true,
|
|
32485
|
+
isRequired: false,
|
|
32486
|
+
transformFunction: null
|
|
32487
|
+
},
|
|
32488
|
+
disabled: {
|
|
32489
|
+
classPropertyName: "disabled",
|
|
32490
|
+
publicName: "disabled",
|
|
32491
|
+
isSignal: true,
|
|
32492
|
+
isRequired: false,
|
|
32493
|
+
transformFunction: null
|
|
32494
|
+
},
|
|
32495
|
+
clearable: {
|
|
32496
|
+
classPropertyName: "clearable",
|
|
32497
|
+
publicName: "clearable",
|
|
32498
|
+
isSignal: true,
|
|
32499
|
+
isRequired: false,
|
|
32500
|
+
transformFunction: null
|
|
32501
|
+
},
|
|
32502
|
+
size: {
|
|
32503
|
+
classPropertyName: "size",
|
|
32504
|
+
publicName: "size",
|
|
32505
|
+
isSignal: true,
|
|
32506
|
+
isRequired: false,
|
|
32507
|
+
transformFunction: null
|
|
32508
|
+
},
|
|
32509
|
+
minDate: {
|
|
32510
|
+
classPropertyName: "minDate",
|
|
32511
|
+
publicName: "minDate",
|
|
32512
|
+
isSignal: true,
|
|
32513
|
+
isRequired: false,
|
|
32514
|
+
transformFunction: null
|
|
32515
|
+
},
|
|
32516
|
+
maxDate: {
|
|
32517
|
+
classPropertyName: "maxDate",
|
|
32518
|
+
publicName: "maxDate",
|
|
32519
|
+
isSignal: true,
|
|
32520
|
+
isRequired: false,
|
|
32521
|
+
transformFunction: null
|
|
32522
|
+
},
|
|
32523
|
+
locale: {
|
|
32524
|
+
classPropertyName: "locale",
|
|
32525
|
+
publicName: "locale",
|
|
32526
|
+
isSignal: true,
|
|
32527
|
+
isRequired: false,
|
|
32528
|
+
transformFunction: null
|
|
32529
|
+
}
|
|
32530
|
+
},
|
|
32531
|
+
outputs: {
|
|
32532
|
+
valueChange: "valueChange",
|
|
32533
|
+
change: "change",
|
|
32534
|
+
open: "openChange"
|
|
32535
|
+
},
|
|
32536
|
+
host: {
|
|
32537
|
+
listeners: { "click": "onRootClick($event)" },
|
|
32538
|
+
properties: {
|
|
32539
|
+
"class": "s.datePicker",
|
|
32540
|
+
"attr.id": "null",
|
|
32541
|
+
"attr.aria-label": "null",
|
|
32542
|
+
"attr.aria-labelledby": "null",
|
|
32543
|
+
"attr.aria-describedby": "null",
|
|
32544
|
+
"attr.name": "null",
|
|
32545
|
+
"attr.placeholder": "null",
|
|
32546
|
+
"attr.label": "null",
|
|
32547
|
+
"attr.disabled": "null",
|
|
32548
|
+
"attr.readonly": "null",
|
|
32549
|
+
"attr.required": "null",
|
|
32550
|
+
"attr.invalid": "null",
|
|
32551
|
+
"attr.data-minerva": "\"date-picker\"",
|
|
32552
|
+
"attr.data-part": "\"root\"",
|
|
32553
|
+
"attr.data-state": "isOpen() ? \"open\" : \"closed\"",
|
|
32554
|
+
"attr.data-disabled": "isDisabled() ? \"\" : null",
|
|
32555
|
+
"attr.data-readonly": "isReadOnly() ? \"\" : null",
|
|
32556
|
+
"attr.data-invalid": "isInvalid() ? \"\" : null",
|
|
32557
|
+
"attr.data-size": "size()"
|
|
32558
|
+
}
|
|
32559
|
+
},
|
|
32560
|
+
providers: [provideValueAccessor(() => MnDatePicker)],
|
|
32561
|
+
viewQueries: [{
|
|
32562
|
+
propertyName: "inputRef",
|
|
32563
|
+
first: true,
|
|
32564
|
+
predicate: ["input"],
|
|
32565
|
+
descendants: true,
|
|
32566
|
+
isSignal: true
|
|
32567
|
+
}, {
|
|
32568
|
+
propertyName: "panelRef",
|
|
32569
|
+
first: true,
|
|
32570
|
+
predicate: ["panel"],
|
|
32571
|
+
descendants: true,
|
|
32572
|
+
isSignal: true
|
|
32573
|
+
}],
|
|
32574
|
+
exportAs: ["mnDatePicker"],
|
|
32575
|
+
usesInheritance: true,
|
|
32576
|
+
ngImport: i0,
|
|
32577
|
+
template: `
|
|
32578
|
+
<div
|
|
32579
|
+
[class]="inputRootClass()"
|
|
32580
|
+
data-component="input"
|
|
32581
|
+
mnHook="input"
|
|
32582
|
+
[mnStates]="{
|
|
32583
|
+
disabled: isDisabled(),
|
|
32584
|
+
invalid: isInvalid(),
|
|
32585
|
+
readonly: isReadOnly(),
|
|
32586
|
+
required: isRequired(),
|
|
32587
|
+
size: size(),
|
|
32588
|
+
variant: 'outline',
|
|
32589
|
+
}"
|
|
32590
|
+
>
|
|
32591
|
+
<input
|
|
32592
|
+
#input
|
|
32593
|
+
type="text"
|
|
32594
|
+
[class]="is.field"
|
|
32595
|
+
[value]="displayValue()"
|
|
32596
|
+
[attr.placeholder]="placeholder() ?? scope.t('datePicker.placeholder')"
|
|
32597
|
+
[attr.id]="field.id()"
|
|
32598
|
+
[attr.aria-label]="accessibleName()"
|
|
32599
|
+
[attr.aria-labelledby]="labelledBy()"
|
|
32600
|
+
[attr.aria-describedby]="field.describedBy()"
|
|
32601
|
+
[attr.aria-invalid]="isInvalid() ? 'true' : null"
|
|
32602
|
+
[attr.aria-readonly]="isReadOnly() ? 'true' : null"
|
|
32603
|
+
[required]="isRequired()"
|
|
32604
|
+
[readOnly]="isReadOnly()"
|
|
32605
|
+
[attr.name]="name()"
|
|
32606
|
+
[disabled]="isDisabled()"
|
|
32607
|
+
(input)="onInput(input.value)"
|
|
32608
|
+
(blur)="onBlur()"
|
|
32609
|
+
(keydown)="onInputKeyDown($event)"
|
|
32610
|
+
mnHook="input"
|
|
32611
|
+
mnPart="input"
|
|
32612
|
+
/>
|
|
32613
|
+
<span [class]="suffixClass" mnHook="input" mnPart="suffix">
|
|
32614
|
+
@if (showClear()) {
|
|
32615
|
+
<button
|
|
32616
|
+
type="button"
|
|
32617
|
+
[class]="clearClass"
|
|
32618
|
+
tabindex="0"
|
|
32619
|
+
[attr.aria-label]="scope.t('datePicker.clear')"
|
|
32620
|
+
(click)="clear()"
|
|
32621
|
+
mnHook="icon-button"
|
|
32622
|
+
[mnStates]="clearStates"
|
|
32623
|
+
>
|
|
32624
|
+
<span
|
|
32625
|
+
[class]="ib.glyph"
|
|
32626
|
+
aria-hidden="true"
|
|
32627
|
+
mnHook="icon-button"
|
|
32628
|
+
mnPart="icon"
|
|
32629
|
+
>
|
|
32630
|
+
<svg mnIcon="X"></svg>
|
|
32631
|
+
</span>
|
|
32632
|
+
</button>
|
|
32633
|
+
} @else {
|
|
32634
|
+
<span
|
|
32635
|
+
[class]="s.calendarIcon"
|
|
32636
|
+
aria-hidden="true"
|
|
32637
|
+
mnHook="date-picker"
|
|
32638
|
+
mnPart="icon"
|
|
32639
|
+
>
|
|
32640
|
+
<svg mnIcon="Calendar"></svg>
|
|
32641
|
+
</span>
|
|
32642
|
+
}
|
|
32643
|
+
</span>
|
|
32644
|
+
</div>
|
|
32645
|
+
@if (isOpen()) {
|
|
32646
|
+
<div
|
|
32647
|
+
*mnPortal
|
|
32648
|
+
#panel
|
|
32649
|
+
role="dialog"
|
|
32650
|
+
tabindex="-1"
|
|
32651
|
+
[attr.dir]="panelDir() ?? null"
|
|
32652
|
+
[attr.aria-label]="accessibleName()"
|
|
32653
|
+
[attr.aria-labelledby]="labelledBy()"
|
|
32654
|
+
[class]="s.popup"
|
|
32655
|
+
(keydown)="onPanelKeyDown($event)"
|
|
32656
|
+
mnHook="date-picker"
|
|
32657
|
+
mnPart="content"
|
|
32658
|
+
[mnStates]="contentStates()"
|
|
32659
|
+
>
|
|
32660
|
+
<div [class]="s.panel">
|
|
32661
|
+
<div [class]="s.header">
|
|
32662
|
+
<h2 [id]="headingId" [class]="s.heading" aria-live="polite">
|
|
32663
|
+
{{ heading() }}
|
|
32664
|
+
</h2>
|
|
32665
|
+
<div [class]="s.navGroup">
|
|
32666
|
+
<button
|
|
32667
|
+
type="button"
|
|
32668
|
+
[class]="s.navButton"
|
|
32669
|
+
[attr.aria-label]="scope.t('monthCalendar.previousMonth')"
|
|
32670
|
+
(click)="navigateMonth(-1)"
|
|
32671
|
+
>
|
|
32672
|
+
<svg mnIcon="ChevronLeft"></svg>
|
|
32673
|
+
</button>
|
|
32674
|
+
<button
|
|
32675
|
+
type="button"
|
|
32676
|
+
[class]="s.navButton"
|
|
32677
|
+
[attr.aria-label]="scope.t('monthCalendar.nextMonth')"
|
|
32678
|
+
(click)="navigateMonth(1)"
|
|
32679
|
+
>
|
|
32680
|
+
<svg mnIcon="ChevronRight"></svg>
|
|
32681
|
+
</button>
|
|
32682
|
+
</div>
|
|
32683
|
+
</div>
|
|
32684
|
+
<div role="grid" [attr.aria-labelledby]="headingId" [class]="s.grid">
|
|
32685
|
+
<div role="row" [class]="s.week">
|
|
32686
|
+
@for (day of weekdays; track day) {
|
|
32687
|
+
<div role="columnheader" [class]="s.weekday">
|
|
32688
|
+
{{ scope.t("monthCalendar.weekdays." + day) }}
|
|
32689
|
+
</div>
|
|
32690
|
+
}
|
|
32691
|
+
</div>
|
|
32692
|
+
@for (week of weeks(); track $index) {
|
|
32693
|
+
<div role="row" [class]="s.week">
|
|
32694
|
+
@for (date of week; track key(date)) {
|
|
32695
|
+
<div
|
|
32696
|
+
role="gridcell"
|
|
32697
|
+
[class]="s.day"
|
|
32698
|
+
[attr.data-date]="key(date)"
|
|
32699
|
+
[attr.data-outside]="outside(date) ? '' : null"
|
|
32700
|
+
[attr.aria-label]="key(date)"
|
|
32701
|
+
[attr.aria-selected]="current() === key(date)"
|
|
32702
|
+
[attr.aria-current]="key(date) === todayKey ? 'date' : null"
|
|
32703
|
+
[attr.aria-disabled]="
|
|
32704
|
+
dayDisabled(key(date)) ? 'true' : null
|
|
32705
|
+
"
|
|
32706
|
+
[tabIndex]="key(date) === activeKey() ? 0 : -1"
|
|
32707
|
+
(focus)="focusedKey.set(key(date))"
|
|
32708
|
+
(click)="selectDate(date)"
|
|
32709
|
+
(keydown)="onDayKeyDown($event, date)"
|
|
32710
|
+
>
|
|
32711
|
+
{{ date.getDate() }}
|
|
32712
|
+
</div>
|
|
32713
|
+
}
|
|
32714
|
+
</div>
|
|
32715
|
+
}
|
|
32716
|
+
</div>
|
|
32717
|
+
<div [class]="s.footer">
|
|
32718
|
+
<button
|
|
32719
|
+
type="button"
|
|
32720
|
+
[class]="s.footerButton"
|
|
32721
|
+
[disabled]="dayDisabled(todayKey)"
|
|
32722
|
+
(click)="selectToday()"
|
|
32723
|
+
>
|
|
32724
|
+
{{ scope.t("datePicker.today") }}
|
|
32725
|
+
</button>
|
|
32726
|
+
@if (clearable() && current()) {
|
|
32727
|
+
<button
|
|
32728
|
+
type="button"
|
|
32729
|
+
[class]="s.footerButton"
|
|
32730
|
+
(click)="clear(); setOpen(false)"
|
|
32731
|
+
>
|
|
32732
|
+
{{ scope.t("datePicker.clear") }}
|
|
32733
|
+
</button>
|
|
32734
|
+
}
|
|
32735
|
+
</div>
|
|
32736
|
+
</div>
|
|
32737
|
+
</div>
|
|
32738
|
+
}
|
|
32739
|
+
`,
|
|
32740
|
+
isInline: true,
|
|
32741
|
+
dependencies: [
|
|
32742
|
+
{
|
|
32743
|
+
kind: "directive",
|
|
32744
|
+
type: MnHook,
|
|
32745
|
+
selector: "[mnHook]",
|
|
32746
|
+
inputs: [
|
|
32747
|
+
"mnHook",
|
|
32748
|
+
"mnPart",
|
|
32749
|
+
"mnStates"
|
|
32750
|
+
]
|
|
32751
|
+
},
|
|
32752
|
+
{
|
|
32753
|
+
kind: "component",
|
|
32754
|
+
type: MnIcon,
|
|
32755
|
+
selector: "svg[mnIcon]",
|
|
32756
|
+
inputs: ["mnIcon", "size"]
|
|
32757
|
+
},
|
|
32758
|
+
{
|
|
32759
|
+
kind: "directive",
|
|
32760
|
+
type: MnPortal,
|
|
32761
|
+
selector: "[mnPortal]",
|
|
32762
|
+
inputs: ["mnPortal"]
|
|
32763
|
+
}
|
|
32764
|
+
],
|
|
32765
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
32766
|
+
encapsulation: i0.ViewEncapsulation.None
|
|
32767
|
+
});
|
|
32768
|
+
}
|
|
32769
|
+
};
|
|
32770
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
32771
|
+
minVersion: "12.0.0",
|
|
32772
|
+
version: "22.2.2",
|
|
32773
|
+
ngImport: i0,
|
|
32774
|
+
type: MnDatePicker,
|
|
32775
|
+
decorators: [{
|
|
32776
|
+
type: Component,
|
|
32777
|
+
args: [{
|
|
32778
|
+
selector: "mn-date-picker",
|
|
32779
|
+
exportAs: "mnDatePicker",
|
|
32780
|
+
imports: [
|
|
32781
|
+
MnHook,
|
|
32782
|
+
MnIcon,
|
|
32783
|
+
MnPortal
|
|
32784
|
+
],
|
|
32785
|
+
encapsulation: ViewEncapsulation.None,
|
|
32786
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
32787
|
+
providers: [provideValueAccessor(() => MnDatePicker)],
|
|
32788
|
+
host: {
|
|
32789
|
+
"[class]": "s.datePicker",
|
|
32790
|
+
"[attr.id]": "null",
|
|
32791
|
+
"[attr.aria-label]": "null",
|
|
32792
|
+
"[attr.aria-labelledby]": "null",
|
|
32793
|
+
"[attr.aria-describedby]": "null",
|
|
32794
|
+
"[attr.name]": "null",
|
|
32795
|
+
"[attr.placeholder]": "null",
|
|
32796
|
+
"[attr.label]": "null",
|
|
32797
|
+
"[attr.disabled]": "null",
|
|
32798
|
+
"[attr.readonly]": "null",
|
|
32799
|
+
"[attr.required]": "null",
|
|
32800
|
+
"[attr.invalid]": "null",
|
|
32801
|
+
"[attr.data-minerva]": "\"date-picker\"",
|
|
32802
|
+
"[attr.data-part]": "\"root\"",
|
|
32803
|
+
"[attr.data-state]": "isOpen() ? \"open\" : \"closed\"",
|
|
32804
|
+
"[attr.data-disabled]": "isDisabled() ? \"\" : null",
|
|
32805
|
+
"[attr.data-readonly]": "isReadOnly() ? \"\" : null",
|
|
32806
|
+
"[attr.data-invalid]": "isInvalid() ? \"\" : null",
|
|
32807
|
+
"[attr.data-size]": "size()",
|
|
32808
|
+
"(click)": "onRootClick($event)"
|
|
32809
|
+
},
|
|
32810
|
+
template: `
|
|
32811
|
+
<div
|
|
32812
|
+
[class]="inputRootClass()"
|
|
32813
|
+
data-component="input"
|
|
32814
|
+
mnHook="input"
|
|
32815
|
+
[mnStates]="{
|
|
32816
|
+
disabled: isDisabled(),
|
|
32817
|
+
invalid: isInvalid(),
|
|
32818
|
+
readonly: isReadOnly(),
|
|
32819
|
+
required: isRequired(),
|
|
32820
|
+
size: size(),
|
|
32821
|
+
variant: 'outline',
|
|
32822
|
+
}"
|
|
32823
|
+
>
|
|
32824
|
+
<input
|
|
32825
|
+
#input
|
|
32826
|
+
type="text"
|
|
32827
|
+
[class]="is.field"
|
|
32828
|
+
[value]="displayValue()"
|
|
32829
|
+
[attr.placeholder]="placeholder() ?? scope.t('datePicker.placeholder')"
|
|
32830
|
+
[attr.id]="field.id()"
|
|
32831
|
+
[attr.aria-label]="accessibleName()"
|
|
32832
|
+
[attr.aria-labelledby]="labelledBy()"
|
|
32833
|
+
[attr.aria-describedby]="field.describedBy()"
|
|
32834
|
+
[attr.aria-invalid]="isInvalid() ? 'true' : null"
|
|
32835
|
+
[attr.aria-readonly]="isReadOnly() ? 'true' : null"
|
|
32836
|
+
[required]="isRequired()"
|
|
32837
|
+
[readOnly]="isReadOnly()"
|
|
32838
|
+
[attr.name]="name()"
|
|
32839
|
+
[disabled]="isDisabled()"
|
|
32840
|
+
(input)="onInput(input.value)"
|
|
32841
|
+
(blur)="onBlur()"
|
|
32842
|
+
(keydown)="onInputKeyDown($event)"
|
|
32843
|
+
mnHook="input"
|
|
32844
|
+
mnPart="input"
|
|
32845
|
+
/>
|
|
32846
|
+
<span [class]="suffixClass" mnHook="input" mnPart="suffix">
|
|
32847
|
+
@if (showClear()) {
|
|
32848
|
+
<button
|
|
32849
|
+
type="button"
|
|
32850
|
+
[class]="clearClass"
|
|
32851
|
+
tabindex="0"
|
|
32852
|
+
[attr.aria-label]="scope.t('datePicker.clear')"
|
|
32853
|
+
(click)="clear()"
|
|
32854
|
+
mnHook="icon-button"
|
|
32855
|
+
[mnStates]="clearStates"
|
|
32856
|
+
>
|
|
32857
|
+
<span
|
|
32858
|
+
[class]="ib.glyph"
|
|
32859
|
+
aria-hidden="true"
|
|
32860
|
+
mnHook="icon-button"
|
|
32861
|
+
mnPart="icon"
|
|
32862
|
+
>
|
|
32863
|
+
<svg mnIcon="X"></svg>
|
|
32864
|
+
</span>
|
|
32865
|
+
</button>
|
|
32866
|
+
} @else {
|
|
32867
|
+
<span
|
|
32868
|
+
[class]="s.calendarIcon"
|
|
32869
|
+
aria-hidden="true"
|
|
32870
|
+
mnHook="date-picker"
|
|
32871
|
+
mnPart="icon"
|
|
32872
|
+
>
|
|
32873
|
+
<svg mnIcon="Calendar"></svg>
|
|
32874
|
+
</span>
|
|
32875
|
+
}
|
|
32876
|
+
</span>
|
|
32877
|
+
</div>
|
|
32878
|
+
@if (isOpen()) {
|
|
32879
|
+
<div
|
|
32880
|
+
*mnPortal
|
|
32881
|
+
#panel
|
|
32882
|
+
role="dialog"
|
|
32883
|
+
tabindex="-1"
|
|
32884
|
+
[attr.dir]="panelDir() ?? null"
|
|
32885
|
+
[attr.aria-label]="accessibleName()"
|
|
32886
|
+
[attr.aria-labelledby]="labelledBy()"
|
|
32887
|
+
[class]="s.popup"
|
|
32888
|
+
(keydown)="onPanelKeyDown($event)"
|
|
32889
|
+
mnHook="date-picker"
|
|
32890
|
+
mnPart="content"
|
|
32891
|
+
[mnStates]="contentStates()"
|
|
32892
|
+
>
|
|
32893
|
+
<div [class]="s.panel">
|
|
32894
|
+
<div [class]="s.header">
|
|
32895
|
+
<h2 [id]="headingId" [class]="s.heading" aria-live="polite">
|
|
32896
|
+
{{ heading() }}
|
|
32897
|
+
</h2>
|
|
32898
|
+
<div [class]="s.navGroup">
|
|
32899
|
+
<button
|
|
32900
|
+
type="button"
|
|
32901
|
+
[class]="s.navButton"
|
|
32902
|
+
[attr.aria-label]="scope.t('monthCalendar.previousMonth')"
|
|
32903
|
+
(click)="navigateMonth(-1)"
|
|
32904
|
+
>
|
|
32905
|
+
<svg mnIcon="ChevronLeft"></svg>
|
|
32906
|
+
</button>
|
|
32907
|
+
<button
|
|
32908
|
+
type="button"
|
|
32909
|
+
[class]="s.navButton"
|
|
32910
|
+
[attr.aria-label]="scope.t('monthCalendar.nextMonth')"
|
|
32911
|
+
(click)="navigateMonth(1)"
|
|
32912
|
+
>
|
|
32913
|
+
<svg mnIcon="ChevronRight"></svg>
|
|
32914
|
+
</button>
|
|
32915
|
+
</div>
|
|
32916
|
+
</div>
|
|
32917
|
+
<div role="grid" [attr.aria-labelledby]="headingId" [class]="s.grid">
|
|
32918
|
+
<div role="row" [class]="s.week">
|
|
32919
|
+
@for (day of weekdays; track day) {
|
|
32920
|
+
<div role="columnheader" [class]="s.weekday">
|
|
32921
|
+
{{ scope.t("monthCalendar.weekdays." + day) }}
|
|
32922
|
+
</div>
|
|
32923
|
+
}
|
|
32924
|
+
</div>
|
|
32925
|
+
@for (week of weeks(); track $index) {
|
|
32926
|
+
<div role="row" [class]="s.week">
|
|
32927
|
+
@for (date of week; track key(date)) {
|
|
32928
|
+
<div
|
|
32929
|
+
role="gridcell"
|
|
32930
|
+
[class]="s.day"
|
|
32931
|
+
[attr.data-date]="key(date)"
|
|
32932
|
+
[attr.data-outside]="outside(date) ? '' : null"
|
|
32933
|
+
[attr.aria-label]="key(date)"
|
|
32934
|
+
[attr.aria-selected]="current() === key(date)"
|
|
32935
|
+
[attr.aria-current]="key(date) === todayKey ? 'date' : null"
|
|
32936
|
+
[attr.aria-disabled]="
|
|
32937
|
+
dayDisabled(key(date)) ? 'true' : null
|
|
32938
|
+
"
|
|
32939
|
+
[tabIndex]="key(date) === activeKey() ? 0 : -1"
|
|
32940
|
+
(focus)="focusedKey.set(key(date))"
|
|
32941
|
+
(click)="selectDate(date)"
|
|
32942
|
+
(keydown)="onDayKeyDown($event, date)"
|
|
32943
|
+
>
|
|
32944
|
+
{{ date.getDate() }}
|
|
32945
|
+
</div>
|
|
32946
|
+
}
|
|
32947
|
+
</div>
|
|
32948
|
+
}
|
|
32949
|
+
</div>
|
|
32950
|
+
<div [class]="s.footer">
|
|
32951
|
+
<button
|
|
32952
|
+
type="button"
|
|
32953
|
+
[class]="s.footerButton"
|
|
32954
|
+
[disabled]="dayDisabled(todayKey)"
|
|
32955
|
+
(click)="selectToday()"
|
|
32956
|
+
>
|
|
32957
|
+
{{ scope.t("datePicker.today") }}
|
|
32958
|
+
</button>
|
|
32959
|
+
@if (clearable() && current()) {
|
|
32960
|
+
<button
|
|
32961
|
+
type="button"
|
|
32962
|
+
[class]="s.footerButton"
|
|
32963
|
+
(click)="clear(); setOpen(false)"
|
|
32964
|
+
>
|
|
32965
|
+
{{ scope.t("datePicker.clear") }}
|
|
32966
|
+
</button>
|
|
32967
|
+
}
|
|
32968
|
+
</div>
|
|
32969
|
+
</div>
|
|
32970
|
+
</div>
|
|
32971
|
+
}
|
|
32972
|
+
`
|
|
32973
|
+
}]
|
|
32974
|
+
}],
|
|
32975
|
+
ctorParameters: () => [],
|
|
32976
|
+
propDecorators: {
|
|
32977
|
+
value: [{
|
|
32978
|
+
type: i0.Input,
|
|
32979
|
+
args: [{
|
|
32980
|
+
isSignal: true,
|
|
32981
|
+
alias: "value",
|
|
32982
|
+
required: false
|
|
32983
|
+
}]
|
|
32984
|
+
}],
|
|
32985
|
+
valueChange: [{
|
|
32986
|
+
type: i0.Output,
|
|
32987
|
+
args: ["valueChange"]
|
|
32988
|
+
}],
|
|
32989
|
+
change: [{
|
|
32990
|
+
type: i0.Output,
|
|
32991
|
+
args: ["change"]
|
|
32992
|
+
}],
|
|
32993
|
+
defaultValue: [{
|
|
32994
|
+
type: i0.Input,
|
|
32995
|
+
args: [{
|
|
32996
|
+
isSignal: true,
|
|
32997
|
+
alias: "defaultValue",
|
|
32998
|
+
required: false
|
|
32999
|
+
}]
|
|
33000
|
+
}],
|
|
33001
|
+
open: [{
|
|
33002
|
+
type: i0.Input,
|
|
33003
|
+
args: [{
|
|
33004
|
+
isSignal: true,
|
|
33005
|
+
alias: "open",
|
|
33006
|
+
required: false
|
|
33007
|
+
}]
|
|
33008
|
+
}, {
|
|
33009
|
+
type: i0.Output,
|
|
33010
|
+
args: ["openChange"]
|
|
33011
|
+
}],
|
|
33012
|
+
placeholder: [{
|
|
33013
|
+
type: i0.Input,
|
|
33014
|
+
args: [{
|
|
33015
|
+
isSignal: true,
|
|
33016
|
+
alias: "placeholder",
|
|
33017
|
+
required: false
|
|
33018
|
+
}]
|
|
33019
|
+
}],
|
|
33020
|
+
label: [{
|
|
33021
|
+
type: i0.Input,
|
|
33022
|
+
args: [{
|
|
33023
|
+
isSignal: true,
|
|
33024
|
+
alias: "label",
|
|
33025
|
+
required: false
|
|
33026
|
+
}]
|
|
33027
|
+
}],
|
|
33028
|
+
ariaLabel: [{
|
|
33029
|
+
type: i0.Input,
|
|
33030
|
+
args: [{
|
|
33031
|
+
isSignal: true,
|
|
33032
|
+
alias: "aria-label",
|
|
33033
|
+
required: false
|
|
33034
|
+
}]
|
|
33035
|
+
}],
|
|
33036
|
+
ariaLabelledby: [{
|
|
33037
|
+
type: i0.Input,
|
|
33038
|
+
args: [{
|
|
33039
|
+
isSignal: true,
|
|
33040
|
+
alias: "aria-labelledby",
|
|
33041
|
+
required: false
|
|
33042
|
+
}]
|
|
33043
|
+
}],
|
|
33044
|
+
ariaDescribedby: [{
|
|
33045
|
+
type: i0.Input,
|
|
33046
|
+
args: [{
|
|
33047
|
+
isSignal: true,
|
|
33048
|
+
alias: "aria-describedby",
|
|
33049
|
+
required: false
|
|
33050
|
+
}]
|
|
33051
|
+
}],
|
|
33052
|
+
id: [{
|
|
33053
|
+
type: i0.Input,
|
|
33054
|
+
args: [{
|
|
33055
|
+
isSignal: true,
|
|
33056
|
+
alias: "id",
|
|
33057
|
+
required: false
|
|
33058
|
+
}]
|
|
33059
|
+
}],
|
|
33060
|
+
required: [{
|
|
33061
|
+
type: i0.Input,
|
|
33062
|
+
args: [{
|
|
33063
|
+
isSignal: true,
|
|
33064
|
+
alias: "required",
|
|
33065
|
+
required: false
|
|
33066
|
+
}]
|
|
33067
|
+
}],
|
|
33068
|
+
readOnly: [{
|
|
33069
|
+
type: i0.Input,
|
|
33070
|
+
args: [{
|
|
33071
|
+
isSignal: true,
|
|
33072
|
+
alias: "readOnly",
|
|
33073
|
+
required: false
|
|
33074
|
+
}]
|
|
33075
|
+
}],
|
|
33076
|
+
invalid: [{
|
|
33077
|
+
type: i0.Input,
|
|
33078
|
+
args: [{
|
|
33079
|
+
isSignal: true,
|
|
33080
|
+
alias: "invalid",
|
|
33081
|
+
required: false
|
|
33082
|
+
}]
|
|
33083
|
+
}],
|
|
33084
|
+
name: [{
|
|
33085
|
+
type: i0.Input,
|
|
33086
|
+
args: [{
|
|
33087
|
+
isSignal: true,
|
|
33088
|
+
alias: "name",
|
|
33089
|
+
required: false
|
|
33090
|
+
}]
|
|
33091
|
+
}],
|
|
33092
|
+
disabled: [{
|
|
33093
|
+
type: i0.Input,
|
|
33094
|
+
args: [{
|
|
33095
|
+
isSignal: true,
|
|
33096
|
+
alias: "disabled",
|
|
33097
|
+
required: false
|
|
33098
|
+
}]
|
|
33099
|
+
}],
|
|
33100
|
+
clearable: [{
|
|
33101
|
+
type: i0.Input,
|
|
33102
|
+
args: [{
|
|
33103
|
+
isSignal: true,
|
|
33104
|
+
alias: "clearable",
|
|
33105
|
+
required: false
|
|
33106
|
+
}]
|
|
33107
|
+
}],
|
|
33108
|
+
size: [{
|
|
33109
|
+
type: i0.Input,
|
|
33110
|
+
args: [{
|
|
33111
|
+
isSignal: true,
|
|
33112
|
+
alias: "size",
|
|
33113
|
+
required: false
|
|
33114
|
+
}]
|
|
33115
|
+
}],
|
|
33116
|
+
minDate: [{
|
|
33117
|
+
type: i0.Input,
|
|
33118
|
+
args: [{
|
|
33119
|
+
isSignal: true,
|
|
33120
|
+
alias: "minDate",
|
|
33121
|
+
required: false
|
|
33122
|
+
}]
|
|
33123
|
+
}],
|
|
33124
|
+
maxDate: [{
|
|
33125
|
+
type: i0.Input,
|
|
33126
|
+
args: [{
|
|
33127
|
+
isSignal: true,
|
|
33128
|
+
alias: "maxDate",
|
|
33129
|
+
required: false
|
|
33130
|
+
}]
|
|
33131
|
+
}],
|
|
33132
|
+
locale: [{
|
|
33133
|
+
type: i0.Input,
|
|
33134
|
+
args: [{
|
|
33135
|
+
isSignal: true,
|
|
33136
|
+
alias: "locale",
|
|
33137
|
+
required: false
|
|
33138
|
+
}]
|
|
33139
|
+
}],
|
|
33140
|
+
inputRef: [{
|
|
33141
|
+
type: i0.ViewChild,
|
|
33142
|
+
args: ["input", { isSignal: true }]
|
|
33143
|
+
}],
|
|
33144
|
+
panelRef: [{
|
|
33145
|
+
type: i0.ViewChild,
|
|
33146
|
+
args: ["panel", { isSignal: true }]
|
|
33147
|
+
}]
|
|
33148
|
+
}
|
|
33149
|
+
});
|
|
33150
|
+
export { MN_RADIO_GROUP, MN_SCOPE, MinervaScope, MnAlert, MnAppShell, MnAutoComplete, MnAvatar, MnAvatarGroup, MnBadge, MnBox, MnButton, MnCard, MnCardContent, MnCardDescription, MnCardFooter, MnCardHeader, MnCardTitle, MnCascader, MnCascaderPanel, MnCheckbox, MnCodeBlock, MnCommandDialog, MnConfig, MnConfirmDialog, MnConfirmProvider, MnConfirmService, MnContextMenu, MnDataTable, MnDatePicker, MnDescriptionList, MnDivider, MnDrawer, MnDrawerBody, MnDrawerClose, MnDrawerFooter, MnDrawerHeader, MnDrawerTrigger, MnEmpty, MnFieldBase, MnFloatingBase, MnFormControl, MnFormErrorMessage, MnFormField, MnFormHelperText, MnFormLabel, MnFormLayout, MnGridItem, MnHStack, MnHtmlPreview, MnIconButton, MnInput, MnJsonField, MnKeyValueEditor, MnList, MnListItem, MnLoadingState, MnMenu, MnMenuBase, MnModal, MnModalBody, MnModalClose, MnModalFooter, MnModalHeader, MnModalTrigger, MnMonthCalendar, MnNavTree, MnNumberInput, MnPage, MnPageHeader, MnPageSection, MnPageTab, MnPageTabs, MnPagination, MnPaletteToggle, MnPopover, MnPopoverAnchor, MnPopoverClose, MnProgressIndicator, MnProse, MnRadio, MnRadioGroup, MnRating, MnRatingScale, MnResponsiveGrid, MnSelect, MnSelectGroup, MnSelectItem, MnSelectLabel, MnSelectSeparator, MnSkeleton, MnSkeletonText, MnSplitLayout, MnStack, MnStackBase, MnStatCard, MnSteps, MnSwitch, MnTab, MnTabPanel, MnTableBody, MnTableCell, MnTableCellContent, MnTableHead, MnTableHeader, MnTableRoot, MnTableRow, MnTabs, MnTag, MnTagInput, MnTextLink, MnTextarea, MnThemeToggle, MnTimePicker, MnTimePickerPanel, MnToastRegion, MnToastService, MnToolbar, MnTooltip, MnTooltipProvider, MnUpload, MnVStack, MnVirtualList, THEME_SCOPE_ATTRIBUTE, injectMinerva, provideEmbeddedMinerva, provideMinerva, themeModeOf };
|
|
32022
33151
|
|
|
32023
33152
|
//# sourceMappingURL=minerva-angular.mjs.map
|