@ember-eui/flatpickr 14.0.0 → 14.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,36 @@
1
1
  /**
2
- * EUI text field wired to flatpickr (https://flatpickr.js.org).
2
+ * EUI text field wired to flatpickr (https://flatpickr.js.org): a date,
3
+ * time, date range or multiple dates picker. Load flatpickr's styles once,
4
+ * e.g. `import 'flatpickr/dist/flatpickr.css'` in `app/app.js`.
5
+ *
6
+ * Arguments:
7
+ * - `@date` (required): the selected date(s): a `Date`, a string in
8
+ * `@dateFormat`, an array for ranges / multiple dates, or `null`.
9
+ * - `@onChange` (required, or `null`): called with
10
+ * `(selectedDates: Date[], dateStr: string, instance)`; update `@date`.
11
+ * - `@onOpen`, `@onClose`, `@onReady`: flatpickr's hooks, same arguments.
12
+ * - `@locale`: a flatpickr locale object, or a key such as `'es'` (loaded
13
+ * lazily). Changing it recreates the picker.
14
+ * - `@disabled`: disables the input.
15
+ * - `@clear`: shows a clear button (while there is a `@date`) calling
16
+ * `@clear(null)`.
17
+ * - `@ariaLabel`: accessible label of the input.
18
+ * - Any other flatpickr option is passed through, e.g. `@mode` (`'single'`,
19
+ * `'multiple'`, `'range'`), `@enableTime`, `@noCalendar`, `@dateFormat`,
20
+ * `@altInput` / `@altFormat` / `@altInputClass`, `@minDate`, `@maxDate`,
21
+ * `@inline`, `@weekNumbers`. `@minDate`, `@maxDate`, `@altFormat`,
22
+ * `@altInputClass` and `@date` also update a rendered picker.
23
+ * - EuiFieldText's args style the input: `@icon` (defaults to
24
+ * `'calendar'`), `@fullWidth`, `@compressed`, `@isInvalid`,
25
+ * `@isLoading`, `@readOnly`, `@controlOnly`, `@inputRef`, `@id`, plus the
26
+ * `<:prepend>` / `<:append>` blocks.
27
+ *
28
+ * `@wrap` is not supported.
3
29
  *
4
30
  * The flatpickr lifecycle below used to come from extending ember-flatpickr's
5
31
  * component; it is inlined (same arguments and behavior) because
6
32
  * ember-flatpickr still depends on v1 addons (@ember/render-modifiers 3,
7
33
  * @ember/test-waiters 3), which break Vite apps.
8
- *
9
- * Requires `@date` and `@onChange` (or null); any other argument is passed to
10
- * flatpickr as an option.
11
34
  */
