@limetech/lime-elements 36.3.0-next.4 → 36.3.0-next.41
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/README.md +2 -2
- package/dist/cjs/lime-elements.cjs.js +1 -1
- package/dist/cjs/limel-badge.cjs.entry.js +4 -6
- package/dist/cjs/limel-button-group.cjs.entry.js +21 -6
- package/dist/cjs/limel-button.cjs.entry.js +1 -1
- package/dist/cjs/limel-callout.cjs.entry.js +54 -0
- package/dist/cjs/limel-chip-set.cjs.entry.js +13 -3
- package/dist/cjs/limel-code-editor.cjs.entry.js +1 -1
- package/dist/cjs/limel-collapsible-section.cjs.entry.js +3 -12
- package/dist/cjs/limel-color-picker-palette.cjs.entry.js +1 -1
- package/dist/cjs/limel-color-picker.cjs.entry.js +1 -1
- package/dist/cjs/limel-date-picker.cjs.entry.js +47 -7
- package/dist/cjs/limel-dialog.cjs.entry.js +1 -1
- package/dist/cjs/limel-dock-button.cjs.entry.js +7 -2
- package/dist/cjs/limel-dock.cjs.entry.js +1 -1
- package/dist/cjs/limel-file.cjs.entry.js +1 -1
- package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +99 -118
- package/dist/cjs/limel-form.cjs.entry.js +79 -1
- package/dist/cjs/limel-header.cjs.entry.js +2 -2
- package/dist/cjs/limel-icon-button.cjs.entry.js +1 -1
- package/dist/cjs/limel-info-tile.cjs.entry.js +4 -1
- package/dist/cjs/limel-input-field.cjs.entry.js +2 -2
- package/dist/cjs/limel-list_2.cjs.entry.js +1 -1
- package/dist/cjs/limel-menu-list.cjs.entry.js +7 -1
- package/dist/cjs/limel-menu.cjs.entry.js +10 -2
- package/dist/cjs/limel-portal.cjs.entry.js +3 -4
- package/dist/cjs/limel-select.cjs.entry.js +1 -1
- package/dist/cjs/limel-shortcut.cjs.entry.js +1 -1
- package/dist/cjs/limel-slider.cjs.entry.js +5 -5
- package/dist/cjs/limel-snackbar.cjs.entry.js +2 -2
- package/dist/cjs/limel-spinner.cjs.entry.js +1 -1
- package/dist/cjs/limel-split-button.cjs.entry.js +1 -1
- package/dist/cjs/limel-tab-bar.cjs.entry.js +1 -1
- package/dist/cjs/limel-tab-panel.cjs.entry.js +1 -1
- package/dist/cjs/limel-table.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{dateFormatter-d7a8d40d.js → sv-dffe48b5.js} +222 -173
- package/dist/cjs/{translations-ca7279bc.js → translations-f8080c48.js} +30 -0
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/badge/badge.css +34 -19
- package/dist/collection/components/badge/badge.js +7 -7
- package/dist/collection/components/banner/banner.css +1 -2
- package/dist/collection/components/button/button.css +31 -41
- package/dist/collection/components/button-group/button-group.css +44 -42
- package/dist/collection/components/button-group/button-group.js +25 -6
- package/dist/collection/components/callout/callout.css +77 -0
- package/dist/collection/components/callout/callout.helpers.js +27 -0
- package/dist/collection/components/callout/callout.js +139 -0
- package/dist/collection/components/callout/callout.types.js +1 -0
- package/dist/collection/components/checkbox/checkbox.css +22 -45
- package/dist/collection/components/chip-set/chip-set.css +222 -405
- package/dist/collection/components/chip-set/chip-set.js +6 -2
- package/dist/collection/components/circular-progress/circular-progress.css +8 -0
- package/dist/collection/components/code-editor/code-editor.css +11 -8
- package/dist/collection/components/collapsible-section/collapsible-section.css +88 -55
- package/dist/collection/components/collapsible-section/collapsible-section.js +2 -11
- package/dist/collection/components/color-picker/color-picker-palette.css +16 -14
- package/dist/collection/components/color-picker/color-picker.css +7 -5
- package/dist/collection/components/date-picker/date-picker.js +30 -5
- package/dist/collection/components/date-picker/dateFormatter.js +7 -3
- package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.css +11 -1
- package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.js +23 -8
- package/dist/collection/components/date-picker/pickers/Picker.js +11 -8
- package/dist/collection/components/dialog/dialog.css +14 -27
- package/dist/collection/components/dock/dock-button/dock-button.css +17 -2
- package/dist/collection/components/dock/dock-button/dock-button.js +6 -1
- package/dist/collection/components/dock/dock.css +19 -1
- package/dist/collection/components/dock/dock.js +1 -0
- package/dist/collection/components/file/file.js +1 -1
- package/dist/collection/components/form/form.css +95 -8
- package/dist/collection/components/form/form.js +1 -0
- package/dist/collection/components/form/form.types.js +8 -0
- package/dist/collection/components/form/row/row.js +47 -0
- package/dist/collection/components/form/templates/object-field.js +5 -0
- package/dist/collection/components/form/templates/row-layout.js +20 -0
- package/dist/collection/components/header/header.css +10 -2
- package/dist/collection/components/header/header.js +7 -2
- package/dist/collection/components/icon-button/icon-button.css +15 -12
- package/dist/collection/components/info-tile/info-tile.css +13 -17
- package/dist/collection/components/info-tile/info-tile.js +3 -0
- package/dist/collection/components/input-field/input-field.css +199 -363
- package/dist/collection/components/input-field/input-field.js +1 -1
- package/dist/collection/components/linear-progress/linear-progress.css +7 -14
- package/dist/collection/components/list/list.css +388 -751
- package/dist/collection/components/menu/menu.css +19 -1
- package/dist/collection/components/menu/menu.js +10 -1
- package/dist/collection/components/menu-list/menu-list-renderer.js +6 -1
- package/dist/collection/components/menu-list/menu-list.css +400 -752
- package/dist/collection/components/menu-surface/menu-surface.css +13 -26
- package/dist/collection/components/popover-surface/popover-surface.css +8 -0
- package/dist/collection/components/progress-flow/progress-flow-item/progress-flow-item.css +8 -0
- package/dist/collection/components/select/select.css +174 -323
- package/dist/collection/components/shortcut/shortcut.css +9 -7
- package/dist/collection/components/slider/slider.css +87 -98
- package/dist/collection/components/slider/slider.js +5 -5
- package/dist/collection/components/snackbar/snackbar.css +19 -34
- package/dist/collection/components/snackbar/snackbar.js +1 -1
- package/dist/collection/components/spinner/spinner.css +4 -0
- package/dist/collection/components/split-button/split-button.css +15 -4
- package/dist/collection/components/switch/switch.css +21 -49
- package/dist/collection/components/tab-bar/tab-bar.css +20 -19
- package/dist/collection/components/tab-panel/tab-panel.css +5 -0
- package/dist/collection/components/table/table.css +33 -0
- package/dist/collection/icons/idea.svg +593 -0
- package/dist/collection/icons/info.svg +593 -0
- package/dist/collection/style/internal/shared_input-select-picker.scss +4 -0
- package/dist/collection/style/internal/z-index.scss +0 -1
- package/dist/collection/style/mixins.scss +15 -4
- package/dist/collection/translations/da.js +5 -0
- package/dist/collection/translations/en.js +5 -0
- package/dist/collection/translations/fi.js +5 -0
- package/dist/collection/translations/nl.js +5 -0
- package/dist/collection/translations/no.js +5 -0
- package/dist/collection/translations/sv.js +5 -0
- package/dist/esm/{keycodes-9f971b46.js → keycodes-44c01beb.js} +1 -1
- package/dist/esm/lime-elements.js +1 -1
- package/dist/esm/limel-badge.entry.js +4 -6
- package/dist/esm/limel-button-group.entry.js +21 -6
- package/dist/esm/limel-button.entry.js +1 -1
- package/dist/esm/limel-callout.entry.js +50 -0
- package/dist/esm/limel-chip-set.entry.js +14 -4
- package/dist/esm/limel-code-editor.entry.js +1 -1
- package/dist/esm/limel-collapsible-section.entry.js +3 -12
- package/dist/esm/limel-color-picker-palette.entry.js +1 -1
- package/dist/esm/limel-color-picker.entry.js +1 -1
- package/dist/esm/limel-date-picker.entry.js +46 -6
- package/dist/esm/limel-dialog.entry.js +1 -1
- package/dist/esm/limel-dock-button.entry.js +7 -2
- package/dist/esm/limel-dock.entry.js +1 -1
- package/dist/esm/limel-file.entry.js +1 -1
- package/dist/esm/limel-flatpickr-adapter.entry.js +99 -118
- package/dist/esm/limel-form.entry.js +79 -1
- package/dist/esm/limel-header.entry.js +2 -2
- package/dist/esm/limel-icon-button.entry.js +1 -1
- package/dist/esm/limel-info-tile.entry.js +4 -1
- package/dist/esm/limel-input-field.entry.js +3 -3
- package/dist/esm/limel-list_2.entry.js +2 -2
- package/dist/esm/limel-menu-list.entry.js +7 -1
- package/dist/esm/limel-menu.entry.js +10 -2
- package/dist/esm/limel-picker.entry.js +1 -1
- package/dist/esm/limel-popover_4.entry.js +1 -1
- package/dist/esm/limel-portal.entry.js +3 -4
- package/dist/esm/limel-select.entry.js +2 -2
- package/dist/esm/limel-shortcut.entry.js +1 -1
- package/dist/esm/limel-slider.entry.js +6 -6
- package/dist/esm/limel-snackbar.entry.js +2 -2
- package/dist/esm/limel-spinner.entry.js +1 -1
- package/dist/esm/limel-split-button.entry.js +1 -1
- package/dist/esm/limel-tab-bar.entry.js +1 -1
- package/dist/esm/limel-tab-panel.entry.js +1 -1
- package/dist/esm/limel-table.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{dateFormatter-784c3334.js → sv-336c4576.js} +222 -173
- package/dist/esm/{translations-0d0ee941.js → translations-f88bb584.js} +30 -0
- package/dist/lime-elements/lime-elements.esm.js +1 -1
- package/dist/lime-elements/{p-a8d38277.entry.js → p-10e259de.entry.js} +1 -1
- package/dist/lime-elements/{p-934456bc.entry.js → p-123f5fbb.entry.js} +1 -1
- package/dist/lime-elements/{p-c234a991.entry.js → p-157e0417.entry.js} +2 -2
- package/dist/lime-elements/p-2f9918a3.entry.js +1 -0
- package/dist/lime-elements/p-2fd478df.entry.js +1 -0
- package/dist/lime-elements/p-3be2dfc7.entry.js +1 -0
- package/dist/lime-elements/{p-06f2f6b4.entry.js → p-3fda3473.entry.js} +1 -1
- package/dist/lime-elements/p-46a76d55.entry.js +1 -0
- package/dist/lime-elements/p-4a62273c.entry.js +1 -0
- package/dist/lime-elements/{p-73df4d83.js → p-4dd9a5a5.js} +5 -3
- package/dist/lime-elements/{p-d1187867.entry.js → p-4eeabc1f.entry.js} +1 -1
- package/dist/lime-elements/{p-2f2ea041.entry.js → p-4fcd3337.entry.js} +1 -1
- package/dist/lime-elements/{p-029360c8.entry.js → p-50dbd665.entry.js} +1 -1
- package/dist/lime-elements/{p-e5213a54.entry.js → p-55c8cb64.entry.js} +4 -4
- package/dist/lime-elements/{p-cad7cda1.entry.js → p-58e9df30.entry.js} +1 -1
- package/dist/lime-elements/p-73613abb.entry.js +82 -0
- package/dist/lime-elements/{p-6784c5c3.entry.js → p-7d7d19de.entry.js} +1 -1
- package/dist/lime-elements/{p-d9c96100.entry.js → p-7fb68a16.entry.js} +1 -1
- package/dist/lime-elements/{p-004aad18.entry.js → p-9336fd7f.entry.js} +1 -1
- package/dist/lime-elements/{p-5f13035a.entry.js → p-95cefb5f.entry.js} +1 -1
- package/dist/lime-elements/{p-a0c78744.entry.js → p-a88f2922.entry.js} +2 -2
- package/dist/lime-elements/p-b1ae3d1f.entry.js +126 -0
- package/dist/lime-elements/p-b40f37d7.entry.js +1 -0
- package/dist/lime-elements/p-b59e4287.js +1 -0
- package/dist/lime-elements/{p-405207fa.entry.js → p-b80de0ea.entry.js} +1 -1
- package/dist/lime-elements/p-c47cb4c3.entry.js +1 -0
- package/dist/lime-elements/{p-b079fc71.entry.js → p-cc3529bb.entry.js} +1 -1
- package/dist/lime-elements/{p-93ad8b90.entry.js → p-d0084a70.entry.js} +1 -1
- package/dist/lime-elements/p-d16b27b9.entry.js +1 -0
- package/dist/lime-elements/{p-216ffe20.js → p-d7801e00.js} +1 -1
- package/dist/lime-elements/p-d87e2f26.entry.js +1 -0
- package/dist/lime-elements/p-d955c169.entry.js +59 -0
- package/dist/lime-elements/p-da536426.entry.js +1 -0
- package/dist/lime-elements/p-e69231c2.entry.js +16 -0
- package/dist/lime-elements/p-eda87f8c.entry.js +1 -0
- package/dist/lime-elements/{p-0bf916a0.entry.js → p-edbd8d62.entry.js} +1 -1
- package/dist/lime-elements/p-f11e7ce1.entry.js +1 -0
- package/dist/lime-elements/{p-5409b92f.entry.js → p-f979c0f2.entry.js} +1 -1
- package/dist/lime-elements/style/internal/shared_input-select-picker.scss +4 -0
- package/dist/lime-elements/style/internal/z-index.scss +0 -1
- package/dist/lime-elements/style/mixins.scss +15 -4
- package/dist/scss/mixins.scss +186 -0
- package/dist/types/components/badge/badge.d.ts +4 -2
- package/dist/types/components/button/button.types.d.ts +4 -0
- package/dist/types/components/button-group/button-group.d.ts +4 -0
- package/dist/types/components/callout/callout.d.ts +52 -0
- package/dist/types/components/callout/callout.helpers.d.ts +2 -0
- package/dist/types/components/callout/callout.types.d.ts +11 -0
- package/dist/types/components/chip-set/chip-set.d.ts +1 -1
- package/dist/types/components/collapsible-section/collapsible-section.d.ts +0 -1
- package/dist/types/components/date-picker/date-picker.d.ts +10 -0
- package/dist/types/components/date-picker/date.types.d.ts +1 -1
- package/dist/types/components/date-picker/dateFormatter.d.ts +3 -2
- package/dist/types/components/date-picker/flatpickr-adapter/flatpickr-adapter.d.ts +1 -1
- package/dist/types/components/date-picker/pickers/Picker.d.ts +4 -2
- package/dist/types/components/dock/dock-button/dock-button.d.ts +1 -0
- package/dist/types/components/dock/dock.d.ts +1 -0
- package/dist/types/components/dock/dock.types.d.ts +4 -0
- package/dist/types/components/form/form.d.ts +1 -0
- package/dist/types/components/form/form.types.d.ts +16 -1
- package/dist/types/components/form/row/row.d.ts +16 -0
- package/dist/types/components/form/templates/row-layout.d.ts +11 -0
- package/dist/types/components/form/templates/types.d.ts +3 -0
- package/dist/types/components/header/header.d.ts +6 -1
- package/dist/types/components/menu/menu.d.ts +3 -0
- package/dist/types/components/menu/menu.types.d.ts +4 -0
- package/dist/types/components/menu-list/menu-list-renderer.d.ts +1 -0
- package/dist/types/components.d.ts +57 -1
- package/dist/types/interface.d.ts +1 -0
- package/dist/types/translations/da.d.ts +5 -0
- package/dist/types/translations/en.d.ts +5 -0
- package/dist/types/translations/fi.d.ts +5 -0
- package/dist/types/translations/nl.d.ts +5 -0
- package/dist/types/translations/no.d.ts +5 -0
- package/dist/types/translations/sv.d.ts +5 -0
- package/package.json +23 -20
- package/dist/lime-elements/p-246862ec.js +0 -1
- package/dist/lime-elements/p-524bd0cc.entry.js +0 -1
- package/dist/lime-elements/p-52e18d94.entry.js +0 -1
- package/dist/lime-elements/p-61b3352f.entry.js +0 -1
- package/dist/lime-elements/p-65a3be2c.entry.js +0 -1
- package/dist/lime-elements/p-864db270.entry.js +0 -126
- package/dist/lime-elements/p-8ca53aa2.entry.js +0 -1
- package/dist/lime-elements/p-90961075.entry.js +0 -1
- package/dist/lime-elements/p-91604294.entry.js +0 -1
- package/dist/lime-elements/p-95fd48d0.entry.js +0 -82
- package/dist/lime-elements/p-c4a89055.entry.js +0 -16
- package/dist/lime-elements/p-cc9f89a9.entry.js +0 -1
- package/dist/lime-elements/p-d379f4d6.entry.js +0 -59
- package/dist/lime-elements/p-d512656b.entry.js +0 -1
- package/dist/lime-elements/p-e6a11b73.entry.js +0 -1
- package/dist/lime-elements/p-f9958763.entry.js +0 -1
|
@@ -4,6 +4,7 @@ import { h, } from '@stencil/core';
|
|
|
4
4
|
import { handleKeyboardEvent } from './chip-set-input-helpers';
|
|
5
5
|
import translate from '../../global/translations';
|
|
6
6
|
import { getHref, getTarget } from '../../util/link-helper';
|
|
7
|
+
import { isEqual } from 'lodash-es';
|
|
7
8
|
const SELECTED_CHIP_CLASS = 'mdc-chip--selected';
|
|
8
9
|
const INPUT_FIELD_TABINDEX = 1;
|
|
9
10
|
/**
|
|
@@ -156,7 +157,10 @@ export class ChipSet {
|
|
|
156
157
|
}
|
|
157
158
|
return (h("div", { class: classes, role: "grid" }, chipSetLabel, this.value.map(this.renderChip), this.renderHelperLine()));
|
|
158
159
|
}
|
|
159
|
-
handleChangeChips() {
|
|
160
|
+
handleChangeChips(newValue, oldValue) {
|
|
161
|
+
if (isEqual(newValue, oldValue)) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
160
164
|
this.syncEmptyInput();
|
|
161
165
|
}
|
|
162
166
|
createMDCChipSet() {
|
|
@@ -662,7 +666,7 @@ export class ChipSet {
|
|
|
662
666
|
"mutable": false,
|
|
663
667
|
"complexType": {
|
|
664
668
|
"original": "Languages",
|
|
665
|
-
"resolved": "\"da\" | \"en\" | \"fi\" | \"nb\" | \"nl\" | \"no\" | \"sv\"",
|
|
669
|
+
"resolved": "\"da\" | \"de\" | \"en\" | \"fi\" | \"fr\" | \"nb\" | \"nl\" | \"no\" | \"sv\"",
|
|
666
670
|
"references": {
|
|
667
671
|
"Languages": {
|
|
668
672
|
"location": "import",
|
|
@@ -4,6 +4,14 @@
|
|
|
4
4
|
* Nothing in this file may output any CSS
|
|
5
5
|
* without being explicitly called by outside code.
|
|
6
6
|
*/
|
|
7
|
+
/**
|
|
8
|
+
* Note! This file is exported to `dist/scss/` in the published
|
|
9
|
+
* node module, for consumer projects to import.
|
|
10
|
+
* That means this file cannot import from any file that isn't
|
|
11
|
+
* also exported, keeping the same relative path.
|
|
12
|
+
*
|
|
13
|
+
* Or, just don't import anything, that works too.
|
|
14
|
+
*/
|
|
7
15
|
/*
|
|
8
16
|
* This file is imported into every component that uses MDC!
|
|
9
17
|
*
|
|
@@ -444,11 +444,13 @@ span.CodeMirror-selectedtext { background: none; }
|
|
|
444
444
|
content: "\25B8";
|
|
445
445
|
}
|
|
446
446
|
|
|
447
|
-
|
|
448
|
-
* This file is
|
|
447
|
+
/**
|
|
448
|
+
* Note! This file is exported to `dist/scss/` in the published
|
|
449
|
+
* node module, for consumer projects to import.
|
|
450
|
+
* That means this file cannot import from any file that isn't
|
|
451
|
+
* also exported, keeping the same relative path.
|
|
449
452
|
*
|
|
450
|
-
*
|
|
451
|
-
* without being explicitly called by outside code.
|
|
453
|
+
* Or, just don't import anything, that works too.
|
|
452
454
|
*/
|
|
453
455
|
/**
|
|
454
456
|
* @prop --code-editor-max-height: Defines how tall the code editor can get before content becomes scrollable, defaults to `10rem`.
|
|
@@ -523,22 +525,22 @@ span.CodeMirror-selectedtext { background: none; }
|
|
|
523
525
|
--code-editor-selection-lowlight-color: var(--contrast-100);
|
|
524
526
|
}
|
|
525
527
|
:root:not([data-theme=force-light]) :host .cm-attribute,
|
|
526
|
-
:root:not([data-theme=force-light]) :host .cm-property,
|
|
527
|
-
:root:not([data-theme=force-light]) :host .cm-keyword {
|
|
528
|
+
:root:not([data-theme=force-light]) :host .cm-property,
|
|
529
|
+
:root:not([data-theme=force-light]) :host .cm-keyword {
|
|
528
530
|
color: rgb(var(--color-purple-lighter));
|
|
529
531
|
}
|
|
530
532
|
:root:not([data-theme=force-light]) :host .cm-operator {
|
|
531
533
|
color: rgb(var(--color-sky-lighter));
|
|
532
534
|
}
|
|
533
535
|
:root:not([data-theme=force-light]) :host .cm-variable-3,
|
|
534
|
-
:root:not([data-theme=force-light]) :host .cm-type {
|
|
536
|
+
:root:not([data-theme=force-light]) :host .cm-type {
|
|
535
537
|
color: rgb(var(--color-yellow-light));
|
|
536
538
|
}
|
|
537
539
|
:root:not([data-theme=force-light]) :host .cm-atom {
|
|
538
540
|
color: rgb(var(--color-coral-light));
|
|
539
541
|
}
|
|
540
542
|
:root:not([data-theme=force-light]) :host .cm-tag,
|
|
541
|
-
:root:not([data-theme=force-light]) :host .cm-number {
|
|
543
|
+
:root:not([data-theme=force-light]) :host .cm-number {
|
|
542
544
|
color: rgb(var(--color-magenta-light));
|
|
543
545
|
}
|
|
544
546
|
:root:not([data-theme=force-light]) :host .cm-def {
|
|
@@ -666,6 +668,7 @@ span.CodeMirror-selectedtext { background: none; }
|
|
|
666
668
|
.cm-s-lime .CodeMirror-foldmarker {
|
|
667
669
|
position: relative;
|
|
668
670
|
transition: color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;
|
|
671
|
+
cursor: pointer;
|
|
669
672
|
color: transparent;
|
|
670
673
|
background-color: var(--lime-elevated-surface-background-color);
|
|
671
674
|
box-shadow: var(--button-shadow-normal);
|
|
@@ -64,6 +64,14 @@
|
|
|
64
64
|
);
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
/**
|
|
68
|
+
* Note! This file is exported to `dist/scss/` in the published
|
|
69
|
+
* node module, for consumer projects to import.
|
|
70
|
+
* That means this file cannot import from any file that isn't
|
|
71
|
+
* also exported, keeping the same relative path.
|
|
72
|
+
*
|
|
73
|
+
* Or, just don't import anything, that works too.
|
|
74
|
+
*/
|
|
67
75
|
/**
|
|
68
76
|
* @prop --closed-header-background-color: background color for header when closed
|
|
69
77
|
* @prop --open-header-background-color: background color for header when open
|
|
@@ -71,7 +79,7 @@
|
|
|
71
79
|
* @prop --body-background-color: background color for body
|
|
72
80
|
* @prop --body-padding: space around content of the body
|
|
73
81
|
*/
|
|
74
|
-
:host {
|
|
82
|
+
:host(limel-collapsible-section) {
|
|
75
83
|
--border-radius-of-header: 0.75rem;
|
|
76
84
|
display: block;
|
|
77
85
|
}
|
|
@@ -84,37 +92,53 @@
|
|
|
84
92
|
pointer-events: none;
|
|
85
93
|
}
|
|
86
94
|
|
|
87
|
-
.
|
|
95
|
+
.open-close-toggle {
|
|
96
|
+
all: unset;
|
|
97
|
+
position: absolute;
|
|
98
|
+
inset: 0;
|
|
99
|
+
width: 100%;
|
|
88
100
|
transition: background-color 0.4s ease, border-radius 0.1s ease;
|
|
89
101
|
cursor: pointer;
|
|
90
|
-
|
|
91
|
-
display: flex;
|
|
92
|
-
justify-content: space-between;
|
|
93
|
-
padding-left: 0.625rem;
|
|
94
|
-
padding-right: 0.625rem;
|
|
95
|
-
height: 3.75rem;
|
|
102
|
+
z-index: -1;
|
|
96
103
|
background-color: var(--closed-header-background-color, rgb(var(--contrast-200)));
|
|
97
104
|
border-radius: var(--border-radius-of-header);
|
|
98
105
|
}
|
|
99
|
-
.
|
|
106
|
+
.open-close-toggle:focus {
|
|
100
107
|
outline: none;
|
|
101
108
|
}
|
|
102
|
-
.
|
|
109
|
+
.open-close-toggle:focus-visible {
|
|
103
110
|
outline: none;
|
|
104
111
|
box-shadow: var(--shadow-depth-8-focused);
|
|
105
112
|
}
|
|
106
|
-
|
|
113
|
+
.open-close-toggle:hover {
|
|
114
|
+
background-color: var(--open-header-background-color, rgb(var(--contrast-300)));
|
|
115
|
+
}
|
|
116
|
+
section.open .open-close-toggle {
|
|
107
117
|
background-color: var(--open-header-background-color, rgb(var(--contrast-100)));
|
|
108
118
|
border-radius: var(--border-radius-of-header) var(--border-radius-of-header) 0 0;
|
|
109
119
|
}
|
|
110
|
-
section.open .
|
|
120
|
+
section.open .open-close-toggle:hover {
|
|
111
121
|
background-color: var(--open-header-background-color, rgb(var(--contrast-300)));
|
|
112
122
|
}
|
|
113
|
-
|
|
114
|
-
|
|
123
|
+
|
|
124
|
+
.title,
|
|
125
|
+
.divider-line,
|
|
126
|
+
.expand-icon {
|
|
127
|
+
pointer-events: none;
|
|
115
128
|
}
|
|
116
129
|
|
|
117
|
-
|
|
130
|
+
header {
|
|
131
|
+
isolation: isolate;
|
|
132
|
+
position: relative;
|
|
133
|
+
align-items: center;
|
|
134
|
+
display: flex;
|
|
135
|
+
justify-content: space-between;
|
|
136
|
+
padding-left: 0.625rem;
|
|
137
|
+
padding-right: 0.625rem;
|
|
138
|
+
height: 3rem;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.title {
|
|
118
142
|
-moz-osx-font-smoothing: grayscale;
|
|
119
143
|
-webkit-font-smoothing: antialiased;
|
|
120
144
|
font-family: Roboto, sans-serif;
|
|
@@ -138,6 +162,7 @@ section.open .section__header:hover {
|
|
|
138
162
|
text-transform: inherit;
|
|
139
163
|
/* @alternate */
|
|
140
164
|
text-transform: var(--mdc-typography-headline2-text-transform, inherit);
|
|
165
|
+
color: var(--mdc-theme-on-surface);
|
|
141
166
|
justify-self: flex-start;
|
|
142
167
|
padding-right: 0.75rem;
|
|
143
168
|
user-select: none;
|
|
@@ -152,7 +177,7 @@ section.open .section__header:hover {
|
|
|
152
177
|
overflow: hidden;
|
|
153
178
|
}
|
|
154
179
|
|
|
155
|
-
.
|
|
180
|
+
.divider-line {
|
|
156
181
|
transition: opacity 0.3s ease 0.3s;
|
|
157
182
|
flex-grow: 1;
|
|
158
183
|
height: 0.125rem;
|
|
@@ -161,16 +186,16 @@ section.open .section__header:hover {
|
|
|
161
186
|
margin-right: 0.5rem;
|
|
162
187
|
opacity: 0;
|
|
163
188
|
}
|
|
164
|
-
section.open .
|
|
189
|
+
section.open .divider-line {
|
|
165
190
|
opacity: 0.16;
|
|
166
191
|
}
|
|
167
192
|
|
|
168
|
-
.
|
|
193
|
+
.actions {
|
|
169
194
|
justify-self: flex-end;
|
|
170
195
|
flex-shrink: 0;
|
|
171
196
|
}
|
|
172
197
|
|
|
173
|
-
@keyframes fade-in-
|
|
198
|
+
@keyframes fade-in-body {
|
|
174
199
|
0% {
|
|
175
200
|
opacity: 0;
|
|
176
201
|
}
|
|
@@ -178,8 +203,8 @@ section.open .section__header__divider-line {
|
|
|
178
203
|
opacity: 1;
|
|
179
204
|
}
|
|
180
205
|
}
|
|
181
|
-
.
|
|
182
|
-
animation: fade-in-
|
|
206
|
+
.body {
|
|
207
|
+
animation: fade-in-body 0.3s ease-in forwards;
|
|
183
208
|
background-color: var(--body-background-color, var(--contrast-100));
|
|
184
209
|
padding-left: var(--body-padding, 1.25rem);
|
|
185
210
|
padding-right: var(--body-padding, 1.25rem);
|
|
@@ -188,14 +213,14 @@ section.open .section__header__divider-line {
|
|
|
188
213
|
display: none;
|
|
189
214
|
opacity: 0;
|
|
190
215
|
}
|
|
191
|
-
section.open .
|
|
216
|
+
section.open .body {
|
|
192
217
|
display: block;
|
|
193
218
|
}
|
|
194
|
-
.
|
|
219
|
+
.body:before, .body:after {
|
|
195
220
|
content: " ";
|
|
196
221
|
display: table;
|
|
197
222
|
}
|
|
198
|
-
.
|
|
223
|
+
.body:after {
|
|
199
224
|
clear: both;
|
|
200
225
|
}
|
|
201
226
|
|
|
@@ -205,7 +230,7 @@ section.open .section__body {
|
|
|
205
230
|
* Nothing in this file may output any CSS
|
|
206
231
|
* without being explicitly called by outside code.
|
|
207
232
|
*/
|
|
208
|
-
.
|
|
233
|
+
.expand-icon {
|
|
209
234
|
position: relative;
|
|
210
235
|
height: 1.875rem;
|
|
211
236
|
margin: 0 1rem 0 0.5rem;
|
|
@@ -213,7 +238,7 @@ section.open .section__body {
|
|
|
213
238
|
flex-shrink: 0;
|
|
214
239
|
}
|
|
215
240
|
|
|
216
|
-
.
|
|
241
|
+
.line {
|
|
217
242
|
position: absolute;
|
|
218
243
|
top: 0;
|
|
219
244
|
right: 0;
|
|
@@ -225,63 +250,71 @@ section.open .section__body {
|
|
|
225
250
|
height: 0.125rem;
|
|
226
251
|
background-color: var(--header-stroke-color, rgb(var(--contrast-900)));
|
|
227
252
|
}
|
|
228
|
-
.
|
|
253
|
+
.line:first-of-type, .line:last-of-type {
|
|
229
254
|
transition: opacity 0.2s ease 0.1s, transform 0.4s ease 0.3s;
|
|
230
255
|
}
|
|
231
|
-
.
|
|
256
|
+
.line:first-of-type {
|
|
232
257
|
transform: rotate3d(0, 0, 1, 90deg);
|
|
233
258
|
}
|
|
234
|
-
.
|
|
259
|
+
.line:last-of-type {
|
|
235
260
|
transform: rotate3d(0, 0, 1, -90deg);
|
|
236
261
|
}
|
|
237
|
-
.
|
|
262
|
+
.line:nth-of-type(2), .line:nth-of-type(3) {
|
|
238
263
|
transition: opacity 0.2s ease, transform 0.18s ease;
|
|
239
264
|
}
|
|
265
|
+
section.open .line:first-of-type, section.open .line:last-of-type {
|
|
266
|
+
transition: opacity 0.2s ease 0.1s, transform 0.4s ease 0.3s;
|
|
267
|
+
}
|
|
268
|
+
section.open .line:first-of-type {
|
|
269
|
+
transform: rotate3d(0, 0, 1, 0deg);
|
|
270
|
+
}
|
|
271
|
+
section.open .line:last-of-type {
|
|
272
|
+
transform: rotate3d(0, 0, 1, 0deg);
|
|
273
|
+
}
|
|
274
|
+
section.open .line:nth-of-type(2), section.open .line:nth-of-type(3) {
|
|
275
|
+
transition: opacity 1s ease, transform 0.4s ease;
|
|
276
|
+
}
|
|
277
|
+
section.open .line:nth-of-type(2) {
|
|
278
|
+
transform: translate3d(0, -1rem, 0);
|
|
279
|
+
opacity: 0;
|
|
280
|
+
}
|
|
281
|
+
section.open .line:nth-of-type(3) {
|
|
282
|
+
transform: translate3d(0, 1rem, 0);
|
|
283
|
+
opacity: 0;
|
|
284
|
+
}
|
|
240
285
|
|
|
241
|
-
.
|
|
286
|
+
.open-close-toggle:hover + .expand-icon .line:first-of-type {
|
|
242
287
|
transform: rotate3d(0, 0, 1, 0deg);
|
|
243
288
|
}
|
|
244
|
-
.
|
|
289
|
+
.open-close-toggle:hover + .expand-icon .line:last-of-type {
|
|
245
290
|
transform: rotate3d(0, 0, 1, 0deg);
|
|
246
291
|
}
|
|
247
|
-
.
|
|
292
|
+
.open-close-toggle:hover + .expand-icon .line:nth-of-type(2), .open-close-toggle:hover + .expand-icon .line:nth-of-type(3) {
|
|
248
293
|
transition: opacity 0.5s ease 0.4s, transform 0.7s cubic-bezier(0.85, 0.11, 0.14, 1.35) 0.2s;
|
|
249
294
|
}
|
|
250
|
-
.
|
|
295
|
+
.open-close-toggle:hover + .expand-icon .line:nth-of-type(2) {
|
|
251
296
|
transform: translate3d(0, -0.5rem, 0);
|
|
252
297
|
opacity: 0.4;
|
|
253
298
|
}
|
|
254
|
-
.
|
|
299
|
+
.open-close-toggle:hover + .expand-icon .line:nth-of-type(3) {
|
|
255
300
|
transform: translate3d(0, 0.5rem, 0);
|
|
256
301
|
opacity: 0.4;
|
|
257
302
|
}
|
|
258
303
|
|
|
259
|
-
section.open .
|
|
260
|
-
transition: opacity 0.2s ease 0.
|
|
261
|
-
}
|
|
262
|
-
section.open .section__header .expand-icon__line:first-of-type {
|
|
263
|
-
transform: rotate3d(0, 0, 1, 0deg);
|
|
304
|
+
section.open .open-close-toggle:hover + .expand-icon .line:first-of-type, section.open .open-close-toggle:hover + .expand-icon .line:last-of-type {
|
|
305
|
+
transition: opacity 0.2s ease 0.4s, transform 0.4s cubic-bezier(0.85, 0.11, 0.14, 1.35) 0.2s;
|
|
264
306
|
}
|
|
265
|
-
section.open .
|
|
266
|
-
transform: rotate3d(0, 0, 1,
|
|
307
|
+
section.open .open-close-toggle:hover + .expand-icon .line:first-of-type {
|
|
308
|
+
transform: rotate3d(0, 0, 1, 45deg);
|
|
267
309
|
}
|
|
268
|
-
section.open .
|
|
269
|
-
|
|
310
|
+
section.open .open-close-toggle:hover + .expand-icon .line:last-of-type {
|
|
311
|
+
transform: rotate3d(0, 0, 1, -45deg);
|
|
270
312
|
}
|
|
271
|
-
section.open .
|
|
313
|
+
section.open .open-close-toggle:hover + .expand-icon .line:nth-of-type(2) {
|
|
272
314
|
transform: translate3d(0, -1rem, 0);
|
|
273
315
|
opacity: 0;
|
|
274
316
|
}
|
|
275
|
-
section.open .
|
|
317
|
+
section.open .open-close-toggle:hover + .expand-icon .line:nth-of-type(3) {
|
|
276
318
|
transform: translate3d(0, 1rem, 0);
|
|
277
319
|
opacity: 0;
|
|
278
|
-
}
|
|
279
|
-
section.open .section__header:hover .expand-icon__line:first-of-type, section.open .section__header:hover .expand-icon__line:last-of-type {
|
|
280
|
-
transition: opacity 0.2s ease 0.4s, transform 0.4s cubic-bezier(0.85, 0.11, 0.14, 1.35) 0.2s;
|
|
281
|
-
}
|
|
282
|
-
section.open .section__header:hover .expand-icon__line:first-of-type {
|
|
283
|
-
transform: rotate3d(0, 0, 1, 45deg);
|
|
284
|
-
}
|
|
285
|
-
section.open .section__header:hover .expand-icon__line:last-of-type {
|
|
286
|
-
transform: rotate3d(0, 0, 1, -45deg);
|
|
287
320
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { h } from '@stencil/core';
|
|
2
2
|
import { dispatchResizeEvent } from '../../util/dispatch-resize-event';
|
|
3
|
-
import { ENTER, ENTER_KEY_CODE } from '../../util/keycodes';
|
|
4
3
|
/**
|
|
5
4
|
* @slot - Content to put inside the collapsible section
|
|
6
5
|
* @exampleComponent limel-example-collapsible-section
|
|
@@ -14,14 +13,6 @@ export class CollapsibleSection {
|
|
|
14
13
|
this.onClick = () => {
|
|
15
14
|
this.handleInteraction();
|
|
16
15
|
};
|
|
17
|
-
this.handleKeyDown = (event) => {
|
|
18
|
-
const isEnter = event.key === ENTER || event.keyCode === ENTER_KEY_CODE;
|
|
19
|
-
if (isEnter) {
|
|
20
|
-
event.stopPropagation();
|
|
21
|
-
event.preventDefault();
|
|
22
|
-
this.handleInteraction();
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
16
|
this.handleInteraction = () => {
|
|
26
17
|
this.isOpen = !this.isOpen;
|
|
27
18
|
if (this.isOpen) {
|
|
@@ -37,7 +28,7 @@ export class CollapsibleSection {
|
|
|
37
28
|
if (!this.actions) {
|
|
38
29
|
return;
|
|
39
30
|
}
|
|
40
|
-
return (h("div", { class: "
|
|
31
|
+
return (h("div", { class: "actions" }, this.actions.map(this.renderActionButton)));
|
|
41
32
|
};
|
|
42
33
|
this.renderActionButton = (action) => {
|
|
43
34
|
return (h("limel-icon-button", { icon: action.icon, label: action.label, disabled: action.disabled, onClick: this.handleActionClick(action) }));
|
|
@@ -51,7 +42,7 @@ export class CollapsibleSection {
|
|
|
51
42
|
this.actions = undefined;
|
|
52
43
|
}
|
|
53
44
|
render() {
|
|
54
|
-
return (h("section", { class: `${this.isOpen ? 'open' : ''}` }, h("header", { class: "
|
|
45
|
+
return (h("section", { class: `${this.isOpen ? 'open' : ''}` }, h("header", null, h("button", { class: "open-close-toggle", onClick: this.onClick }), h("div", { class: "expand-icon" }, h("div", { class: "line" }), h("div", { class: "line" }), h("div", { class: "line" }), h("div", { class: "line" })), h("h2", { class: "title mdc-typography mdc-typography--headline2" }, this.header), h("div", { class: "divider-line" }), this.renderActions()), h("div", { class: "body" }, h("slot", null))));
|
|
55
46
|
}
|
|
56
47
|
static get is() { return "limel-collapsible-section"; }
|
|
57
48
|
static get encapsulation() { return "shadow"; }
|
|
@@ -65,20 +65,20 @@
|
|
|
65
65
|
|
|
66
66
|
@media (prefers-color-scheme: light) {
|
|
67
67
|
.brand-colors .--color-glaucous-default,
|
|
68
|
-
.brand-colors .--color-gray-dark {
|
|
68
|
+
.brand-colors .--color-gray-dark {
|
|
69
69
|
border-radius: 50%;
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
@media (prefers-color-scheme: dark) {
|
|
73
73
|
.brand-colors .--color-red-light,
|
|
74
|
-
.brand-colors .--color-magenta-default,
|
|
75
|
-
.brand-colors .--color-sky-light,
|
|
76
|
-
.brand-colors .--color-teal-light,
|
|
77
|
-
.brand-colors .--color-green-light,
|
|
78
|
-
.brand-colors .--color-amber-light,
|
|
79
|
-
.brand-colors .--color-amber-default,
|
|
80
|
-
.brand-colors .--color-coral-light,
|
|
81
|
-
.brand-colors .--color-gray-light {
|
|
74
|
+
.brand-colors .--color-magenta-default,
|
|
75
|
+
.brand-colors .--color-sky-light,
|
|
76
|
+
.brand-colors .--color-teal-light,
|
|
77
|
+
.brand-colors .--color-green-light,
|
|
78
|
+
.brand-colors .--color-amber-light,
|
|
79
|
+
.brand-colors .--color-amber-default,
|
|
80
|
+
.brand-colors .--color-coral-light,
|
|
81
|
+
.brand-colors .--color-gray-light {
|
|
82
82
|
border-radius: 50%;
|
|
83
83
|
}
|
|
84
84
|
}
|
|
@@ -582,11 +582,13 @@
|
|
|
582
582
|
grid-template-columns: repeat(20, 1fr) auto;
|
|
583
583
|
}
|
|
584
584
|
|
|
585
|
-
|
|
586
|
-
* This file is
|
|
585
|
+
/**
|
|
586
|
+
* Note! This file is exported to `dist/scss/` in the published
|
|
587
|
+
* node module, for consumer projects to import.
|
|
588
|
+
* That means this file cannot import from any file that isn't
|
|
589
|
+
* also exported, keeping the same relative path.
|
|
587
590
|
*
|
|
588
|
-
*
|
|
589
|
-
* without being explicitly called by outside code.
|
|
591
|
+
* Or, just don't import anything, that works too.
|
|
590
592
|
*/
|
|
591
593
|
.picker-trigger[style="--background:lime-magenta;"]:after,
|
|
592
594
|
.chosen-color-preview[style="--background:lime-magenta;"]:after {
|
|
@@ -666,8 +668,8 @@
|
|
|
666
668
|
|
|
667
669
|
.picker-trigger {
|
|
668
670
|
border-radius: 0.5rem;
|
|
669
|
-
cursor: pointer;
|
|
670
671
|
transition: color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;
|
|
672
|
+
cursor: pointer;
|
|
671
673
|
color: var(--mdc-theme-on-surface);
|
|
672
674
|
background-color: var(--lime-elevated-surface-background-color);
|
|
673
675
|
box-shadow: var(--button-shadow-normal);
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
* This file is
|
|
1
|
+
/**
|
|
2
|
+
* Note! This file is exported to `dist/scss/` in the published
|
|
3
|
+
* node module, for consumer projects to import.
|
|
4
|
+
* That means this file cannot import from any file that isn't
|
|
5
|
+
* also exported, keeping the same relative path.
|
|
3
6
|
*
|
|
4
|
-
*
|
|
5
|
-
* without being explicitly called by outside code.
|
|
7
|
+
* Or, just don't import anything, that works too.
|
|
6
8
|
*/
|
|
7
9
|
.picker-trigger[style="--background:lime-magenta;"]:after,
|
|
8
10
|
.chosen-color-preview[style="--background:lime-magenta;"]:after {
|
|
@@ -82,8 +84,8 @@
|
|
|
82
84
|
|
|
83
85
|
.picker-trigger {
|
|
84
86
|
border-radius: 0.5rem;
|
|
85
|
-
cursor: pointer;
|
|
86
87
|
transition: color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;
|
|
88
|
+
cursor: pointer;
|
|
87
89
|
color: var(--mdc-theme-on-surface);
|
|
88
90
|
background-color: var(--lime-elevated-surface-background-color);
|
|
89
91
|
box-shadow: var(--button-shadow-normal);
|
|
@@ -36,6 +36,7 @@ const nativeFormatForType = {
|
|
|
36
36
|
* @exampleComponent limel-example-date-picker-formatted
|
|
37
37
|
* @exampleComponent limel-example-date-picker-programmatic-change
|
|
38
38
|
* @exampleComponent limel-example-date-picker-composite
|
|
39
|
+
* @exampleComponent limel-example-date-picker-custom-formatter
|
|
39
40
|
*/
|
|
40
41
|
export class DatePicker {
|
|
41
42
|
constructor() {
|
|
@@ -50,6 +51,7 @@ export class DatePicker {
|
|
|
50
51
|
this.hideCalendar();
|
|
51
52
|
}
|
|
52
53
|
};
|
|
54
|
+
this.formatValue = (value) => this.dateFormatter.formatDate(value, this.internalFormat);
|
|
53
55
|
this.disabled = false;
|
|
54
56
|
this.readonly = false;
|
|
55
57
|
this.invalid = false;
|
|
@@ -61,6 +63,7 @@ export class DatePicker {
|
|
|
61
63
|
this.type = 'datetime';
|
|
62
64
|
this.format = undefined;
|
|
63
65
|
this.language = 'en';
|
|
66
|
+
this.formatter = undefined;
|
|
64
67
|
this.formattedValue = undefined;
|
|
65
68
|
this.internalFormat = undefined;
|
|
66
69
|
this.showPortal = false;
|
|
@@ -79,7 +82,7 @@ export class DatePicker {
|
|
|
79
82
|
componentWillLoad() {
|
|
80
83
|
this.useNative = !this.readonly && (isIOSDevice() || isAndroidDevice());
|
|
81
84
|
this.updateInternalFormatAndType();
|
|
82
|
-
this.formattedValue = this.
|
|
85
|
+
this.formattedValue = this.formatValue(this.value);
|
|
83
86
|
}
|
|
84
87
|
componentWillUpdate() {
|
|
85
88
|
this.updateInternalFormatAndType();
|
|
@@ -97,12 +100,12 @@ export class DatePicker {
|
|
|
97
100
|
const dropdownZIndex = getComputedStyle(this.host).getPropertyValue('--dropdown-z-index');
|
|
98
101
|
return [
|
|
99
102
|
h("limel-input-field", Object.assign({ disabled: this.disabled, readonly: this.readonly, invalid: this.invalid, label: this.label, placeholder: this.placeholder, helperText: this.helperText, required: this.required, value: this.formattedValue, onFocus: this.showCalendar, onBlur: this.hideCalendar, onClick: this.onInputClick, onChange: this.handleInputElementChange, ref: (el) => (this.textField = el) }, inputProps)),
|
|
100
|
-
h("limel-portal", { containerId: this.portalId, visible: this.showPortal, containerStyle: { 'z-index': dropdownZIndex } }, h("limel-flatpickr-adapter", { format: this.internalFormat, language: this.language, type: this.type, value: this.value, ref: (el) => (this.datePickerCalendar = el), isOpen: this.showPortal, onChange: this.handleCalendarChange })),
|
|
103
|
+
h("limel-portal", { containerId: this.portalId, visible: this.showPortal, containerStyle: { 'z-index': dropdownZIndex } }, h("limel-flatpickr-adapter", { format: this.internalFormat, language: this.language, type: this.type, value: this.value, ref: (el) => (this.datePickerCalendar = el), isOpen: this.showPortal, formatter: this.formatValue, onChange: this.handleCalendarChange })),
|
|
101
104
|
];
|
|
102
105
|
}
|
|
103
106
|
onValueChange(newValue, oldValue) {
|
|
104
107
|
if (newValue !== oldValue && newValue !== this.formattedValue) {
|
|
105
|
-
this.formattedValue = this.
|
|
108
|
+
this.formattedValue = this.formatValue(this.value);
|
|
106
109
|
}
|
|
107
110
|
}
|
|
108
111
|
updateInternalFormatAndType() {
|
|
@@ -111,6 +114,9 @@ export class DatePicker {
|
|
|
111
114
|
if (this.useNative) {
|
|
112
115
|
this.internalFormat = this.nativeFormat;
|
|
113
116
|
}
|
|
117
|
+
else if (this.formatter) {
|
|
118
|
+
this.formatValue = this.formatter;
|
|
119
|
+
}
|
|
114
120
|
else if (this.format) {
|
|
115
121
|
this.internalFormat = this.format;
|
|
116
122
|
}
|
|
@@ -170,7 +176,7 @@ export class DatePicker {
|
|
|
170
176
|
}
|
|
171
177
|
handleCalendarChange(event) {
|
|
172
178
|
const date = event.detail;
|
|
173
|
-
this.formattedValue = this.
|
|
179
|
+
this.formattedValue = this.formatValue(date);
|
|
174
180
|
event.stopPropagation();
|
|
175
181
|
if (this.pickerIsAutoClosing()) {
|
|
176
182
|
this.hideCalendar();
|
|
@@ -400,7 +406,7 @@ export class DatePicker {
|
|
|
400
406
|
"mutable": false,
|
|
401
407
|
"complexType": {
|
|
402
408
|
"original": "Languages",
|
|
403
|
-
"resolved": "\"da\" | \"en\" | \"fi\" | \"nb\" | \"nl\" | \"no\" | \"sv\"",
|
|
409
|
+
"resolved": "\"da\" | \"de\" | \"en\" | \"fi\" | \"fr\" | \"nb\" | \"nl\" | \"no\" | \"sv\"",
|
|
404
410
|
"references": {
|
|
405
411
|
"Languages": {
|
|
406
412
|
"location": "import",
|
|
@@ -417,6 +423,25 @@ export class DatePicker {
|
|
|
417
423
|
"attribute": "language",
|
|
418
424
|
"reflect": true,
|
|
419
425
|
"defaultValue": "'en'"
|
|
426
|
+
},
|
|
427
|
+
"formatter": {
|
|
428
|
+
"type": "unknown",
|
|
429
|
+
"mutable": false,
|
|
430
|
+
"complexType": {
|
|
431
|
+
"original": "(date: Date) => string",
|
|
432
|
+
"resolved": "(date: Date) => string",
|
|
433
|
+
"references": {
|
|
434
|
+
"Date": {
|
|
435
|
+
"location": "global"
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
},
|
|
439
|
+
"required": false,
|
|
440
|
+
"optional": true,
|
|
441
|
+
"docs": {
|
|
442
|
+
"tags": [],
|
|
443
|
+
"text": "Custom formatting function. Will be used for date formatting.\n\n:::note\noverrides `format` and `language`\n:::"
|
|
444
|
+
}
|
|
420
445
|
}
|
|
421
446
|
};
|
|
422
447
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import 'moment/locale/da';
|
|
2
|
+
import 'moment/locale/de';
|
|
2
3
|
import 'moment/locale/fi';
|
|
3
|
-
import 'moment/locale/nb';
|
|
4
|
-
import 'moment/locale/sv';
|
|
5
4
|
import 'moment/locale/fr';
|
|
5
|
+
import 'moment/locale/nb';
|
|
6
6
|
import 'moment/locale/nl';
|
|
7
|
+
import 'moment/locale/sv';
|
|
7
8
|
import moment from 'moment/moment';
|
|
8
9
|
export class DateFormatter {
|
|
9
10
|
constructor(language = 'en') {
|
|
@@ -22,7 +23,10 @@ export class DateFormatter {
|
|
|
22
23
|
return null;
|
|
23
24
|
}
|
|
24
25
|
getLanguage() {
|
|
25
|
-
|
|
26
|
+
if (this.language === 'no') {
|
|
27
|
+
return 'nb';
|
|
28
|
+
}
|
|
29
|
+
return this.language;
|
|
26
30
|
}
|
|
27
31
|
getDateFormat(type) {
|
|
28
32
|
return ({
|
|
@@ -64,6 +64,14 @@
|
|
|
64
64
|
);
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
/**
|
|
68
|
+
* Note! This file is exported to `dist/scss/` in the published
|
|
69
|
+
* node module, for consumer projects to import.
|
|
70
|
+
* That means this file cannot import from any file that isn't
|
|
71
|
+
* also exported, keeping the same relative path.
|
|
72
|
+
*
|
|
73
|
+
* Or, just don't import anything, that works too.
|
|
74
|
+
*/
|
|
67
75
|
:root {
|
|
68
76
|
--mdc-theme-primary: #26a69a;
|
|
69
77
|
--mdc-theme-secondary: #575756;
|
|
@@ -634,6 +642,7 @@ svg {
|
|
|
634
642
|
}
|
|
635
643
|
.dayContainer .flatpickr-day {
|
|
636
644
|
transition: color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;
|
|
645
|
+
cursor: pointer;
|
|
637
646
|
color: var(--mdc-theme-on-surface);
|
|
638
647
|
background-color: transparent;
|
|
639
648
|
}
|
|
@@ -759,6 +768,7 @@ svg {
|
|
|
759
768
|
.arrowUp,
|
|
760
769
|
.arrowDown {
|
|
761
770
|
transition: color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;
|
|
771
|
+
cursor: pointer;
|
|
762
772
|
color: var(--mdc-theme-on-surface);
|
|
763
773
|
background-color: transparent;
|
|
764
774
|
border-radius: 0.25rem;
|
|
@@ -829,9 +839,9 @@ svg {
|
|
|
829
839
|
.datepicker-quarter,
|
|
830
840
|
.datepicker-year {
|
|
831
841
|
transition: color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;
|
|
842
|
+
cursor: pointer;
|
|
832
843
|
color: var(--mdc-theme-on-surface);
|
|
833
844
|
background-color: transparent;
|
|
834
|
-
cursor: pointer;
|
|
835
845
|
min-width: 0;
|
|
836
846
|
text-align: center;
|
|
837
847
|
}
|