12
35
  export default class EuiFlatpickrComponent extends Component<any> {
13
36
  constructor(owner: import("@ember/owner").default, args: any);
@@ -1 +1 @@
1
- {"version":3,"file":"eui-flatpickr.d.ts","sourceRoot":"","sources":["../../src/components/eui-flatpickr.js"],"names":[],"mappings":"AAiCA;;;;;;;;;;GAUG;AACH;;IACE,kBAAa;IAEb,gBAGC;IAED,6BAGC;IAED,sBAGC;IAED,mCAiBC;IAED,iDAiCC;IAED,iCAcC;IAED,2BAGC;IAED,+BAYC;IAED,sBAKC;IAED,0BAKC;IAED,oCAIC;IAED,yBAGC;IAED,yBAGC;CAqCF;sBAxNqB,oBAAoB"}
1
+ {"version":3,"file":"eui-flatpickr.d.ts","sourceRoot":"","sources":["../../src/components/eui-flatpickr.js"],"names":[],"mappings":"AAiCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH;;IACE,kBAAa;IAEb,gBAGC;IAED,6BAGC;IAED,sBAGC;IAED,mCAiBC;IAED,iDAiCC;IAED,iCAcC;IAED,2BAGC;IAED,+BAYC;IAED,sBAKC;IAED,0BAKC;IAED,oCAIC;IAED,yBAGC;IAED,yBAGC;CAqCF;sBA/OqB,oBAAoB"}
@@ -1 +1 @@
1
- {"version":3,"file":"random-id.js","sources":["../../src/-private/random-id.ts"],"sourcesContent":["import { helper } from '@ember/component/helper';\n\nexport default helper<{\n Args: {\n Positional: [];\n };\n Return: string;\n}>(randomId);\n\n// Copy-pasted from the ember-source implementation:\n// https://github.com/emberjs/ember.js/blob/master/packages/@ember/-internals/glimmer/lib/helpers/unique-id.ts\nfunction randomId() {\n //@ts-expect-error\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands -- ember's own trick\n return ([3e7] + -1e3 + -4e3 + -2e3 + -1e11).replace(/[0-3]/g, (a) =>\n ((a * 4) ^ ((Math.random() * 16) >> (a & 2))).toString(16)\n );\n}\n"],"names":["helper","randomId","replace","a","Math","random","toString"],"mappings":";;AAEA,eAAeA,MAAM,CAKlBC,UAAQ,CAAC;;AAEZ;AACA;AACA,SAASA,UAAQA,GAAG;AAClB;AACA;EACA,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,EAAEC,OAAO,CAAC,QAAQ,EAAGC,CAAC,IAC9D,CAAEA,CAAC,GAAG,CAAC,GAAMC,IAAI,CAACC,MAAM,EAAE,GAAG,EAAE,KAAMF,CAAC,GAAG,CAAC,CAAE,EAAEG,QAAQ,CAAC,EAAE,CAC3D,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"random-id.js","sources":["../../src/-private/random-id.ts"],"sourcesContent":["import { helper } from '@ember/component/helper';\n\nexport default helper<{\n Args: {\n Positional: [];\n };\n Return: string;\n}>(randomId);\n\n// Copy-pasted from the ember-source implementation:\n// https://github.com/emberjs/ember.js/blob/master/packages/@ember/-internals/glimmer/lib/helpers/unique-id.ts\nfunction randomId() {\n //@ts-expect-error\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands -- ember's own trick\n return ([3e7] + -1e3 + -4e3 + -2e3 + -1e11).replace(/[0-3]/g, (a) =>\n ((a * 4) ^ ((Math.random() * 16) >> (a & 2))).toString(16)\n );\n}\n"],"names":["helper","randomId","replace","a","Math","random","toString"],"mappings":";;AAEA,eAAeA,MAAM,CAKlBC,UAAQ,CAAC;;AAEZ;AACA;AACA,SAASA,UAAQA,GAAG;AAClB;AACA;EACA,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,EAAEC,OAAO,CAAC,QAAQ,EAAGC,CAAC,IAC9D,CAAEA,CAAC,GAAG,CAAC,GAAMC,IAAI,CAACC,MAAM,EAAE,GAAG,EAAE,KAAMF,CAAC,GAAG,CAAC,CAAE,EAAEG,QAAQ,CAAC,EAAE,CAC3D,CAAC;AACH;;"}
@@ -22,15 +22,38 @@ async function loadLocale(key) {
22
22
  return locales[key] ?? key;
23
23
  }
24
24
  /**
25
- * EUI text field wired to flatpickr (https://flatpickr.js.org).
25
+ * EUI text field wired to flatpickr (https://flatpickr.js.org): a date,
26
+ * time, date range or multiple dates picker. Load flatpickr's styles once,
27
+ * e.g. `import 'flatpickr/dist/flatpickr.css'` in `app/app.js`.
28
+ *
29
+ * Arguments:
30
+ * - `@date` (required): the selected date(s): a `Date`, a string in
31
+ * `@dateFormat`, an array for ranges / multiple dates, or `null`.
32
+ * - `@onChange` (required, or `null`): called with
33
+ * `(selectedDates: Date[], dateStr: string, instance)`; update `@date`.
34
+ * - `@onOpen`, `@onClose`, `@onReady`: flatpickr's hooks, same arguments.
35
+ * - `@locale`: a flatpickr locale object, or a key such as `'es'` (loaded
36
+ * lazily). Changing it recreates the picker.
37
+ * - `@disabled`: disables the input.
38
+ * - `@clear`: shows a clear button (while there is a `@date`) calling
39
+ * `@clear(null)`.
40
+ * - `@ariaLabel`: accessible label of the input.
41
+ * - Any other flatpickr option is passed through, e.g. `@mode` (`'single'`,
42
+ * `'multiple'`, `'range'`), `@enableTime`, `@noCalendar`, `@dateFormat`,
43
+ * `@altInput` / `@altFormat` / `@altInputClass`, `@minDate`, `@maxDate`,
44
+ * `@inline`, `@weekNumbers`. `@minDate`, `@maxDate`, `@altFormat`,
45
+ * `@altInputClass` and `@date` also update a rendered picker.
46
+ * - EuiFieldText's args style the input: `@icon` (defaults to
47
+ * `'calendar'`), `@fullWidth`, `@compressed`, `@isInvalid`,
48
+ * `@isLoading`, `@readOnly`, `@controlOnly`, `@inputRef`, `@id`, plus the
49
+ * `<:prepend>` / `<:append>` blocks.
50
+ *
51
+ * `@wrap` is not supported.
26
52
  *
27
53
  * The flatpickr lifecycle below used to come from extending ember-flatpickr's
28
54
  * component; it is inlined (same arguments and behavior) because
29
55
  * ember-flatpickr still depends on v1 addons (@ember/render-modifiers 3,
30
56
  * @ember/test-waiters 3), which break Vite apps.
31
- *
32
- * Requires `@date` and `@onChange` (or null); any other argument is passed to
33
- * flatpickr as an option.
34
57
  */
35
58
  class EuiFlatpickrComponent extends Component {
36
59
  flatpickrRef;
@@ -1 +1 @@
1
- {"version":3,"file":"eui-flatpickr.js","sources":["../../src/components/eui-flatpickr.gjs"],"sourcesContent":["import Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { action } from '@ember/object';\nimport { getOwner } from '@ember/owner';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport willDestroy from '@ember/render-modifiers/modifiers/will-destroy';\nimport { scheduleOnce } from '@ember/runloop';\nimport { waitForPromise } from '@ember/test-waiters';\nimport { EuiFieldText } from '@ember-eui/core/components';\nimport { argOrDefault } from '@ember-eui/core/helpers';\n\nimport flatpickr from 'flatpickr';\nimport { and, not } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\n\n/**\n * Resolves a locale key (\"es\", \"ru\", ...) to flatpickr's locale object.\n *\n * A template-literal import (`flatpickr/dist/l10n/${key}.js`) can't be\n * resolved by bundlers (Vite/Rollup keep it as a bare runtime specifier), so\n * load flatpickr's locale index instead: a static import that bundlers split\n * into a lazy chunk, fetched only when a non-English string locale is used.\n * Unknown keys fall back to the key itself (flatpickr then uses English).\n */\nasync function loadLocale(key) {\n const module = await import('flatpickr/dist/l10n/index.js');\n const locales = module.default?.default ?? module.default ?? module;\n\n return locales[key] ?? key;\n}\n\n/**\n * EUI text field wired to flatpickr (https://flatpickr.js.org).\n *\n * The flatpickr lifecycle below used to come from extending ember-flatpickr's\n * component; it is inlined (same arguments and behavior) because\n * ember-flatpickr still depends on v1 addons (@ember/render-modifiers 3,\n * @ember/test-waiters 3), which break Vite apps.\n *\n * Requires `@date` and `@onChange` (or null); any other argument is passed to\n * flatpickr as an option.\n */\nexport default class EuiFlatpickrComponent extends Component {\n flatpickrRef;\n\n @action\n onClear() {\n this.args.clear(null);\n }\n\n @action\n onInsert(element) {\n this.setupFlatpickr(element);\n }\n\n @action\n onWillDestroy() {\n this.flatpickrRef?.destroy();\n }\n\n setupFlatpickr(element) {\n const { date, onChange, wrap } = this.args;\n\n assert(\n '<EuiFlatpickr> requires a `date` to be passed as the value for flatpickr.',\n date !== undefined\n );\n assert(\n '<EuiFlatpickr> requires an `onChange` action or null for no action.',\n onChange !== undefined\n );\n assert(\n '<EuiFlatpickr> does not support the wrap option.',\n wrap !== true\n );\n\n scheduleOnce('afterRender', this, this.setFlatpickrOptions, element);\n }\n\n async setFlatpickrOptions(element) {\n const fastboot = getOwner(this)?.lookup('service:fastboot');\n\n if (fastboot?.isFastBoot) {\n return;\n }\n\n const {\n date,\n disabled = false,\n onChange,\n onReady,\n onOpen,\n onClose,\n ...rest\n } = this.args;\n const config = Object.fromEntries(\n Object.entries(rest).filter((entry) => entry[1] !== undefined)\n );\n\n if (typeof config.locale === 'string' && config.locale !== 'en') {\n config.locale = await waitForPromise(loadLocale(config.locale));\n }\n\n this.flatpickrRef = flatpickr(element, {\n onChange,\n onClose,\n onOpen,\n onReady,\n ...config,\n defaultDate: date,\n });\n this.setDisabled(disabled);\n }\n\n setDisabled(disabled) {\n if (!this.flatpickrRef) {\n return;\n }\n\n const { altInput, element } = this.flatpickrRef;\n\n if (altInput && element?.nextSibling) {\n // with `altInput`, `element` is the hidden input holding the value and\n // the next sibling is the visible input the user interacts with\n element.nextSibling.disabled = disabled;\n } else {\n element.disabled = disabled;\n }\n }\n\n @action\n onAltFormatUpdated() {\n this.flatpickrRef?.set('altFormat', this.args.altFormat);\n }\n\n @action\n onAltInputClassUpdated() {\n const { altInputClass } = this.args;\n\n this.flatpickrRef?.set('altInputClass', altInputClass || '');\n\n // https://github.com/flatpickr/flatpickr/issues/861\n const altInput = this.flatpickrRef?.altInput;\n\n if (altInput) {\n altInput.className = altInputClass || '';\n }\n }\n\n @action\n onDateUpdated() {\n if (typeof this.args.date !== 'undefined') {\n this.flatpickrRef?.setDate(this.args.date);\n }\n }\n\n @action\n onDisabledUpdated() {\n if (typeof this.args.disabled !== 'undefined') {\n this.setDisabled(this.args.disabled);\n }\n }\n\n @action\n onLocaleUpdated(element) {\n this.flatpickrRef?.destroy();\n this.setupFlatpickr(element);\n }\n\n @action\n onMaxDateUpdated() {\n this.flatpickrRef?.set('maxDate', this.args.maxDate);\n }\n\n @action\n onMinDateUpdated() {\n this.flatpickrRef?.set('minDate', this.args.minDate);\n }\n\n <template>\n {{#let\n (and (not (argOrDefault @isFakePrependBlock false)) (has-block \"prepend\"))\n (and (not (argOrDefault @isFakeAppendBlock false)) (has-block \"append\"))\n (argOrDefault @id (randomId))\n as |hasPrepend hasAppend inputId|\n }}\n <EuiFieldText\n aria-label={{@ariaLabel}}\n @icon={{if @icon @icon \"calendar\"}}\n @fullWidth={{@fullWidth}}\n @isLoading={{@isLoading}}\n @readOnly={{@readOnly}}\n @inputRef={{@inputRef}}\n @controlOnly={{@controlOnly}}\n @compressed={{@compressed}}\n @id={{inputId}}\n @isFakePrependBlock={{not hasPrepend}}\n @isFakeAppendBlock={{not hasAppend}}\n @disabled={{@disabled}}\n @isInvalid={{@isInvalid}}\n @clear={{if\n (and @clear @date (not @isDisabled) (not @disabled))\n this.onClear\n }}\n {{didInsert this.onInsert}}\n {{willDestroy this.onWillDestroy}}\n {{didUpdate this.onAltFormatUpdated @altFormat}}\n {{didUpdate this.onAltInputClassUpdated @altInputClass}}\n {{didUpdate this.onDateUpdated @date}}\n {{didUpdate this.onDisabledUpdated @disabled}}\n {{didUpdate this.onLocaleUpdated @locale}}\n {{didUpdate this.onMaxDateUpdated @maxDate}}\n {{didUpdate this.onMinDateUpdated @minDate}}\n ...attributes\n >\n <:prepend as |classes finalId|>\n {{yield classes finalId to=\"prepend\"}}\n </:prepend>\n <:append as |classes finalId|>\n {{yield classes finalId to=\"append\"}}\n </:append>\n </EuiFieldText>\n {{/let}}\n </template>\n}\n"],"names":["loadLocale","key","module","locales","default","EuiFlatpickrComponent","Component","flatpickrRef","onClear","args","clear","n","prototype","action","onInsert","element","setupFlatpickr","onWillDestroy","destroy","date","onChange","wrap","assert","undefined","scheduleOnce","setFlatpickrOptions","fastboot","getOwner","lookup","isFastBoot","disabled","onReady","onOpen","onClose","rest","config","Object","fromEntries","entries","filter","entry","locale","waitForPromise","flatpickr","defaultDate","setDisabled","altInput","nextSibling","onAltFormatUpdated","set","altFormat","onAltInputClassUpdated","altInputClass","className","onDateUpdated","setDate","onDisabledUpdated","onLocaleUpdated","onMaxDateUpdated","maxDate","onMinDateUpdated","minDate","setComponentTemplate","precompileTemplate","strictMode","scope","and","not","argOrDefault","randomId","EuiFieldText","didInsert","willDestroy","didUpdate"],"mappings":"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"}
1
+ {"version":3,"file":"eui-flatpickr.js","sources":["../../src/components/eui-flatpickr.gjs"],"sourcesContent":["import Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { action } from '@ember/object';\nimport { getOwner } from '@ember/owner';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport willDestroy from '@ember/render-modifiers/modifiers/will-destroy';\nimport { scheduleOnce } from '@ember/runloop';\nimport { waitForPromise } from '@ember/test-waiters';\nimport { EuiFieldText } from '@ember-eui/core/components';\nimport { argOrDefault } from '@ember-eui/core/helpers';\n\nimport flatpickr from 'flatpickr';\nimport { and, not } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\n\n/**\n * Resolves a locale key (\"es\", \"ru\", ...) to flatpickr's locale object.\n *\n * A template-literal import (`flatpickr/dist/l10n/${key}.js`) can't be\n * resolved by bundlers (Vite/Rollup keep it as a bare runtime specifier), so\n * load flatpickr's locale index instead: a static import that bundlers split\n * into a lazy chunk, fetched only when a non-English string locale is used.\n * Unknown keys fall back to the key itself (flatpickr then uses English).\n */\nasync function loadLocale(key) {\n const module = await import('flatpickr/dist/l10n/index.js');\n const locales = module.default?.default ?? module.default ?? module;\n\n return locales[key] ?? key;\n}\n\n/**\n * EUI text field wired to flatpickr (https://flatpickr.js.org): a date,\n * time, date range or multiple dates picker. Load flatpickr's styles once,\n * e.g. `import 'flatpickr/dist/flatpickr.css'` in `app/app.js`.\n *\n * Arguments:\n * - `@date` (required): the selected date(s): a `Date`, a string in\n * `@dateFormat`, an array for ranges / multiple dates, or `null`.\n * - `@onChange` (required, or `null`): called with\n * `(selectedDates: Date[], dateStr: string, instance)`; update `@date`.\n * - `@onOpen`, `@onClose`, `@onReady`: flatpickr's hooks, same arguments.\n * - `@locale`: a flatpickr locale object, or a key such as `'es'` (loaded\n * lazily). Changing it recreates the picker.\n * - `@disabled`: disables the input.\n * - `@clear`: shows a clear button (while there is a `@date`) calling\n * `@clear(null)`.\n * - `@ariaLabel`: accessible label of the input.\n * - Any other flatpickr option is passed through, e.g. `@mode` (`'single'`,\n * `'multiple'`, `'range'`), `@enableTime`, `@noCalendar`, `@dateFormat`,\n * `@altInput` / `@altFormat` / `@altInputClass`, `@minDate`, `@maxDate`,\n * `@inline`, `@weekNumbers`. `@minDate`, `@maxDate`, `@altFormat`,\n * `@altInputClass` and `@date` also update a rendered picker.\n * - EuiFieldText's args style the input: `@icon` (defaults to\n * `'calendar'`), `@fullWidth`, `@compressed`, `@isInvalid`,\n * `@isLoading`, `@readOnly`, `@controlOnly`, `@inputRef`, `@id`, plus the\n * `<:prepend>` / `<:append>` blocks.\n *\n * `@wrap` is not supported.\n *\n * The flatpickr lifecycle below used to come from extending ember-flatpickr's\n * component; it is inlined (same arguments and behavior) because\n * ember-flatpickr still depends on v1 addons (@ember/render-modifiers 3,\n * @ember/test-waiters 3), which break Vite apps.\n */\nexport default class EuiFlatpickrComponent extends Component {\n flatpickrRef;\n\n @action\n onClear() {\n this.args.clear(null);\n }\n\n @action\n onInsert(element) {\n this.setupFlatpickr(element);\n }\n\n @action\n onWillDestroy() {\n this.flatpickrRef?.destroy();\n }\n\n setupFlatpickr(element) {\n const { date, onChange, wrap } = this.args;\n\n assert(\n '<EuiFlatpickr> requires a `date` to be passed as the value for flatpickr.',\n date !== undefined\n );\n assert(\n '<EuiFlatpickr> requires an `onChange` action or null for no action.',\n onChange !== undefined\n );\n assert(\n '<EuiFlatpickr> does not support the wrap option.',\n wrap !== true\n );\n\n scheduleOnce('afterRender', this, this.setFlatpickrOptions, element);\n }\n\n async setFlatpickrOptions(element) {\n const fastboot = getOwner(this)?.lookup('service:fastboot');\n\n if (fastboot?.isFastBoot) {\n return;\n }\n\n const {\n date,\n disabled = false,\n onChange,\n onReady,\n onOpen,\n onClose,\n ...rest\n } = this.args;\n const config = Object.fromEntries(\n Object.entries(rest).filter((entry) => entry[1] !== undefined)\n );\n\n if (typeof config.locale === 'string' && config.locale !== 'en') {\n config.locale = await waitForPromise(loadLocale(config.locale));\n }\n\n this.flatpickrRef = flatpickr(element, {\n onChange,\n onClose,\n onOpen,\n onReady,\n ...config,\n defaultDate: date,\n });\n this.setDisabled(disabled);\n }\n\n setDisabled(disabled) {\n if (!this.flatpickrRef) {\n return;\n }\n\n const { altInput, element } = this.flatpickrRef;\n\n if (altInput && element?.nextSibling) {\n // with `altInput`, `element` is the hidden input holding the value and\n // the next sibling is the visible input the user interacts with\n element.nextSibling.disabled = disabled;\n } else {\n element.disabled = disabled;\n }\n }\n\n @action\n onAltFormatUpdated() {\n this.flatpickrRef?.set('altFormat', this.args.altFormat);\n }\n\n @action\n onAltInputClassUpdated() {\n const { altInputClass } = this.args;\n\n this.flatpickrRef?.set('altInputClass', altInputClass || '');\n\n // https://github.com/flatpickr/flatpickr/issues/861\n const altInput = this.flatpickrRef?.altInput;\n\n if (altInput) {\n altInput.className = altInputClass || '';\n }\n }\n\n @action\n onDateUpdated() {\n if (typeof this.args.date !== 'undefined') {\n this.flatpickrRef?.setDate(this.args.date);\n }\n }\n\n @action\n onDisabledUpdated() {\n if (typeof this.args.disabled !== 'undefined') {\n this.setDisabled(this.args.disabled);\n }\n }\n\n @action\n onLocaleUpdated(element) {\n this.flatpickrRef?.destroy();\n this.setupFlatpickr(element);\n }\n\n @action\n onMaxDateUpdated() {\n this.flatpickrRef?.set('maxDate', this.args.maxDate);\n }\n\n @action\n onMinDateUpdated() {\n this.flatpickrRef?.set('minDate', this.args.minDate);\n }\n\n <template>\n {{#let\n (and (not (argOrDefault @isFakePrependBlock false)) (has-block \"prepend\"))\n (and (not (argOrDefault @isFakeAppendBlock false)) (has-block \"append\"))\n (argOrDefault @id (randomId))\n as |hasPrepend hasAppend inputId|\n }}\n <EuiFieldText\n aria-label={{@ariaLabel}}\n @icon={{if @icon @icon \"calendar\"}}\n @fullWidth={{@fullWidth}}\n @isLoading={{@isLoading}}\n @readOnly={{@readOnly}}\n @inputRef={{@inputRef}}\n @controlOnly={{@controlOnly}}\n @compressed={{@compressed}}\n @id={{inputId}}\n @isFakePrependBlock={{not hasPrepend}}\n @isFakeAppendBlock={{not hasAppend}}\n @disabled={{@disabled}}\n @isInvalid={{@isInvalid}}\n @clear={{if\n (and @clear @date (not @isDisabled) (not @disabled))\n this.onClear\n }}\n {{didInsert this.onInsert}}\n {{willDestroy this.onWillDestroy}}\n {{didUpdate this.onAltFormatUpdated @altFormat}}\n {{didUpdate this.onAltInputClassUpdated @altInputClass}}\n {{didUpdate this.onDateUpdated @date}}\n {{didUpdate this.onDisabledUpdated @disabled}}\n {{didUpdate this.onLocaleUpdated @locale}}\n {{didUpdate this.onMaxDateUpdated @maxDate}}\n {{didUpdate this.onMinDateUpdated @minDate}}\n ...attributes\n >\n <:prepend as |classes finalId|>\n {{yield classes finalId to=\"prepend\"}}\n </:prepend>\n <:append as |classes finalId|>\n {{yield classes finalId to=\"append\"}}\n </:append>\n </EuiFieldText>\n {{/let}}\n </template>\n}\n"],"names":["loadLocale","key","module","locales","default","EuiFlatpickrComponent","Component","flatpickrRef","onClear","args","clear","n","prototype","action","onInsert","element","setupFlatpickr","onWillDestroy","destroy","date","onChange","wrap","assert","undefined","scheduleOnce","setFlatpickrOptions","fastboot","getOwner","lookup","isFastBoot","disabled","onReady","onOpen","onClose","rest","config","Object","fromEntries","entries","filter","entry","locale","waitForPromise","flatpickr","defaultDate","setDisabled","altInput","nextSibling","onAltFormatUpdated","set","altFormat","onAltInputClassUpdated","altInputClass","className","onDateUpdated","setDate","onDisabledUpdated","onLocaleUpdated","onMaxDateUpdated","maxDate","onMinDateUpdated","minDate","setComponentTemplate","precompileTemplate","strictMode","scope","and","not","argOrDefault","randomId","EuiFieldText","didInsert","willDestroy","didUpdate"],"mappings":";;;;;;;;;;;;;;;;;;AA0BA,eAAeA,WAAWC,GAAG,EAAA;AAC3B,EAAA,MAAMC,MAAA,GAAS,MAAM,OAAO,8BAAA,CAAA;AAC5B,EAAA,MAAMC,UAAUD,MAAA,CAAOE,OAAO,EAAEA,OAAA,IAAWF,MAAA,CAAOE,OAAO,IAAIF,MAAA;AAE7D,EAAA,OAAOC,OAAO,CAACF,GAAA,CAAI,IAAIA,GAAA;AACzB;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCe,MAAMI,qBAAA,SAA8BC,SAAA,CAAA;EACjDC,YAAA;AAGAC,EAAAA,OAAAA,GAAU;AACR,IAAA,IAAI,CAACC,IAAI,CAACC,KAAK,CAAC,IAAA,CAAA;AAClB,EAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CAHCC,MAAA,CAAA,CAAA;AAAA;EAMDC,QAAAA,CAASC,OAAO,EAAE;AAChB,IAAA,IAAI,CAACC,cAAc,CAACD,OAAA,CAAA;AACtB,EAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,UAAA,EAAA,CAHCC,MAAA,CAAA,CAAA;AAAA;AAMDI,EAAAA,aAAAA,GAAgB;AACd,IAAA,IAAI,CAACV,YAAY,EAAEW,OAAA,EAAA;AACrB,EAAA;AAAA,EAAA;IAAAP,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,eAAA,EAAA,CAHCC,MAAA,CAAA,CAAA;AAAA;EAKDG,cAAAA,CAAeD,OAAO,EAAE;IACtB,MAAM;MAAEI,IAAI;MAAEC,QAAQ;AAAEC,MAAAA;KAAM,GAAG,IAAI,CAACZ,IAAI;AAE1Ca,IAAAA,MAAA,CACE,6EACAH,IAAA,KAASI,SAAA,CAAA;AAEXD,IAAAA,MAAA,CACE,uEACAF,QAAA,KAAaG,SAAA,CAAA;AAEfD,IAAAA,MAAA,CACE,oDACAD,IAAA,KAAS,IAAA,CAAA;IAGXG,YAAA,CAAa,eAAe,IAAI,EAAE,IAAI,CAACC,mBAAmB,EAAEV,OAAA,CAAA;AAC9D,EAAA;EAEA,MAAMU,mBAAAA,CAAoBV,OAAO,EAAE;IACjC,MAAMW,QAAA,GAAWC,QAAA,CAAS,IAAI,CAAA,EAAGC,MAAA,CAAO,kBAAA,CAAA;IAExC,IAAIF,UAAUG,UAAA,EAAY;AACxB,MAAA;AACF,IAAA;IAEA,MAAM;MACJV,IAAI;AACJW,MAAAA,WAAW,KAAK;MAChBV,QAAQ;MACRW,OAAO;MACPC,MAAM;MACNC,OAAO;MACP,GAAGC;KACJ,GAAG,IAAI,CAACzB,IAAI;IACb,MAAM0B,MAAA,GAASC,MAAA,CAAOC,WAAW,CAC/BD,OAAOE,OAAO,CAACJ,IAAA,CAAA,CAAMK,MAAM,CAAEC,KAAA,IAAUA,KAAK,CAAC,EAAE,KAAKjB,SAAA,CAAA,CAAA;AAGtD,IAAA,IAAI,OAAOY,OAAOM,MAAM,KAAK,YAAYN,MAAA,CAAOM,MAAM,KAAK,IAAA,EAAM;AAC/DN,MAAAA,MAAA,CAAOM,MAAM,GAAG,MAAMC,cAAA,CAAe1C,UAAA,CAAWmC,OAAOM,MAAM,CAAA,CAAA;AAC/D,IAAA;AAEA,IAAA,IAAI,CAAClC,YAAY,GAAGoC,SAAA,CAAU5B,OAAA,EAAS;MACrCK,QAAA;MACAa,OAAA;MACAD,MAAA;MACAD,OAAA;AACA,MAAA,GAAGI,MAAM;AACTS,MAAAA,WAAA,EAAazB;AACf,KAAA,CAAA;AACA,IAAA,IAAI,CAAC0B,WAAW,CAACf,QAAA,CAAA;AACnB,EAAA;EAEAe,WAAAA,CAAYf,QAAQ,EAAE;AACpB,IAAA,IAAI,CAAC,IAAI,CAACvB,YAAY,EAAE;AACtB,MAAA;AACF,IAAA;IAEA,MAAM;MAAEuC,QAAQ;AAAE/B,MAAAA;KAAS,GAAG,IAAI,CAACR,YAAY;AAE/C,IAAA,IAAIuC,QAAA,IAAY/B,SAASgC,WAAA,EAAa;AACpC;AACA;AACAhC,MAAAA,OAAA,CAAQgC,WAAW,CAACjB,QAAQ,GAAGA,QAAA;AACjC,IAAA,CAAA,MAAO;MACLf,OAAA,CAAQe,QAAQ,GAAGA,QAAA;AACrB,IAAA;AACF,EAAA;AAGAkB,EAAAA,kBAAAA,GAAqB;AACnB,IAAA,IAAI,CAACzC,YAAY,EAAE0C,GAAA,CAAI,aAAa,IAAI,CAACxC,IAAI,CAACyC,SAAS,CAAA;AACzD,EAAA;AAAA,EAAA;IAAAvC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,oBAAA,EAAA,CAHCC,MAAA,CAAA,CAAA;AAAA;AAMDsC,EAAAA,sBAAAA,GAAyB;IACvB,MAAM;AAAEC,MAAAA;KAAe,GAAG,IAAI,CAAC3C,IAAI;IAEnC,IAAI,CAACF,YAAY,EAAE0C,GAAA,CAAI,iBAAiBG,aAAA,IAAiB,EAAA,CAAA;AAEzD;AACA,IAAA,MAAMN,QAAA,GAAW,IAAI,CAACvC,YAAY,EAAEuC,QAAA;AAEpC,IAAA,IAAIA,QAAA,EAAU;AACZA,MAAAA,QAAA,CAASO,SAAS,GAAGD,aAAA,IAAiB,EAAA;AACxC,IAAA;AACF,EAAA;AAAA,EAAA;IAAAzC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,wBAAA,EAAA,CAZCC,MAAA,CAAA,CAAA;AAAA;AAeDyC,EAAAA,aAAAA,GAAgB;IACd,IAAI,OAAO,IAAI,CAAC7C,IAAI,CAACU,IAAI,KAAK,WAAA,EAAa;MACzC,IAAI,CAACZ,YAAY,EAAEgD,OAAA,CAAQ,IAAI,CAAC9C,IAAI,CAACU,IAAI,CAAA;AAC3C,IAAA;AACF,EAAA;AAAA,EAAA;IAAAR,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,eAAA,EAAA,CALCC,MAAA,CAAA,CAAA;AAAA;AAQD2C,EAAAA,iBAAAA,GAAoB;IAClB,IAAI,OAAO,IAAI,CAAC/C,IAAI,CAACqB,QAAQ,KAAK,WAAA,EAAa;MAC7C,IAAI,CAACe,WAAW,CAAC,IAAI,CAACpC,IAAI,CAACqB,QAAQ,CAAA;AACrC,IAAA;AACF,EAAA;AAAA,EAAA;IAAAnB,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,mBAAA,EAAA,CALCC,MAAA,CAAA,CAAA;AAAA;EAQD4C,eAAAA,CAAgB1C,OAAO,EAAE;AACvB,IAAA,IAAI,CAACR,YAAY,EAAEW,OAAA,EAAA;AACnB,IAAA,IAAI,CAACF,cAAc,CAACD,OAAA,CAAA;AACtB,EAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,iBAAA,EAAA,CAJCC,MAAA,CAAA,CAAA;AAAA;AAOD6C,EAAAA,gBAAAA,GAAmB;AACjB,IAAA,IAAI,CAACnD,YAAY,EAAE0C,GAAA,CAAI,WAAW,IAAI,CAACxC,IAAI,CAACkD,OAAO,CAAA;AACrD,EAAA;AAAA,EAAA;IAAAhD,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,kBAAA,EAAA,CAHCC,MAAA,CAAA,CAAA;AAAA;AAMD+C,EAAAA,gBAAAA,GAAmB;AACjB,IAAA,IAAI,CAACrD,YAAY,EAAE0C,GAAA,CAAI,WAAW,IAAI,CAACxC,IAAI,CAACoD,OAAO,CAAA;AACrD,EAAA;AAAA,EAAA;IAAAlD,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,kBAAA,EAAA,CAHCC,MAAA,CAAA,CAAA;AAAA;AAKD,EAAA;IAAAiD,oBAAA,CAAAC,kBAAA,CAAA,wyCAAA,EA4CA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,GAAA;QAAAC,GAAA;QAAAC,YAAA;QAAAC,QAAA;QAAAC,YAAA;QAAAC,SAAA;QAAAC,WAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ember-eui/flatpickr",
3
- "version": "14.0.0",
3
+ "version": "14.1.0",
4
4
  "description": "flatpickr date picker for @ember-eui/core",
5
5
  "keywords": [
6
6
  "ember-addon",
@@ -61,7 +61,7 @@
61
61
  "@babel/plugin-transform-class-static-block": "^7.20.0",
62
62
  "@babel/plugin-transform-typescript": "^7.12.13",
63
63
  "@babel/preset-typescript": "^7.18.6",
64
- "@ember-eui/core": "14.0.0",
64
+ "@ember-eui/core": "14.1.0",
65
65
  "@ember/optional-features": "^2.2.0",
66
66
  "@ember/test-helpers": "^5.2.1",
67
67
  "@ember/test-waiters": "^4.1.1",