@anzusystems/common-admin 1.4.2 → 1.6.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib-f03b7b67.js","sources":["../src/components/ABooleanValue.vue","../src/components/ACard.vue","../src/utils/common.ts","../src/utils/string.ts","../src/components/injectionKeys.ts","../src/components/form/AFormTextField.vue","../src/components/form/AFormTextarea.vue","../src/components/form/ASystemEntityScope.vue","../src/components/ADatatablePagination.vue","../src/components/ADatatableConfigButton.vue","../src/components/ADatatableOrdering.vue","../src/components/ADialogToolbar.vue","../src/components/ALogData.vue","../node_modules/@kyvg/vue3-notification/dist/index.es.js","../src/plugins/i18n.ts","../src/model/error/AnzuFatalError.ts","../src/composables/statusCodes.ts","../src/model/error/AnzuApiForbiddenError.ts","../src/model/error/AnzuApiValidationError.ts","../src/model/error/AnzuApiResponseCodeError.ts","../src/model/error/AnzuApiForbiddenOperationError.ts","../src/composables/system/alerts.ts","../src/components/ACreateDialog.vue","../src/components/AAdminSwitcher.vue","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/utc.js","../src/utils/datetime.ts","../src/components/ATimeTrackingFields.vue","../src/composables/filter/filterHelpers.ts","../src/components/filter/AFilterString.vue","../src/components/filter/AFilterMixed.vue","../src/components/filter/AFilterInteger.vue","../src/utils/event.ts","../src/components/buttons/filter/AFilterAdvancedButton.vue","../src/components/buttons/filter/AFilterSubmitButton.vue","../src/components/buttons/filter/AFilterResetButton.vue","../src/components/filter/AFilterWrapper.vue","../src/model/valueObject/Grant.ts","../src/components/permission/APermissionGrantEditor.vue","../src/model/valueObject/GrantOrigin.ts","../src/components/permission/APermissionValueChip.vue","../src/utils/object.ts","../src/types/OwnerAware.ts","../src/types/CreatedByAware.ts","../src/AnzuSystemsCommonAdmin.ts","../src/composables/system/ability.ts","../src/components/permission/Acl.vue","../src/components/ADatetime.vue","../node_modules/flatpickr/dist/esm/types/options.js","../node_modules/flatpickr/dist/esm/l10n/default.js","../node_modules/flatpickr/dist/esm/utils/index.js","../node_modules/flatpickr/dist/esm/utils/dom.js","../node_modules/flatpickr/dist/esm/utils/formatting.js","../node_modules/flatpickr/dist/esm/utils/dates.js","../node_modules/flatpickr/dist/esm/utils/polyfills.js","../node_modules/flatpickr/dist/esm/index.js","../node_modules/vue-flatpickr-component/dist/esm/events.js","../node_modules/vue-flatpickr-component/dist/esm/util.js","../node_modules/vue-flatpickr-component/dist/esm/component.js","../node_modules/flatpickr/dist/l10n/index.js","../src/validators/vuelidate/common/useValidateRequiredIf.ts","../src/components/ADatetimePicker.vue","../src/components/form/AFormDatetimePicker.vue","../src/components/form/AFormFlagDatetimePicker.vue","../src/components/filter/AFilterDatetimePicker.vue","../src/composables/system/pagination.ts","../src/components/form/AFormRemoteAutocomplete.vue","../src/components/form/AFormRemoteCheckbox.vue","../src/components/form/AFormRemoteSwitch.vue","../src/components/form/AFormValueObjectOptionsSelect.vue","../src/components/filter/AFilterValueObjectOptionsSelect.vue","../src/components/filter/AFilterRemoteAutocomplete.vue","../src/components/filter/AFilterBooleanGroup.vue","../src/components/filter/AFilterBooleanSelect.vue","../src/model/valueObject/JobStatus.ts","../src/components/job/AJobStatusChip.vue","../src/model/commonConfig.ts","../src/components/ACachedChip.vue","../src/model/valueObject/LogLevel.ts","../src/components/log/ALogLevelChip.vue","../src/utils/number.ts","../src/components/ACopyText.vue","../src/components/AChipNoLink.vue","../src/components/AUserAndTimeTrackingFields.vue","../src/components/buttons/action/AActionCloseButton.vue","../src/components/buttons/action/AActionCreateButton.vue","../src/components/buttons/action/AActionDeleteButton.vue","../src/components/buttons/action/AActionEditButton.vue","../src/components/buttons/action/AActionSaveAndCloseButton.vue","../src/components/buttons/action/AActionSaveButton.vue","../src/components/buttons/table/ATableCopyIdButton.vue","../src/components/buttons/table/ATableDetailButton.vue","../src/components/buttons/table/ATableEditButton.vue","../src/components/buttons/ABtnSplit.vue","../src/composables/themeSettings.ts","../src/components/AThemeSelect.vue","../src/composables/languageSettings.ts","../src/components/flags/FlagEn.vue","../src/components/flags/FlagEmpty.vue","../src/components/flags/FlagCountry.vue","../src/components/ALanguageSelect.vue","../src/components/systemBar/ASystemBarNewVersion.vue","../src/model/error/AnzuNewVersionFetchError.ts","../src/components/systemBar/ASystemBar.vue","../src/components/AAnzuUserAvatar.vue","../src/components/AAvatarColorPicker.vue","../src/components/ACurrentUserDropdown.vue","../src/components/form/AFormRemoteAutocompleteWithCached.vue","../src/components/view/ALoginView.vue","../src/components/view/ALogoutView.vue","../src/components/view/AUnauthorizedView.vue","../src/components/view/ANotFoundView.vue","../src/components/job/AJobDetailCommon.vue","../src/types/coreDam/Asset.ts","../src/services/api/coreDam/assetApi.ts","../src/model/coreDam/filter/AssetFilter.ts","../src/types/coreDam/AssetSelect.ts","../src/services/stores/coreDam/assetSelectStore.ts","../src/components/dam/assetSelect/composables/assetSelectListActions.ts","../src/components/dam/assetSelect/composables/assetSelectItemActions.ts","../src/assets/image/placeholder16x9.jpg","../src/components/dam/assetSelect/components/AssetImagePreview.vue","../src/utils/file.ts","../src/components/dam/assetSelect/components/AssetSelectTableRowItem.vue","../src/components/dam/assetSelect/components/AssetSelectListTable.vue","../src/components/dam/assetSelect/composables/assetSelectGridView.ts","../src/components/dam/assetSelect/composables/assetSelectFilterSidebar.ts","../src/components/dam/assetSelect/components/AssetSelectListBar.vue","../src/components/dam/assetSelect/components/AssetSelectTilesItem.vue","../src/components/dam/assetSelect/components/AssetSelectListTiles.vue","../src/components/dam/assetSelect/components/filter/AssetSelectFilterFormImage.vue","../src/components/dam/assetSelect/components/filter/AssetSelectFilterFormDefault.vue","../src/components/dam/assetSelect/components/filter/AssetSelectFilter.vue","../src/components/dam/assetSelect/AAssetSelect.vue","../src/utils/boolean.ts","../src/model/factory/AnzuUserFactory.ts","../src/model/factory/PermissionConfigFactory.ts","../src/model/factory/PermissionGroupFactory.ts","../src/utils/response.ts","../src/services/api/apiHelper.ts","../src/services/api/apiAnyRequest.ts","../src/services/api/apiCreateOne.ts","../src/services/api/apiDeleteOne.ts","../src/services/api/queryBuilder.ts","../src/services/api/apiFetchByIds.ts","../src/types/ApiResponse.ts","../src/services/api/apiFetchList.ts","../src/services/api/apiFetchOne.ts","../src/services/api/apiUpdateOne.ts","../src/composables/system/error.ts","../src/services/api/job/jobApi.ts","../src/model/valueObject/JobBaseResource.ts","../src/utils/array.ts","../src/utils/history.ts","../src/locales/en.ts","../src/locales/sk.ts","../src/validators/vuelidate/common/useValidateBetween.ts","../src/validators/vuelidate/common/useValidateEmail.ts","../src/validators/vuelidate/common/useValidateMaxLength.ts","../src/validators/vuelidate/common/useValidateMaxValue.ts","../src/validators/vuelidate/common/useValidateMinLength.ts","../src/validators/vuelidate/common/useValidateMinValue.ts","../src/validators/vuelidate/common/useValidateNumeric.ts","../src/validators/vuelidate/common/useValidateRequired.ts","../src/validators/vuelidate/common/useValidateSlug.ts","../src/validators/vuelidate/common/useValidateStringArrayItemLength.ts","../src/validators/vuelidate/common/useValidateUrl.ts","../src/validators/vuelidate/useValidate.ts","../src/composables/system/datatableColumns.ts","../src/model/commonVuetifyConfig.ts","../src/composables/system/defineCached.ts","../src/plugins/webfontloader.ts","../src/model/factory/JobFactory.ts","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v1.js","../src/utils/generator.ts","../src/composables/system/loginStatus.ts","../src/composables/datetime/remainingTime.ts"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\n\nconst { t } = useI18n()\n\nconst props = withDefaults(\n defineProps<{\n value: number | string | boolean\n chip?: boolean\n invertColor?: boolean\n }>(),\n {\n chip: false,\n invertColor: false,\n }\n)\n\nconst booleanValue = computed(() => {\n return props.value === true || props.value === 1 || props.value === 'true'\n})\n\nconst text = computed(() => {\n if (booleanValue.value) {\n return t('common.model.boolean.true')\n }\n return t('common.model.boolean.false')\n})\n\nconst color = computed(() => {\n if (props.invertColor) {\n return booleanValue.value ? 'error' : 'success'\n }\n return booleanValue.value ? 'success' : 'error'\n})\n</script>\n\n<template>\n <VChip\n v-if=\"chip\"\n :color=\"color\"\n label\n size=\"small\"\n >\n {{ text }}\n </VChip>\n <span v-else>{{ text }}</span>\n</template>\n","<script lang=\"ts\" setup>\nimport ACardLoader from '@/components/ACardLoader.vue'\nimport { computed } from 'vue'\n\nconst props = withDefaults(\n defineProps<{\n loading?: boolean\n title?: string\n }>(),\n {\n loading: undefined,\n title: undefined,\n }\n)\n\nconst loadingComputed = computed(() => {\n return props.loading ? 'primary' : false\n})\n</script>\n\n<template>\n <VCard\n :title=\"title\"\n variant=\"flat\"\n :loading=\"loadingComputed\"\n >\n <ACardLoader :loading=\"loading\" />\n <slot />\n </VCard>\n</template>\n","import type { DocId } from '@/types/common'\nimport { isProxy, isRef, toRaw, unref } from 'vue'\n\nexport const isUndefined = (value: unknown): value is undefined => {\n return typeof value === 'undefined'\n}\n\nexport const isDefined = <T>(value: T | undefined): value is T => {\n return !isUndefined(value)\n}\n\nexport const isNull = (value: unknown): value is null => {\n return value === null\n}\n\nexport const isNumber = (value: unknown): value is number => {\n return typeof value === 'number'\n}\n\nexport const isString = (value: unknown): value is string => {\n return typeof value === 'string'\n}\n\n/**\n * @template T Type used for request payload, by default same as Response type\n * @template R Response type override, optional\n */\nexport const isArray = <T = unknown>(value: unknown): value is Array<T> => {\n return Array.isArray(value)\n}\n\nexport const isFunction = <T extends (...args: any[]) => any>(value: unknown): value is T => {\n return typeof value === 'function'\n}\n\nexport const isBoolean = (value: unknown): value is boolean => {\n return typeof value === 'boolean'\n}\n\nexport const isDocId = (value: unknown): value is DocId => {\n return isString(value) && /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(value)\n}\n\nexport const isInt = (value: any): value is number => {\n const x = parseFloat(value)\n\n return !isNaN(value) && (x | 0) === x\n}\n\nexport const isObject = (value: unknown): value is object => {\n return typeof value === 'object' && !isArray(value) && !isNull(value)\n}\n\nexport const isEmptyObject = <T>(value: T): value is T => {\n if (isObject(value)) {\n return Object.keys(value).length === 0\n }\n return false\n}\n\nexport const isEmptyArray = (value: unknown): value is [] => {\n return isArray(value) && value.length === 0\n}\n\nexport const isEmpty = (value: unknown): boolean => {\n return (\n isNull(value) || isUndefined(value) || value === '' || value === 0 || isEmptyArray(value) || isEmptyObject(value)\n )\n}\n/**\n * Use only for objects with some primitives like:\n * number, string, boolean, null. Not supported: function, undefined, symbol, ...\n */\nexport const cloneDeep = <T>(object: T) => {\n if (typeof structuredClone === 'function') {\n try {\n if (isProxy(object)) {\n return structuredClone(toRaw(object)) as T\n }\n if (isRef(object)) {\n return structuredClone(unref(object)) as T\n }\n return structuredClone(object) as T\n } catch (error) {\n return JSON.parse(JSON.stringify(object)) as T\n }\n }\n return JSON.parse(JSON.stringify(object)) as T\n}\n","import type { UrlParams } from '@/services/api/apiHelper'\nimport { isNull, isUndefined } from '@/utils/common'\n\nexport const stringToInt = (value: any, fallbackValue = 0): number => {\n let check = fallbackValue\n try {\n check = Number.parseInt(value, 10)\n } catch {\n return fallbackValue\n }\n\n if (Number.isNaN(check)) {\n return fallbackValue\n }\n\n return check\n}\n\nexport const stringToFloat = (value: any, fallbackValue = 0): number => {\n let check = fallbackValue\n try {\n check = Number.parseFloat(value)\n } catch {\n return fallbackValue\n }\n\n if (Number.isNaN(check)) {\n return fallbackValue\n }\n\n return check\n}\n\nexport const stringSplitOnFirstOccurrence = (value: string, delimiter = '') => {\n const index = value.indexOf(delimiter)\n\n return {\n start: value.slice(0, index),\n end: value.slice(index + delimiter.length),\n }\n}\n\nexport const stringToSlug = (value: string) => {\n return value\n .toString()\n .toLowerCase()\n .trim()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .replace(/\\s+/g, '-')\n .replace(/&/g, '-')\n .replace(/[^\\w-]+/g, '')\n .replace(/--+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '')\n}\n\ntype Kebab<T extends string, A extends string = ''> = T extends `${infer F}${infer R}`\n ? Kebab<R, `${A}${F extends Lowercase<F> ? '' : '-'}${Lowercase<F>}`>\n : A\n\nexport const stringToKebabCase = <T extends string>(value: T): Kebab<T> =>\n value.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, '$1-$2').toLowerCase() as Kebab<T>\n\nexport const stringTrimLength = (value: string, maxLength = 80): string => {\n if (value.length > maxLength) {\n return value.substring(1, maxLength) + '...'\n }\n\n return value\n}\n\n/**\n * Converts colon parameters to real values from params.\n *\n * @param template url containing colon parameters, example: '/:id/edit'\n * @param params object containing real values to be replaced, example: { id:5 }\n */\nexport const stringUrlTemplateReplace = (template: string, params: UrlParams) => {\n if (template.indexOf(':') === -1) return template\n const newParts: string[] = []\n const parts = template.split('/')\n parts.forEach((part, index) => {\n newParts[index] = part\n if (!part.startsWith(':')) return\n const key = part.substring(1)\n if (!isUndefined(params[key])) newParts[index] = params[part.substring(1)] + ''\n })\n return newParts.join('/')\n}\n\n/**\n * Converts colon parameters to real values from params. Same as above but it additionally supports vue router regexp.\n *\n * @param template url containing colon parameters, example: '/:id(\\\\d+)/edit'\n * @param params object containing real values to be replaced, example: { id:5 }\n */\nexport const stringUrlTemplateReplaceVueRouter = (template: string, params: UrlParams) => {\n if (template.indexOf(':') === -1) return template\n const newParts: string[] = []\n const parts = template.split('/')\n parts.forEach((part: string, index: number) => {\n newParts[index] = part\n if (!part.startsWith(':')) return\n newParts[index] = part.substring(1)\n const regex = /^:([a-zA-Z0-9_-]+).*/\n const match = part.match(regex)\n if (isNull(match) || !match[1]) return\n if (!isUndefined(params[match[1]])) newParts[index] = params[match[1]] + ''\n })\n return newParts.join('/')\n}\n\n/**\n * Slot names with dots are not valid, Vue takes dots as modifiers, so we must replace dots with dash.\n */\nexport const stringNormalizeForSlotName = (name: string) => name.replace('.', '-')\n","import type { InjectionKey } from 'vue'\n\nexport const SystemScopeSymbol: InjectionKey<string> = Symbol.for('anzu:system-scope')\nexport const SubjectScopeSymbol: InjectionKey<string> = Symbol.for('anzu:subject-scope')\nexport const DamClientSymbol: InjectionKey<string> = Symbol.for('anzu:dam-client')\n","<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue'\nimport { stringSplitOnFirstOccurrence } from '@/utils/string'\nimport { isUndefined } from '@/utils/common'\nimport { SubjectScopeSymbol, SystemScopeSymbol } from '@/components/injectionKeys'\nimport type { VuetifyIconValue } from '@/types/Vuetify'\nimport type { ErrorObject } from '@vuelidate/core'\nimport { useI18n } from 'vue-i18n'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: string | number | null | undefined\n label?: string\n errorMessage?: string\n required?: boolean\n v?: any\n prependIcon?: VuetifyIconValue\n appendIcon?: VuetifyIconValue\n dataCy?: string\n hideLabel?: boolean\n type?: string\n step?: number\n maxlength?: number | undefined\n }>(),\n {\n label: undefined,\n errorMessage: undefined,\n required: undefined,\n v: null,\n prependIcon: undefined,\n appendIcon: undefined,\n dataCy: undefined,\n hideLabel: false,\n type: 'text',\n step: undefined,\n maxlength: undefined,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: string | number | null | undefined): void\n (e: 'click:append', data: string | number | null | undefined): void\n (e: 'blur', data: string | number | null | undefined): void\n}>()\n\nconst { t } = useI18n()\n\nconst system = inject<string | undefined>(SystemScopeSymbol, undefined)\nconst subject = inject<string | undefined>(SubjectScopeSymbol, undefined)\n\nconst onUpdate = (newValue: string) => {\n emit('update:modelValue', newValue)\n}\nconst onBlur = () => {\n emit('blur', props.modelValue)\n props.v?.$touch()\n}\n\nconst errorMessageComputed = computed(() => {\n if (!isUndefined(props.errorMessage)) return [props.errorMessage]\n if (props.v?.$errors?.length) return [props.v.$errors.map((item: ErrorObject) => item.$message).join(' ')]\n return []\n})\n\nconst labelComputed = computed(() => {\n if (!isUndefined(props.label)) return props.label\n if (isUndefined(system) || isUndefined(subject) || isUndefined(props.v?.$path)) return ''\n const { end: path } = stringSplitOnFirstOccurrence(props.v?.$path, '.')\n return t(system + '.' + subject + '.model.' + path)\n})\n\nconst requiredComputed = computed(() => {\n if (!isUndefined(props.required)) return props.required\n if (props.v?.required && props.v?.required.$params.type === 'required') return true\n return false\n})\n</script>\n\n<template>\n <VTextField\n :prepend-icon=\"prependIcon\"\n :data-cy=\"dataCy\"\n :error-messages=\"errorMessageComputed\"\n :model-value=\"modelValue\"\n :required=\"requiredComputed\"\n :type=\"type\"\n :step=\"step\"\n :append-icon=\"appendIcon\"\n :maxlength=\"maxlength\"\n trim\n @click:append=\"(event: any) => emit('click:append', event)\"\n @blur=\"onBlur\"\n @update:model-value=\"onUpdate($event)\"\n >\n <template\n v-if=\"!hideLabel\"\n #label\n >\n {{ labelComputed\n }}<span\n v-if=\"requiredComputed\"\n class=\"required\"\n />\n </template>\n </VTextField>\n</template>\n","<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue'\nimport { stringSplitOnFirstOccurrence } from '@/utils/string'\nimport { isUndefined } from '@/utils/common'\nimport { SubjectScopeSymbol, SystemScopeSymbol } from '@/components/injectionKeys'\nimport type { VuetifyIconValue } from '@/types/Vuetify'\nimport type { ErrorObject } from '@vuelidate/core'\nimport { useI18n } from 'vue-i18n'\n\nconst { t } = useI18n()\n\nconst props = withDefaults(\n defineProps<{\n modelValue: string | null // todo check number and null\n label?: string\n errorMessage?: string\n required?: boolean\n v?: any\n prependIcon?: VuetifyIconValue\n appendIcon?: VuetifyIconValue\n dataCy?: string\n hideLabel?: boolean\n rows?: number\n }>(),\n {\n label: undefined,\n errorMessage: undefined,\n required: undefined,\n v: null,\n prependIcon: undefined,\n appendIcon: undefined,\n dataCy: undefined,\n hideLabel: false,\n rows: 1,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: string | null): void\n (e: 'click:append', data: string | null): void\n (e: 'blur', data: string | null): void\n}>()\n\nconst system = inject<string | undefined>(SystemScopeSymbol, undefined)\nconst subject = inject<string | undefined>(SubjectScopeSymbol, undefined)\n\nconst onUpdate = (newValue: string) => {\n emit('update:modelValue', newValue)\n}\nconst onBlur = () => {\n emit('blur', props.modelValue)\n props.v?.$touch()\n}\n\nconst errorMessageComputed = computed(() => {\n if (!isUndefined(props.errorMessage)) return [props.errorMessage]\n if (props.v?.$errors?.length) return [props.v.$errors.map((item: ErrorObject) => item.$message).join(' ')]\n return []\n})\n\nconst labelComputed = computed(() => {\n if (!isUndefined(props.label)) return props.label\n if (isUndefined(system) || isUndefined(subject) || isUndefined(props.v?.$path)) return ''\n const { end: path } = stringSplitOnFirstOccurrence(props.v?.$path, '.')\n return t(system + '.' + subject + '.model.' + path)\n})\n\nconst requiredComputed = computed(() => {\n if (!isUndefined(props.required)) return props.required\n if (props.v?.required && props.v?.required.$params.type === 'required') return true\n return false\n})\n</script>\n\n<template>\n <VTextarea\n :prepend-icon=\"prependIcon\"\n :data-cy=\"dataCy\"\n :error-messages=\"errorMessageComputed\"\n :model-value=\"modelValue\"\n :required=\"requiredComputed\"\n :rows=\"rows\"\n auto-grow\n :append-icon=\"appendIcon\"\n trim\n @click:append=\"(event: any) => emit('click:append', event)\"\n @blur=\"onBlur\"\n @update:model-value=\"onUpdate($event)\"\n >\n <template\n v-if=\"!hideLabel\"\n #label\n >\n {{ labelComputed\n }}<span\n v-if=\"requiredComputed\"\n class=\"required\"\n />\n </template>\n </VTextarea>\n</template>\n","<script lang=\"ts\" setup>\nimport { provide } from 'vue'\nimport { SubjectScopeSymbol, SystemScopeSymbol } from '@/components/injectionKeys'\n\nconst props = withDefaults(\n defineProps<{\n system: string\n subject: string\n }>(),\n {}\n)\nprovide<string>(SystemScopeSymbol, props.system)\nprovide<string>(SubjectScopeSymbol, props.subject)\n</script>\n\n<template>\n <slot />\n</template>\n","<script lang=\"ts\" setup>\nimport { computed, watch } from 'vue'\nimport { cloneDeep, isNull } from '@/utils/common'\nimport type { Pagination } from '@/types/Pagination'\nimport { useI18n } from 'vue-i18n'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: Pagination\n itemsPerPageOptions?: number[]\n hideRecordsPerPage?: boolean\n }>(),\n {\n itemsPerPageOptions: () => [10, 25, 50],\n hideRecordsPerPage: false,\n }\n)\nconst emit = defineEmits<{\n (e: 'change'): void\n (e: 'update:modelValue', data: Pagination): void\n}>()\n\nconst modelValueComputed = computed({\n get() {\n return props.modelValue\n },\n set(newValue: Pagination) {\n emit('update:modelValue', cloneDeep(newValue))\n },\n})\n\nconst { t } = useI18n()\n\nconst lastPage = computed(() => {\n return Math.ceil(modelValueComputed.value.totalCount / modelValueComputed.value.rowsPerPage)\n})\n\nconst displayedFrom = computed(() => {\n return modelValueComputed.value.page * modelValueComputed.value.rowsPerPage - modelValueComputed.value.rowsPerPage + 1\n})\n\nconst displayedTo = computed(() => {\n return (\n modelValueComputed.value.page * modelValueComputed.value.rowsPerPage -\n modelValueComputed.value.rowsPerPage +\n modelValueComputed.value.currentViewCount\n )\n})\n\nconst disabledFirstAndPrev = computed(() => {\n return modelValueComputed.value.page === 1\n})\n\nconst disabledLast = computed(() => {\n return !isNull(modelValueComputed.value.hasNextPage) || modelValueComputed.value.page === lastPage.value\n})\n\nconst disabledNext = computed(() => {\n return (\n (isNull(modelValueComputed.value.hasNextPage) && modelValueComputed.value.page === lastPage.value) ||\n modelValueComputed.value.hasNextPage === false\n )\n})\n\nconst computedTotalCountText = computed(() => {\n if (!isNull(modelValueComputed.value.hasNextPage)) {\n return modelValueComputed.value.hasNextPage ? displayedTo.value + 1 + '+' : displayedTo.value\n }\n return modelValueComputed.value.totalCount\n})\n\nconst rowsPerPageComputed = computed(() => {\n return modelValueComputed.value.rowsPerPage\n})\nwatch(rowsPerPageComputed, (newValue, oldValue) => {\n if (newValue !== oldValue) {\n modelValueComputed.value.page = 1\n emit('change')\n }\n})\nconst pageComputed = computed(() => {\n return modelValueComputed.value.page\n})\nwatch(pageComputed, (newValue, oldValue) => {\n if (newValue !== oldValue) {\n emit('change')\n }\n})\n\nconst onClickFirst = () => {\n modelValueComputed.value.page = 1\n}\n\nconst onClickLast = () => {\n modelValueComputed.value.page = lastPage.value\n}\n\nconst onClickPrev = () => {\n modelValueComputed.value.page = modelValueComputed.value.page - 1\n}\n\nconst onClickNext = () => {\n modelValueComputed.value.page = modelValueComputed.value.page + 1\n}\n</script>\n\n<template>\n <div class=\"anzu-data-footer\">\n <div\n v-if=\"!hideRecordsPerPage\"\n class=\"anzu-data-footer__page-limit\"\n >\n {{ t('common.system.datatable.itemsPerPage') }}:\n <VBtnToggle\n v-model=\"modelValueComputed.rowsPerPage\"\n class=\"ml-2\"\n density=\"compact\"\n mandatory\n data-cy=\"table-size\"\n >\n <VBtn\n v-for=\"item in itemsPerPageOptions\"\n :key=\"item\"\n :color=\"item === modelValueComputed.rowsPerPage ? 'secondary' : ''\"\n :value=\"item\"\n density=\"compact\"\n size=\"small\"\n variant=\"text\"\n >\n {{ item }}\n </VBtn>\n </VBtnToggle>\n </div>\n <div class=\"anzu-data-footer__pagination\">\n {{ displayedFrom }} - {{ displayedTo }} {{ t('common.system.datatable.from') }} {{ computedTotalCountText }}\n </div>\n <div class=\"anzu-data-footer__icons-before\">\n <VBtn\n :disabled=\"disabledFirstAndPrev\"\n icon=\"mdi-page-first\"\n size=\"small\"\n variant=\"text\"\n @click.stop=\"onClickFirst\"\n />\n <VBtn\n :disabled=\"disabledFirstAndPrev\"\n icon=\"mdi-chevron-left\"\n size=\"small\"\n variant=\"text\"\n @click.stop=\"onClickPrev\"\n />\n </div>\n <div class=\"current-page\">\n <span>{{ modelValueComputed.page }}</span>\n </div>\n <div class=\"anzu-data-footer__icons-after\">\n <VBtn\n :disabled=\"disabledNext\"\n icon=\"mdi-chevron-right\"\n size=\"small\"\n variant=\"text\"\n @click.stop=\"onClickNext\"\n />\n <VBtn\n :disabled=\"disabledLast\"\n icon=\"mdi-page-last\"\n size=\"small\"\n variant=\"text\"\n @click.stop=\"onClickLast\"\n />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.anzu-data-footer {\n margin-top: 10px;\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n align-items: center;\n font-size: 0.75rem;\n padding: 0 8px;\n\n > div.current-page {\n padding-left: 10px;\n padding-right: 10px;\n user-select: none;\n min-width: 40px;\n display: flex;\n text-align: center;\n align-items: center;\n justify-content: center;\n }\n\n &__page-limit {\n display: flex;\n align-items: center;\n flex: 0 0 0;\n justify-content: flex-end;\n white-space: nowrap;\n margin-right: 14px;\n }\n\n &__pagination {\n display: block;\n text-align: center;\n margin: 0 32px 0 24px;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport type { ColumnInternalValues } from '@/composables/system/datatableColumns'\nimport { cloneDeep } from '@/utils/common'\n\nconst props = withDefaults(\n defineProps<{\n columnsAll: ColumnInternalValues[]\n columnsHidden: Array<string>\n buttonT?: string\n buttonClass?: string\n dataCy?: string\n }>(),\n {\n buttonT: 'common.system.datatable.config',\n buttonClass: 'ml-1',\n dataCy: 'table-settings',\n }\n)\nconst emit = defineEmits<{\n (e: 'update:columnsHidden', data: Array<string>): void\n}>()\n\nconst { t } = useI18n()\n\nconst isVisible = (key: string) => {\n return !props.columnsHidden.includes(key)\n}\n\nconst toggleVisibility = (key: string) => {\n const cloned = cloneDeep(props.columnsHidden)\n const index = cloned.indexOf(key)\n if (index > -1) {\n cloned.splice(index, 1)\n emit('update:columnsHidden', cloned)\n return\n }\n cloned.push(key)\n emit('update:columnsHidden', cloned)\n}\n</script>\n\n<template>\n <VBtn\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n color=\"light\"\n icon\n size=\"x-small\"\n variant=\"text\"\n >\n <VIcon icon=\"mdi-cog\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t(buttonT) }}\n </VTooltip>\n <VMenu activator=\"parent\">\n <VCard>\n <VList density=\"compact\">\n <VListItem>\n <VListItemTitle>\n <strong>{{ t('common.system.datatable.displayCols') }}</strong>\n </VListItemTitle>\n </VListItem>\n <VListItem\n v-for=\"column in columnsAll\"\n :key=\"column.key\"\n @click.stop=\"toggleVisibility(column.key)\"\n >\n <VListItemTitle>\n <VIcon\n v-if=\"isVisible(column.key)\"\n class=\"mr-2\"\n icon=\"mdi-checkbox-marked\"\n />\n <VIcon\n v-else\n class=\"mr-2\"\n icon=\"mdi-checkbox-blank-outline\"\n />\n {{ column.title }}\n </VListItemTitle>\n </VListItem>\n </VList>\n </VCard>\n </VMenu>\n </VBtn>\n</template>\n","<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport type { DatatableOrderingOption, DatatableOrderingOptions } from '@/composables/system/datatableColumns'\nimport { isUndefined } from '@/utils/common'\n\nconst props = withDefaults(\n defineProps<{\n variant?: 'default' | 'most-relevant'\n modelValue?: number\n customOptions?: undefined | DatatableOrderingOptions\n }>(),\n {\n variant: 'default',\n modelValue: 1,\n customOptions: undefined,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: number): void\n (e: 'sortByChange', data: DatatableOrderingOption): void\n}>()\n\nconst { t } = useI18n()\n\nconst active = ref(props.modelValue)\n\nconst modelValueComputed = computed({\n get() {\n return props.modelValue\n },\n set(newValue: number) {\n active.value = newValue\n emit('update:modelValue', newValue)\n },\n})\n\nconst defaultItems: DatatableOrderingOptions = [\n { id: 1, titleT: 'common.system.datatable.ordering.mostRecent', sortBy: { key: 'createdAt', order: 'desc' } },\n { id: 2, titleT: 'common.system.datatable.ordering.oldest', sortBy: { key: 'createdAt', order: 'asc' } },\n]\n\nconst defaultItemsMostRelevant: DatatableOrderingOptions = [\n { id: 3, titleT: 'common.system.datatable.ordering.mostRelevant' },\n { id: 1, titleT: 'common.system.datatable.ordering.mostRecent', sortBy: { key: 'createdAt', order: 'desc' } },\n { id: 2, titleT: 'common.system.datatable.ordering.oldest', sortBy: { key: 'createdAt', order: 'asc' } },\n]\n\nconst activeTitle = computed(() => {\n const found = options.value.find((item: any) => item.id === active.value)\n if (found) return t(found.titleT)\n return ''\n})\n\nconst options = computed(() => {\n if (props.customOptions) return props.customOptions\n if (props.variant === 'most-relevant') return defaultItemsMostRelevant\n return defaultItems\n})\n\nconst onItemClick = (item: DatatableOrderingOption) => {\n modelValueComputed.value = item.id\n}\n\nwatch(\n active,\n (newValue, oldValue) => {\n if (isUndefined(oldValue) || newValue === oldValue) return\n const found = options.value.find((item: any) => item.id === newValue)\n if (found) emit('sortByChange', found)\n },\n { immediate: true }\n)\n\nwatch(\n modelValueComputed,\n (newValue, oldValue) => {\n if (isUndefined(oldValue) || newValue === oldValue) return\n active.value = newValue\n },\n { immediate: true }\n)\n</script>\n\n<template>\n <div class=\"d-flex align-center justify-center\">\n <div class=\"text-caption mr-1\">\n {{ t('common.system.datatable.ordering.title') }}:\n </div>\n <VBtn\n variant=\"text\"\n rounded=\"xl\"\n size=\"small\"\n append-icon=\"mdi-chevron-down\"\n >\n {{ activeTitle }}\n <VMenu\n activator=\"parent\"\n location=\"bottom\"\n close-on-content-click\n >\n <VList\n density=\"compact\"\n class=\"pa-0\"\n >\n <VListItem\n v-for=\"item in options\"\n :key=\"item.id\"\n @click=\"onItemClick(item)\"\n >\n <VListItemTitle :class=\"{ 'font-weight-bold': item.id === active }\">\n {{ t(item.titleT) }}\n </VListItemTitle>\n </VListItem>\n </VList>\n </VMenu>\n </VBtn>\n </div>\n</template>\n","<script setup lang=\"ts\">\nconst emit = defineEmits<{\n (e: 'onCancel'): void\n}>()\n\nconst onCancel = () => {\n emit('onCancel')\n}\n</script>\n\n<template>\n <VToolbar\n density=\"compact\"\n color=\"transparent\"\n >\n <VToolbarTitle class=\"flex-fill\">\n <slot />\n </VToolbarTitle>\n <VSpacer />\n <VBtn\n class=\"ml-2\"\n icon=\"mdi-close\"\n size=\"small\"\n variant=\"text\"\n data-cy=\"button-close\"\n @click.stop=\"onCancel\"\n />\n </VToolbar>\n</template>\n","<script lang=\"ts\" setup>\nimport { computed, watch } from 'vue'\n\nconst props = withDefaults(\n defineProps<{\n data: any\n }>(),\n {}\n)\n\nconst computedData = computed(() => {\n return props.data\n})\n\nwatch(\n computedData,\n (newValue) => {\n console.log(newValue)\n },\n { immediate: true }\n)\n</script>\n\n<template>\n <div />\n</template>\n","import { defineComponent as y, openBlock as a, createBlock as g, TransitionGroup as x, withCtx as $, renderSlot as T, createElementBlock as p, normalizeStyle as b, resolveDynamicComponent as k, Fragment as _, renderList as B, normalizeClass as D, createElementVNode as N, createCommentVNode as H } from \"vue\";\nfunction M(t) {\n return { all: t = t || /* @__PURE__ */ new Map(), on: function(e, i) {\n var s = t.get(e);\n s ? s.push(i) : t.set(e, [i]);\n }, off: function(e, i) {\n var s = t.get(e);\n s && (i ? s.splice(s.indexOf(i) >>> 0, 1) : t.set(e, []));\n }, emit: function(e, i) {\n var s = t.get(e);\n s && s.slice().map(function(n) {\n n(i);\n }), (s = t.get(\"*\")) && s.slice().map(function(n) {\n n(e, i);\n });\n } };\n}\nconst d = M(), C = /* @__PURE__ */ new Map(), w = {\n x: [\"left\", \"center\", \"right\"],\n y: [\"top\", \"bottom\"]\n}, R = ((t) => () => t++)(0), V = (t) => typeof t != \"string\" ? [] : t.split(/\\s+/gi).filter((e) => e), W = (t) => {\n typeof t == \"string\" && (t = V(t));\n let e = null, i = null;\n return t.forEach((s) => {\n w.y.indexOf(s) !== -1 && (i = s), w.x.indexOf(s) !== -1 && (e = s);\n }), { x: e, y: i };\n};\nclass Y {\n constructor(e, i, s) {\n this.remaining = i, this.callback = e, this.notifyItem = s, this.resume();\n }\n pause() {\n clearTimeout(this.notifyItem.timer), this.remaining -= Date.now() - this.start;\n }\n resume() {\n this.start = Date.now(), clearTimeout(this.notifyItem.timer), this.notifyItem.timer = setTimeout(this.callback, this.remaining);\n }\n}\nconst m = {\n position: [\"top\", \"right\"],\n cssAnimation: \"vn-fade\",\n velocityAnimation: {\n enter: (t) => ({\n height: [t.clientHeight, 0],\n opacity: [1, 0]\n }),\n leave: {\n height: 0,\n opacity: [0, 1]\n }\n }\n}, j = y({\n name: \"velocity-group\",\n emits: [\"after-leave\", \"leave\", \"enter\"],\n methods: {\n enter(t, e) {\n this.$emit(\"enter\", t, e);\n },\n leave(t, e) {\n this.$emit(\"leave\", t, e);\n },\n afterLeave() {\n this.$emit(\"after-leave\");\n }\n }\n}), v = (t, e) => {\n const i = t.__vccOpts || t;\n for (const [s, n] of e)\n i[s] = n;\n return i;\n};\nfunction G(t, e, i, s, n, c) {\n return a(), g(x, {\n tag: \"span\",\n css: !1,\n onEnter: t.enter,\n onLeave: t.leave,\n onAfterLeave: t.afterLeave\n }, {\n default: $(() => [\n T(t.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"onEnter\", \"onLeave\", \"onAfterLeave\"]);\n}\nconst z = /* @__PURE__ */ v(j, [[\"render\", G]]), F = y({\n name: \"css-group\",\n inheritAttrs: !1,\n props: {\n name: { type: String, required: !0 }\n }\n});\nfunction P(t, e, i, s, n, c) {\n return a(), g(x, {\n tag: \"span\",\n name: t.name\n }, {\n default: $(() => [\n T(t.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"name\"]);\n}\nconst q = /* @__PURE__ */ v(F, [[\"render\", P]]), h = \"[-+]?[0-9]*.?[0-9]+\", L = [\n {\n name: \"px\",\n regexp: new RegExp(`^${h}px$`)\n },\n {\n name: \"%\",\n regexp: new RegExp(`^${h}%$`)\n },\n /**\n * Fallback option\n * If no suffix specified, assigning \"px\"\n */\n {\n name: \"px\",\n regexp: new RegExp(`^${h}$`)\n }\n], J = (t) => {\n if (t === \"auto\")\n return {\n type: t,\n value: 0\n };\n for (let e = 0; e < L.length; e++) {\n const i = L[e];\n if (i.regexp.test(t))\n return {\n type: i.name,\n value: parseFloat(t)\n };\n }\n return {\n type: \"\",\n value: t\n };\n}, K = (t) => {\n switch (typeof t) {\n case \"number\":\n return { type: \"px\", value: t };\n case \"string\":\n return J(t);\n default:\n return { type: \"\", value: t };\n }\n}, f = {\n IDLE: 0,\n DESTROYED: 2\n}, Q = y({\n name: \"notifications\",\n components: {\n VelocityGroup: z,\n CssGroup: q\n },\n props: {\n group: {\n type: String,\n default: \"\"\n },\n width: {\n type: [Number, String],\n default: 300\n },\n reverse: {\n type: Boolean,\n default: !1\n },\n position: {\n type: [String, Array],\n default: m.position\n },\n classes: {\n type: String,\n default: \"vue-notification\"\n },\n animationType: {\n type: String,\n default: \"css\"\n },\n animation: {\n type: Object,\n default: m.velocityAnimation\n },\n animationName: {\n type: String,\n default: m.cssAnimation\n },\n speed: {\n type: Number,\n default: 300\n },\n /* Todo */\n cooldown: {\n type: Number,\n default: 0\n },\n duration: {\n type: Number,\n default: 3e3\n },\n delay: {\n type: Number,\n default: 0\n },\n max: {\n type: Number,\n default: 1 / 0\n },\n ignoreDuplicates: {\n type: Boolean,\n default: !1\n },\n closeOnClick: {\n type: Boolean,\n default: !0\n },\n pauseOnHover: {\n type: Boolean,\n default: !1\n }\n },\n emits: [\"click\", \"destroy\", \"start\"],\n data() {\n return {\n list: [],\n velocity: C.get(\"velocity\"),\n timerControl: null\n };\n },\n computed: {\n actualWidth() {\n return K(this.width);\n },\n isVA() {\n return this.animationType === \"velocity\";\n },\n componentName() {\n return this.isVA ? \"velocity-group\" : \"css-group\";\n },\n styles() {\n const { x: t, y: e } = W(this.position), i = this.actualWidth.value, s = this.actualWidth.type, n = {\n width: i + s\n };\n return e && (n[e] = \"0px\"), t && (t === \"center\" ? n.left = `calc(50% - ${+i / 2}${s})` : n[t] = \"0px\"), n;\n },\n active() {\n return this.list.filter((t) => t.state !== f.DESTROYED);\n },\n botToTop() {\n return this.styles.hasOwnProperty(\"bottom\");\n }\n },\n mounted() {\n d.on(\"add\", this.addItem), d.on(\"close\", this.closeItem);\n },\n methods: {\n destroyIfNecessary(t) {\n this.$emit(\"click\", t), this.closeOnClick && this.destroy(t);\n },\n pauseTimeout() {\n var t;\n this.pauseOnHover && ((t = this.timerControl) == null || t.pause());\n },\n resumeTimeout() {\n var t;\n this.pauseOnHover && ((t = this.timerControl) == null || t.resume());\n },\n addItem(t = {}) {\n if (t.group || (t.group = \"\"), t.data || (t.data = {}), this.group !== t.group)\n return;\n if (t.clean || t.clear) {\n this.destroyAll();\n return;\n }\n const e = typeof t.duration == \"number\" ? t.duration : this.duration, i = typeof t.speed == \"number\" ? t.speed : this.speed, s = typeof t.ignoreDuplicates == \"boolean\" ? t.ignoreDuplicates : this.ignoreDuplicates, { title: n, text: c, type: o, data: l, id: I } = t, r = {\n id: I || R(),\n title: n,\n text: c,\n type: o,\n state: f.IDLE,\n speed: i,\n length: e + 2 * i,\n data: l\n };\n e >= 0 && (this.timerControl = new Y(() => this.destroy(r), r.length, r));\n const O = this.reverse ? !this.botToTop : this.botToTop;\n let u = -1;\n const S = this.active.some((E) => E.title === t.title && E.text === t.text);\n (!s || !S) && (O ? (this.list.push(r), this.$emit(\"start\", r), this.active.length > this.max && (u = 0)) : (this.list.unshift(r), this.$emit(\"start\", r), this.active.length > this.max && (u = this.active.length - 1)), u !== -1 && this.destroy(this.active[u]));\n },\n closeItem(t) {\n this.destroyById(t);\n },\n notifyClass(t) {\n return [\n \"vue-notification-template\",\n this.classes,\n t.type || \"\"\n ];\n },\n notifyWrapperStyle(t) {\n return this.isVA ? void 0 : { transition: `all ${t.speed}ms` };\n },\n destroy(t) {\n clearTimeout(t.timer), t.state = f.DESTROYED, this.clean(), this.$emit(\"destroy\", t);\n },\n destroyById(t) {\n const e = this.list.find((i) => i.id === t);\n e && this.destroy(e);\n },\n destroyAll() {\n this.active.forEach(this.destroy);\n },\n getAnimation(t, e) {\n var s;\n const i = (s = this.animation) == null ? void 0 : s[t];\n return typeof i == \"function\" ? i.call(this, e) : i;\n },\n enter(t, e) {\n if (!this.isVA)\n return;\n const i = this.getAnimation(\"enter\", t);\n this.velocity(t, i, {\n duration: this.speed,\n complete: e\n });\n },\n leave(t, e) {\n if (!this.isVA)\n return;\n const i = this.getAnimation(\"leave\", t);\n this.velocity(t, i, {\n duration: this.speed,\n complete: e\n });\n },\n clean() {\n this.list = this.list.filter((t) => t.state !== f.DESTROYED);\n }\n }\n});\nconst U = [\"data-id\"], X = [\"onClick\"], Z = [\"innerHTML\"], tt = [\"innerHTML\"];\nfunction et(t, e, i, s, n, c) {\n return a(), p(\"div\", {\n class: \"vue-notification-group\",\n style: b(t.styles)\n }, [\n (a(), g(k(t.componentName), {\n name: t.animationName,\n onEnter: t.enter,\n onLeave: t.leave,\n onAfterLeave: t.clean\n }, {\n default: $(() => [\n (a(!0), p(_, null, B(t.active, (o) => (a(), p(\"div\", {\n key: o.id,\n class: \"vue-notification-wrapper\",\n style: b(t.notifyWrapperStyle(o)),\n \"data-id\": o.id,\n onMouseenter: e[0] || (e[0] = (...l) => t.pauseTimeout && t.pauseTimeout(...l)),\n onMouseleave: e[1] || (e[1] = (...l) => t.resumeTimeout && t.resumeTimeout(...l))\n }, [\n T(t.$slots, \"body\", {\n class: D([t.classes, o.type]),\n item: o,\n close: () => t.destroy(o)\n }, () => [\n N(\"div\", {\n class: D(t.notifyClass(o)),\n onClick: (l) => t.destroyIfNecessary(o)\n }, [\n o.title ? (a(), p(\"div\", {\n key: 0,\n class: \"notification-title\",\n innerHTML: o.title\n }, null, 8, Z)) : H(\"\", !0),\n N(\"div\", {\n class: \"notification-content\",\n innerHTML: o.text\n }, null, 8, tt)\n ], 10, X)\n ])\n ], 44, U))), 128))\n ]),\n _: 3\n }, 40, [\"name\", \"onEnter\", \"onLeave\", \"onAfterLeave\"]))\n ], 4);\n}\nconst it = /* @__PURE__ */ v(Q, [[\"render\", et]]), A = (t) => {\n typeof t == \"string\" && (t = { title: \"\", text: t }), typeof t == \"object\" && d.emit(\"add\", t);\n};\nA.close = (t) => {\n d.emit(\"close\", t);\n};\nconst rt = () => ({ notify: A });\nfunction st(t, e = {}) {\n Object.entries(e).forEach((s) => C.set(...s));\n const i = e.name || \"notify\";\n t.config.globalProperties[\"$\" + i] = A, t.component(e.componentName || \"Notifications\", it);\n}\nconst at = {\n install: st\n};\nexport {\n at as default,\n A as notify,\n rt as useNotification\n};\n(function(){var o;\"use strict\";try{if(typeof document!=\"undefined\"){var e=document.createElement(\"style\");e.nonce=(o=document.head.querySelector(\"meta[property=csp-nonce]\"))==null?void 0:o.content,e.appendChild(document.createTextNode(\".vue-notification-group{display:block;position:fixed;z-index:5000}.vue-notification-wrapper{display:block;overflow:hidden;width:100%;margin:0;padding:0}.notification-title{font-weight:600}.vue-notification-template{display:block;box-sizing:border-box;background:white;text-align:left}.vue-notification{display:block;box-sizing:border-box;text-align:left;font-size:12px;padding:10px;margin:0 5px 5px;color:#fff;background:#44A4FC;border-left:5px solid #187FE7}.vue-notification.warn{background:#ffb648;border-left-color:#f48a06}.vue-notification.error{background:#E54D42;border-left-color:#b82e24}.vue-notification.success{background:#68CD86;border-left-color:#42a85f}.vn-fade-enter-active,.vn-fade-leave-active,.vn-fade-move{transition:all .5s}.vn-fade-enter-from,.vn-fade-leave-to{opacity:0}\")),document.head.appendChild(e)}}catch(i){console.error(\"vite-plugin-css-injected-by-js\",i)}})();\n","import type { Locale, Path } from 'vue-i18n'\nimport { createI18n } from 'vue-i18n'\nimport type en from '@/locales/en'\n\nexport type MessageSchema = typeof en\n\nconst REQUIRED_LOCALES = ['en', 'sk']\n\nexport const i18n = createI18n<[MessageSchema]>({\n globalInjection: false,\n legacy: false,\n locale: REQUIRED_LOCALES[0],\n fallbackLocale: false,\n missing: (locale: Locale, key: Path) => {\n if (REQUIRED_LOCALES.includes(locale)) {\n console.warn(`Missing ${locale} translation: ${key}`)\n }\n },\n})\n","export const isAnzuFatalError = (error: any): error is AnzuFatalError => {\n return error instanceof AnzuFatalError\n}\n\nexport class AnzuFatalError extends Error {\n constructor(cause?: Error, message = '') {\n super(message)\n this.name = 'AnzuFatalError'\n this.cause = cause\n this.message = message\n }\n}\n","export const HTTP_STATUS_OK = 200\nexport const HTTP_STATUS_CREATED = 201\nexport const HTTP_STATUS_NO_CONTENT = 204\nexport const HTTP_STATUS_BAD_REQUEST = 400\nexport const HTTP_STATUS_UNAUTHORIZED = 401\nexport const HTTP_STATUS_FORBIDDEN = 403\nexport const HTTP_STATUS_UNPROCESSABLE_ENTITY = 422\n\nexport const HTTP_STATUS_VALID_ALL = [HTTP_STATUS_OK, HTTP_STATUS_CREATED, HTTP_STATUS_NO_CONTENT]\n","import axios from 'axios'\nimport { HTTP_STATUS_FORBIDDEN } from '@/composables/statusCodes'\n\nexport const axiosErrorResponseIsForbidden = (error: Error) => {\n return axios.isAxiosError(error) && error.response?.status === HTTP_STATUS_FORBIDDEN\n}\n\nexport const isAnzuApiForbiddenError = (error: any): error is AnzuApiForbiddenError => {\n return error instanceof AnzuApiForbiddenError\n}\n\nexport class AnzuApiForbiddenError extends Error {\n constructor(cause?: Error, message = '') {\n super(message)\n this.name = 'AnzuApiForbiddenError'\n this.cause = cause\n this.message = message\n }\n}\n","import axios, { type AxiosError } from 'axios'\nimport { HTTP_STATUS_UNPROCESSABLE_ENTITY } from '@/composables/statusCodes'\n\ninterface ValidationResponseDataFields {\n [key: string]: string[]\n}\n\nexport interface AnzuApiValidationResponseData {\n contextId: string\n error: string\n fields: ValidationResponseDataFields\n}\n\nexport interface ValidationError {\n field: string\n errors: string[]\n}\n\nconst ERROR_VALIDATION = 'validation_failed'\n\nexport const axiosErrorResponseHasValidationData = (error: Error) => {\n return (\n axios.isAxiosError(error) &&\n error.response?.status === HTTP_STATUS_UNPROCESSABLE_ENTITY &&\n error.response.data?.error === ERROR_VALIDATION &&\n error.response.data?.fields\n )\n}\n\nexport const isAnzuApiValidationError = (error: any): error is AnzuApiValidationError => {\n return error instanceof AnzuApiValidationError\n}\n\nfunction resolveResponseData(axiosError: AxiosError, system: string, entity: string) {\n const data = axiosError.response?.data as AnzuApiValidationResponseData\n const items = [] as ValidationError[]\n for (const [key, values] of Object.entries(data.fields)) {\n items.push({\n field: system + '.' + entity + '.model.' + key,\n errors: values,\n })\n }\n return items\n}\n\nexport class AnzuApiValidationError extends Error {\n fields: ValidationError[]\n\n constructor(axiosError: AxiosError, system: string, entity: string, cause?: Error, message = '') {\n super(message)\n this.name = 'AnzuApiValidationError'\n this.cause = cause\n this.message = message\n this.fields = resolveResponseData(axiosError, system, entity)\n }\n}\n","export const isAnzuApiResponseCodeError = (error: any): error is AnzuApiResponseCodeError => {\n return error instanceof AnzuApiResponseCodeError\n}\n\nexport class AnzuApiResponseCodeError extends Error {\n code: number\n\n constructor(code: number, cause?: Error, message?: string) {\n super(message)\n this.name = 'AnzuApiResponseCodeError'\n this.cause = cause\n this.code = code\n }\n}\n","import axios, { type AxiosError } from 'axios'\nimport { HTTP_STATUS_UNPROCESSABLE_ENTITY } from '@/composables/statusCodes'\n\ninterface ForbiddenOperationResponseData {\n contextId: string\n error: string\n detail: string\n}\n\nconst ERROR_FORBIDDEN_OPERATION = 'forbidden_operation_error'\n\nexport const axiosErrorResponseHasForbiddenOperationData = (error: Error) => {\n return (\n axios.isAxiosError(error) &&\n error.response?.status === HTTP_STATUS_UNPROCESSABLE_ENTITY &&\n error.response.data?.error === ERROR_FORBIDDEN_OPERATION &&\n error.response.data?.detail\n )\n}\n\nexport const isAnzuApiForbiddenOperationError = (error: any): error is AnzuApiForbiddenOperationError => {\n return error instanceof AnzuApiForbiddenOperationError\n}\n\nfunction resolveResponseData(axiosError: AxiosError) {\n const data = axiosError.response?.data as ForbiddenOperationResponseData\n return data.detail\n}\n\nexport class AnzuApiForbiddenOperationError extends Error {\n detail: string\n\n constructor(axiosError: AxiosError, cause?: Error, message = '') {\n super(message)\n this.name = 'AnzuApiForbiddenOperationError'\n this.cause = cause\n this.message = message\n this.detail = resolveResponseData(axiosError)\n }\n}\n","import { notify } from '@kyvg/vue3-notification'\nimport { i18n } from '@/plugins/i18n'\nimport { isAnzuFatalError } from '@/model/error/AnzuFatalError'\nimport { isAnzuApiForbiddenError } from '@/model/error/AnzuApiForbiddenError'\nimport { isAnzuApiValidationError, type ValidationError } from '@/model/error/AnzuApiValidationError'\nimport { isAnzuApiResponseCodeError } from '@/model/error/AnzuApiResponseCodeError'\nimport { isAnzuApiForbiddenOperationError } from '@/model/error/AnzuApiForbiddenOperationError'\n\nconst DEFAULT_DURATION_SECONDS = 3\n\nexport const NEW_LINE_MARK = '\\n'\n\nexport type RecordWasType = 'created' | 'deleted' | 'updated' | 'published' | 'unpublished' | 'enabled' | 'disabled'\n\nexport function useAlerts() {\n const showSuccess = (message: string, duration = DEFAULT_DURATION_SECONDS) => {\n notify({\n group: 'alerts',\n text: message,\n duration: duration * 1000,\n type: 'success',\n })\n }\n\n const showSuccessT = (translation: string, duration = DEFAULT_DURATION_SECONDS) => {\n const { t } = i18n.global\n showSuccess(t(translation), duration)\n }\n\n const showError = (message: string, duration = DEFAULT_DURATION_SECONDS) => {\n notify({\n group: 'alerts',\n text: message,\n duration: duration * 1000,\n type: 'error',\n })\n }\n\n const showErrorT = (translation: string, duration = DEFAULT_DURATION_SECONDS) => {\n const { t } = i18n.global\n showError(t(translation), duration)\n }\n\n const showInfo = (message: string, duration = DEFAULT_DURATION_SECONDS) => {\n notify({\n group: 'alerts',\n text: message,\n duration: duration * 1000,\n type: 'info',\n })\n }\n\n const showInfoT = (translation: string, duration = DEFAULT_DURATION_SECONDS) => {\n const { t } = i18n.global\n showInfo(t(translation), duration)\n }\n\n const showWarning = (message: string, duration = DEFAULT_DURATION_SECONDS) => {\n notify({\n group: 'alerts',\n text: message,\n duration: duration * 1000,\n type: 'warning',\n })\n }\n\n const showWarningT = (translation: string, duration = DEFAULT_DURATION_SECONDS) => {\n const { t } = i18n.global\n showWarning(t(translation), duration)\n }\n\n const showValidationError = (duration = DEFAULT_DURATION_SECONDS) => {\n const { t } = i18n.global\n notify({\n group: 'alerts',\n text: t('common.alert.fixValidationErrors'),\n duration: duration * 1000,\n type: 'error',\n })\n }\n\n const showRecordWas = (variant: RecordWasType, duration = DEFAULT_DURATION_SECONDS) => {\n const { t } = i18n.global\n notify({\n group: 'alerts',\n text: t('common.alert.recordWas.' + variant),\n duration: duration * 1000,\n type: 'success',\n })\n }\n\n const showApiValidationError = (errors: ValidationError[], duration = -1, fieldIsTranslated = false) => {\n const { t, te } = i18n.global\n const texts = [t('common.alert.fixApiValidationErrors')]\n\n for (let i = 0; i < errors.length; i++) {\n let fieldText = ''\n if (fieldIsTranslated) {\n fieldText += errors[i].field\n } else if (te(errors[i].field)) {\n fieldText += t(errors[i].field)\n }\n const errorsTexts = new Set<string>()\n for (let j = 0; j < errors[i].errors.length; j++) {\n if (te('error.apiValidation.' + errors[i].errors[j])) {\n errorsTexts.add(t('error.apiValidation.' + errors[i].errors[j]))\n continue\n }\n errorsTexts.add(t('error.apiValidation.noTranslation'))\n }\n if (fieldText.length > 0) {\n texts.push(fieldText + ': ' + Array.from(errorsTexts).join(', '))\n }\n }\n notify({\n group: 'alerts',\n text: texts.join(NEW_LINE_MARK),\n duration: duration * 1000,\n type: 'error',\n })\n }\n\n const showApiForbiddenOperationError = (detail: string, duration = -1) => {\n const { t, te } = i18n.global\n let text = t('error.apiForbiddenOperation.noTranslation')\n if (te('error.apiForbiddenOperation.' + detail)) {\n text = t('error.apiForbiddenOperation.' + detail)\n }\n notify({\n group: 'alerts',\n text: text,\n duration: duration * 1000,\n type: 'error',\n })\n }\n\n const showUnknownError = (duration = -1) => {\n const { t } = i18n.global\n notify({\n group: 'alerts',\n text: t('common.alert.unknownError'),\n duration: duration * 1000,\n type: 'error',\n })\n }\n\n const showForbiddenError = (duration = DEFAULT_DURATION_SECONDS) => {\n const { t } = i18n.global\n notify({\n group: 'alerts',\n text: t('common.alert.forbiddenError'),\n duration: duration * 1000,\n type: 'error',\n })\n }\n\n const showErrorsDefault = (error: any) => {\n if (isAnzuApiForbiddenError(error)) {\n showForbiddenError()\n return true\n }\n if (isAnzuApiValidationError(error)) {\n showApiValidationError(error.fields)\n return true\n }\n if (isAnzuApiForbiddenOperationError(error)) {\n showApiForbiddenOperationError(error.detail)\n return true\n }\n if (isAnzuFatalError(error)) {\n showUnknownError()\n return true\n }\n if (isAnzuApiResponseCodeError(error)) {\n showUnknownError()\n return true\n }\n return false\n }\n\n return {\n showSuccess,\n showSuccessT,\n showError,\n showErrorT,\n showInfo,\n showInfoT,\n showWarning,\n showWarningT,\n showValidationError,\n showRecordWas,\n showApiValidationError,\n showApiForbiddenOperationError,\n showUnknownError,\n showForbiddenError,\n showErrorsDefault,\n }\n}\n","<script lang=\"ts\" setup>\nimport ADialogToolbar from '@/components/ADialogToolbar.vue'\nimport { ref } from 'vue'\nimport { useRouter } from 'vue-router'\nimport { useI18n } from 'vue-i18n'\nimport { useAlerts } from '@/composables/system/alerts'\nimport { isUndefined } from '@/utils/common'\n\nconst { t } = useI18n()\n\nconst props = withDefaults(\n defineProps<{\n modelValue: boolean\n buttonClass?: string\n maxWidth?: number | undefined\n dataCy?: string\n v?: any\n callCreate: () => Promise<any>\n disableRedirect?: boolean\n redirectRouteName?: string | undefined\n redirectParamName?: string\n }>(),\n {\n buttonClass: '',\n maxWidth: undefined,\n dataCy: 'button-create',\n v: undefined,\n disableRedirect: false,\n redirectRouteName: undefined,\n redirectParamName: 'id',\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: boolean): void\n (e: 'onConfirm'): void\n (e: 'onOpen'): void\n (e: 'onClose'): void\n (e: 'onError', data: any): void\n (e: 'onSuccess', data: any): void\n}>()\n\nconst buttonLoading = ref(false)\n\nconst onOpen = () => {\n emit('update:modelValue', true)\n emit('onOpen')\n}\n\nconst onClose = () => {\n emit('update:modelValue', false)\n emit('onClose')\n}\n\nconst router = useRouter()\nconst { showValidationError, showRecordWas, showErrorsDefault } = useAlerts()\n\nconst onConfirm = async () => {\n emit('onConfirm')\n try {\n buttonLoading.value = true\n props.v?.$touch()\n if (!isUndefined(props.v) && props.v.$invalid) {\n showValidationError()\n buttonLoading.value = false\n return\n }\n const res = await props.callCreate()\n emit('onSuccess', res)\n showRecordWas('created')\n onClose()\n if (!isUndefined(res.id) && !props.disableRedirect && props.redirectRouteName) {\n router.push({\n name: props.redirectRouteName,\n params: { [props.redirectParamName]: res[props.redirectParamName] },\n })\n }\n } catch (error) {\n showErrorsDefault(error)\n emit('onError', error)\n } finally {\n buttonLoading.value = false\n }\n}\n</script>\n\n<template>\n <ABtnPrimary\n :class=\"buttonClass\"\n rounded=\"pill\"\n :data-cy=\"dataCy\"\n @click.stop=\"onOpen\"\n >\n <slot name=\"button-title\">\n {{ t('common.button.create') }}\n </slot>\n <VDialog\n :model-value=\"modelValue\"\n :max-width=\"maxWidth\"\n persistent\n @update:model-value=\"emit('update:modelValue', $event)\"\n >\n <VCard\n v-if=\"modelValue\"\n data-cy=\"create-panel\"\n >\n <ADialogToolbar @on-cancel=\"onClose\">\n <slot name=\"title\">\n {{ t('common.button.create') }}\n </slot>\n </ADialogToolbar>\n <VCardText>\n <slot name=\"content\" />\n </VCardText>\n <VCardActions>\n <VSpacer />\n <ABtnTertiary\n data-cy=\"button-cancel\"\n @click.stop=\"onClose\"\n >\n {{ t('common.button.cancel') }}\n </ABtnTertiary>\n <ABtnPrimary\n :loading=\"buttonLoading\"\n data-cy=\"button-confirm\"\n @click.stop=\"onConfirm\"\n >\n <slot name=\"button-confirm-title\">\n {{ t('common.button.create') }}\n </slot>\n </ABtnPrimary>\n </VCardActions>\n </VCard>\n </VDialog>\n </ABtnPrimary>\n</template>\n","<script lang=\"ts\" setup>\nimport { onMounted, ref } from 'vue'\nimport { useFetch } from '@vueuse/core'\nimport { useI18n } from 'vue-i18n'\n\nconst props = withDefaults(\n defineProps<{\n configUrl?: string | undefined | null\n }>(),\n {\n configUrl: null,\n }\n)\n\nconst { t } = useI18n()\n\ninterface AdminConfigItem {\n id: string\n title: string\n url: string\n icon: string\n}\n\nconst config = ref<AdminConfigItem[]>([])\n\nonMounted(async () => {\n if (props.configUrl && props.configUrl.length > 0) {\n try {\n const { data } = await useFetch<AdminConfigItem[]>(props.configUrl).get().json()\n config.value = data.value\n } catch (e) {\n //\n }\n }\n})\n</script>\n\n<template>\n <VBtn\n v-if=\"config.length > 0\"\n variant=\"text\"\n size=\"small\"\n icon\n >\n <VIcon icon=\"mdi-dots-grid\" />\n <VTooltip\n activator=\"parent\"\n location=\"top\"\n >\n {{ t('common.system.adminSwitcher.button') }}\n </VTooltip>\n <VMenu activator=\"parent\">\n <VCard>\n <div class=\"a-admin-switcher__content\">\n <a\n v-for=\"item in config\"\n :key=\"item.id\"\n :href=\"item.url\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n class=\"a-admin-switcher__item\"\n >\n <img\n :src=\"item.icon\"\n :alt=\"item.title\"\n >\n <span class=\"a-admin-switcher__item-title\">{{ item.title }}</span>\n </a>\n </div>\n </VCard>\n </VMenu>\n </VBtn>\n</template>\n\n<style lang=\"scss\">\n.a-admin-switcher {\n &__content {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n grid-template-rows: auto;\n padding: 6px;\n }\n\n &__item {\n display: flex;\n width: 96px;\n height: 96px;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n text-decoration: none;\n color: rgba(var(--v-theme-on-surface), var(--v-hover-opacity));\n\n &:hover {\n background-color: rgba(var(--v-theme-on-surface), 10%);\n border-radius: 8px;\n }\n\n &-title {\n display: flex;\n font-weight: normal;\n font-size: 14px;\n line-height: 14px;\n color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity));\n padding: 8px 0;\n }\n\n img {\n display: block;\n width: auto;\n height: 50px;\n }\n }\n}\n</style>\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=function(t){return t instanceof b},S=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new b(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var b=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<w(t)},m.$g=function(t,e,n){return O.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!O.u(e)||e,f=O.p(t),l=function(t,e){var i=O.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return O.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=O.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[O.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=O.p(f),y=function(t){var e=w(l);return O.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return O.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=O.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return O.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return O.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return O.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return O.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return O.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return O.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return O.s(e.$s,2,\"0\");case\"SSS\":return O.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=O.p(d),m=w(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return O.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:O.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=S(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return O.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),_=b.prototype;return w.prototype=_,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){_[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),w.extend=function(t,e){return t.$i||(t(e,b,w),t.$i=!0),w},w.locale=S,w.isDayjs=p,w.unix=function(t){return w(1e3*t)},w.en=D[g],w.Ls=D,w.p={},w}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","import type { OpUnitType, QUnitType } from 'dayjs'\nimport dayjs from 'dayjs'\nimport utc from 'dayjs/plugin/utc'\nimport { isNull, isUndefined } from '@/utils/common'\nimport { stringToInt } from '@/utils/string'\nimport type { DatetimeUTC, DatetimeUTCNullable } from '@/types/common'\n\ndayjs.extend(utc)\n\nconst SUFFIX = '.000000Z'\nconst FORMAT = 'YYYY-MM-DDTHH:mm:ss'\n\nexport const DATETIME_MIN = '1970-01-01T00:00:00.000000Z'\nexport const DATETIME_MAX = '2100-01-01T00:00:00.000000Z'\n\nexport const dateNow = (): Date => {\n return dayjs().utc().toDate()\n}\n\nexport const dateTimeToDate = (isoDate: DatetimeUTC | DatetimeUTCNullable | string): Date => {\n return dayjs(isoDate).toDate()\n}\nexport const timestampCurrent = (): number => {\n return stringToInt(dayjs().utc().unix())\n}\n\nexport const dateTimeNow = (ignoreFractionalSeconds = true, ignoreSeconds = false): string => {\n if (ignoreFractionalSeconds && !ignoreSeconds) return dayjs().utc().format('YYYY-MM-DDTHH:mm:ss') + SUFFIX\n if (ignoreFractionalSeconds && ignoreSeconds) return dayjs().utc().format('YYYY-MM-DDTHH:mm:00') + SUFFIX\n if (!ignoreFractionalSeconds && ignoreSeconds) return dayjs().utc().format('YYYY-MM-DDTHH:mm:00.SSSSSS') + 'Z'\n return dayjs().utc().format('YYYY-MM-DDTHH:mm:ss.SSSSSS') + 'Z'\n}\n\nexport const dateTimeStartOfDay = (days = 0) => {\n if (days === 0) {\n return dayjs().startOf('day').utc().format(FORMAT) + SUFFIX\n }\n return dayjs().add(days, 'days').startOf('day').utc().format(FORMAT) + SUFFIX\n}\n\nexport const dateTimeEndOfDay = (days = 0) => {\n if (days === 0) {\n return dayjs().endOf('day').utc().format(FORMAT) + SUFFIX\n }\n return dayjs().add(days, 'days').endOf('day').utc().format(FORMAT) + SUFFIX\n}\n\nexport const dateModifyMinutes = (minutes = 0, date: null | Date = null): Date => {\n if (date === null) date = new Date()\n if (minutes === 0) return date\n if (minutes > 0) return dayjs(date).add(minutes, 'minutes').toDate()\n if (minutes < 0) return dayjs(date).subtract(Math.abs(minutes), 'minutes').toDate()\n return date\n}\n\nexport const dateToUtc = (date: dayjs.ConfigType) => {\n return dayjs(date).utc().format('YYYY-MM-DDTHH:mm:ss') + SUFFIX\n}\n\nexport const yearNow = () => {\n return dayjs().utc().format('YYYY')\n}\n\nexport const dateTimePretty = (\n isoDate: DatetimeUTC | DatetimeUTCNullable | string | null,\n edgeDateValue = ''\n): string => {\n if (isoDate === DATETIME_MAX || isoDate === DATETIME_MIN || isoDate === '' || isNull(isoDate) || isUndefined(isoDate))\n return edgeDateValue\n return dayjs(isoDate).format('DD.MM.YYYY HH:mm')\n}\n\nexport const dateTimeFriendly = (isoDate: DatetimeUTC | DatetimeUTCNullable | string | null, edgeDateValue = '') => {\n if (\n isoDate === DATETIME_MAX ||\n isoDate === DATETIME_MIN ||\n isoDate === '' ||\n isNull(isoDate) ||\n isUndefined(isoDate)\n ) {\n return edgeDateValue\n }\n let displayYear = true\n let displayDayMonth = true\n const date = dayjs(isoDate)\n const now = dayjs()\n if (now.format('YYYY') === date.format('YYYY')) {\n displayYear = false\n }\n if (now.format('YYYY-MM-DD') === date.format('YYYY-MM-DD')) {\n displayDayMonth = false\n }\n if (!displayYear && !displayDayMonth) return dayjs(date).format('H:mm')\n if (!displayYear) return dayjs(date).format('D.M. H:mm')\n return dayjs(date).format('D.M.YYYY H:mm')\n}\n\nexport const datePretty = (isoDate: DatetimeUTC | DatetimeUTCNullable | string | null, edgeDateValue = ''): string => {\n if (isoDate === DATETIME_MAX || isoDate === DATETIME_MIN || isoDate === '' || isNull(isoDate) || isUndefined(isoDate))\n return edgeDateValue\n return dayjs(isoDate).format('DD.MM.YYYY')\n}\n\nexport const timePretty = (isoDate: DatetimeUTC | DatetimeUTCNullable | string | null, edgeDateValue = ''): string => {\n if (isoDate === DATETIME_MAX || isoDate === DATETIME_MIN || isoDate === '' || isNull(isoDate) || isUndefined(isoDate))\n return edgeDateValue\n return dayjs(isoDate).format('HH:mm')\n}\n\nexport const dateDiff = (date1: Date, date2: Date, unit: QUnitType | OpUnitType = 'ms') => {\n const date1dayjs = dayjs(date1)\n const date2dayjs = dayjs(date2)\n return date1dayjs.diff(date2dayjs, unit)\n}\n","<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport type { AnzuUserAndTimeTrackingAware } from '@/types/AnzuUserAndTimeTrackingAware'\nimport { dateTimePretty } from '@/utils/datetime'\nimport ARow from '@/components/ARow.vue'\n\nconst props = withDefaults(\n defineProps<{\n data: AnzuUserAndTimeTrackingAware | any\n hideCreatedAt?: boolean\n hideModifiedAt?: boolean\n }>(),\n {\n hideCreatedAt: false,\n hideModifiedAt: false,\n }\n)\n\nconst createdAt = computed(() => {\n return dateTimePretty(props.data.createdAt)\n})\nconst modifiedAt = computed(() => {\n return dateTimePretty(props.data.modifiedAt)\n})\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <ARow :title=\"t('common.model.tracking.created')\">\n <div class=\"d-flex align-center\">\n <div\n v-if=\"!hideCreatedAt\"\n class=\"mr-2\"\n >\n {{ createdAt }}\n </div>\n </div>\n </ARow>\n <ARow :title=\"t('common.model.tracking.modified')\">\n <div class=\"d-flex align-center\">\n <div\n v-if=\"!hideModifiedAt\"\n class=\"mr-2\"\n >\n {{ modifiedAt }}\n </div>\n </div>\n </ARow>\n</template>\n","import { cloneDeep, isArray, isUndefined } from '@/utils/common'\nimport type { Filter, FilterBag, FilterVariant } from '@/types/Filter'\nimport type { Pagination } from '@/types/Pagination'\n\nexport interface MakeFilterOptions<T = any> {\n name: string\n variant: FilterVariant\n titleT?: string\n default: T | null\n field: string\n multiple: boolean\n mandatory: boolean\n exclude: boolean\n}\n\nexport function makeFilterHelper<T = any>(system?: string, subject?: string) {\n return (options: Partial<MakeFilterOptions<T>> = {}): Filter<T> => {\n const variant = isUndefined(options.variant) ? 'eq' : options.variant\n\n let defaultValue = isUndefined(options.default) ? null : options.default\n if (isUndefined(options.default) && variant === 'in') {\n defaultValue = [] as any\n }\n let titleT = options.titleT\n if (isUndefined(titleT) && system && subject && options.name) {\n titleT = system + '.' + subject + '.filter.' + options.name\n }\n\n return {\n variant,\n titleT,\n default: defaultValue,\n field: isUndefined(options.field) ? '' : options.field,\n multiple: isArray(defaultValue),\n mandatory: isUndefined(options.mandatory) ? false : options.mandatory,\n exclude: isUndefined(options.exclude) ? false : options.exclude,\n model: cloneDeep(defaultValue),\n error: '',\n }\n }\n}\n\nexport function useFilterHelpers() {\n const clearOne = (filter: Filter) => {\n filter.model = filter.default\n filter.error = ''\n }\n\n const clearAll = (filterBag: FilterBag) => {\n for (const filterName in filterBag) {\n clearOne(filterBag[filterName])\n }\n }\n\n const clearAllErrors = (filterBag: FilterBag) => {\n for (const filterName in filterBag) {\n filterBag[filterName].error = ''\n }\n }\n\n const resetFilter = (filterBag: FilterBag, pagination: Pagination, callback?: any) => {\n clearAll(filterBag)\n pagination.page = 1\n if (callback) callback()\n }\n\n const submitFilter = (filterBag: FilterBag, pagination: Pagination, callback: () => any) => {\n clearAllErrors(filterBag)\n pagination.page = 1\n callback()\n }\n\n return {\n clearAllErrors,\n clearAll,\n clearOne,\n resetFilter,\n submitFilter,\n }\n}\n","<script lang=\"ts\" setup>\nimport type { Filter } from '@/types/Filter'\nimport { useFilterHelpers } from '@/composables/filter/filterHelpers'\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { isUndefined } from '@/utils/common'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: Filter\n placeholder?: string | undefined\n dataCy?: string\n }>(),\n {\n placeholder: undefined,\n dataCy: 'filter-string',\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: Filter): void\n}>()\n\nconst value = computed({\n get() {\n return props.modelValue.model\n },\n set(newValue) {\n emit('update:modelValue', { ...props.modelValue, ...{ model: newValue } })\n },\n})\n\nconst { clearOne } = useFilterHelpers()\n\nconst { t } = useI18n()\n\nconst label = computed(() => {\n return props.modelValue.titleT ? t(props.modelValue.titleT) : undefined\n})\n\nconst placeholderComputed = computed(() => {\n if (!isUndefined(props.placeholder)) return props.placeholder\n if (props.modelValue.variant === 'startsWith') return t('common.model.filterPlaceholder.startsWith')\n if (props.modelValue.variant === 'eq') return t('common.model.filterPlaceholder.eq')\n if (props.modelValue.variant === 'contains' || props.modelValue.variant === 'search')\n return t('common.model.filterPlaceholder.contains')\n return ''\n})\n</script>\n\n<template>\n <VTextField\n v-model=\"value\"\n :label=\"label\"\n :placeholder=\"placeholderComputed\"\n :clearable=\"!modelValue.mandatory\"\n :data-cy=\"dataCy\"\n @click:clear.stop=\"clearOne(modelValue)\"\n />\n</template>\n","<script lang=\"ts\" setup>\nimport type { Filter } from '@/types/Filter'\nimport type { Ref } from 'vue'\nimport { computed, ref, toRefs, watch } from 'vue'\nimport { isDocId, isEmpty, isInt, isString, isUndefined } from '@/utils/common'\nimport { useFilterHelpers } from '@/composables/filter/filterHelpers'\nimport { useI18n } from 'vue-i18n'\n\nconst props = withDefaults(\n defineProps<{\n filterId?: Filter | undefined\n filterDocId?: Filter | undefined\n filterText?: Filter | undefined\n filterUrl?: Filter | undefined\n filterOverrides?: Filter[] | undefined\n placeholder?: string | undefined\n dataCy?: string\n }>(),\n {\n filterId: undefined,\n filterDocId: undefined,\n filterText: undefined,\n filterUrl: undefined,\n filterOverrides: undefined,\n placeholder: undefined,\n dataCy: 'filter-mixed',\n }\n)\nconst model = ref('')\nconst { filterId, filterText, filterDocId, filterUrl, filterOverrides } = toRefs(props)\nconst { t } = useI18n()\n\nconst filterActive = (filter: Ref<Filter | undefined> | undefined): filter is Ref<Filter> => {\n return !isUndefined(filter) && !isUndefined(filter.value)\n}\nconst { clearOne } = useFilterHelpers()\nconst clearIfActive = (filter: Ref<Filter | undefined> | undefined) => {\n if (filterActive(filter)) {\n clearOne(filter.value)\n }\n}\nconst clearAllActiveExcept = (exceptFilter: Ref<Filter | undefined> | undefined = undefined) => {\n if (exceptFilter?.value?.titleT !== filterId?.value?.titleT) {\n clearIfActive(filterId)\n }\n if (exceptFilter?.value?.titleT !== filterDocId?.value?.titleT) {\n clearIfActive(filterDocId)\n }\n if (exceptFilter?.value?.titleT !== filterText?.value?.titleT) {\n clearIfActive(filterText)\n }\n if (exceptFilter?.value?.titleT !== filterUrl?.value?.titleT) {\n clearIfActive(filterUrl)\n }\n if (!isUndefined(filterOverrides)) {\n filterOverrides.value?.forEach((filter: any) => {\n if (exceptFilter?.value?.titleT !== filter.titleT) {\n clearOne(filter)\n }\n })\n }\n}\nconst overrideFilter: Ref<Filter | undefined> = ref(undefined)\nwatch(overrideFilter, () => {\n if (filterActive(overrideFilter)) {\n overrideFilter.value.model = model.value\n currentFilter.value = overrideFilter.value\n clearAllActiveExcept(overrideFilter)\n return\n }\n setFilters(model.value)\n})\nconst currentFilter: Ref<Filter | undefined> = ref(undefined)\nwatch(model, (newModel: string) => {\n setFilters(newModel)\n})\nconst setFilters = (newModel: string) => {\n if (filterActive(overrideFilter)) {\n overrideFilter.value.model = newModel\n return\n }\n const filter = autodetectFilter(newModel)\n if (!isUndefined(filter)) {\n filter.model = newModel\n }\n currentFilter.value = filter\n clearAllActiveExcept(currentFilter)\n}\nconst autodetectFilter = (newModel: string): Filter | undefined => {\n if (isInt(newModel)) {\n if (filterActive(filterId)) {\n return filterId.value\n }\n }\n if (isDocId(newModel)) {\n if (filterActive(filterDocId)) {\n return filterDocId.value\n }\n }\n if (isString(newModel) && newModel.length > 0) {\n if (filterActive(filterUrl) && newModel.startsWith('http')) {\n return filterUrl.value\n }\n if (filterActive(filterText)) {\n return filterText.value\n }\n }\n return undefined\n}\n\nconst label = computed(() => {\n if (filterActive(overrideFilter)) {\n return t(overrideFilter.value.titleT ?? '')\n }\n if (filterActive(currentFilter)) {\n return t(currentFilter.value.titleT ?? '')\n }\n const filterLabels = []\n if (filterActive(filterId)) {\n filterLabels.push(t(filterId.value.titleT ?? ''))\n }\n if (filterActive(filterDocId)) {\n filterLabels.push(t(filterDocId.value.titleT ?? ''))\n }\n if (filterActive(filterUrl)) {\n filterLabels.push(t(filterUrl.value.titleT ?? ''))\n }\n if (filterActive(filterText)) {\n filterLabels.push(t(filterText.value.titleT ?? ''))\n }\n return filterLabels.join('/')\n})\n\nconst currentFilterModel = computed(() => {\n return currentFilter.value?.model\n})\nwatch(currentFilterModel, (newModel) => {\n if (!isEmpty(model.value) && isEmpty(newModel)) {\n model.value = ''\n }\n})\n\nconst placeholderComputed = computed(() => {\n if (!isUndefined(props.placeholder)) return props.placeholder\n if (currentFilter.value?.variant === 'startsWith') return t('common.model.filterPlaceholder.startsWith')\n if (currentFilter.value?.variant === 'eq') return t('common.model.filterPlaceholder.eq')\n if (currentFilter.value?.variant === 'contains' || currentFilter.value?.variant === 'search')\n return t('common.model.filterPlaceholder.contains')\n return ''\n})\n</script>\n\n<template>\n <VTextField\n v-model=\"model\"\n :label=\"label\"\n :data-cy=\"dataCy\"\n :placeholder=\"placeholderComputed\"\n >\n <template\n v-if=\"filterOverrides\"\n #append-inner\n >\n <VBtnToggle\n v-model=\"overrideFilter\"\n divided\n class=\"override-toggle\"\n >\n <VBtn\n v-for=\"(override, index) in filterOverrides\"\n :key=\"index\"\n size=\"small\"\n :value=\"override\"\n >\n {{ t(override.titleT ?? '') }}\n </VBtn>\n </VBtnToggle>\n </template>\n </VTextField>\n</template>\n\n<style lang=\"scss\" scoped>\n.override-toggle {\n height: 80%;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport type { Filter } from '@/types/Filter'\nimport { useFilterHelpers } from '@/composables/filter/filterHelpers'\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { stringToInt } from '@/utils/string'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: Filter\n dataCy?: string\n }>(),\n {\n dataCy: 'filter-string',\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: Filter): void\n}>()\n\nconst value = computed({\n get() {\n return props.modelValue.model\n },\n set(newValue) {\n emit('update:modelValue', { ...props.modelValue, ...{ model: stringToInt(newValue + '') } })\n },\n})\n\nconst { clearOne } = useFilterHelpers()\n\nconst { t } = useI18n()\n\nconst label = computed(() => {\n return props.modelValue.titleT ? t(props.modelValue.titleT) : undefined\n})\n</script>\n\n<template>\n <VTextField\n v-model=\"value\"\n :label=\"label\"\n :clearable=\"!modelValue.mandatory\"\n :data-cy=\"dataCy\"\n @click:clear.stop=\"clearOne(modelValue)\"\n />\n</template>\n","export const eventClickBlur = (event?: Event): void => {\n if (event?.currentTarget instanceof HTMLElement) {\n event.currentTarget.blur()\n }\n}\n","<script lang=\"ts\" setup>\nimport { computed, ref } from 'vue'\nimport { eventClickBlur } from '@/utils/event'\nimport { useI18n } from 'vue-i18n'\n\nwithDefaults(\n defineProps<{\n tooltipT?: string\n buttonClass?: string\n dataCy?: string\n }>(),\n {\n tooltipT: 'common.button.advancedFilters',\n buttonClass: 'mt-1',\n dataCy: 'filter-advanced',\n }\n)\nconst emit = defineEmits<{\n (e: 'advancedFilter'): void\n}>()\n\nconst active = ref(false)\n\nconst onClick = (event: Event) => {\n eventClickBlur(event)\n active.value = !active.value\n emit('advancedFilter')\n}\n\nconst icon = computed(() => {\n return active.value ? 'mdi-chevron-double-up' : 'mdi-chevron-double-down'\n})\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <VBtn\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n icon\n size=\"x-small\"\n variant=\"text\"\n @click.stop=\"onClick\"\n >\n <VIcon :icon=\"icon\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t(tooltipT) }}\n </VTooltip>\n </VBtn>\n</template>\n","<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { eventClickBlur } from '@/utils/event'\n\nwithDefaults(\n defineProps<{\n buttonT?: string\n buttonClass?: string\n dataCy?: string\n touched?: boolean\n }>(),\n {\n buttonT: 'common.button.submitFilter',\n buttonClass: '',\n dataCy: 'filter-submit',\n touched: true,\n }\n)\nconst emit = defineEmits<{\n (e: 'submit'): void\n}>()\n\nconst onClick = (event: Event) => {\n eventClickBlur(event)\n emit('submit')\n}\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <VBtn\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n color=\"primary\"\n type=\"submit\"\n :variant=\"touched ? 'flat' : 'text'\"\n @click.stop=\"onClick\"\n >\n {{ t(buttonT) }}\n </VBtn>\n</template>\n","<script lang=\"ts\" setup>\nimport { eventClickBlur } from '@/utils/event'\nimport { useI18n } from 'vue-i18n'\n\nwithDefaults(\n defineProps<{\n tooltipT?: string\n buttonClass?: string\n dataCy?: string\n }>(),\n {\n tooltipT: 'common.button.resetFilter',\n buttonClass: 'ml-2',\n dataCy: 'filter-reset',\n }\n)\nconst emit = defineEmits<{\n (e: 'reset'): void\n}>()\n\nconst onClick = (event: Event) => {\n eventClickBlur(event)\n emit('reset')\n}\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <VBtn\n :class=\"buttonClass\"\n class=\"px-2\"\n :data-cy=\"dataCy\"\n color=\"light\"\n min-width=\"36px\"\n variant=\"flat\"\n @click.stop=\"onClick\"\n >\n <VIcon\n color=\"grey darken-1\"\n icon=\"mdi-filter-remove-outline\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t(tooltipT) }}\n </VTooltip>\n </VBtn>\n</template>\n","<script lang=\"ts\" setup>\nimport { ref } from 'vue'\nimport AFilterAdvancedButton from '@/components/buttons/filter/AFilterAdvancedButton.vue'\nimport AFilterSubmitButton from '@/components/buttons/filter/AFilterSubmitButton.vue'\nimport AFilterResetButton from '@/components/buttons/filter/AFilterResetButton.vue'\n\nwithDefaults(\n defineProps<{\n enableAdvanced?: boolean\n enableTop?: boolean\n hideButtons?: boolean\n touched?: boolean\n }>(),\n {\n enableAdvanced: false,\n enableTop: false,\n hideButtons: false,\n touched: true,\n }\n)\nconst emit = defineEmits<{\n (e: 'resetFilter'): void\n}>()\n\nconst resetFilter = () => {\n emit('resetFilter')\n}\n\nconst advancedFilter = ref(false)\n\nconst toggleAdvancedFilter = () => {\n advancedFilter.value = !advancedFilter.value\n}\n</script>\n\n<template>\n <VRow\n v-if=\"enableTop\"\n dense\n >\n <VCol class=\"\">\n <slot name=\"top\" />\n </VCol>\n </VRow>\n <VRow dense>\n <VCol\n v-if=\"enableAdvanced\"\n class=\"v-col-filters--show-hide\"\n cols=\"auto\"\n >\n <AFilterAdvancedButton\n :button-active=\"advancedFilter\"\n @advanced-filter=\"toggleAdvancedFilter\"\n />\n </VCol>\n <VCol class=\"\">\n <slot name=\"default\" />\n <VExpandTransition v-if=\"enableAdvanced\">\n <div v-show=\"advancedFilter\">\n <slot name=\"advanced\" />\n </div>\n </VExpandTransition>\n </VCol>\n <VCol\n v-if=\"!hideButtons\"\n class=\"v-col-filters--buttons text-right\"\n cols=\"auto\"\n >\n <slot name=\"buttons\">\n <AFilterSubmitButton :touched=\"touched\" />\n <AFilterResetButton @reset=\"resetFilter\" />\n </slot>\n </VCol>\n </VRow>\n</template>\n","import { ref } from 'vue'\nimport type { ValueObjectOption } from '@/types/ValueObject'\nimport { useI18n } from 'vue-i18n'\n\nexport enum Grant {\n Deny = 0,\n AllowOwner = 1,\n Allow = 2,\n Default = Deny,\n}\n\nexport function useGrant() {\n const { t } = useI18n()\n\n const grantOptions = ref<ValueObjectOption<Grant>[]>([\n {\n value: Grant.Deny,\n title: t('common.permission.grant.deny'),\n color: 'error',\n },\n {\n value: Grant.AllowOwner,\n title: t('common.permission.grant.allowOwner'),\n color: 'warning',\n },\n {\n value: Grant.Allow,\n title: t('common.permission.grant.allow'),\n color: 'success',\n },\n ])\n\n const getGrantOption = (value: Grant): ValueObjectOption<Grant> => {\n return grantOptions.value.find((item) => item.value === value) as ValueObjectOption<Grant>\n }\n\n return {\n grantOptions,\n getGrantOption,\n }\n}\n","<script lang=\"ts\" setup>\nimport { Grant, useGrant } from '@/model/valueObject/Grant'\nimport { computed } from 'vue'\n\nconst props = defineProps<{\n availableGrants: Grant[]\n selectedGrant: Grant | undefined\n}>()\nconst emit = defineEmits<{\n (e: 'change', data?: Grant): void\n}>()\nconst selectedGrant = computed({\n get() {\n return props.selectedGrant\n },\n set(newGrant) {\n emit('change', newGrant)\n },\n})\nconst { getGrantOption } = useGrant()\n</script>\n\n<template>\n <VBtnToggle\n v-model=\"selectedGrant\"\n divided\n density=\"compact\"\n variant=\"outlined\"\n class=\"text-disabled\"\n >\n <VBtn\n v-for=\"availableGrant in availableGrants\"\n :key=\"availableGrant\"\n :value=\"availableGrant\"\n :color=\"getGrantOption(availableGrant)?.color\"\n >\n {{ getGrantOption(availableGrant)?.title }}\n </VBtn>\n </VBtnToggle>\n</template>\n","import { ref } from 'vue'\nimport type { ValueObjectOption } from '@/types/ValueObject'\nimport { useI18n } from 'vue-i18n'\n\nexport enum GrantOrigin {\n Role = 'role',\n Group = 'group',\n User = 'user',\n DefaultGrant = 'default',\n Default = DefaultGrant,\n}\n\nexport function useGrantOrigin() {\n const { t } = useI18n()\n\n const grantOriginOptions = ref<ValueObjectOption<GrantOrigin>[]>([\n {\n value: GrantOrigin.Role,\n title: t('common.permission.grantOrigin.role'),\n },\n {\n value: GrantOrigin.Group,\n title: t('common.permission.grantOrigin.group'),\n },\n {\n value: GrantOrigin.User,\n title: t('common.permission.grantOrigin.user'),\n },\n {\n value: GrantOrigin.DefaultGrant,\n title: t('common.permission.grantOrigin.defaultGrant'),\n },\n ])\n\n const getGrantOriginOption = (value: GrantOrigin): ValueObjectOption<GrantOrigin> => {\n return grantOriginOptions.value.find((item) => item.value === value) as ValueObjectOption<GrantOrigin>\n }\n\n return {\n grantOriginOptions,\n getGrantOriginOption,\n }\n}\n","<script lang=\"ts\" setup>\nimport { Grant, useGrant } from '@/model/valueObject/Grant'\nimport { GrantOrigin, useGrantOrigin } from '@/model/valueObject/GrantOrigin'\nimport { computed } from 'vue'\n\nconst props = defineProps<{\n grant: Grant\n grantOrigin: GrantOrigin\n}>()\n\nconst { getGrantOption } = useGrant()\nconst grantOption = computed(() => getGrantOption(props.grant))\n\nconst { getGrantOriginOption } = useGrantOrigin()\nconst grantOriginOption = computed(() => getGrantOriginOption(props.grantOrigin))\n</script>\n\n<template>\n <VChip\n v-if=\"grantOption\"\n :color=\"grantOption.color\"\n label\n size=\"small\"\n >\n {{ grantOption.title }}\n <span\n v-if=\"grantOrigin !== GrantOrigin.DefaultGrant\"\n class=\"ml-1\"\n >({{ grantOriginOption?.title }})</span>\n </VChip>\n</template>\n","import { isUndefined } from '@/utils/common'\n\nexport const objectDeepFreeze = <T>(obj: T) => {\n const propNames = Object.getOwnPropertyNames(obj)\n for (const name of propNames) {\n const value = (obj as any)[name]\n if (value && typeof value === 'object') {\n objectDeepFreeze(value)\n }\n }\n return Object.freeze(obj)\n}\n\nexport const objectGetValues = <T>(obj: { [key: string]: T }): T[] => {\n return Object.keys(obj).map((k) => obj[k])\n}\n\nexport const objectGetValueByPath = <R = any>(obj: any, path: string, splitChar = '.') => {\n const a = path.split(splitChar)\n let o = obj\n while (a.length) {\n const n = a.shift()\n if (isUndefined(n) || !(n in o)) return\n o = o[n]\n }\n return o as R\n}\n\nexport const objectSetValueByPath = (obj: any, path: string, value: any, splitChar = '.') => {\n const a = path.split(splitChar)\n let o = obj\n while (a.length - 1) {\n const n = a.shift()\n if (isUndefined(n)) return // todo check if correct if\n if (!(n in o)) o[n] = {}\n o = o[n]\n }\n o[a[0]] = value\n}\n\nexport function objectDeletePropertyByPath<T>(obj: T, path: string, splitChar = '.'): T {\n const pathParts = path.split(splitChar)\n const lastIndex = pathParts.length - 1\n\n function recurse(obj: any, index = 0) {\n const key = pathParts[index]\n\n if (index === lastIndex) {\n delete obj[key]\n return\n }\n\n recurse(obj[key], index + 1)\n }\n\n recurse(obj)\n return obj\n}\n\nexport type Immutable<T> = {\n readonly [K in keyof T]: Immutable<T[K]>\n}\n","import type { IntegerId } from '@/types/common'\nimport { isObject } from '@/utils/common'\n\nexport interface OwnerAware {\n owners: IntegerId[]\n}\n\nexport const isOwnerAware = (value: unknown): value is OwnerAware => {\n return isObject(value) && Object.hasOwn(value, 'owners')\n}\n","import type { IntegerIdNullable } from '@/types/common'\n\nexport interface CreatedByAware {\n createdBy: IntegerIdNullable\n}\n\nexport const isCreatedByAware = (value: object): value is CreatedByAware => {\n return Object.hasOwn(value, 'createdBy')\n}\n","import type { App, DeepReadonly, Ref, UnwrapRef } from 'vue'\nimport type { AnzuUser } from '@/types/AnzuUser'\nimport type { AclValue } from '@/types/Permission'\nimport Acl from '@/components/permission/Acl.vue'\nimport Notification from '@kyvg/vue3-notification'\nimport type { LanguageCode } from '@/composables/languageSettings'\nimport { DamClientSymbol } from '@/components/injectionKeys'\nimport type { AxiosInstance } from 'axios'\n\nexport type CustomAclResolver<T extends AclValue = AclValue> =\n | undefined\n | {\n can?: (acl: T, subject?: object) => boolean\n canOwner?: (subject: object) => boolean\n }\n\nexport type CurrentUserType = DeepReadonly<Ref<UnwrapRef<AnzuUser | undefined>>>\n\nexport type PluginOptions<T extends AclValue = AclValue> = {\n currentUser: CurrentUserType\n languages: { available: LanguageCode[]; default: LanguageCode }\n customAclResolver?: CustomAclResolver<T>\n coreDam?: { client: () => AxiosInstance; defaultLicenceId?: number }\n}\n\nexport const CurrentUserSymbol = Symbol('currentUser')\nexport const CustomAclResolverSymbol = Symbol('customAclResolver')\nexport const AvailableLanguagesSymbol = Symbol('availableLanguages')\nexport const DefaultLanguageSymbol = Symbol('defaultLanguage')\nexport const DefaultLicenceIdSymbol = Symbol('defaultLicenceId')\n\nexport default {\n install<T extends AclValue = AclValue>(app: App, options: PluginOptions<T>): void {\n app.provide(CurrentUserSymbol, options.currentUser)\n app.provide<(() => AxiosInstance) | undefined>(DamClientSymbol, options.coreDam?.client)\n app.provide(CustomAclResolverSymbol, options.customAclResolver)\n app.provide(AvailableLanguagesSymbol, options.languages.available)\n app.provide(DefaultLanguageSymbol, options.languages.default)\n app.provide(DefaultLicenceIdSymbol, options.coreDam?.defaultLicenceId)\n app.component('Acl', Acl)\n app.use(Notification, { componentName: 'Notifications' })\n },\n}\n","import { isDefined, isUndefined } from '@/utils/common'\nimport { objectGetValueByPath } from '@/utils/object'\nimport { Grant } from '@/model/valueObject/Grant'\nimport { isOwnerAware } from '@/types/OwnerAware'\nimport { isCreatedByAware } from '@/types/CreatedByAware'\nimport { inject } from 'vue'\nimport {\n CurrentUserSymbol,\n type CurrentUserType,\n type CustomAclResolver,\n CustomAclResolverSymbol,\n} from '@/AnzuSystemsCommonAdmin'\nimport type { AclValue } from '@/types/Permission'\n\nexport const ROLE_SUPER_ADMIN = 'ROLE_ADMIN'\n\nexport type AclResolverConfig = {\n disableInject?: true | undefined\n currentUser?: CurrentUserType\n customAclProvider?: CustomAclResolver\n}\n\nexport function useAcl<T extends AclValue = AclValue>(options?: AclResolverConfig) {\n const shouldInject = isUndefined(options) || isUndefined(options.disableInject)\n const currentUser =\n options?.currentUser ??\n (shouldInject ? (inject(CurrentUserSymbol, undefined) as CurrentUserType | undefined) : undefined)\n const customAclProvider =\n options?.customAclProvider ??\n (shouldInject ? (inject(CustomAclResolverSymbol, undefined) as CustomAclResolver) : undefined)\n\n const can = (acl: T, subject?: object): boolean => {\n if (isUndefined(currentUser))\n throw new Error('Composable useAcl can be used as a global state without providing current user as a parameter.')\n if (isDefined(customAclProvider) && isDefined(customAclProvider.can)) return customAclProvider.can(acl, subject)\n if (isUndefined(currentUser.value) || currentUser.value.id === 0) return false\n if (currentUser.value.roles.includes(ROLE_SUPER_ADMIN)) return true\n const permission = objectGetValueByPath(currentUser.value, 'resolvedPermissions.' + acl)\n if (isUndefined(permission)) return false\n switch (permission) {\n case Grant.Allow:\n return true\n case Grant.Deny:\n return false\n case Grant.AllowOwner:\n if (isUndefined(subject))\n throw new Error(`Required subject for acl \"${acl}\" to determine an ability to access the resource.`)\n return canOwner(subject)\n default:\n return false\n }\n }\n\n function canOwner(subject: object) {\n if (isUndefined(currentUser))\n throw new Error('Composable useAcl can be used as a global state without providing current user as a parameter.')\n if (!isUndefined(customAclProvider) && !isUndefined(customAclProvider.canOwner))\n return customAclProvider.canOwner(subject)\n if (currentUser.value) {\n if (isOwnerAware(subject)) {\n return subject.owners.includes(currentUser.value.id)\n }\n if (isCreatedByAware(subject)) {\n return subject.createdBy === currentUser.value.id\n }\n }\n return false\n }\n\n const canForAll = (acls: T[], subject?: object): boolean => {\n if (acls.length === 0) {\n return true\n }\n return acls.every((acl) => {\n return can(acl, subject)\n })\n }\n\n const canForSome = (acls: T[], subject?: object): boolean => {\n if (acls.length === 0) {\n return true\n }\n return acls.some((acl) => {\n return can(acl, subject)\n })\n }\n\n return {\n can,\n canForAll,\n canForSome,\n }\n}\n","<script lang=\"ts\" setup>\nimport { useAcl } from '@/composables/system/ability'\nimport { inject, ref, watch } from 'vue'\nimport { CurrentUserSymbol, type CurrentUserType } from '@/AnzuSystemsCommonAdmin'\nimport type { AclValue } from '@/types/Permission'\n\nconst props = withDefaults(\n defineProps<{\n permission: AclValue\n subject?: object\n }>(),\n {\n subject: undefined,\n }\n)\n\nconst currentUser = inject(CurrentUserSymbol) as CurrentUserType\nconst { can } = useAcl()\nconst allowed = ref<boolean>(can(props.permission, props.subject))\n\nwatch(currentUser, () => {\n allowed.value = can(props.permission, props.subject)\n})\n</script>\n\n<template>\n <slot v-if=\"allowed\" />\n</template>\n","<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { dateTimePretty } from '@/utils/datetime'\nimport type { DatetimeUTCNullable } from '@/types/common'\n\nconst props = withDefaults(\n defineProps<{\n dateTime: DatetimeUTCNullable\n edgeDateValue?: string\n }>(),\n {\n edgeDateValue: 'n/a',\n }\n)\n\nconst pretty = computed(() => {\n return dateTimePretty(props.dateTime, props.edgeDateValue)\n})\n</script>\n\n<template>\n {{ pretty }}\n</template>\n","export var HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n];\nexport var defaults = {\n _disable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enableSeconds: false,\n enableTime: false,\n errorHandler: function (err) {\n return typeof console !== \"undefined\" && console.warn(err);\n },\n getWeek: function (givenDate) {\n var date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n var week1 = new Date(date.getFullYear(), 0, 4);\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false,\n};\n","export var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n};\nexport default english;\n","export var pad = function (number, length) {\n if (length === void 0) { length = 2; }\n return (\"000\" + number).slice(length * -1);\n};\nexport var int = function (bool) { return (bool === true ? 1 : 0); };\nexport function debounce(fn, wait) {\n var t;\n return function () {\n var _this = this;\n var args = arguments;\n clearTimeout(t);\n t = setTimeout(function () { return fn.apply(_this, args); }, wait);\n };\n}\nexport var arrayify = function (obj) {\n return obj instanceof Array ? obj : [obj];\n};\n","export function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n}\nexport function createElement(tag, className, content) {\n var e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined)\n e.textContent = content;\n return e;\n}\nexport function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n}\nexport function findParent(node, condition) {\n if (condition(node))\n return node;\n else if (node.parentNode)\n return findParent(node.parentNode, condition);\n return undefined;\n}\nexport function createNumberInput(inputClassName, opts) {\n var wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n }\n else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined)\n for (var key in opts)\n numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n}\nexport function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n var path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n catch (error) {\n return event.target;\n }\n}\n","import { int, pad } from \"../utils\";\nvar doNothing = function () { return undefined; };\nexport var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\nexport var revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n H: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n J: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n K: function (dateObj, amPM, locale) {\n dateObj.setHours((dateObj.getHours() % 12) +\n 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: function (_, unixSeconds) { return new Date(parseFloat(unixSeconds) * 1000); },\n W: function (dateObj, weekNum, locale) {\n var weekNumber = parseInt(weekNum);\n var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: function (dateObj, year) {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: function (_, ISODate) { return new Date(ISODate); },\n d: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n h: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n i: function (dateObj, minutes) {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: function (_, unixMillSeconds) {\n return new Date(parseFloat(unixMillSeconds));\n },\n w: doNothing,\n y: function (dateObj, year) {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n};\nexport var tokenRegex = {\n D: \"\",\n F: \"\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\",\n};\nexport var formats = {\n Z: function (date) { return date.toISOString(); },\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n H: function (date) { return pad(date.getHours()); },\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n K: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: function (date) { return pad(date.getSeconds()); },\n U: function (date) { return date.getTime() / 1000; },\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: function (date) { return pad(date.getFullYear(), 4); },\n d: function (date) { return pad(date.getDate()); },\n h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },\n i: function (date) { return pad(date.getMinutes()); },\n j: function (date) { return date.getDate(); },\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: function (date) { return pad(date.getMonth() + 1); },\n n: function (date) { return date.getMonth() + 1; },\n s: function (date) { return date.getSeconds(); },\n u: function (date) { return date.getTime(); },\n w: function (date) { return date.getDay(); },\n y: function (date) { return String(date.getFullYear()).substring(2); },\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport var createDateFormatter = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c, _d = _a.isMobile, isMobile = _d === void 0 ? false : _d;\n return function (dateObj, frmt, overrideLocale) {\n var locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map(function (c, i, arr) {\n return formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\";\n })\n .join(\"\");\n };\n};\nexport var createDateParser = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;\n return function (date, givenFormat, timeless, customLocale) {\n if (date !== 0 && !date)\n return undefined;\n var locale = customLocale || l10n;\n var parsedDate;\n var dateOrig = date;\n if (date instanceof Date)\n parsedDate = new Date(date.getTime());\n else if (typeof date !== \"string\" &&\n date.toFixed !== undefined)\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n var format = givenFormat || (config || defaults).dateFormat;\n var datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (config && config.parseDate) {\n parsedDate = config.parseDate(date, format);\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr)) {\n parsedDate = new Date(date);\n }\n else {\n var matched = void 0, ops = [];\n for (var i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n var token = format[i];\n var isBackSlash = token === \"\\\\\";\n var escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n var match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token],\n val: match[++matchIndex],\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\";\n }\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n ops.forEach(function (_a) {\n var fn = _a.fn, val = _a.val;\n return (parsedDate = fn(parsedDate, val, locale) || parsedDate);\n });\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(\"Invalid date provided: \" + dateOrig));\n return undefined;\n }\n if (timeless === true)\n parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n };\n};\nexport function compareDates(date1, date2, timeless) {\n if (timeless === void 0) { timeless = true; }\n if (timeless !== false) {\n return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n new Date(date2.getTime()).setHours(0, 0, 0, 0));\n }\n return date1.getTime() - date2.getTime();\n}\nexport function compareTimes(date1, date2) {\n return (3600 * (date1.getHours() - date2.getHours()) +\n 60 * (date1.getMinutes() - date2.getMinutes()) +\n date1.getSeconds() -\n date2.getSeconds());\n}\nexport var isBetween = function (ts, ts1, ts2) {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport var calculateSecondsSinceMidnight = function (hours, minutes, seconds) {\n return hours * 3600 + minutes * 60 + seconds;\n};\nexport var parseSeconds = function (secondsSinceMidnight) {\n var hours = Math.floor(secondsSinceMidnight / 3600), minutes = (secondsSinceMidnight - hours * 3600) / 60;\n return [hours, minutes, secondsSinceMidnight - hours * 3600 - minutes * 60];\n};\nexport var duration = {\n DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n var hours = config.defaultHour;\n var minutes = config.defaultMinute;\n var seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n var minHour = config.minDate.getHours();\n var minMinutes = config.minDate.getMinutes();\n var minSeconds = config.minDate.getSeconds();\n if (hours < minHour) {\n hours = minHour;\n }\n if (hours === minHour && minutes < minMinutes) {\n minutes = minMinutes;\n }\n if (hours === minHour && minutes === minMinutes && seconds < minSeconds)\n seconds = config.minDate.getSeconds();\n }\n if (config.maxDate !== undefined) {\n var maxHr = config.maxDate.getHours();\n var maxMinutes = config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr)\n minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes)\n seconds = config.maxDate.getSeconds();\n }\n return { hours: hours, minutes: minutes, seconds: seconds };\n}\n","\"use strict\";\nif (typeof Object.assign !== \"function\") {\n Object.assign = function (target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n var _loop_1 = function (source) {\n if (source) {\n Object.keys(source).forEach(function (key) { return (target[key] = source[key]); });\n }\n };\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var source = args_1[_a];\n _loop_1(source);\n }\n return target;\n };\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { defaults as defaultOptions, HOOKS, } from \"./types/options\";\nimport English from \"./l10n/default\";\nimport { arrayify, debounce, int, pad } from \"./utils\";\nimport { clearNode, createElement, createNumberInput, findParent, toggleClass, getEventTarget, } from \"./utils/dom\";\nimport { compareDates, createDateParser, createDateFormatter, duration, isBetween, getDefaultHours, calculateSecondsSinceMidnight, parseSeconds, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nvar DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n var self = {\n config: __assign(__assign({}, defaultOptions), flatpickr.defaultConfig),\n l10n: English,\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self.onMouseOver = onMouseOver;\n self._createElement = createElement;\n self.createDay = createDay;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.updateValue = updateValue;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth: function (month, yr) {\n if (month === void 0) { month = self.currentMonth; }\n if (yr === void 0) { yr = self.currentYear; }\n if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n return 29;\n return self.l10n.daysInMonth[month];\n },\n };\n }\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile)\n build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function getClosestActiveElement() {\n var _a;\n return (((_a = self.calendarContainer) === null || _a === void 0 ? void 0 : _a.getRootNode())\n .activeElement || document.activeElement);\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n var config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n }\n else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n var daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width =\n daysWidth +\n (self.weekWrapper !== undefined\n ? self.weekWrapper.offsetWidth\n : 0) +\n \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n var defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n var defaults = getDefaultHours(self.config);\n defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n self.selectedDates = [defaultDate];\n self.latestSelectedDateObj = defaultDate;\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n var prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined)\n return;\n var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n ? (parseInt(self.secondElement.value, 10) || 0) % 60\n : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n var limitMinHours = self.config.minTime !== undefined ||\n (self.config.minDate &&\n self.minDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n 0);\n var limitMaxHours = self.config.maxTime !== undefined ||\n (self.config.maxDate &&\n self.maxDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n 0);\n if (self.config.maxTime !== undefined &&\n self.config.minTime !== undefined &&\n self.config.minTime > self.config.maxTime) {\n var minBound = calculateSecondsSinceMidnight(self.config.minTime.getHours(), self.config.minTime.getMinutes(), self.config.minTime.getSeconds());\n var maxBound = calculateSecondsSinceMidnight(self.config.maxTime.getHours(), self.config.maxTime.getMinutes(), self.config.maxTime.getSeconds());\n var currentTime = calculateSecondsSinceMidnight(hours, minutes, seconds);\n if (currentTime > maxBound && currentTime < minBound) {\n var result = parseSeconds(minBound);\n hours = result[0];\n minutes = result[1];\n seconds = result[2];\n }\n }\n else {\n if (limitMaxHours) {\n var maxTime = self.config.maxTime !== undefined\n ? self.config.maxTime\n : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours())\n minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes())\n seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n var minTime = self.config.minTime !== undefined\n ? self.config.minTime\n : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours() && minutes < minTime.getMinutes())\n minutes = minTime.getMinutes();\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n var date = dateObj || self.latestSelectedDateObj;\n if (date && date instanceof Date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile)\n return;\n self.hourElement.value = pad(!self.config.time_24hr\n ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined)\n self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined)\n self.secondElement.value = pad(seconds);\n }\n function onYearInput(event) {\n var eventTarget = getEventTarget(event);\n var year = parseInt(eventTarget.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n function bind(element, event, handler, options) {\n if (event instanceof Array)\n return event.forEach(function (ev) { return bind(element, ev, handler, options); });\n if (element instanceof Array)\n return element.forEach(function (el) { return bind(el, event, handler, options); });\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: function () { return element.removeEventListener(event, handler, options); },\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach(function (evt) {\n Array.prototype.forEach.call(self.element.querySelectorAll(\"[data-\" + evt + \"]\"), function (el) {\n return bind(el, \"click\", self[evt]);\n });\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n var debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n bind(self.daysContainer, \"mouseover\", function (e) {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(self._input, \"keydown\", onKeyDown);\n if (self.calendarContainer !== undefined) {\n bind(self.calendarContainer, \"keydown\", onKeyDown);\n }\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", documentClick);\n bind(window.document, \"focus\", documentClick, { capture: true });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n var selText = function (e) {\n return getEventTarget(e).select();\n };\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined)\n bind(self.secondElement, \"focus\", function () { return self.secondElement && self.secondElement.select(); });\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", function (e) {\n updateTime(e);\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n var jumpTo = jumpDate !== undefined\n ? self.parseDate(jumpDate)\n : self.latestSelectedDateObj ||\n (self.config.minDate && self.config.minDate > self.now\n ? self.config.minDate\n : self.config.maxDate && self.config.maxDate < self.now\n ? self.config.maxDate\n : self.now);\n var oldYear = self.currentYear;\n var oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n }\n catch (e) {\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange &&\n (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n function timeIncrement(e) {\n var eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\"))\n incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n function incrementNumInput(e, delta, inputElem) {\n var target = e && getEventTarget(e);\n var input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n var event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n var fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n var _a = buildWeeks(), weekWrapper = _a.weekWrapper, weekNumbers = _a.weekNumbers;\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n var customAppend = self.config.appendTo !== undefined &&\n self.config.appendTo.nodeType !== undefined;\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode)\n self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n else if (self.config.appendTo !== undefined)\n self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n var wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode)\n self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput)\n wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline)\n (self.config.appendTo !== undefined\n ? self.config.appendTo\n : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, _dayNumber, i) {\n var dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n i % 7 === 6) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"<span class='flatpickr-day'>\" + self.config.getWeek(date) + \"</span>\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n for (var m = startMonth; m != endMonth; m += delta) {\n var month = self.daysContainer.children[m];\n var startIndex = delta > 0 ? 0 : month.children.length - 1;\n var endIndex = delta > 0 ? month.children.length : -1;\n for (var i = startIndex; i != endIndex; i += delta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n var givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n var loopDelta = delta > 0 ? 1 : -1;\n for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n var month = self.daysContainer.children[m];\n var startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n var numMonthDays = month.children.length;\n for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 &&\n isEnabled(c.dateObj) &&\n Math.abs(current.$i - i) >= Math.abs(delta))\n return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n var activeElement = getClosestActiveElement();\n var dayFocused = isInView(activeElement || document.body);\n var startElem = current !== undefined\n ? current\n : dayFocused\n ? activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) {\n self._input.focus();\n }\n else if (!dayFocused) {\n focusOnDayElem(startElem);\n }\n else {\n getNextAvailableDay(startElem, offset);\n }\n }\n function buildMonthDays(year, month) {\n var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n var daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n var dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n if (self.weekNumbers)\n clearNode(self.weekNumbers);\n var frag = document.createDocumentFragment();\n for (var i = 0; i < self.config.showMonths; i++) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType !== \"dropdown\")\n return;\n var shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined &&\n self.currentYear === self.config.minDate.getFullYear() &&\n month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined &&\n self.currentYear === self.config.maxDate.getFullYear() &&\n month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (var i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n var month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n var container = createElement(\"div\", \"flatpickr-month\");\n var monthNavFragment = window.document.createDocumentFragment();\n var monthElement;\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n }\n else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", function (e) {\n var target = getEventTarget(e);\n var selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n var yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n var yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled =\n !!self.config.minDate &&\n self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n var currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container: container,\n yearElement: yearElement,\n monthElement: monthElement,\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (var m = self.config.showMonths; m--;) {\n var month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: function () { return self.__hidePrevMonthArrow; },\n set: function (bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n },\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: function () { return self.__hideNextMonthArrow; },\n set: function (bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n },\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar)\n self.calendarContainer.classList.add(\"noCalendar\");\n var defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n var separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n var hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n var minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel,\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getHours()\n : self.config.time_24hr\n ? defaults.hours\n : military2ampm(defaults.hours));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : defaults.minutes);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.hourElement.setAttribute(\"maxlength\", \"2\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.minuteElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr)\n self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n var secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getSeconds()\n : defaults.seconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.secondElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n ? self.hourElement.value\n : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n return self.timeContainer;\n }\n function buildWeekdays() {\n if (!self.weekdayContainer)\n self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n else\n clearNode(self.weekdayContainer);\n for (var i = self.config.showMonths; i--;) {\n var container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n var firstDayOfWeek = self.l10n.firstDayOfWeek;\n var weekdays = __spreadArrays(self.l10n.weekdays.shorthand);\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek));\n }\n for (var i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = \"\\n <span class='flatpickr-weekday'>\\n \" + weekdays.join(\"</span><span class='flatpickr-weekday'>\") + \"\\n </span>\\n \";\n }\n }\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n var weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n var weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper: weekWrapper,\n weekNumbers: weekNumbers,\n };\n }\n function changeMonth(value, isOffset) {\n if (isOffset === void 0) { isOffset = true; }\n var delta = isOffset ? value : value - self.currentMonth;\n if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n (delta > 0 && self._hideNextMonthArrow === true))\n return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear(triggerChangeEvent, toInitial) {\n if (triggerChangeEvent === void 0) { triggerChangeEvent = true; }\n if (toInitial === void 0) { toInitial = true; }\n self.input.value = \"\";\n if (self.altInput !== undefined)\n self.altInput.value = \"\";\n if (self.mobileInput !== undefined)\n self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n if (self.config.enableTime === true) {\n var _a = getDefaultHours(self.config), hours = _a.hours, minutes = _a.minutes, seconds = _a.seconds;\n setHours(hours, minutes, seconds);\n }\n self.redraw();\n if (triggerChangeEvent)\n triggerEvent(\"onChange\");\n }\n function close() {\n self.isOpen = false;\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n triggerEvent(\"onClose\");\n }\n function destroy() {\n if (self.config !== undefined)\n triggerEvent(\"onDestroy\");\n for (var i = self._handlers.length; i--;) {\n self._handlers[i].remove();\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode)\n self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n }\n else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n var wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild)\n wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n }\n else\n self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode)\n self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n [\n \"_showTimeInput\",\n \"latestSelectedDateObj\",\n \"_hideNextMonthArrow\",\n \"_hidePrevMonthArrow\",\n \"__hideNextMonthArrow\",\n \"__hidePrevMonthArrow\",\n \"isMobile\",\n \"isOpen\",\n \"selectedDateElem\",\n \"minDateHasTime\",\n \"maxDateHasTime\",\n \"days\",\n \"daysContainer\",\n \"_input\",\n \"_positionElement\",\n \"innerContainer\",\n \"rContainer\",\n \"monthNav\",\n \"todayDateElem\",\n \"calendarContainer\",\n \"weekdayContainer\",\n \"prevMonthNav\",\n \"nextMonthNav\",\n \"monthsDropdownContainer\",\n \"currentMonthElement\",\n \"currentYearElement\",\n \"navigationCurrentMonth\",\n \"selectedDateElem\",\n \"config\",\n ].forEach(function (k) {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n var eventTarget_1 = getEventTarget(e);\n var isCalendarElement = isCalendarElem(eventTarget_1);\n var isInput = eventTarget_1 === self.input ||\n eventTarget_1 === self.altInput ||\n self.element.contains(eventTarget_1) ||\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n var lostFocus = !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {\n return elem.contains(eventTarget_1);\n });\n if (lostFocus && isIgnored) {\n if (self.config.allowInput) {\n self.setDate(self._input.value, false, self.config.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined &&\n self.input.value !== \"\" &&\n self.input.value !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config &&\n self.config.mode === \"range\" &&\n self.selectedDates.length === 1)\n self.clear(false);\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n var newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate &&\n self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n }\n else if (self.config.minDate &&\n self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date, timeless) {\n var _a;\n if (timeless === void 0) { timeless = true; }\n var dateToCheck = self.parseDate(date, undefined, timeless);\n if ((self.config.minDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n (self.config.maxDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n return false;\n if (!self.config.enable && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n var bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (var i = 0, d = void 0; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" &&\n d(dateToCheck))\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n return bool;\n else if (typeof d === \"string\") {\n var parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (typeof d === \"object\" &&\n dateToCheck !== undefined &&\n d.from &&\n d.to &&\n dateToCheck.getTime() >= d.from.getTime() &&\n dateToCheck.getTime() <= d.to.getTime())\n return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined)\n return (elem.className.indexOf(\"hidden\") === -1 &&\n elem.className.indexOf(\"flatpickr-disabled\") === -1 &&\n self.daysContainer.contains(elem));\n return false;\n }\n function onBlur(e) {\n var isInput = e.target === self._input;\n var valueChanged = self._input.value.trimEnd() !== getDateStr();\n if (isInput &&\n valueChanged &&\n !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n }\n function onKeyDown(e) {\n var eventTarget = getEventTarget(e);\n var isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n var allowInput = self.config.allowInput;\n var allowKeydown = self.isOpen && (!allowInput || !isInput);\n var allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n self.close();\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n var isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(eventTarget);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n }\n else\n selectDate(e);\n break;\n case 27:\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n var activeElement = getClosestActiveElement();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (activeElement && isInView(activeElement)))) {\n var delta_1 = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta_1);\n else {\n e.stopPropagation();\n changeMonth(delta_1);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n }\n else if (self.hourElement)\n self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n var delta = e.keyCode === 40 ? 1 : -1;\n if ((self.daysContainer &&\n eventTarget.$i !== undefined) ||\n eventTarget === self.input ||\n eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n else if (!isTimeObj)\n focusOnDay(undefined, delta * 7);\n }\n else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n }\n else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement)\n self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n var elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter(function (x) { return x; });\n var i = elems.indexOf(eventTarget);\n if (i !== -1) {\n var target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n }\n else if (!self.config.noCalendar &&\n self.daysContainer &&\n self.daysContainer.contains(eventTarget) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem, cellClass) {\n if (cellClass === void 0) { cellClass = \"flatpickr-day\"; }\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(cellClass) ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n var hoverDate = elem\n ? elem.dateObj.getTime()\n : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n var containsDisabled = false;\n var minRange = 0, maxRange = 0;\n for (var t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled =\n containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n if (t < initialDate && (!minRange || t > minRange))\n minRange = t;\n else if (t > initialDate && (!maxRange || t < maxRange))\n maxRange = t;\n }\n }\n var hoverableCells = Array.from(self.rContainer.querySelectorAll(\"*:nth-child(-n+\" + self.config.showMonths + \") > .\" + cellClass));\n hoverableCells.forEach(function (dayElem) {\n var date = dayElem.dateObj;\n var timestamp = date.getTime();\n var outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n return;\n }\n else if (containsDisabled && !outOfRange)\n return;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n ? \"startRange\"\n : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n });\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement) {\n if (positionElement === void 0) { positionElement = self._positionElement; }\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n var eventTarget = getEventTarget(e);\n if (eventTarget) {\n eventTarget.blur();\n }\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n else if (self._input.disabled || self.config.inline) {\n return;\n }\n var wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false &&\n (e === undefined ||\n !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(function () { return self.hourElement.select(); }, 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return function (date) {\n var dateObj = (self.config[\"_\" + type + \"Date\"] = self.parseDate(date, self.config.dateFormat));\n var inverseDateObj = self.config[\"_\" + (type === \"min\" ? \"max\" : \"min\") + \"Date\"];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n dateObj.getHours() > 0 ||\n dateObj.getMinutes() > 0 ||\n dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter(function (d) { return isEnabled(d); });\n if (!self.selectedDates.length && type === \"min\")\n setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined)\n self.currentYearElement[type] = dateObj.getFullYear().toString();\n else\n self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled =\n !!inverseDateObj &&\n dateObj !== undefined &&\n inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n var boolOpts = [\n \"wrap\",\n \"weekNumbers\",\n \"allowInput\",\n \"allowInvalidPreload\",\n \"clickOpens\",\n \"time_24hr\",\n \"enableTime\",\n \"noCalendar\",\n \"altInput\",\n \"shorthandCurrentMonth\",\n \"inline\",\n \"static\",\n \"enableSeconds\",\n \"disableMobile\",\n ];\n var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n var formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: function () { return self.config._enable; },\n set: function (dates) {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: function () { return self.config._disable; },\n set: function (dates) {\n self.config._disable = parseDateRules(dates);\n },\n });\n var timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n var defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaultOptions.dateFormat;\n formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n var defaultAltFormat = flatpickr.defaultConfig.altFormat || defaultOptions.altFormat;\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : defaultAltFormat + (\" h:i\" + (userConfig.enableSeconds ? \":S\" : \"\") + \" K\");\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: function () { return self.config._minDate; },\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: function () { return self.config._maxDate; },\n set: minMaxDateSetter(\"max\"),\n });\n var minMaxTimeSetter = function (type) { return function (val) {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n }; };\n Object.defineProperty(self.config, \"minTime\", {\n get: function () { return self.config._minTime; },\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: function () { return self.config._maxTime; },\n set: minMaxTimeSetter(\"max\"),\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (var i = 0; i < boolOpts.length; i++)\n self.config[boolOpts[i]] =\n self.config[boolOpts[i]] === true ||\n self.config[boolOpts[i]] === \"true\";\n HOOKS.filter(function (hook) { return self.config[hook] !== undefined; }).forEach(function (hook) {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile =\n !self.config.disableMobile &&\n !self.config.inline &&\n self.config.mode === \"single\" &&\n !self.config.disable.length &&\n !self.config.enable &&\n !self.config.weekNumbers &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (var i = 0; i < self.config.plugins.length; i++) {\n var pluginConf = self.config.plugins[i](self) || {};\n for (var key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key])\n .map(bindToInstance)\n .concat(self.config[key]);\n }\n else if (typeof userConfig[key] === \"undefined\")\n self.config[key] = pluginConf[key];\n }\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass =\n getInputElem().className + \" \" + self.config.altInputClass;\n }\n triggerEvent(\"onParseConfig\");\n }\n function getInputElem() {\n return self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" &&\n typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n self.config.errorHandler(new Error(\"flatpickr: invalid locale \" + self.config.locale));\n self.l10n = __assign(__assign({}, flatpickr.l10ns.default), (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.D = \"(\" + self.l10n.weekdays.shorthand.join(\"|\") + \")\";\n tokenRegex.l = \"(\" + self.l10n.weekdays.longhand.join(\"|\") + \")\";\n tokenRegex.M = \"(\" + self.l10n.months.shorthand.join(\"|\") + \")\";\n tokenRegex.F = \"(\" + self.l10n.months.longhand.join(\"|\") + \")\";\n tokenRegex.K = \"(\" + self.l10n.amPM[0] + \"|\" + self.l10n.amPM[1] + \"|\" + self.l10n.amPM[0].toLowerCase() + \"|\" + self.l10n.amPM[1].toLowerCase() + \")\";\n var userConfig = __assign(__assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined &&\n flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n }\n function positionCalendar(customPositionElement) {\n if (typeof self.config.position === \"function\") {\n return void self.config.position(self, customPositionElement);\n }\n if (self.calendarContainer === undefined)\n return;\n triggerEvent(\"onPreCalendarPosition\");\n var positionElement = customPositionElement || self._positionElement;\n var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, (function (acc, child) { return acc + child.offsetHeight; }), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n (configPosVertical !== \"below\" &&\n distanceFromBottom < calendarHeight &&\n inputBounds.top > calendarHeight);\n var top = window.pageYOffset +\n inputBounds.top +\n (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline)\n return;\n var left = window.pageXOffset + inputBounds.left;\n var isCenter = false;\n var isRight = false;\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n }\n else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n var right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n var rightMost = left + calendarWidth > window.document.body.offsetWidth;\n var centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static)\n return;\n self.calendarContainer.style.top = top + \"px\";\n if (!rightMost) {\n self.calendarContainer.style.left = left + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = right + \"px\";\n }\n else {\n var doc = getDocumentStyleSheet();\n if (doc === undefined)\n return;\n var bodyWidth = window.document.body.offsetWidth;\n var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n var centerBefore = \".flatpickr-calendar.centerMost:before\";\n var centerAfter = \".flatpickr-calendar.centerMost:after\";\n var centerIndex = doc.cssRules.length;\n var centerStyle = \"{left:\" + inputBounds.left + \"px;right:auto;}\";\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(centerBefore + \",\" + centerAfter + centerStyle, centerIndex);\n self.calendarContainer.style.left = centerLeft + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function getDocumentStyleSheet() {\n var editableSheet = null;\n for (var i = 0; i < document.styleSheets.length; i++) {\n var sheet = document.styleSheets[i];\n if (!sheet.cssRules)\n continue;\n try {\n sheet.cssRules;\n }\n catch (err) {\n continue;\n }\n editableSheet = sheet;\n break;\n }\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n function createStyleSheet() {\n var style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.msMaxTouchPoints !== undefined) {\n setTimeout(self.close, 0);\n }\n else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n var isSelectable = function (day) {\n return day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n };\n var t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n var target = t;\n var selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n selectedDate.getMonth() >\n self.currentMonth + self.config.showMonths - 1) &&\n self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\")\n self.selectedDates = [selectedDate];\n else if (self.config.mode === \"multiple\") {\n var selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex)\n self.selectedDates.splice(parseInt(selectedIndex), 1);\n else\n self.selectedDates.push(selectedDate);\n }\n else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n var isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (!shouldChangeMonth &&\n self.config.mode !== \"range\" &&\n self.config.showMonths === 1)\n focusOnDayElem(target);\n else if (self.selectedDateElem !== undefined &&\n self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined)\n self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n var single = self.config.mode === \"single\" && !self.config.enableTime;\n var range = self.config.mode === \"range\" &&\n self.selectedDates.length === 2 &&\n !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n var CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n positionElement: [updatePositionElement],\n clickOpens: [\n function () {\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n else {\n self._input.removeEventListener(\"focus\", self.open);\n self._input.removeEventListener(\"click\", self.open);\n }\n },\n ],\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (var key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach(function (x) { return x(); });\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach(function (x) { return x(); });\n else if (HOOKS.indexOf(option) > -1)\n self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(true);\n }\n function setSelectedDate(inputDate, format) {\n var dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map(function (d) { return self.parseDate(d, format); });\n else if (inputDate instanceof Date || typeof inputDate === \"number\")\n dates = [self.parseDate(inputDate, format)];\n else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n case \"multiple\":\n dates = inputDate\n .split(self.config.conjunction)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n default:\n break;\n }\n }\n else\n self.config.errorHandler(new Error(\"Invalid date supplied: \" + JSON.stringify(inputDate)));\n self.selectedDates = (self.config.allowInvalidPreload\n ? dates\n : dates.filter(function (d) { return d instanceof Date && isEnabled(d, false); }));\n if (self.config.mode === \"range\")\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n function setDate(date, triggerChange, format) {\n if (triggerChange === void 0) { triggerChange = false; }\n if (format === void 0) { format = self.config.dateFormat; }\n if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange)\n triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr\n .slice()\n .map(function (rule) {\n if (typeof rule === \"string\" ||\n typeof rule === \"number\" ||\n rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n }\n else if (rule &&\n typeof rule === \"object\" &&\n rule.from &&\n rule.to)\n return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined),\n };\n return rule;\n })\n .filter(function (x) { return x; });\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n var preloadedDate = self.config.defaultDate ||\n ((self.input.nodeName === \"INPUT\" ||\n self.input.nodeName === \"TEXTAREA\") &&\n self.input.placeholder &&\n self.input.value === self.input.placeholder\n ? null\n : self.input.value);\n if (preloadedDate)\n setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate =\n self.selectedDates.length > 0\n ? self.selectedDates[0]\n : self.config.minDate &&\n self.config.minDate.getTime() > self.now.getTime()\n ? self.config.minDate\n : self.config.maxDate &&\n self.config.maxDate.getTime() < self.now.getTime()\n ? self.config.maxDate\n : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0)\n self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined)\n self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined)\n self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime =\n !!self.config.minDate &&\n (self.config.minDate.getHours() > 0 ||\n self.config.minDate.getMinutes() > 0 ||\n self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime =\n !!self.config.maxDate &&\n (self.config.maxDate.getHours() > 0 ||\n self.config.maxDate.getMinutes() > 0 ||\n self.config.maxDate.getSeconds() > 0);\n }\n function setupInputs() {\n self.input = getInputElem();\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n updatePositionElement();\n }\n function updatePositionElement() {\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n var inputType = self.config.enableTime\n ? self.config.noCalendar\n ? \"time\"\n : \"datetime-local\"\n : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr =\n inputType === \"datetime-local\"\n ? \"Y-m-d\\\\TH:i:S\"\n : inputType === \"date\"\n ? \"Y-m-d\"\n : \"H:i:S\";\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n if (self.config.minDate)\n self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate)\n self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\"))\n self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined)\n self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode)\n self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n }\n catch (_a) { }\n bind(self.mobileInput, \"change\", function (e) {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true)\n return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n if (self.config === undefined)\n return;\n var hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (var i = 0; hooks[i] && i < hooks.length; i++)\n hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n var e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (var i = 0; i < self.selectedDates.length; i++) {\n var selectedDate = self.selectedDates[i];\n if (selectedDate instanceof Date &&\n compareDates(selectedDate, date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach(function (yearElement, i) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n }\n else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow =\n self.config.minDate !== undefined &&\n (self.currentYear === self.config.minDate.getFullYear()\n ? self.currentMonth <= self.config.minDate.getMonth()\n : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow =\n self.config.maxDate !== undefined &&\n (self.currentYear === self.config.maxDate.getFullYear()\n ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(specificFormat) {\n var format = specificFormat ||\n (self.config.altInput ? self.config.altFormat : self.config.dateFormat);\n return self.selectedDates\n .map(function (dObj) { return self.formatDate(dObj, format); })\n .filter(function (d, i, arr) {\n return self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i;\n })\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n function updateValue(triggerChange) {\n if (triggerChange === void 0) { triggerChange = true; }\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value =\n self.latestSelectedDateObj !== undefined\n ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n : \"\";\n }\n self.input.value = getDateStr(self.config.dateFormat);\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n if (triggerChange !== false)\n triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n var eventTarget = getEventTarget(e);\n var isPrevMonth = self.prevMonthNav.contains(eventTarget);\n var isNextMonth = self.nextMonthNav.contains(eventTarget);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n }\n else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n var isKeyDown = e.type === \"keydown\", eventTarget = getEventTarget(e), input = eventTarget;\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n var min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n var newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n var isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue =\n max +\n newValue +\n int(!isHourElem) +\n (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem)\n incrementNumInput(undefined, -1, self.hourElement);\n }\n else if (newValue > max) {\n newValue =\n input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem)\n incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM &&\n isHourElem &&\n (step === 1\n ? newValue + curValue === 23\n : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n}\nfunction _flatpickr(nodeList, config) {\n var nodes = Array.prototype.slice\n .call(nodeList)\n .filter(function (x) { return x instanceof HTMLElement; });\n var instances = [];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null)\n continue;\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n node._flatpickr = undefined;\n }\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n }\n catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n}\nvar flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n }\n else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n }\n else {\n return _flatpickr(selector, config);\n }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n en: __assign({}, English),\n default: __assign({}, English),\n};\nflatpickr.localize = function (l10n) {\n flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = function (config) {\n flatpickr.defaultConfig = __assign(__assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = createDateParser({});\nflatpickr.formatDate = createDateFormatter({});\nflatpickr.compareDates = compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n}\nDate.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n}\nexport default flatpickr;\n","const includedEvents = [\n 'onChange',\n 'onClose',\n 'onDestroy',\n 'onMonthChange',\n 'onOpen',\n 'onYearChange',\n];\n// Let's not emit these events by default\nconst excludedEvents = [\n 'onValueUpdate',\n 'onDayCreate',\n 'onParseConfig',\n 'onReady',\n 'onPreCalendarPosition',\n 'onKeyDown',\n];\nexport { includedEvents, excludedEvents };\n","function camelToKebab(string) {\n return string.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nfunction arrayify(obj) {\n return obj instanceof Array\n ? obj\n : [obj];\n}\nfunction nullify(value) {\n return (value && value.length)\n ? value\n : null;\n}\nexport { camelToKebab, nullify, arrayify };\n","import flatpickr from 'flatpickr';\nimport { defineComponent, h, nextTick } from 'vue';\nimport { excludedEvents, includedEvents } from './events';\nimport { camelToKebab, nullify, arrayify } from './util';\n// Keep a copy of all events for later use\nconst allEvents = [...includedEvents, ...excludedEvents];\n// Passing these properties in `fp.set()` method will cause flatpickr to trigger some callbacks\nconst configCallbacks = ['locale', 'showMonths'];\nexport default defineComponent({\n name: 'FlatPickr',\n compatConfig: {\n MODE: 3,\n },\n render() {\n return h('input', {\n type: 'text',\n 'data-input': true,\n disabled: this.disabled,\n onInput: this.onInput,\n });\n },\n emits: [\n 'blur',\n 'update:modelValue',\n ...allEvents.map(camelToKebab)\n ],\n props: {\n modelValue: {\n type: [String, Number, Date, Array, null],\n required: true,\n },\n // https://flatpickr.js.org/options/\n config: {\n type: Object,\n default: () => ({\n defaultDate: null,\n wrap: false,\n })\n },\n events: {\n type: Array,\n default: () => includedEvents\n },\n disabled: {\n type: Boolean,\n default: false\n },\n },\n data() {\n return {\n fp: null, //todo make it non-reactive\n };\n },\n mounted() {\n // Return early if flatpickr is already loaded\n /* istanbul ignore if */\n if (this.fp)\n return;\n // Init flatpickr\n this.fp = flatpickr(this.getElem(), this.prepareConfig());\n // Attach blur event\n this.fpInput().addEventListener('blur', this.onBlur);\n // Immediate watch will fail before fp is set,\n // so we need to start watching after mount\n this.$watch('disabled', this.watchDisabled, {\n immediate: true\n });\n },\n methods: {\n prepareConfig() {\n // Don't mutate original object on parent component\n let safeConfig = Object.assign({}, this.config);\n this.events.forEach((hook) => {\n // Respect global callbacks registered via setDefault() method\n let globalCallbacks = flatpickr.defaultConfig[hook] || [];\n // Inject our own method along with user's callbacks\n let localCallback = (...args) => {\n this.$emit(camelToKebab(hook), ...args);\n };\n // Overwrite with merged array\n safeConfig[hook] = arrayify(safeConfig[hook] || []).concat(globalCallbacks, localCallback);\n });\n const onCloseCb = this.onClose.bind(this);\n safeConfig['onClose'] = arrayify(safeConfig['onClose'] || []).concat(onCloseCb);\n // Set initial date without emitting any event\n safeConfig.defaultDate = this.modelValue || safeConfig.defaultDate;\n return safeConfig;\n },\n /**\n * Get the HTML node where flatpickr to be attached\n * Bind on parent element if wrap is true\n */\n getElem() {\n return this.config.wrap ? this.$el.parentNode : this.$el;\n },\n /**\n * Watch for value changed by date-picker itself and notify parent component\n */\n onInput(event) {\n const input = event.target;\n // Let's wait for DOM to be updated\n nextTick().then(() => {\n this.$emit('update:modelValue', nullify(input.value));\n });\n },\n fpInput() {\n return this.fp.altInput || this.fp.input;\n },\n /**\n * Blur event is required by many validation libraries\n */\n onBlur(event) {\n this.$emit('blur', nullify(event.target.value));\n },\n /**\n * Flatpickr does not emit input event in some cases\n */\n onClose(selectedDates, dateStr) {\n this.$emit('update:modelValue', dateStr);\n },\n /**\n * Watch for the disabled property and sets the value to the real input.\n */\n watchDisabled(newState) {\n if (newState) {\n this.fpInput().setAttribute('disabled', '');\n }\n else {\n this.fpInput().removeAttribute('disabled');\n }\n }\n },\n watch: {\n /**\n * Watch for any config changes and redraw date-picker\n */\n config: {\n deep: true,\n handler(newConfig) {\n if (!this.fp)\n return;\n let safeConfig = Object.assign({}, newConfig);\n // Workaround: Don't pass hooks to configs again otherwise\n // previously registered hooks will stop working\n // Notice: we are looping through all events\n // This also means that new callbacks can not be passed once component has been initialized\n allEvents.forEach((hook) => {\n delete safeConfig[hook];\n });\n this.fp.set(safeConfig);\n // Workaround: Allow to change locale dynamically\n configCallbacks.forEach((name) => {\n if (typeof safeConfig[name] !== 'undefined') {\n this.fp.set(name, safeConfig[name]);\n }\n });\n }\n },\n /**\n * Watch for changes from parent component and update DOM\n */\n modelValue(newValue) {\n var _a;\n // Prevent updates if v-model value is same as input's current value\n if (!this.$el || newValue === nullify(this.$el.value))\n return;\n // Notify flatpickr instance that there is a change in value\n (_a = this.fp) === null || _a === void 0 ? void 0 : _a.setDate(newValue, true);\n }\n },\n beforeUnmount() {\n /* istanbul ignore else */\n if (!this.fp)\n return;\n this.fpInput().removeEventListener('blur', this.onBlur);\n this.fp.destroy();\n this.fp = null;\n }\n});\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.index = {}));\n}(this, (function (exports) { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\n\n var fp = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Arabic = {\n weekdays: {\n shorthand: [\"أحد\", \"اثنين\", \"ثلاثاء\", \"أربعاء\", \"خميس\", \"جمعة\", \"سبت\"],\n longhand: [\n \"الأحد\",\n \"الاثنين\",\n \"الثلاثاء\",\n \"الأربعاء\",\n \"الخميس\",\n \"الجمعة\",\n \"السبت\",\n ],\n },\n months: {\n shorthand: [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"],\n longhand: [\n \"يناير\",\n \"فبراير\",\n \"مارس\",\n \"أبريل\",\n \"مايو\",\n \"يونيو\",\n \"يوليو\",\n \"أغسطس\",\n \"سبتمبر\",\n \"أكتوبر\",\n \"نوفمبر\",\n \"ديسمبر\",\n ],\n },\n firstDayOfWeek: 6,\n rangeSeparator: \" إلى \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"قم بالتمرير للزيادة\",\n toggleTitle: \"اضغط للتبديل\",\n amPM: [\"ص\", \"م\"],\n yearAriaLabel: \"سنة\",\n monthAriaLabel: \"شهر\",\n hourAriaLabel: \"ساعة\",\n minuteAriaLabel: \"دقيقة\",\n time_24hr: false,\n };\n fp.l10ns.ar = Arabic;\n fp.l10ns;\n\n var fp$1 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Austria = {\n weekdays: {\n shorthand: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\"],\n longhand: [\n \"Sonntag\",\n \"Montag\",\n \"Dienstag\",\n \"Mittwoch\",\n \"Donnerstag\",\n \"Freitag\",\n \"Samstag\",\n ],\n },\n months: {\n shorthand: [\n \"Jän\",\n \"Feb\",\n \"Mär\",\n \"Apr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dez\",\n ],\n longhand: [\n \"Jänner\",\n \"Februar\",\n \"März\",\n \"April\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Dezember\",\n ],\n },\n firstDayOfWeek: 1,\n weekAbbreviation: \"KW\",\n rangeSeparator: \" bis \",\n scrollTitle: \"Zum Ändern scrollen\",\n toggleTitle: \"Zum Umschalten klicken\",\n time_24hr: true,\n };\n fp$1.l10ns.at = Austria;\n fp$1.l10ns;\n\n var fp$2 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Azerbaijan = {\n weekdays: {\n shorthand: [\"B.\", \"B.e.\", \"Ç.a.\", \"Ç.\", \"C.a.\", \"C.\", \"Ş.\"],\n longhand: [\n \"Bazar\",\n \"Bazar ertəsi\",\n \"Çərşənbə axşamı\",\n \"Çərşənbə\",\n \"Cümə axşamı\",\n \"Cümə\",\n \"Şənbə\",\n ],\n },\n months: {\n shorthand: [\n \"Yan\",\n \"Fev\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"İyn\",\n \"İyl\",\n \"Avq\",\n \"Sen\",\n \"Okt\",\n \"Noy\",\n \"Dek\",\n ],\n longhand: [\n \"Yanvar\",\n \"Fevral\",\n \"Mart\",\n \"Aprel\",\n \"May\",\n \"İyun\",\n \"İyul\",\n \"Avqust\",\n \"Sentyabr\",\n \"Oktyabr\",\n \"Noyabr\",\n \"Dekabr\",\n ],\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \".\";\n },\n rangeSeparator: \" - \",\n weekAbbreviation: \"Hf\",\n scrollTitle: \"Artırmaq üçün sürüşdürün\",\n toggleTitle: \"Aç / Bağla\",\n amPM: [\"GƏ\", \"GS\"],\n time_24hr: true,\n };\n fp$2.l10ns.az = Azerbaijan;\n fp$2.l10ns;\n\n var fp$3 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Belarusian = {\n weekdays: {\n shorthand: [\"Нд\", \"Пн\", \"Аў\", \"Ср\", \"Чц\", \"Пт\", \"Сб\"],\n longhand: [\n \"Нядзеля\",\n \"Панядзелак\",\n \"Аўторак\",\n \"Серада\",\n \"Чацвер\",\n \"Пятніца\",\n \"Субота\",\n ],\n },\n months: {\n shorthand: [\n \"Сту\",\n \"Лют\",\n \"Сак\",\n \"Кра\",\n \"Тра\",\n \"Чэр\",\n \"Ліп\",\n \"Жні\",\n \"Вер\",\n \"Кас\",\n \"Ліс\",\n \"Сне\",\n ],\n longhand: [\n \"Студзень\",\n \"Люты\",\n \"Сакавік\",\n \"Красавік\",\n \"Травень\",\n \"Чэрвень\",\n \"Ліпень\",\n \"Жнівень\",\n \"Верасень\",\n \"Кастрычнік\",\n \"Лістапад\",\n \"Снежань\",\n ],\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"\";\n },\n rangeSeparator: \" — \",\n weekAbbreviation: \"Тыд.\",\n scrollTitle: \"Пракруціце для павелічэння\",\n toggleTitle: \"Націсніце для пераключэння\",\n amPM: [\"ДП\", \"ПП\"],\n yearAriaLabel: \"Год\",\n time_24hr: true,\n };\n fp$3.l10ns.be = Belarusian;\n fp$3.l10ns;\n\n var fp$4 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Bosnian = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"Ned\", \"Pon\", \"Uto\", \"Sri\", \"Čet\", \"Pet\", \"Sub\"],\n longhand: [\n \"Nedjelja\",\n \"Ponedjeljak\",\n \"Utorak\",\n \"Srijeda\",\n \"Četvrtak\",\n \"Petak\",\n \"Subota\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Maj\",\n \"Jun\",\n \"Jul\",\n \"Avg\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"Januar\",\n \"Februar\",\n \"Mart\",\n \"April\",\n \"Maj\",\n \"Juni\",\n \"Juli\",\n \"Avgust\",\n \"Septembar\",\n \"Oktobar\",\n \"Novembar\",\n \"Decembar\",\n ],\n },\n time_24hr: true,\n };\n fp$4.l10ns.bs = Bosnian;\n fp$4.l10ns;\n\n var fp$5 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Bulgarian = {\n weekdays: {\n shorthand: [\"Нд\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\"],\n longhand: [\n \"Неделя\",\n \"Понеделник\",\n \"Вторник\",\n \"Сряда\",\n \"Четвъртък\",\n \"Петък\",\n \"Събота\",\n ],\n },\n months: {\n shorthand: [\n \"Яну\",\n \"Фев\",\n \"Март\",\n \"Апр\",\n \"Май\",\n \"Юни\",\n \"Юли\",\n \"Авг\",\n \"Сеп\",\n \"Окт\",\n \"Ное\",\n \"Дек\",\n ],\n longhand: [\n \"Януари\",\n \"Февруари\",\n \"Март\",\n \"Април\",\n \"Май\",\n \"Юни\",\n \"Юли\",\n \"Август\",\n \"Септември\",\n \"Октомври\",\n \"Ноември\",\n \"Декември\",\n ],\n },\n time_24hr: true,\n firstDayOfWeek: 1,\n };\n fp$5.l10ns.bg = Bulgarian;\n fp$5.l10ns;\n\n var fp$6 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Bangla = {\n weekdays: {\n shorthand: [\"রবি\", \"সোম\", \"মঙ্গল\", \"বুধ\", \"বৃহস্পতি\", \"শুক্র\", \"শনি\"],\n longhand: [\n \"রবিবার\",\n \"সোমবার\",\n \"মঙ্গলবার\",\n \"বুধবার\",\n \"বৃহস্পতিবার\",\n \"শুক্রবার\",\n \"শনিবার\",\n ],\n },\n months: {\n shorthand: [\n \"জানু\",\n \"ফেব্রু\",\n \"মার্চ\",\n \"এপ্রিল\",\n \"মে\",\n \"জুন\",\n \"জুলাই\",\n \"আগ\",\n \"সেপ্টে\",\n \"অক্টো\",\n \"নভে\",\n \"ডিসে\",\n ],\n longhand: [\n \"জানুয়ারী\",\n \"ফেব্রুয়ারী\",\n \"মার্চ\",\n \"এপ্রিল\",\n \"মে\",\n \"জুন\",\n \"জুলাই\",\n \"আগস্ট\",\n \"সেপ্টেম্বর\",\n \"অক্টোবর\",\n \"নভেম্বর\",\n \"ডিসেম্বর\",\n ],\n },\n };\n fp$6.l10ns.bn = Bangla;\n fp$6.l10ns;\n\n var fp$7 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Catalan = {\n weekdays: {\n shorthand: [\"Dg\", \"Dl\", \"Dt\", \"Dc\", \"Dj\", \"Dv\", \"Ds\"],\n longhand: [\n \"Diumenge\",\n \"Dilluns\",\n \"Dimarts\",\n \"Dimecres\",\n \"Dijous\",\n \"Divendres\",\n \"Dissabte\",\n ],\n },\n months: {\n shorthand: [\n \"Gen\",\n \"Febr\",\n \"Març\",\n \"Abr\",\n \"Maig\",\n \"Juny\",\n \"Jul\",\n \"Ag\",\n \"Set\",\n \"Oct\",\n \"Nov\",\n \"Des\",\n ],\n longhand: [\n \"Gener\",\n \"Febrer\",\n \"Març\",\n \"Abril\",\n \"Maig\",\n \"Juny\",\n \"Juliol\",\n \"Agost\",\n \"Setembre\",\n \"Octubre\",\n \"Novembre\",\n \"Desembre\",\n ],\n },\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"è\";\n switch (s % 10) {\n case 1:\n return \"r\";\n case 2:\n return \"n\";\n case 3:\n return \"r\";\n case 4:\n return \"t\";\n default:\n return \"è\";\n }\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" a \",\n time_24hr: true,\n };\n fp$7.l10ns.cat = fp$7.l10ns.ca = Catalan;\n fp$7.l10ns;\n\n var fp$8 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Kurdish = {\n weekdays: {\n shorthand: [\n \"یەکشەممە\",\n \"دووشەممە\",\n \"سێشەممە\",\n \"چوارشەممە\",\n \"پێنجشەممە\",\n \"هەینی\",\n \"شەممە\",\n ],\n longhand: [\n \"یەکشەممە\",\n \"دووشەممە\",\n \"سێشەممە\",\n \"چوارشەممە\",\n \"پێنجشەممە\",\n \"هەینی\",\n \"شەممە\",\n ],\n },\n months: {\n shorthand: [\n \"ڕێبەندان\",\n \"ڕەشەمە\",\n \"نەورۆز\",\n \"گوڵان\",\n \"جۆزەردان\",\n \"پووشپەڕ\",\n \"گەلاوێژ\",\n \"خەرمانان\",\n \"ڕەزبەر\",\n \"گەڵاڕێزان\",\n \"سەرماوەز\",\n \"بەفرانبار\",\n ],\n longhand: [\n \"ڕێبەندان\",\n \"ڕەشەمە\",\n \"نەورۆز\",\n \"گوڵان\",\n \"جۆزەردان\",\n \"پووشپەڕ\",\n \"گەلاوێژ\",\n \"خەرمانان\",\n \"ڕەزبەر\",\n \"گەڵاڕێزان\",\n \"سەرماوەز\",\n \"بەفرانبار\",\n ],\n },\n firstDayOfWeek: 6,\n ordinal: function () {\n return \"\";\n },\n };\n fp$8.l10ns.ckb = Kurdish;\n fp$8.l10ns;\n\n var fp$9 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Czech = {\n weekdays: {\n shorthand: [\"Ne\", \"Po\", \"Út\", \"St\", \"Čt\", \"Pá\", \"So\"],\n longhand: [\n \"Neděle\",\n \"Pondělí\",\n \"Úterý\",\n \"Středa\",\n \"Čtvrtek\",\n \"Pátek\",\n \"Sobota\",\n ],\n },\n months: {\n shorthand: [\n \"Led\",\n \"Ún\",\n \"Bře\",\n \"Dub\",\n \"Kvě\",\n \"Čer\",\n \"Čvc\",\n \"Srp\",\n \"Zář\",\n \"Říj\",\n \"Lis\",\n \"Pro\",\n ],\n longhand: [\n \"Leden\",\n \"Únor\",\n \"Březen\",\n \"Duben\",\n \"Květen\",\n \"Červen\",\n \"Červenec\",\n \"Srpen\",\n \"Září\",\n \"Říjen\",\n \"Listopad\",\n \"Prosinec\",\n ],\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \".\";\n },\n rangeSeparator: \" do \",\n weekAbbreviation: \"Týd.\",\n scrollTitle: \"Rolujte pro změnu\",\n toggleTitle: \"Přepnout dopoledne/odpoledne\",\n amPM: [\"dop.\", \"odp.\"],\n yearAriaLabel: \"Rok\",\n time_24hr: true,\n };\n fp$9.l10ns.cs = Czech;\n fp$9.l10ns;\n\n var fp$a = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Welsh = {\n weekdays: {\n shorthand: [\"Sul\", \"Llun\", \"Maw\", \"Mer\", \"Iau\", \"Gwe\", \"Sad\"],\n longhand: [\n \"Dydd Sul\",\n \"Dydd Llun\",\n \"Dydd Mawrth\",\n \"Dydd Mercher\",\n \"Dydd Iau\",\n \"Dydd Gwener\",\n \"Dydd Sadwrn\",\n ],\n },\n months: {\n shorthand: [\n \"Ion\",\n \"Chwef\",\n \"Maw\",\n \"Ebr\",\n \"Mai\",\n \"Meh\",\n \"Gorff\",\n \"Awst\",\n \"Medi\",\n \"Hyd\",\n \"Tach\",\n \"Rhag\",\n ],\n longhand: [\n \"Ionawr\",\n \"Chwefror\",\n \"Mawrth\",\n \"Ebrill\",\n \"Mai\",\n \"Mehefin\",\n \"Gorffennaf\",\n \"Awst\",\n \"Medi\",\n \"Hydref\",\n \"Tachwedd\",\n \"Rhagfyr\",\n ],\n },\n firstDayOfWeek: 1,\n ordinal: function (nth) {\n if (nth === 1)\n return \"af\";\n if (nth === 2)\n return \"ail\";\n if (nth === 3 || nth === 4)\n return \"ydd\";\n if (nth === 5 || nth === 6)\n return \"ed\";\n if ((nth >= 7 && nth <= 10) ||\n nth == 12 ||\n nth == 15 ||\n nth == 18 ||\n nth == 20)\n return \"fed\";\n if (nth == 11 ||\n nth == 13 ||\n nth == 14 ||\n nth == 16 ||\n nth == 17 ||\n nth == 19)\n return \"eg\";\n if (nth >= 21 && nth <= 39)\n return \"ain\";\n // Inconclusive.\n return \"\";\n },\n time_24hr: true,\n };\n fp$a.l10ns.cy = Welsh;\n fp$a.l10ns;\n\n var fp$b = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Danish = {\n weekdays: {\n shorthand: [\"søn\", \"man\", \"tir\", \"ons\", \"tors\", \"fre\", \"lør\"],\n longhand: [\n \"søndag\",\n \"mandag\",\n \"tirsdag\",\n \"onsdag\",\n \"torsdag\",\n \"fredag\",\n \"lørdag\",\n ],\n },\n months: {\n shorthand: [\n \"jan\",\n \"feb\",\n \"mar\",\n \"apr\",\n \"maj\",\n \"jun\",\n \"jul\",\n \"aug\",\n \"sep\",\n \"okt\",\n \"nov\",\n \"dec\",\n ],\n longhand: [\n \"januar\",\n \"februar\",\n \"marts\",\n \"april\",\n \"maj\",\n \"juni\",\n \"juli\",\n \"august\",\n \"september\",\n \"oktober\",\n \"november\",\n \"december\",\n ],\n },\n ordinal: function () {\n return \".\";\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" til \",\n weekAbbreviation: \"uge\",\n time_24hr: true,\n };\n fp$b.l10ns.da = Danish;\n fp$b.l10ns;\n\n var fp$c = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var German = {\n weekdays: {\n shorthand: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\"],\n longhand: [\n \"Sonntag\",\n \"Montag\",\n \"Dienstag\",\n \"Mittwoch\",\n \"Donnerstag\",\n \"Freitag\",\n \"Samstag\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mär\",\n \"Apr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dez\",\n ],\n longhand: [\n \"Januar\",\n \"Februar\",\n \"März\",\n \"April\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Dezember\",\n ],\n },\n firstDayOfWeek: 1,\n weekAbbreviation: \"KW\",\n rangeSeparator: \" bis \",\n scrollTitle: \"Zum Ändern scrollen\",\n toggleTitle: \"Zum Umschalten klicken\",\n time_24hr: true,\n };\n fp$c.l10ns.de = German;\n fp$c.l10ns;\n\n var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n };\n\n var fp$d = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Esperanto = {\n firstDayOfWeek: 1,\n rangeSeparator: \" ĝis \",\n weekAbbreviation: \"Sem\",\n scrollTitle: \"Rulumu por pligrandigi la valoron\",\n toggleTitle: \"Klaku por ŝalti\",\n weekdays: {\n shorthand: [\"Dim\", \"Lun\", \"Mar\", \"Mer\", \"Ĵaŭ\", \"Ven\", \"Sab\"],\n longhand: [\n \"dimanĉo\",\n \"lundo\",\n \"mardo\",\n \"merkredo\",\n \"ĵaŭdo\",\n \"vendredo\",\n \"sabato\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Maj\",\n \"Jun\",\n \"Jul\",\n \"Aŭg\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"januaro\",\n \"februaro\",\n \"marto\",\n \"aprilo\",\n \"majo\",\n \"junio\",\n \"julio\",\n \"aŭgusto\",\n \"septembro\",\n \"oktobro\",\n \"novembro\",\n \"decembro\",\n ],\n },\n ordinal: function () {\n return \"-a\";\n },\n time_24hr: true,\n };\n fp$d.l10ns.eo = Esperanto;\n fp$d.l10ns;\n\n var fp$e = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Spanish = {\n weekdays: {\n shorthand: [\"Dom\", \"Lun\", \"Mar\", \"Mié\", \"Jue\", \"Vie\", \"Sáb\"],\n longhand: [\n \"Domingo\",\n \"Lunes\",\n \"Martes\",\n \"Miércoles\",\n \"Jueves\",\n \"Viernes\",\n \"Sábado\",\n ],\n },\n months: {\n shorthand: [\n \"Ene\",\n \"Feb\",\n \"Mar\",\n \"Abr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Ago\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dic\",\n ],\n longhand: [\n \"Enero\",\n \"Febrero\",\n \"Marzo\",\n \"Abril\",\n \"Mayo\",\n \"Junio\",\n \"Julio\",\n \"Agosto\",\n \"Septiembre\",\n \"Octubre\",\n \"Noviembre\",\n \"Diciembre\",\n ],\n },\n ordinal: function () {\n return \"º\";\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" a \",\n time_24hr: true,\n };\n fp$e.l10ns.es = Spanish;\n fp$e.l10ns;\n\n var fp$f = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Estonian = {\n weekdays: {\n shorthand: [\"P\", \"E\", \"T\", \"K\", \"N\", \"R\", \"L\"],\n longhand: [\n \"Pühapäev\",\n \"Esmaspäev\",\n \"Teisipäev\",\n \"Kolmapäev\",\n \"Neljapäev\",\n \"Reede\",\n \"Laupäev\",\n ],\n },\n months: {\n shorthand: [\n \"Jaan\",\n \"Veebr\",\n \"Märts\",\n \"Apr\",\n \"Mai\",\n \"Juuni\",\n \"Juuli\",\n \"Aug\",\n \"Sept\",\n \"Okt\",\n \"Nov\",\n \"Dets\",\n ],\n longhand: [\n \"Jaanuar\",\n \"Veebruar\",\n \"Märts\",\n \"Aprill\",\n \"Mai\",\n \"Juuni\",\n \"Juuli\",\n \"August\",\n \"September\",\n \"Oktoober\",\n \"November\",\n \"Detsember\",\n ],\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \".\";\n },\n weekAbbreviation: \"Näd\",\n rangeSeparator: \" kuni \",\n scrollTitle: \"Keri, et suurendada\",\n toggleTitle: \"Klõpsa, et vahetada\",\n time_24hr: true,\n };\n fp$f.l10ns.et = Estonian;\n fp$f.l10ns;\n\n var fp$g = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Persian = {\n weekdays: {\n shorthand: [\"یک\", \"دو\", \"سه\", \"چهار\", \"پنج\", \"جمعه\", \"شنبه\"],\n longhand: [\n \"یک‌شنبه\",\n \"دوشنبه\",\n \"سه‌شنبه\",\n \"چهارشنبه\",\n \"پنچ‌شنبه\",\n \"جمعه\",\n \"شنبه\",\n ],\n },\n months: {\n shorthand: [\n \"ژانویه\",\n \"فوریه\",\n \"مارس\",\n \"آوریل\",\n \"مه\",\n \"ژوئن\",\n \"ژوئیه\",\n \"اوت\",\n \"سپتامبر\",\n \"اکتبر\",\n \"نوامبر\",\n \"دسامبر\",\n ],\n longhand: [\n \"ژانویه\",\n \"فوریه\",\n \"مارس\",\n \"آوریل\",\n \"مه\",\n \"ژوئن\",\n \"ژوئیه\",\n \"اوت\",\n \"سپتامبر\",\n \"اکتبر\",\n \"نوامبر\",\n \"دسامبر\",\n ],\n },\n firstDayOfWeek: 6,\n ordinal: function () {\n return \"\";\n },\n };\n fp$g.l10ns.fa = Persian;\n fp$g.l10ns;\n\n var fp$h = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Finnish = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"su\", \"ma\", \"ti\", \"ke\", \"to\", \"pe\", \"la\"],\n longhand: [\n \"sunnuntai\",\n \"maanantai\",\n \"tiistai\",\n \"keskiviikko\",\n \"torstai\",\n \"perjantai\",\n \"lauantai\",\n ],\n },\n months: {\n shorthand: [\n \"tammi\",\n \"helmi\",\n \"maalis\",\n \"huhti\",\n \"touko\",\n \"kesä\",\n \"heinä\",\n \"elo\",\n \"syys\",\n \"loka\",\n \"marras\",\n \"joulu\",\n ],\n longhand: [\n \"tammikuu\",\n \"helmikuu\",\n \"maaliskuu\",\n \"huhtikuu\",\n \"toukokuu\",\n \"kesäkuu\",\n \"heinäkuu\",\n \"elokuu\",\n \"syyskuu\",\n \"lokakuu\",\n \"marraskuu\",\n \"joulukuu\",\n ],\n },\n ordinal: function () {\n return \".\";\n },\n time_24hr: true,\n };\n fp$h.l10ns.fi = Finnish;\n fp$h.l10ns;\n\n var fp$i = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Faroese = {\n weekdays: {\n shorthand: [\"Sun\", \"Mán\", \"Týs\", \"Mik\", \"Hós\", \"Frí\", \"Ley\"],\n longhand: [\n \"Sunnudagur\",\n \"Mánadagur\",\n \"Týsdagur\",\n \"Mikudagur\",\n \"Hósdagur\",\n \"Fríggjadagur\",\n \"Leygardagur\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Des\",\n ],\n longhand: [\n \"Januar\",\n \"Februar\",\n \"Mars\",\n \"Apríl\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"Septembur\",\n \"Oktobur\",\n \"Novembur\",\n \"Desembur\",\n ],\n },\n ordinal: function () {\n return \".\";\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" til \",\n weekAbbreviation: \"vika\",\n scrollTitle: \"Rulla fyri at broyta\",\n toggleTitle: \"Trýst fyri at skifta\",\n yearAriaLabel: \"Ár\",\n time_24hr: true,\n };\n fp$i.l10ns.fo = Faroese;\n fp$i.l10ns;\n\n var fp$j = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var French = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"dim\", \"lun\", \"mar\", \"mer\", \"jeu\", \"ven\", \"sam\"],\n longhand: [\n \"dimanche\",\n \"lundi\",\n \"mardi\",\n \"mercredi\",\n \"jeudi\",\n \"vendredi\",\n \"samedi\",\n ],\n },\n months: {\n shorthand: [\n \"janv\",\n \"févr\",\n \"mars\",\n \"avr\",\n \"mai\",\n \"juin\",\n \"juil\",\n \"août\",\n \"sept\",\n \"oct\",\n \"nov\",\n \"déc\",\n ],\n longhand: [\n \"janvier\",\n \"février\",\n \"mars\",\n \"avril\",\n \"mai\",\n \"juin\",\n \"juillet\",\n \"août\",\n \"septembre\",\n \"octobre\",\n \"novembre\",\n \"décembre\",\n ],\n },\n ordinal: function (nth) {\n if (nth > 1)\n return \"\";\n return \"er\";\n },\n rangeSeparator: \" au \",\n weekAbbreviation: \"Sem\",\n scrollTitle: \"Défiler pour augmenter la valeur\",\n toggleTitle: \"Cliquer pour basculer\",\n time_24hr: true,\n };\n fp$j.l10ns.fr = French;\n fp$j.l10ns;\n\n var fp$k = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Greek = {\n weekdays: {\n shorthand: [\"Κυ\", \"Δε\", \"Τρ\", \"Τε\", \"Πέ\", \"Πα\", \"Σά\"],\n longhand: [\n \"Κυριακή\",\n \"Δευτέρα\",\n \"Τρίτη\",\n \"Τετάρτη\",\n \"Πέμπτη\",\n \"Παρασκευή\",\n \"Σάββατο\",\n ],\n },\n months: {\n shorthand: [\n \"Ιαν\",\n \"Φεβ\",\n \"Μάρ\",\n \"Απρ\",\n \"Μάι\",\n \"Ιούν\",\n \"Ιούλ\",\n \"Αύγ\",\n \"Σεπ\",\n \"Οκτ\",\n \"Νοέ\",\n \"Δεκ\",\n ],\n longhand: [\n \"Ιανουάριος\",\n \"Φεβρουάριος\",\n \"Μάρτιος\",\n \"Απρίλιος\",\n \"Μάιος\",\n \"Ιούνιος\",\n \"Ιούλιος\",\n \"Αύγουστος\",\n \"Σεπτέμβριος\",\n \"Οκτώβριος\",\n \"Νοέμβριος\",\n \"Δεκέμβριος\",\n ],\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"\";\n },\n weekAbbreviation: \"Εβδ\",\n rangeSeparator: \" έως \",\n scrollTitle: \"Μετακυλήστε για προσαύξηση\",\n toggleTitle: \"Κάντε κλικ για αλλαγή\",\n amPM: [\"ΠΜ\", \"ΜΜ\"],\n yearAriaLabel: \"χρόνος\",\n monthAriaLabel: \"μήνας\",\n hourAriaLabel: \"ώρα\",\n minuteAriaLabel: \"λεπτό\",\n };\n fp$k.l10ns.gr = Greek;\n fp$k.l10ns;\n\n var fp$l = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Hebrew = {\n weekdays: {\n shorthand: [\"א\", \"ב\", \"ג\", \"ד\", \"ה\", \"ו\", \"ש\"],\n longhand: [\"ראשון\", \"שני\", \"שלישי\", \"רביעי\", \"חמישי\", \"שישי\", \"שבת\"],\n },\n months: {\n shorthand: [\n \"ינו׳\",\n \"פבר׳\",\n \"מרץ\",\n \"אפר׳\",\n \"מאי\",\n \"יוני\",\n \"יולי\",\n \"אוג׳\",\n \"ספט׳\",\n \"אוק׳\",\n \"נוב׳\",\n \"דצמ׳\",\n ],\n longhand: [\n \"ינואר\",\n \"פברואר\",\n \"מרץ\",\n \"אפריל\",\n \"מאי\",\n \"יוני\",\n \"יולי\",\n \"אוגוסט\",\n \"ספטמבר\",\n \"אוקטובר\",\n \"נובמבר\",\n \"דצמבר\",\n ],\n },\n rangeSeparator: \" אל \",\n time_24hr: true,\n };\n fp$l.l10ns.he = Hebrew;\n fp$l.l10ns;\n\n var fp$m = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Hindi = {\n weekdays: {\n shorthand: [\"रवि\", \"सोम\", \"मंगल\", \"बुध\", \"गुरु\", \"शुक्र\", \"शनि\"],\n longhand: [\n \"रविवार\",\n \"सोमवार\",\n \"मंगलवार\",\n \"बुधवार\",\n \"गुरुवार\",\n \"शुक्रवार\",\n \"शनिवार\",\n ],\n },\n months: {\n shorthand: [\n \"जन\",\n \"फर\",\n \"मार्च\",\n \"अप्रेल\",\n \"मई\",\n \"जून\",\n \"जूलाई\",\n \"अग\",\n \"सित\",\n \"अक्ट\",\n \"नव\",\n \"दि\",\n ],\n longhand: [\n \"जनवरी \",\n \"फरवरी\",\n \"मार्च\",\n \"अप्रेल\",\n \"मई\",\n \"जून\",\n \"जूलाई\",\n \"अगस्त \",\n \"सितम्बर\",\n \"अक्टूबर\",\n \"नवम्बर\",\n \"दिसम्बर\",\n ],\n },\n };\n fp$m.l10ns.hi = Hindi;\n fp$m.l10ns;\n\n var fp$n = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Croatian = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"Ned\", \"Pon\", \"Uto\", \"Sri\", \"Čet\", \"Pet\", \"Sub\"],\n longhand: [\n \"Nedjelja\",\n \"Ponedjeljak\",\n \"Utorak\",\n \"Srijeda\",\n \"Četvrtak\",\n \"Petak\",\n \"Subota\",\n ],\n },\n months: {\n shorthand: [\n \"Sij\",\n \"Velj\",\n \"Ožu\",\n \"Tra\",\n \"Svi\",\n \"Lip\",\n \"Srp\",\n \"Kol\",\n \"Ruj\",\n \"Lis\",\n \"Stu\",\n \"Pro\",\n ],\n longhand: [\n \"Siječanj\",\n \"Veljača\",\n \"Ožujak\",\n \"Travanj\",\n \"Svibanj\",\n \"Lipanj\",\n \"Srpanj\",\n \"Kolovoz\",\n \"Rujan\",\n \"Listopad\",\n \"Studeni\",\n \"Prosinac\",\n ],\n },\n time_24hr: true,\n };\n fp$n.l10ns.hr = Croatian;\n fp$n.l10ns;\n\n var fp$o = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Hungarian = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"V\", \"H\", \"K\", \"Sz\", \"Cs\", \"P\", \"Szo\"],\n longhand: [\n \"Vasárnap\",\n \"Hétfő\",\n \"Kedd\",\n \"Szerda\",\n \"Csütörtök\",\n \"Péntek\",\n \"Szombat\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Már\",\n \"Ápr\",\n \"Máj\",\n \"Jún\",\n \"Júl\",\n \"Aug\",\n \"Szep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"Január\",\n \"Február\",\n \"Március\",\n \"Április\",\n \"Május\",\n \"Június\",\n \"Július\",\n \"Augusztus\",\n \"Szeptember\",\n \"Október\",\n \"November\",\n \"December\",\n ],\n },\n ordinal: function () {\n return \".\";\n },\n weekAbbreviation: \"Hét\",\n scrollTitle: \"Görgessen\",\n toggleTitle: \"Kattintson a váltáshoz\",\n rangeSeparator: \" - \",\n time_24hr: true,\n };\n fp$o.l10ns.hu = Hungarian;\n fp$o.l10ns;\n\n var fp$p = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Armenian = {\n weekdays: {\n shorthand: [\"Կիր\", \"Երկ\", \"Երք\", \"Չրք\", \"Հնգ\", \"Ուրբ\", \"Շբթ\"],\n longhand: [\n \"Կիրակի\",\n \"Եկուշաբթի\",\n \"Երեքշաբթի\",\n \"Չորեքշաբթի\",\n \"Հինգշաբթի\",\n \"Ուրբաթ\",\n \"Շաբաթ\",\n ],\n },\n months: {\n shorthand: [\n \"Հնվ\",\n \"Փտր\",\n \"Մար\",\n \"Ապր\",\n \"Մայ\",\n \"Հնս\",\n \"Հլս\",\n \"Օգս\",\n \"Սեպ\",\n \"Հոկ\",\n \"Նմբ\",\n \"Դեկ\",\n ],\n longhand: [\n \"Հունվար\",\n \"Փետրվար\",\n \"Մարտ\",\n \"Ապրիլ\",\n \"Մայիս\",\n \"Հունիս\",\n \"Հուլիս\",\n \"Օգոստոս\",\n \"Սեպտեմբեր\",\n \"Հոկտեմբեր\",\n \"Նոյեմբեր\",\n \"Դեկտեմբեր\",\n ],\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"\";\n },\n rangeSeparator: \" — \",\n weekAbbreviation: \"ՇԲՏ\",\n scrollTitle: \"Ոլորեք՝ մեծացնելու համար\",\n toggleTitle: \"Սեղմեք՝ փոխելու համար\",\n amPM: [\"ՄԿ\", \"ԿՀ\"],\n yearAriaLabel: \"Տարի\",\n monthAriaLabel: \"Ամիս\",\n hourAriaLabel: \"Ժամ\",\n minuteAriaLabel: \"Րոպե\",\n time_24hr: true,\n };\n fp$p.l10ns.hy = Armenian;\n fp$p.l10ns;\n\n var fp$q = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Indonesian = {\n weekdays: {\n shorthand: [\"Min\", \"Sen\", \"Sel\", \"Rab\", \"Kam\", \"Jum\", \"Sab\"],\n longhand: [\"Minggu\", \"Senin\", \"Selasa\", \"Rabu\", \"Kamis\", \"Jumat\", \"Sabtu\"],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mei\",\n \"Jun\",\n \"Jul\",\n \"Agu\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Des\",\n ],\n longhand: [\n \"Januari\",\n \"Februari\",\n \"Maret\",\n \"April\",\n \"Mei\",\n \"Juni\",\n \"Juli\",\n \"Agustus\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Desember\",\n ],\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"\";\n },\n time_24hr: true,\n rangeSeparator: \" - \",\n };\n fp$q.l10ns.id = Indonesian;\n fp$q.l10ns;\n\n var fp$r = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Icelandic = {\n weekdays: {\n shorthand: [\"Sun\", \"Mán\", \"Þri\", \"Mið\", \"Fim\", \"Fös\", \"Lau\"],\n longhand: [\n \"Sunnudagur\",\n \"Mánudagur\",\n \"Þriðjudagur\",\n \"Miðvikudagur\",\n \"Fimmtudagur\",\n \"Föstudagur\",\n \"Laugardagur\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Maí\",\n \"Jún\",\n \"Júl\",\n \"Ágú\",\n \"Sep\",\n \"Okt\",\n \"Nóv\",\n \"Des\",\n ],\n longhand: [\n \"Janúar\",\n \"Febrúar\",\n \"Mars\",\n \"Apríl\",\n \"Maí\",\n \"Júní\",\n \"Júlí\",\n \"Ágúst\",\n \"September\",\n \"Október\",\n \"Nóvember\",\n \"Desember\",\n ],\n },\n ordinal: function () {\n return \".\";\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" til \",\n weekAbbreviation: \"vika\",\n yearAriaLabel: \"Ár\",\n time_24hr: true,\n };\n fp$r.l10ns.is = Icelandic;\n fp$r.l10ns;\n\n var fp$s = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Italian = {\n weekdays: {\n shorthand: [\"Dom\", \"Lun\", \"Mar\", \"Mer\", \"Gio\", \"Ven\", \"Sab\"],\n longhand: [\n \"Domenica\",\n \"Lunedì\",\n \"Martedì\",\n \"Mercoledì\",\n \"Giovedì\",\n \"Venerdì\",\n \"Sabato\",\n ],\n },\n months: {\n shorthand: [\n \"Gen\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mag\",\n \"Giu\",\n \"Lug\",\n \"Ago\",\n \"Set\",\n \"Ott\",\n \"Nov\",\n \"Dic\",\n ],\n longhand: [\n \"Gennaio\",\n \"Febbraio\",\n \"Marzo\",\n \"Aprile\",\n \"Maggio\",\n \"Giugno\",\n \"Luglio\",\n \"Agosto\",\n \"Settembre\",\n \"Ottobre\",\n \"Novembre\",\n \"Dicembre\",\n ],\n },\n firstDayOfWeek: 1,\n ordinal: function () { return \"°\"; },\n rangeSeparator: \" al \",\n weekAbbreviation: \"Se\",\n scrollTitle: \"Scrolla per aumentare\",\n toggleTitle: \"Clicca per cambiare\",\n time_24hr: true,\n };\n fp$s.l10ns.it = Italian;\n fp$s.l10ns;\n\n var fp$t = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Japanese = {\n weekdays: {\n shorthand: [\"日\", \"月\", \"火\", \"水\", \"木\", \"金\", \"土\"],\n longhand: [\n \"日曜日\",\n \"月曜日\",\n \"火曜日\",\n \"水曜日\",\n \"木曜日\",\n \"金曜日\",\n \"土曜日\",\n ],\n },\n months: {\n shorthand: [\n \"1月\",\n \"2月\",\n \"3月\",\n \"4月\",\n \"5月\",\n \"6月\",\n \"7月\",\n \"8月\",\n \"9月\",\n \"10月\",\n \"11月\",\n \"12月\",\n ],\n longhand: [\n \"1月\",\n \"2月\",\n \"3月\",\n \"4月\",\n \"5月\",\n \"6月\",\n \"7月\",\n \"8月\",\n \"9月\",\n \"10月\",\n \"11月\",\n \"12月\",\n ],\n },\n time_24hr: true,\n rangeSeparator: \" から \",\n monthAriaLabel: \"月\",\n amPM: [\"午前\", \"午後\"],\n yearAriaLabel: \"年\",\n hourAriaLabel: \"時間\",\n minuteAriaLabel: \"分\",\n };\n fp$t.l10ns.ja = Japanese;\n fp$t.l10ns;\n\n var fp$u = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Georgian = {\n weekdays: {\n shorthand: [\"კვ\", \"ორ\", \"სა\", \"ოთ\", \"ხუ\", \"პა\", \"შა\"],\n longhand: [\n \"კვირა\",\n \"ორშაბათი\",\n \"სამშაბათი\",\n \"ოთხშაბათი\",\n \"ხუთშაბათი\",\n \"პარასკევი\",\n \"შაბათი\",\n ],\n },\n months: {\n shorthand: [\n \"იან\",\n \"თებ\",\n \"მარ\",\n \"აპრ\",\n \"მაი\",\n \"ივნ\",\n \"ივლ\",\n \"აგვ\",\n \"სექ\",\n \"ოქტ\",\n \"ნოე\",\n \"დეკ\",\n ],\n longhand: [\n \"იანვარი\",\n \"თებერვალი\",\n \"მარტი\",\n \"აპრილი\",\n \"მაისი\",\n \"ივნისი\",\n \"ივლისი\",\n \"აგვისტო\",\n \"სექტემბერი\",\n \"ოქტომბერი\",\n \"ნოემბერი\",\n \"დეკემბერი\",\n ],\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"\";\n },\n rangeSeparator: \" — \",\n weekAbbreviation: \"კვ.\",\n scrollTitle: \"დასქროლეთ გასადიდებლად\",\n toggleTitle: \"დააკლიკეთ გადართვისთვის\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"წელი\",\n time_24hr: true,\n };\n fp$u.l10ns.ka = Georgian;\n fp$u.l10ns;\n\n var fp$v = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Korean = {\n weekdays: {\n shorthand: [\"일\", \"월\", \"화\", \"수\", \"목\", \"금\", \"토\"],\n longhand: [\n \"일요일\",\n \"월요일\",\n \"화요일\",\n \"수요일\",\n \"목요일\",\n \"금요일\",\n \"토요일\",\n ],\n },\n months: {\n shorthand: [\n \"1월\",\n \"2월\",\n \"3월\",\n \"4월\",\n \"5월\",\n \"6월\",\n \"7월\",\n \"8월\",\n \"9월\",\n \"10월\",\n \"11월\",\n \"12월\",\n ],\n longhand: [\n \"1월\",\n \"2월\",\n \"3월\",\n \"4월\",\n \"5월\",\n \"6월\",\n \"7월\",\n \"8월\",\n \"9월\",\n \"10월\",\n \"11월\",\n \"12월\",\n ],\n },\n ordinal: function () {\n return \"일\";\n },\n rangeSeparator: \" ~ \",\n amPM: [\"오전\", \"오후\"],\n };\n fp$v.l10ns.ko = Korean;\n fp$v.l10ns;\n\n var fp$w = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Khmer = {\n weekdays: {\n shorthand: [\"អាទិត្យ\", \"ចន្ទ\", \"អង្គារ\", \"ពុធ\", \"ព្រហស.\", \"សុក្រ\", \"សៅរ៍\"],\n longhand: [\n \"អាទិត្យ\",\n \"ចន្ទ\",\n \"អង្គារ\",\n \"ពុធ\",\n \"ព្រហស្បតិ៍\",\n \"សុក្រ\",\n \"សៅរ៍\",\n ],\n },\n months: {\n shorthand: [\n \"មករា\",\n \"កុម្ភះ\",\n \"មីនា\",\n \"មេសា\",\n \"ឧសភា\",\n \"មិថុនា\",\n \"កក្កដា\",\n \"សីហា\",\n \"កញ្ញា\",\n \"តុលា\",\n \"វិច្ឆិកា\",\n \"ធ្នូ\",\n ],\n longhand: [\n \"មករា\",\n \"កុម្ភះ\",\n \"មីនា\",\n \"មេសា\",\n \"ឧសភា\",\n \"មិថុនា\",\n \"កក្កដា\",\n \"សីហា\",\n \"កញ្ញា\",\n \"តុលា\",\n \"វិច្ឆិកា\",\n \"ធ្នូ\",\n ],\n },\n ordinal: function () {\n return \"\";\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" ដល់ \",\n weekAbbreviation: \"សប្តាហ៍\",\n scrollTitle: \"រំកិលដើម្បីបង្កើន\",\n toggleTitle: \"ចុចដើម្បីផ្លាស់ប្ដូរ\",\n yearAriaLabel: \"ឆ្នាំ\",\n time_24hr: true,\n };\n fp$w.l10ns.km = Khmer;\n fp$w.l10ns;\n\n var fp$x = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Kazakh = {\n weekdays: {\n shorthand: [\"Жс\", \"Дс\", \"Сc\", \"Ср\", \"Бс\", \"Жм\", \"Сб\"],\n longhand: [\n \"Жексенбi\",\n \"Дүйсенбi\",\n \"Сейсенбi\",\n \"Сәрсенбi\",\n \"Бейсенбi\",\n \"Жұма\",\n \"Сенбi\",\n ],\n },\n months: {\n shorthand: [\n \"Қаң\",\n \"Ақп\",\n \"Нау\",\n \"Сәу\",\n \"Мам\",\n \"Мау\",\n \"Шiл\",\n \"Там\",\n \"Қыр\",\n \"Қаз\",\n \"Қар\",\n \"Жел\",\n ],\n longhand: [\n \"Қаңтар\",\n \"Ақпан\",\n \"Наурыз\",\n \"Сәуiр\",\n \"Мамыр\",\n \"Маусым\",\n \"Шiлде\",\n \"Тамыз\",\n \"Қыркүйек\",\n \"Қазан\",\n \"Қараша\",\n \"Желтоқсан\",\n ],\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"\";\n },\n rangeSeparator: \" — \",\n weekAbbreviation: \"Апта\",\n scrollTitle: \"Үлкейту үшін айналдырыңыз\",\n toggleTitle: \"Ауыстыру үшін басыңыз\",\n amPM: [\"ТД\", \"ТК\"],\n yearAriaLabel: \"Жыл\",\n };\n fp$x.l10ns.kz = Kazakh;\n fp$x.l10ns;\n\n var fp$y = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Lithuanian = {\n weekdays: {\n shorthand: [\"S\", \"Pr\", \"A\", \"T\", \"K\", \"Pn\", \"Š\"],\n longhand: [\n \"Sekmadienis\",\n \"Pirmadienis\",\n \"Antradienis\",\n \"Trečiadienis\",\n \"Ketvirtadienis\",\n \"Penktadienis\",\n \"Šeštadienis\",\n ],\n },\n months: {\n shorthand: [\n \"Sau\",\n \"Vas\",\n \"Kov\",\n \"Bal\",\n \"Geg\",\n \"Bir\",\n \"Lie\",\n \"Rgp\",\n \"Rgs\",\n \"Spl\",\n \"Lap\",\n \"Grd\",\n ],\n longhand: [\n \"Sausis\",\n \"Vasaris\",\n \"Kovas\",\n \"Balandis\",\n \"Gegužė\",\n \"Birželis\",\n \"Liepa\",\n \"Rugpjūtis\",\n \"Rugsėjis\",\n \"Spalis\",\n \"Lapkritis\",\n \"Gruodis\",\n ],\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"-a\";\n },\n rangeSeparator: \" iki \",\n weekAbbreviation: \"Sav\",\n scrollTitle: \"Keisti laiką pelės rateliu\",\n toggleTitle: \"Perjungti laiko formatą\",\n time_24hr: true,\n };\n fp$y.l10ns.lt = Lithuanian;\n fp$y.l10ns;\n\n var fp$z = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Latvian = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"Sv\", \"Pr\", \"Ot\", \"Tr\", \"Ce\", \"Pk\", \"Se\"],\n longhand: [\n \"Svētdiena\",\n \"Pirmdiena\",\n \"Otrdiena\",\n \"Trešdiena\",\n \"Ceturtdiena\",\n \"Piektdiena\",\n \"Sestdiena\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mai\",\n \"Jūn\",\n \"Jūl\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"Janvāris\",\n \"Februāris\",\n \"Marts\",\n \"Aprīlis\",\n \"Maijs\",\n \"Jūnijs\",\n \"Jūlijs\",\n \"Augusts\",\n \"Septembris\",\n \"Oktobris\",\n \"Novembris\",\n \"Decembris\",\n ],\n },\n rangeSeparator: \" līdz \",\n time_24hr: true,\n };\n fp$z.l10ns.lv = Latvian;\n fp$z.l10ns;\n\n var fp$A = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Macedonian = {\n weekdays: {\n shorthand: [\"Не\", \"По\", \"Вт\", \"Ср\", \"Че\", \"Пе\", \"Са\"],\n longhand: [\n \"Недела\",\n \"Понеделник\",\n \"Вторник\",\n \"Среда\",\n \"Четврток\",\n \"Петок\",\n \"Сабота\",\n ],\n },\n months: {\n shorthand: [\n \"Јан\",\n \"Фев\",\n \"Мар\",\n \"Апр\",\n \"Мај\",\n \"Јун\",\n \"Јул\",\n \"Авг\",\n \"Сеп\",\n \"Окт\",\n \"Ное\",\n \"Дек\",\n ],\n longhand: [\n \"Јануари\",\n \"Февруари\",\n \"Март\",\n \"Април\",\n \"Мај\",\n \"Јуни\",\n \"Јули\",\n \"Август\",\n \"Септември\",\n \"Октомври\",\n \"Ноември\",\n \"Декември\",\n ],\n },\n firstDayOfWeek: 1,\n weekAbbreviation: \"Нед.\",\n rangeSeparator: \" до \",\n time_24hr: true,\n };\n fp$A.l10ns.mk = Macedonian;\n fp$A.l10ns;\n\n var fp$B = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Mongolian = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"Да\", \"Мя\", \"Лх\", \"Пү\", \"Ба\", \"Бя\", \"Ня\"],\n longhand: [\"Даваа\", \"Мягмар\", \"Лхагва\", \"Пүрэв\", \"Баасан\", \"Бямба\", \"Ням\"],\n },\n months: {\n shorthand: [\n \"1-р сар\",\n \"2-р сар\",\n \"3-р сар\",\n \"4-р сар\",\n \"5-р сар\",\n \"6-р сар\",\n \"7-р сар\",\n \"8-р сар\",\n \"9-р сар\",\n \"10-р сар\",\n \"11-р сар\",\n \"12-р сар\",\n ],\n longhand: [\n \"Нэгдүгээр сар\",\n \"Хоёрдугаар сар\",\n \"Гуравдугаар сар\",\n \"Дөрөвдүгээр сар\",\n \"Тавдугаар сар\",\n \"Зургаадугаар сар\",\n \"Долдугаар сар\",\n \"Наймдугаар сар\",\n \"Есдүгээр сар\",\n \"Аравдугаар сар\",\n \"Арваннэгдүгээр сар\",\n \"Арванхоёрдугаар сар\",\n ],\n },\n rangeSeparator: \"-с \",\n time_24hr: true,\n };\n fp$B.l10ns.mn = Mongolian;\n fp$B.l10ns;\n\n var fp$C = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Malaysian = {\n weekdays: {\n shorthand: [\"Aha\", \"Isn\", \"Sel\", \"Rab\", \"Kha\", \"Jum\", \"Sab\"],\n longhand: [\"Ahad\", \"Isnin\", \"Selasa\", \"Rabu\", \"Khamis\", \"Jumaat\", \"Sabtu\"],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mac\",\n \"Apr\",\n \"Mei\",\n \"Jun\",\n \"Jul\",\n \"Ogo\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dis\",\n ],\n longhand: [\n \"Januari\",\n \"Februari\",\n \"Mac\",\n \"April\",\n \"Mei\",\n \"Jun\",\n \"Julai\",\n \"Ogos\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Disember\",\n ],\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"\";\n },\n };\n fp$C.l10ns;\n\n var fp$D = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Burmese = {\n weekdays: {\n shorthand: [\"နွေ\", \"လာ\", \"ဂါ\", \"ဟူး\", \"ကြာ\", \"သော\", \"နေ\"],\n longhand: [\n \"တနင်္ဂနွေ\",\n \"တနင်္လာ\",\n \"အင်္ဂါ\",\n \"ဗုဒ္ဓဟူး\",\n \"ကြာသပတေး\",\n \"သောကြာ\",\n \"စနေ\",\n ],\n },\n months: {\n shorthand: [\n \"ဇန်\",\n \"ဖေ\",\n \"မတ်\",\n \"ပြီ\",\n \"မေ\",\n \"ဇွန်\",\n \"လိုင်\",\n \"သြ\",\n \"စက်\",\n \"အောက်\",\n \"နို\",\n \"ဒီ\",\n ],\n longhand: [\n \"ဇန်နဝါရီ\",\n \"ဖေဖော်ဝါရီ\",\n \"မတ်\",\n \"ဧပြီ\",\n \"မေ\",\n \"ဇွန်\",\n \"ဇူလိုင်\",\n \"သြဂုတ်\",\n \"စက်တင်ဘာ\",\n \"အောက်တိုဘာ\",\n \"နိုဝင်ဘာ\",\n \"ဒီဇင်ဘာ\",\n ],\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"\";\n },\n time_24hr: true,\n };\n fp$D.l10ns.my = Burmese;\n fp$D.l10ns;\n\n var fp$E = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Dutch = {\n weekdays: {\n shorthand: [\"zo\", \"ma\", \"di\", \"wo\", \"do\", \"vr\", \"za\"],\n longhand: [\n \"zondag\",\n \"maandag\",\n \"dinsdag\",\n \"woensdag\",\n \"donderdag\",\n \"vrijdag\",\n \"zaterdag\",\n ],\n },\n months: {\n shorthand: [\n \"jan\",\n \"feb\",\n \"mrt\",\n \"apr\",\n \"mei\",\n \"jun\",\n \"jul\",\n \"aug\",\n \"sept\",\n \"okt\",\n \"nov\",\n \"dec\",\n ],\n longhand: [\n \"januari\",\n \"februari\",\n \"maart\",\n \"april\",\n \"mei\",\n \"juni\",\n \"juli\",\n \"augustus\",\n \"september\",\n \"oktober\",\n \"november\",\n \"december\",\n ],\n },\n firstDayOfWeek: 1,\n weekAbbreviation: \"wk\",\n rangeSeparator: \" t/m \",\n scrollTitle: \"Scroll voor volgende / vorige\",\n toggleTitle: \"Klik om te wisselen\",\n time_24hr: true,\n ordinal: function (nth) {\n if (nth === 1 || nth === 8 || nth >= 20)\n return \"ste\";\n return \"de\";\n },\n };\n fp$E.l10ns.nl = Dutch;\n fp$E.l10ns;\n\n var fp$F = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var NorwegianNynorsk = {\n weekdays: {\n shorthand: [\"Sø.\", \"Må.\", \"Ty.\", \"On.\", \"To.\", \"Fr.\", \"La.\"],\n longhand: [\n \"Søndag\",\n \"Måndag\",\n \"Tysdag\",\n \"Onsdag\",\n \"Torsdag\",\n \"Fredag\",\n \"Laurdag\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mars\",\n \"Apr\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Des\",\n ],\n longhand: [\n \"Januar\",\n \"Februar\",\n \"Mars\",\n \"April\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Desember\",\n ],\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" til \",\n weekAbbreviation: \"Veke\",\n scrollTitle: \"Scroll for å endre\",\n toggleTitle: \"Klikk for å veksle\",\n time_24hr: true,\n ordinal: function () {\n return \".\";\n },\n };\n fp$F.l10ns.nn = NorwegianNynorsk;\n fp$F.l10ns;\n\n var fp$G = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Norwegian = {\n weekdays: {\n shorthand: [\"Søn\", \"Man\", \"Tir\", \"Ons\", \"Tor\", \"Fre\", \"Lør\"],\n longhand: [\n \"Søndag\",\n \"Mandag\",\n \"Tirsdag\",\n \"Onsdag\",\n \"Torsdag\",\n \"Fredag\",\n \"Lørdag\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Des\",\n ],\n longhand: [\n \"Januar\",\n \"Februar\",\n \"Mars\",\n \"April\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Desember\",\n ],\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" til \",\n weekAbbreviation: \"Uke\",\n scrollTitle: \"Scroll for å endre\",\n toggleTitle: \"Klikk for å veksle\",\n time_24hr: true,\n ordinal: function () {\n return \".\";\n },\n };\n fp$G.l10ns.no = Norwegian;\n fp$G.l10ns;\n\n var fp$H = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Punjabi = {\n weekdays: {\n shorthand: [\"ਐਤ\", \"ਸੋਮ\", \"ਮੰਗਲ\", \"ਬੁੱਧ\", \"ਵੀਰ\", \"ਸ਼ੁੱਕਰ\", \"ਸ਼ਨਿੱਚਰ\"],\n longhand: [\n \"ਐਤਵਾਰ\",\n \"ਸੋਮਵਾਰ\",\n \"ਮੰਗਲਵਾਰ\",\n \"ਬੁੱਧਵਾਰ\",\n \"ਵੀਰਵਾਰ\",\n \"ਸ਼ੁੱਕਰਵਾਰ\",\n \"ਸ਼ਨਿੱਚਰਵਾਰ\",\n ],\n },\n months: {\n shorthand: [\n \"ਜਨ\",\n \"ਫ਼ਰ\",\n \"ਮਾਰ\",\n \"ਅਪ੍ਰੈ\",\n \"ਮਈ\",\n \"ਜੂਨ\",\n \"ਜੁਲਾ\",\n \"ਅਗ\",\n \"ਸਤੰ\",\n \"ਅਕ\",\n \"ਨਵੰ\",\n \"ਦਸੰ\",\n ],\n longhand: [\n \"ਜਨਵਰੀ\",\n \"ਫ਼ਰਵਰੀ\",\n \"ਮਾਰਚ\",\n \"ਅਪ੍ਰੈਲ\",\n \"ਮਈ\",\n \"ਜੂਨ\",\n \"ਜੁਲਾਈ\",\n \"ਅਗਸਤ\",\n \"ਸਤੰਬਰ\",\n \"ਅਕਤੂਬਰ\",\n \"ਨਵੰਬਰ\",\n \"ਦਸੰਬਰ\",\n ],\n },\n time_24hr: true,\n };\n fp$H.l10ns.pa = Punjabi;\n fp$H.l10ns;\n\n var fp$I = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Polish = {\n weekdays: {\n shorthand: [\"Nd\", \"Pn\", \"Wt\", \"Śr\", \"Cz\", \"Pt\", \"So\"],\n longhand: [\n \"Niedziela\",\n \"Poniedziałek\",\n \"Wtorek\",\n \"Środa\",\n \"Czwartek\",\n \"Piątek\",\n \"Sobota\",\n ],\n },\n months: {\n shorthand: [\n \"Sty\",\n \"Lut\",\n \"Mar\",\n \"Kwi\",\n \"Maj\",\n \"Cze\",\n \"Lip\",\n \"Sie\",\n \"Wrz\",\n \"Paź\",\n \"Lis\",\n \"Gru\",\n ],\n longhand: [\n \"Styczeń\",\n \"Luty\",\n \"Marzec\",\n \"Kwiecień\",\n \"Maj\",\n \"Czerwiec\",\n \"Lipiec\",\n \"Sierpień\",\n \"Wrzesień\",\n \"Październik\",\n \"Listopad\",\n \"Grudzień\",\n ],\n },\n rangeSeparator: \" do \",\n weekAbbreviation: \"tydz.\",\n scrollTitle: \"Przewiń, aby zwiększyć\",\n toggleTitle: \"Kliknij, aby przełączyć\",\n firstDayOfWeek: 1,\n time_24hr: true,\n ordinal: function () {\n return \".\";\n },\n };\n fp$I.l10ns.pl = Polish;\n fp$I.l10ns;\n\n var fp$J = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Portuguese = {\n weekdays: {\n shorthand: [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sáb\"],\n longhand: [\n \"Domingo\",\n \"Segunda-feira\",\n \"Terça-feira\",\n \"Quarta-feira\",\n \"Quinta-feira\",\n \"Sexta-feira\",\n \"Sábado\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Fev\",\n \"Mar\",\n \"Abr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Ago\",\n \"Set\",\n \"Out\",\n \"Nov\",\n \"Dez\",\n ],\n longhand: [\n \"Janeiro\",\n \"Fevereiro\",\n \"Março\",\n \"Abril\",\n \"Maio\",\n \"Junho\",\n \"Julho\",\n \"Agosto\",\n \"Setembro\",\n \"Outubro\",\n \"Novembro\",\n \"Dezembro\",\n ],\n },\n rangeSeparator: \" até \",\n time_24hr: true,\n };\n fp$J.l10ns.pt = Portuguese;\n fp$J.l10ns;\n\n var fp$K = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Romanian = {\n weekdays: {\n shorthand: [\"Dum\", \"Lun\", \"Mar\", \"Mie\", \"Joi\", \"Vin\", \"Sâm\"],\n longhand: [\n \"Duminică\",\n \"Luni\",\n \"Marți\",\n \"Miercuri\",\n \"Joi\",\n \"Vineri\",\n \"Sâmbătă\",\n ],\n },\n months: {\n shorthand: [\n \"Ian\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mai\",\n \"Iun\",\n \"Iul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Noi\",\n \"Dec\",\n ],\n longhand: [\n \"Ianuarie\",\n \"Februarie\",\n \"Martie\",\n \"Aprilie\",\n \"Mai\",\n \"Iunie\",\n \"Iulie\",\n \"August\",\n \"Septembrie\",\n \"Octombrie\",\n \"Noiembrie\",\n \"Decembrie\",\n ],\n },\n firstDayOfWeek: 1,\n time_24hr: true,\n ordinal: function () {\n return \"\";\n },\n };\n fp$K.l10ns.ro = Romanian;\n fp$K.l10ns;\n\n var fp$L = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Russian = {\n weekdays: {\n shorthand: [\"Вс\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\"],\n longhand: [\n \"Воскресенье\",\n \"Понедельник\",\n \"Вторник\",\n \"Среда\",\n \"Четверг\",\n \"Пятница\",\n \"Суббота\",\n ],\n },\n months: {\n shorthand: [\n \"Янв\",\n \"Фев\",\n \"Март\",\n \"Апр\",\n \"Май\",\n \"Июнь\",\n \"Июль\",\n \"Авг\",\n \"Сен\",\n \"Окт\",\n \"Ноя\",\n \"Дек\",\n ],\n longhand: [\n \"Январь\",\n \"Февраль\",\n \"Март\",\n \"Апрель\",\n \"Май\",\n \"Июнь\",\n \"Июль\",\n \"Август\",\n \"Сентябрь\",\n \"Октябрь\",\n \"Ноябрь\",\n \"Декабрь\",\n ],\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"\";\n },\n rangeSeparator: \" — \",\n weekAbbreviation: \"Нед.\",\n scrollTitle: \"Прокрутите для увеличения\",\n toggleTitle: \"Нажмите для переключения\",\n amPM: [\"ДП\", \"ПП\"],\n yearAriaLabel: \"Год\",\n time_24hr: true,\n };\n fp$L.l10ns.ru = Russian;\n fp$L.l10ns;\n\n var fp$M = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Sinhala = {\n weekdays: {\n shorthand: [\"ඉ\", \"ස\", \"අ\", \"බ\", \"බ්‍ර\", \"සි\", \"සෙ\"],\n longhand: [\n \"ඉරිදා\",\n \"සඳුදා\",\n \"අඟහරුවාදා\",\n \"බදාදා\",\n \"බ්‍රහස්පතින්දා\",\n \"සිකුරාදා\",\n \"සෙනසුරාදා\",\n ],\n },\n months: {\n shorthand: [\n \"ජන\",\n \"පෙබ\",\n \"මාර්\",\n \"අප්‍රේ\",\n \"මැයි\",\n \"ජුනි\",\n \"ජූලි\",\n \"අගෝ\",\n \"සැප්\",\n \"ඔක්\",\n \"නොවැ\",\n \"දෙසැ\",\n ],\n longhand: [\n \"ජනවාරි\",\n \"පෙබරවාරි\",\n \"මාර්තු\",\n \"අප්‍රේල්\",\n \"මැයි\",\n \"ජුනි\",\n \"ජූලි\",\n \"අගෝස්තු\",\n \"සැප්තැම්බර්\",\n \"ඔක්තෝබර්\",\n \"නොවැම්බර්\",\n \"දෙසැම්බර්\",\n ],\n },\n time_24hr: true,\n };\n fp$M.l10ns.si = Sinhala;\n fp$M.l10ns;\n\n var fp$N = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Slovak = {\n weekdays: {\n shorthand: [\"Ned\", \"Pon\", \"Ut\", \"Str\", \"Štv\", \"Pia\", \"Sob\"],\n longhand: [\n \"Nedeľa\",\n \"Pondelok\",\n \"Utorok\",\n \"Streda\",\n \"Štvrtok\",\n \"Piatok\",\n \"Sobota\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Máj\",\n \"Jún\",\n \"Júl\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"Január\",\n \"Február\",\n \"Marec\",\n \"Apríl\",\n \"Máj\",\n \"Jún\",\n \"Júl\",\n \"August\",\n \"September\",\n \"Október\",\n \"November\",\n \"December\",\n ],\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" do \",\n time_24hr: true,\n ordinal: function () {\n return \".\";\n },\n };\n fp$N.l10ns.sk = Slovak;\n fp$N.l10ns;\n\n var fp$O = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Slovenian = {\n weekdays: {\n shorthand: [\"Ned\", \"Pon\", \"Tor\", \"Sre\", \"Čet\", \"Pet\", \"Sob\"],\n longhand: [\n \"Nedelja\",\n \"Ponedeljek\",\n \"Torek\",\n \"Sreda\",\n \"Četrtek\",\n \"Petek\",\n \"Sobota\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Maj\",\n \"Jun\",\n \"Jul\",\n \"Avg\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"Januar\",\n \"Februar\",\n \"Marec\",\n \"April\",\n \"Maj\",\n \"Junij\",\n \"Julij\",\n \"Avgust\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"December\",\n ],\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" do \",\n time_24hr: true,\n ordinal: function () {\n return \".\";\n },\n };\n fp$O.l10ns.sl = Slovenian;\n fp$O.l10ns;\n\n var fp$P = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Albanian = {\n weekdays: {\n shorthand: [\"Di\", \"Hë\", \"Ma\", \"Më\", \"En\", \"Pr\", \"Sh\"],\n longhand: [\n \"E Diel\",\n \"E Hënë\",\n \"E Martë\",\n \"E Mërkurë\",\n \"E Enjte\",\n \"E Premte\",\n \"E Shtunë\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Shk\",\n \"Mar\",\n \"Pri\",\n \"Maj\",\n \"Qer\",\n \"Kor\",\n \"Gus\",\n \"Sht\",\n \"Tet\",\n \"Nën\",\n \"Dhj\",\n ],\n longhand: [\n \"Janar\",\n \"Shkurt\",\n \"Mars\",\n \"Prill\",\n \"Maj\",\n \"Qershor\",\n \"Korrik\",\n \"Gusht\",\n \"Shtator\",\n \"Tetor\",\n \"Nëntor\",\n \"Dhjetor\",\n ],\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" deri \",\n weekAbbreviation: \"Java\",\n yearAriaLabel: \"Viti\",\n monthAriaLabel: \"Muaji\",\n hourAriaLabel: \"Ora\",\n minuteAriaLabel: \"Minuta\",\n time_24hr: true,\n };\n fp$P.l10ns.sq = Albanian;\n fp$P.l10ns;\n\n var fp$Q = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Serbian = {\n weekdays: {\n shorthand: [\"Ned\", \"Pon\", \"Uto\", \"Sre\", \"Čet\", \"Pet\", \"Sub\"],\n longhand: [\n \"Nedelja\",\n \"Ponedeljak\",\n \"Utorak\",\n \"Sreda\",\n \"Četvrtak\",\n \"Petak\",\n \"Subota\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Maj\",\n \"Jun\",\n \"Jul\",\n \"Avg\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"Januar\",\n \"Februar\",\n \"Mart\",\n \"April\",\n \"Maj\",\n \"Jun\",\n \"Jul\",\n \"Avgust\",\n \"Septembar\",\n \"Oktobar\",\n \"Novembar\",\n \"Decembar\",\n ],\n },\n firstDayOfWeek: 1,\n weekAbbreviation: \"Ned.\",\n rangeSeparator: \" do \",\n time_24hr: true,\n };\n fp$Q.l10ns.sr = Serbian;\n fp$Q.l10ns;\n\n var fp$R = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Swedish = {\n firstDayOfWeek: 1,\n weekAbbreviation: \"v\",\n weekdays: {\n shorthand: [\"sön\", \"mån\", \"tis\", \"ons\", \"tor\", \"fre\", \"lör\"],\n longhand: [\n \"söndag\",\n \"måndag\",\n \"tisdag\",\n \"onsdag\",\n \"torsdag\",\n \"fredag\",\n \"lördag\",\n ],\n },\n months: {\n shorthand: [\n \"jan\",\n \"feb\",\n \"mar\",\n \"apr\",\n \"maj\",\n \"jun\",\n \"jul\",\n \"aug\",\n \"sep\",\n \"okt\",\n \"nov\",\n \"dec\",\n ],\n longhand: [\n \"januari\",\n \"februari\",\n \"mars\",\n \"april\",\n \"maj\",\n \"juni\",\n \"juli\",\n \"augusti\",\n \"september\",\n \"oktober\",\n \"november\",\n \"december\",\n ],\n },\n rangeSeparator: \" till \",\n time_24hr: true,\n ordinal: function () {\n return \".\";\n },\n };\n fp$R.l10ns.sv = Swedish;\n fp$R.l10ns;\n\n var fp$S = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Thai = {\n weekdays: {\n shorthand: [\"อา\", \"จ\", \"อ\", \"พ\", \"พฤ\", \"ศ\", \"ส\"],\n longhand: [\n \"อาทิตย์\",\n \"จันทร์\",\n \"อังคาร\",\n \"พุธ\",\n \"พฤหัสบดี\",\n \"ศุกร์\",\n \"เสาร์\",\n ],\n },\n months: {\n shorthand: [\n \"ม.ค.\",\n \"ก.พ.\",\n \"มี.ค.\",\n \"เม.ย.\",\n \"พ.ค.\",\n \"มิ.ย.\",\n \"ก.ค.\",\n \"ส.ค.\",\n \"ก.ย.\",\n \"ต.ค.\",\n \"พ.ย.\",\n \"ธ.ค.\",\n ],\n longhand: [\n \"มกราคม\",\n \"กุมภาพันธ์\",\n \"มีนาคม\",\n \"เมษายน\",\n \"พฤษภาคม\",\n \"มิถุนายน\",\n \"กรกฎาคม\",\n \"สิงหาคม\",\n \"กันยายน\",\n \"ตุลาคม\",\n \"พฤศจิกายน\",\n \"ธันวาคม\",\n ],\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" ถึง \",\n scrollTitle: \"เลื่อนเพื่อเพิ่มหรือลด\",\n toggleTitle: \"คลิกเพื่อเปลี่ยน\",\n time_24hr: true,\n ordinal: function () {\n return \"\";\n },\n };\n fp$S.l10ns.th = Thai;\n fp$S.l10ns;\n\n var fp$T = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Turkish = {\n weekdays: {\n shorthand: [\"Paz\", \"Pzt\", \"Sal\", \"Çar\", \"Per\", \"Cum\", \"Cmt\"],\n longhand: [\n \"Pazar\",\n \"Pazartesi\",\n \"Salı\",\n \"Çarşamba\",\n \"Perşembe\",\n \"Cuma\",\n \"Cumartesi\",\n ],\n },\n months: {\n shorthand: [\n \"Oca\",\n \"Şub\",\n \"Mar\",\n \"Nis\",\n \"May\",\n \"Haz\",\n \"Tem\",\n \"Ağu\",\n \"Eyl\",\n \"Eki\",\n \"Kas\",\n \"Ara\",\n ],\n longhand: [\n \"Ocak\",\n \"Şubat\",\n \"Mart\",\n \"Nisan\",\n \"Mayıs\",\n \"Haziran\",\n \"Temmuz\",\n \"Ağustos\",\n \"Eylül\",\n \"Ekim\",\n \"Kasım\",\n \"Aralık\",\n ],\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \".\";\n },\n rangeSeparator: \" - \",\n weekAbbreviation: \"Hf\",\n scrollTitle: \"Artırmak için kaydırın\",\n toggleTitle: \"Aç/Kapa\",\n amPM: [\"ÖÖ\", \"ÖS\"],\n time_24hr: true,\n };\n fp$T.l10ns.tr = Turkish;\n fp$T.l10ns;\n\n var fp$U = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Ukrainian = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"Нд\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\"],\n longhand: [\n \"Неділя\",\n \"Понеділок\",\n \"Вівторок\",\n \"Середа\",\n \"Четвер\",\n \"П'ятниця\",\n \"Субота\",\n ],\n },\n months: {\n shorthand: [\n \"Січ\",\n \"Лют\",\n \"Бер\",\n \"Кві\",\n \"Тра\",\n \"Чер\",\n \"Лип\",\n \"Сер\",\n \"Вер\",\n \"Жов\",\n \"Лис\",\n \"Гру\",\n ],\n longhand: [\n \"Січень\",\n \"Лютий\",\n \"Березень\",\n \"Квітень\",\n \"Травень\",\n \"Червень\",\n \"Липень\",\n \"Серпень\",\n \"Вересень\",\n \"Жовтень\",\n \"Листопад\",\n \"Грудень\",\n ],\n },\n time_24hr: true,\n };\n fp$U.l10ns.uk = Ukrainian;\n fp$U.l10ns;\n\n var fp$V = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Uzbek = {\n weekdays: {\n shorthand: [\"Якш\", \"Душ\", \"Сеш\", \"Чор\", \"Пай\", \"Жум\", \"Шан\"],\n longhand: [\n \"Якшанба\",\n \"Душанба\",\n \"Сешанба\",\n \"Чоршанба\",\n \"Пайшанба\",\n \"Жума\",\n \"Шанба\",\n ],\n },\n months: {\n shorthand: [\n \"Янв\",\n \"Фев\",\n \"Мар\",\n \"Апр\",\n \"Май\",\n \"Июн\",\n \"Июл\",\n \"Авг\",\n \"Сен\",\n \"Окт\",\n \"Ноя\",\n \"Дек\",\n ],\n longhand: [\n \"Январ\",\n \"Феврал\",\n \"Март\",\n \"Апрел\",\n \"Май\",\n \"Июн\",\n \"Июл\",\n \"Август\",\n \"Сентябр\",\n \"Октябр\",\n \"Ноябр\",\n \"Декабр\",\n ],\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"\";\n },\n rangeSeparator: \" — \",\n weekAbbreviation: \"Ҳафта\",\n scrollTitle: \"Катталаштириш учун айлантиринг\",\n toggleTitle: \"Ўтиш учун босинг\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Йил\",\n time_24hr: true,\n };\n fp$V.l10ns.uz = Uzbek;\n fp$V.l10ns;\n\n var fp$W = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var UzbekLatin = {\n weekdays: {\n shorthand: [\"Ya\", \"Du\", \"Se\", \"Cho\", \"Pa\", \"Ju\", \"Sha\"],\n longhand: [\n \"Yakshanba\",\n \"Dushanba\",\n \"Seshanba\",\n \"Chorshanba\",\n \"Payshanba\",\n \"Juma\",\n \"Shanba\",\n ],\n },\n months: {\n shorthand: [\n \"Yan\",\n \"Fev\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Iyun\",\n \"Iyul\",\n \"Avg\",\n \"Sen\",\n \"Okt\",\n \"Noy\",\n \"Dek\",\n ],\n longhand: [\n \"Yanvar\",\n \"Fevral\",\n \"Mart\",\n \"Aprel\",\n \"May\",\n \"Iyun\",\n \"Iyul\",\n \"Avgust\",\n \"Sentabr\",\n \"Oktabr\",\n \"Noyabr\",\n \"Dekabr\",\n ],\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"\";\n },\n rangeSeparator: \" — \",\n weekAbbreviation: \"Hafta\",\n scrollTitle: \"Kattalashtirish uchun aylantiring\",\n toggleTitle: \"O‘tish uchun bosing\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Yil\",\n time_24hr: true,\n };\n fp$W.l10ns[\"uz_latn\"] = UzbekLatin;\n fp$W.l10ns;\n\n var fp$X = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Vietnamese = {\n weekdays: {\n shorthand: [\"CN\", \"T2\", \"T3\", \"T4\", \"T5\", \"T6\", \"T7\"],\n longhand: [\n \"Chủ nhật\",\n \"Thứ hai\",\n \"Thứ ba\",\n \"Thứ tư\",\n \"Thứ năm\",\n \"Thứ sáu\",\n \"Thứ bảy\",\n ],\n },\n months: {\n shorthand: [\n \"Th1\",\n \"Th2\",\n \"Th3\",\n \"Th4\",\n \"Th5\",\n \"Th6\",\n \"Th7\",\n \"Th8\",\n \"Th9\",\n \"Th10\",\n \"Th11\",\n \"Th12\",\n ],\n longhand: [\n \"Tháng một\",\n \"Tháng hai\",\n \"Tháng ba\",\n \"Tháng tư\",\n \"Tháng năm\",\n \"Tháng sáu\",\n \"Tháng bảy\",\n \"Tháng tám\",\n \"Tháng chín\",\n \"Tháng mười\",\n \"Tháng mười một\",\n \"Tháng mười hai\",\n ],\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" đến \",\n };\n fp$X.l10ns.vn = Vietnamese;\n fp$X.l10ns;\n\n var fp$Y = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Mandarin = {\n weekdays: {\n shorthand: [\"周日\", \"周一\", \"周二\", \"周三\", \"周四\", \"周五\", \"周六\"],\n longhand: [\n \"星期日\",\n \"星期一\",\n \"星期二\",\n \"星期三\",\n \"星期四\",\n \"星期五\",\n \"星期六\",\n ],\n },\n months: {\n shorthand: [\n \"一月\",\n \"二月\",\n \"三月\",\n \"四月\",\n \"五月\",\n \"六月\",\n \"七月\",\n \"八月\",\n \"九月\",\n \"十月\",\n \"十一月\",\n \"十二月\",\n ],\n longhand: [\n \"一月\",\n \"二月\",\n \"三月\",\n \"四月\",\n \"五月\",\n \"六月\",\n \"七月\",\n \"八月\",\n \"九月\",\n \"十月\",\n \"十一月\",\n \"十二月\",\n ],\n },\n rangeSeparator: \" 至 \",\n weekAbbreviation: \"周\",\n scrollTitle: \"滚动切换\",\n toggleTitle: \"点击切换 12/24 小时时制\",\n };\n fp$Y.l10ns.zh = Mandarin;\n fp$Y.l10ns;\n\n var fp$Z = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var MandarinTraditional = {\n weekdays: {\n shorthand: [\"週日\", \"週一\", \"週二\", \"週三\", \"週四\", \"週五\", \"週六\"],\n longhand: [\n \"星期日\",\n \"星期一\",\n \"星期二\",\n \"星期三\",\n \"星期四\",\n \"星期五\",\n \"星期六\",\n ],\n },\n months: {\n shorthand: [\n \"一月\",\n \"二月\",\n \"三月\",\n \"四月\",\n \"五月\",\n \"六月\",\n \"七月\",\n \"八月\",\n \"九月\",\n \"十月\",\n \"十一月\",\n \"十二月\",\n ],\n longhand: [\n \"一月\",\n \"二月\",\n \"三月\",\n \"四月\",\n \"五月\",\n \"六月\",\n \"七月\",\n \"八月\",\n \"九月\",\n \"十月\",\n \"十一月\",\n \"十二月\",\n ],\n },\n rangeSeparator: \" 至 \",\n weekAbbreviation: \"週\",\n scrollTitle: \"滾動切換\",\n toggleTitle: \"點擊切換 12/24 小時時制\",\n };\n fp$Z.l10ns.zh_tw = MandarinTraditional;\n fp$Z.l10ns;\n\n var l10n = {\n ar: Arabic,\n at: Austria,\n az: Azerbaijan,\n be: Belarusian,\n bg: Bulgarian,\n bn: Bangla,\n bs: Bosnian,\n ca: Catalan,\n ckb: Kurdish,\n cat: Catalan,\n cs: Czech,\n cy: Welsh,\n da: Danish,\n de: German,\n default: __assign({}, english),\n en: english,\n eo: Esperanto,\n es: Spanish,\n et: Estonian,\n fa: Persian,\n fi: Finnish,\n fo: Faroese,\n fr: French,\n gr: Greek,\n he: Hebrew,\n hi: Hindi,\n hr: Croatian,\n hu: Hungarian,\n hy: Armenian,\n id: Indonesian,\n is: Icelandic,\n it: Italian,\n ja: Japanese,\n ka: Georgian,\n ko: Korean,\n km: Khmer,\n kz: Kazakh,\n lt: Lithuanian,\n lv: Latvian,\n mk: Macedonian,\n mn: Mongolian,\n ms: Malaysian,\n my: Burmese,\n nl: Dutch,\n nn: NorwegianNynorsk,\n no: Norwegian,\n pa: Punjabi,\n pl: Polish,\n pt: Portuguese,\n ro: Romanian,\n ru: Russian,\n si: Sinhala,\n sk: Slovak,\n sl: Slovenian,\n sq: Albanian,\n sr: Serbian,\n sv: Swedish,\n th: Thai,\n tr: Turkish,\n uk: Ukrainian,\n vn: Vietnamese,\n zh: Mandarin,\n zh_tw: MandarinTraditional,\n uz: Uzbek,\n uz_latn: UzbekLatin,\n };\n\n exports.default = l10n;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","import { createI18nMessage, requiredIf } from '@vuelidate/validators'\nimport { i18n } from '@/plugins/i18n'\n\nconst { t } = i18n.global\n\nexport function useValidateRequiredIf() {\n const withI18nMessage = createI18nMessage({ t })\n\n return withI18nMessage(requiredIf, {\n withArguments: true,\n messagePath: () => 'error.jsValidation.required',\n })\n}\n","<script lang=\"ts\" setup>\nimport { computed, onMounted, ref, unref, watch } from 'vue'\nimport FlatPickr from 'vue-flatpickr-component'\nimport FlatpickrLanguages from 'flatpickr/dist/l10n'\nimport 'flatpickr/dist/flatpickr.css'\nimport { dateNow, dateToUtc } from '@/utils/datetime'\nimport type flatpickr from 'flatpickr'\nimport { isNull, isUndefined } from '@/utils/common'\nimport type { ErrorObject } from '@vuelidate/core'\nimport useVuelidate from '@vuelidate/core'\nimport type { DatetimeUTCNullable } from '@/types/common'\nimport { useValidateRequiredIf } from '@/validators/vuelidate/common/useValidateRequiredIf'\nimport { useI18n } from 'vue-i18n'\nimport type { DateLimit, DateOption } from 'flatpickr/dist/types/options'\n\ntype FlatpickrRef = null | { fp: undefined | flatpickr.Instance }\ntype TextFieldRef = null | { $el: HTMLElement }\n\n// todo fix types\n\nconst props = withDefaults(\n defineProps<{\n modelValue: DatetimeUTCNullable | undefined\n type?: 'datetime' | 'date'\n label?: string\n hideLabel?: boolean\n clearable?: boolean\n disabled?: boolean\n hideDetails?: boolean\n minNow?: boolean\n required?: boolean\n hideSetToNow?: boolean\n placeholder?: string\n enable?: DateLimit<DateOption>[]\n weekNumbers?: false\n dataCy?: string\n defaultValue?: null | DatetimeUTCNullable\n errorMessages?: string[]\n }>(),\n {\n type: 'datetime',\n label: '',\n hideLabel: false,\n clearable: false,\n disabled: false,\n hideDetails: false,\n minNow: false,\n required: false,\n hideSetToNow: false,\n placeholder: '',\n enable: undefined,\n weekNumbers: false,\n dataCy: '',\n defaultValue: null,\n errorMessages: undefined,\n }\n)\nconst emit = defineEmits<{\n (e: 'change'): void\n (e: 'blur'): void\n (e: 'update:modelValue', data: string | null): void\n (e: 'onOpen'): void\n (e: 'onClose'): void\n}>()\n\nconst shortcutButtonsPlugin = ref<any>(undefined)\nconst pluginsImported = ref(false)\n\nconst flatickrRefIsInitialized = (\n ref: FlatpickrRef\n): ref is { fp: flatpickr.Instance; fpInput: () => { value: string; focus: () => void } } => {\n return ref !== null && typeof ref.fp !== 'undefined'\n}\n\nconst flatickrRef = ref<FlatpickrRef>(null)\nconst textFieldRef = ref<TextFieldRef>(null)\nconst isOpened = ref(false)\nconst lang = ref('sk')\nconst textFieldValue = ref('')\nconst flatpickrValue = ref<string | null>(null)\nconst initialized = ref(false)\n\nconst { t } = useI18n()\n\nconst fixFormat = (value: string) => {\n return value.replace('Z', '000Z')\n}\n\nconst checkIfReallyEmitChange = (value: any) => {\n if (value === props.modelValue) return\n emit('update:modelValue', value)\n emit('change')\n}\n\nconst onFlatpickrUpdate = (value: any) => {\n if (value === null || isUndefined(value)) {\n checkIfReallyEmitChange(null)\n return\n }\n if (value && value.date) {\n checkIfReallyEmitChange(fixFormat(value.date + ''))\n return\n }\n checkIfReallyEmitChange(fixFormat(value + ''))\n}\n\nconst onFlatpickrOpen = () => {\n onTextFieldBlur()\n isOpened.value = true\n emit('onOpen')\n}\n\nconst onFlatpickrClose = () => {\n isOpened.value = false\n emit('onClose')\n}\n\nconst onFlatpickrChange = () => {\n if (!flatickrRefIsInitialized(flatickrRef.value)) return\n textFieldValue.value = flatickrRef.value.fpInput().value\n}\n\nconst onTextFieldBlur = () => {\n if (!flatickrRefIsInitialized(flatickrRef.value)) return\n const filtered = textFieldValue.value.replace(/[^\\s\\d.:]/g, '')\n const date = flatickrRef.value.fp.parseDate(filtered, altFormat.value)\n if (isUndefined(date)) {\n if (isNull(props.defaultValue)) {\n flatickrRef.value?.fp.clear(true)\n } else {\n flatickrRef.value?.fp.setDate(props.defaultValue, true)\n }\n v$.value.textFieldValue.$touch()\n emit('blur')\n return\n }\n flatickrRef.value?.fp.setDate(date, true)\n v$.value.textFieldValue.$touch()\n emit('blur')\n}\n\nconst onClear = () => {\n flatpickrValue.value = props.defaultValue\n emit('update:modelValue', unref(props.defaultValue))\n}\n\nconst altFormat = computed(() => {\n return props.type === 'datetime' ? 'd.m.Y H:i' : 'd.m.Y'\n})\n\nconst placeholderComputed = computed(() => {\n return props.type === 'datetime' ? 'dd.mm.yyyy hh:mm' : 'dd.mm.yyyy'\n})\n\nconst enableComputed = computed(() => {\n if (props.enable && props.enable.length > 0) {\n return props.enable\n }\n return [\n {\n from: new Date(1901, 1),\n to: new Date(2099, 12),\n },\n ]\n})\n\nconst defaultValueComputed = computed(() => {\n return isNull(props.defaultValue) ? undefined : props.defaultValue\n})\n\nconst pluginsComputed = computed(() => {\n if (props.hideSetToNow || isUndefined(shortcutButtonsPlugin.value)) {\n return []\n }\n return [\n shortcutButtonsPlugin.value({\n button: [\n {\n label: t('common.button.now'),\n },\n ],\n onClick: (index: number, fp: flatpickr.Instance) => {\n const now = dateNow()\n fp.setDate(now, true)\n onFlatpickrUpdate(dateToUtc(now))\n },\n }),\n ]\n})\n\nconst flatpickrConfig = computed(() => {\n const positionElement = textFieldRef.value?.$el.querySelector('.v-input__control')\n return {\n enableTime: props.type !== 'date',\n wrap: true,\n time_24hr: true,\n altFormat: altFormat.value,\n defaultDate: defaultValueComputed.value,\n allowInput: true,\n altInput: true,\n altInputClass: 'd-sr-only',\n positionElement: positionElement ?? undefined,\n // dateFormat: 'Y-m-dTH:i:S.000000\\\\Z', problem with timezone\n dateFormat: 'Z',\n disableMobile: true,\n clickOpens: false,\n position: 'auto' as const,\n // @ts-ignore\n locale: { ...FlatpickrLanguages[lang.value] },\n enable: enableComputed.value,\n weekNumbers: props.weekNumbers,\n // @ts-ignore\n minDate: props.minNow ? new Date().fp_incr(-1) : false,\n plugins: pluginsComputed.value,\n }\n})\n\nconst onCalendarClick = () => {\n setTimeout(() => {\n if (!flatickrRefIsInitialized(flatickrRef.value)) return\n if (isOpened.value) {\n flatickrRef.value.fp.close()\n return\n }\n onTextFieldBlur()\n flatickrRef.value.fp.open()\n flatickrRef.value.fpInput().focus()\n }, 0)\n}\n\nconst requiredIf = useValidateRequiredIf()\n\nconst rules = computed(() => {\n return {\n textFieldValue: {\n required: requiredIf(props.required),\n },\n }\n})\n\nconst v$ = useVuelidate(rules, { textFieldValue })\n\nconst errorMessageComputed = computed(() => {\n if (!isUndefined(props.errorMessages)) return props.errorMessages\n if (v$.value.textFieldValue.$errors.length)\n return [v$.value.textFieldValue.$errors.map((item: ErrorObject) => item.$message).join(' ')]\n return []\n})\n\nwatch(\n () => props.modelValue,\n (newValue, oldValue) => {\n if (newValue === oldValue) return\n if ((isNull(newValue) || isUndefined(newValue)) && !isNull(props.defaultValue)) {\n flatpickrValue.value = props.defaultValue\n return\n }\n flatpickrValue.value = isUndefined(newValue) ? null : newValue\n },\n { immediate: true }\n)\n\nwatch(\n flatickrRef,\n (newValue, oldValue) => {\n if (initialized.value === true) return\n if (newValue === oldValue) return\n if (isNull(newValue) || isUndefined(newValue)) return\n onFlatpickrChange()\n initialized.value = true\n },\n { immediate: true }\n)\n\nonMounted(() => {\n // @ts-ignore\n import('shortcut-buttons-flatpickr').then((module) => {\n shortcutButtonsPlugin.value = module.default\n pluginsImported.value = true\n })\n})\n</script>\n\n<template>\n <VTextField\n ref=\"textFieldRef\"\n v-model=\"textFieldValue\"\n :error-messages=\"errorMessageComputed\"\n :persistent-placeholder=\"true\"\n :placeholder=\"placeholderComputed\"\n class=\"a-datetime-picker\"\n @blur=\"onTextFieldBlur\"\n @keyup.enter=\"onTextFieldBlur\"\n >\n <template #append-inner>\n <VIcon\n v-if=\"clearable && defaultValue !== modelValue\"\n class=\"a-datetime-picker__clearable\"\n icon=\"mdi-close-circle\"\n @click.stop=\"onClear\"\n />\n <div>\n <FlatPickr\n v-if=\"pluginsImported\"\n ref=\"flatickrRef\"\n :config=\"flatpickrConfig\"\n :disabled=\"disabled\"\n :model-value=\"flatpickrValue\"\n @update:model-value=\"onFlatpickrUpdate\"\n @on-close=\"onFlatpickrClose\"\n @on-open=\"onFlatpickrOpen\"\n @on-change=\"onFlatpickrChange\"\n />\n <VIcon\n class=\"a-datetime-picker__calendar\"\n icon=\"mdi-calendar\"\n @click.stop=\"onCalendarClick\"\n />\n </div>\n </template>\n <template\n v-if=\"!hideLabel\"\n #label\n >\n {{ label\n }}<span\n v-if=\"required\"\n class=\"required\"\n />\n </template>\n </VTextField>\n</template>\n\n<style lang=\"scss\" scoped>\n.a-datetime-picker {\n :deep(.v-field__append-inner .v-icon) {\n cursor: pointer;\n }\n\n &__calendar {\n opacity: 0.6 !important;\n }\n\n &__clearable {\n opacity: 0 !important;\n }\n\n &:hover {\n .a-datetime-picker__clearable {\n opacity: 0.6 !important;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport ADatetimePicker from '@/components/ADatetimePicker.vue'\nimport { SubjectScopeSymbol, SystemScopeSymbol } from '@/components/injectionKeys'\nimport { isUndefined } from '@/utils/common'\nimport type { ErrorObject } from '@vuelidate/core'\nimport { stringSplitOnFirstOccurrence } from '@/utils/string'\nimport type { DatetimeUTCNullable } from '@/types/common'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: DatetimeUTCNullable | undefined\n label?: string\n errorMessage?: string\n required?: boolean\n v?: any\n dataCy?: string\n clearable?: boolean\n }>(),\n {\n label: undefined,\n errorMessage: undefined,\n required: undefined,\n v: null,\n dataCy: undefined,\n clearable: false,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: DatetimeUTCNullable | undefined): void\n (e: 'click:append', data: string | number | null): void\n (e: 'blur', data: string | number | null): void\n}>()\n\nconst { t } = useI18n()\n\nconst system = inject<string | undefined>(SystemScopeSymbol, undefined)\nconst subject = inject<string | undefined>(SubjectScopeSymbol, undefined)\n\nconst modelValueComputed = computed({\n get() {\n return props.modelValue\n },\n set(newValue: DatetimeUTCNullable | undefined) {\n emit('update:modelValue', newValue)\n },\n})\n\nconst onBlur = () => {\n emit('blur', isUndefined(props.modelValue) ? null : props.modelValue)\n props.v?.$touch()\n}\n\nconst errorMessageComputed = computed(() => {\n if (!isUndefined(props.errorMessage)) return [props.errorMessage]\n if (props.v?.$errors?.length) return [props.v.$errors.map((item: ErrorObject) => item.$message).join(' ')]\n return []\n})\n\nconst labelComputed = computed(() => {\n if (!isUndefined(props.label)) return props.label\n if (isUndefined(system) || isUndefined(subject) || isUndefined(props.v?.$path)) return ''\n const { end: path } = stringSplitOnFirstOccurrence(props.v?.$path, '.')\n return t(system + '.' + subject + '.model.' + path)\n})\n\nconst requiredComputed = computed(() => {\n if (!isUndefined(props.required)) return props.required\n if (props.v?.required && props.v?.required.$params.type === 'required') return true\n return false\n})\n</script>\n\n<template>\n <ADatetimePicker\n v-model=\"modelValueComputed\"\n :data-cy=\"dataCy\"\n :error-messages=\"errorMessageComputed\"\n :required=\"requiredComputed\"\n :label=\"labelComputed\"\n :clearable=\"clearable\"\n @blur=\"onBlur\"\n />\n</template>\n","<script lang=\"ts\" setup>\nimport { computed, inject, ref, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport ADatetimePicker from '@/components/ADatetimePicker.vue'\nimport { SubjectScopeSymbol, SystemScopeSymbol } from '@/components/injectionKeys'\nimport { isFunction, isNull, isUndefined } from '@/utils/common'\nimport type { ErrorObject } from '@vuelidate/core'\nimport { stringSplitOnFirstOccurrence } from '@/utils/string'\nimport type { DatetimeUTCNullable } from '@/types/common'\nimport { dateTimeNow } from '@/utils/datetime'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: DatetimeUTCNullable | undefined\n label?: string\n errorMessage?: string\n v?: any\n dataCy?: string\n clearable?: boolean\n defaultActivationValue?: DatetimeUTCNullable | 'now' | (() => DatetimeUTCNullable)\n }>(),\n {\n label: undefined,\n errorMessage: undefined,\n v: null,\n dataCy: undefined,\n clearable: false,\n defaultActivationValue: 'now',\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: DatetimeUTCNullable | undefined): void\n (e: 'click:append', data: string | number | null): void\n (e: 'blur', data: string | number | null): void\n}>()\n\nconst { t } = useI18n()\n\nconst system = inject<string | undefined>(SystemScopeSymbol, undefined)\nconst subject = inject<string | undefined>(SubjectScopeSymbol, undefined)\n\nconst checkboxModel = ref(false)\n\nconst modelValueComputed = computed({\n get() {\n return props.modelValue\n },\n set(newValue: DatetimeUTCNullable | undefined) {\n emit('update:modelValue', newValue)\n },\n})\n\nconst onBlur = () => {\n emit('blur', isUndefined(props.modelValue) ? null : props.modelValue)\n props.v?.$touch()\n}\n\nconst errorMessageComputed = computed(() => {\n if (!isUndefined(props.errorMessage)) return [props.errorMessage]\n if (props.v?.$errors?.length) return [props.v.$errors.map((item: ErrorObject) => item.$message).join(' ')]\n return []\n})\n\nconst labelComputed = computed(() => {\n if (!isUndefined(props.label)) return props.label\n if (isUndefined(system) || isUndefined(subject) || isUndefined(props.v?.$path)) return ''\n const { end: path } = stringSplitOnFirstOccurrence(props.v?.$path, '.')\n return t(system + '.' + subject + '.model.' + path)\n})\n\nwatch(\n modelValueComputed,\n (newValue, oldValue) => {\n if (newValue === oldValue) return\n if (isNull(newValue) || isUndefined(newValue)) {\n checkboxModel.value = false\n return\n }\n checkboxModel.value = true\n },\n { immediate: true }\n)\n\nconst onCheckboxClick = (value: boolean) => {\n if (value) {\n modelValueComputed.value = null\n return\n }\n if (props.defaultActivationValue === 'now') {\n modelValueComputed.value = dateTimeNow()\n return\n }\n if (isFunction(props.defaultActivationValue)) {\n modelValueComputed.value = props.defaultActivationValue()\n return\n }\n modelValueComputed.value = props.defaultActivationValue\n}\n</script>\n\n<template>\n <VCheckboxBtn\n v-model=\"checkboxModel\"\n :label=\"labelComputed\"\n @click.stop=\"onCheckboxClick(checkboxModel)\"\n />\n <VExpandTransition>\n <div v-show=\"checkboxModel\">\n <ADatetimePicker\n v-model=\"modelValueComputed\"\n :data-cy=\"dataCy\"\n :error-messages=\"errorMessageComputed\"\n :clearable=\"clearable\"\n @blur=\"onBlur\"\n />\n </div>\n </VExpandTransition>\n</template>\n","<script lang=\"ts\" setup>\nimport type { Filter } from '@/types/Filter'\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport ADatetimePicker from '@/components/ADatetimePicker.vue'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: Filter\n dataCy?: string\n }>(),\n {\n dataCy: 'filter-datepicker',\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: any): void\n}>()\n\nconst value = computed({\n get() {\n return props.modelValue.model\n },\n set(newValue) {\n emit('update:modelValue', { ...props.modelValue, ...{ model: newValue } })\n },\n})\n\nconst { t } = useI18n()\n\nconst label = computed(() => {\n return props.modelValue.titleT ? t(props.modelValue.titleT) : undefined\n})\n</script>\n\n<template>\n <ADatetimePicker\n v-model=\"value\"\n :data-cy=\"dataCy\"\n :clearable=\"!modelValue.mandatory\"\n :default-value=\"modelValue.default\"\n :label=\"label\"\n />\n</template>\n","import { computed, reactive } from 'vue'\nimport type { Pagination } from '@/types/Pagination'\n\nexport function usePagination(sortBy: string | null = 'createdAt') {\n return reactive<Pagination>({\n sortBy: sortBy,\n descending: true,\n page: 1,\n rowsPerPage: 25,\n rowsNumber: 0,\n hasNextPage: null,\n currentViewCount: 0,\n totalCount: 0,\n })\n}\n\nexport function usePaginationAutoHide(pagination: Pagination) {\n const showPagination = computed(() => {\n if (pagination.page === 1 && pagination.currentViewCount < pagination.rowsPerPage) return false\n return true\n })\n\n return {\n showPagination,\n }\n}\n","<script lang=\"ts\" setup>\nimport { watchDebounced } from '@vueuse/core'\nimport { computed, inject, ref, toRefs, watch } from 'vue'\nimport type { ValueObjectOption } from '@/types/ValueObject'\nimport type { Pagination } from '@/types/Pagination'\nimport type { FilterBag } from '@/types/Filter'\nimport { usePagination } from '@/composables/system/pagination'\nimport { cloneDeep, isArray, isNull, isUndefined } from '@/utils/common'\nimport { SubjectScopeSymbol, SystemScopeSymbol } from '@/components/injectionKeys'\nimport type { ErrorObject } from '@vuelidate/core'\nimport { stringSplitOnFirstOccurrence } from '@/utils/string'\nimport type { Ref } from 'vue/dist/vue'\nimport { useI18n } from 'vue-i18n'\nimport type { DocId, IntegerId } from '@/types/common'\n\ntype fetchItemsByIdsType =\n | ((ids: IntegerId[]) => Promise<ValueObjectOption<IntegerId>[]>)\n | ((ids: DocId[]) => Promise<ValueObjectOption<DocId>[]>)\n\nconst props = withDefaults(\n defineProps<{\n modelValue: any\n label?: string | undefined\n required?: boolean | undefined\n multiple?: boolean\n clearable?: boolean\n v?: any\n errorMessage?: string\n hideDetails?: boolean\n hideLabel?: boolean\n fetchItems: (pagination: Pagination, filterBag: FilterBag) => Promise<ValueObjectOption<string | number>[]>\n fetchItemsByIds: fetchItemsByIdsType\n innerFilter: FilterBag\n filterByField?: string\n filterSortBy?: string | null\n disableInitFetch?: boolean | undefined\n loading?: boolean\n }>(),\n {\n label: undefined,\n required: undefined,\n multiple: false,\n clearable: false,\n v: null,\n errorMessage: undefined,\n hideDetails: false,\n hideLabel: false,\n filterByField: 'name',\n filterSortBy: 'createdAt',\n disableInitFetch: false,\n loading: false,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: DocId | IntegerId | DocId[] | IntegerId[] | null): void\n (e: 'searchChange', data: string): void\n (e: 'searchChangeDebounced', data: string): void\n (e: 'blur', data: DocId | IntegerId | DocId[] | IntegerId[] | null): void\n}>()\n\nconst modelValue = computed({\n get() {\n return props.modelValue\n },\n set(newValue: DocId | IntegerId | DocId[] | IntegerId[] | null) {\n emit('update:modelValue', cloneDeep<DocId | IntegerId | DocId[] | IntegerId[] | null>(newValue))\n },\n})\n\nconst search = ref('')\nconst isFocused = ref(false)\nconst autoFetchTimer: Ref<ReturnType<typeof setTimeout> | undefined> = ref(undefined)\n\nconst { t } = useI18n({ useScope: 'global' })\n\nconst { innerFilter } = toRefs(props)\n\nconst system = inject<string | undefined>(SystemScopeSymbol, undefined)\nconst subject = inject<string | undefined>(SubjectScopeSymbol, undefined)\n\nconst onBlur = () => {\n isFocused.value = true\n emit('blur', props.modelValue)\n props.v?.$touch()\n}\n\nconst errorMessageComputed = computed(() => {\n if (!isUndefined(props.errorMessage)) return [props.errorMessage]\n if (props.v?.$errors?.length) return props.v.$errors.map((item: ErrorObject) => item.$message)\n return []\n})\n\nconst labelComputed = computed(() => {\n if (!isUndefined(props.label)) return props.label\n if (isUndefined(system) || isUndefined(subject) || isUndefined(props.v?.$path)) return ''\n const { end: path } = stringSplitOnFirstOccurrence(props.v?.$path, '.')\n return t(system + '.' + subject + '.model.' + path)\n})\n\nconst requiredComputed = computed(() => {\n if (!isUndefined(props.required)) return props.required\n return props.v?.required && props.v?.required.$params.type === 'required'\n})\n\nconst multipleComputedVuetifyTypeFix = computed(() => {\n if (props.multiple === false) return false\n return true as unknown as undefined\n})\n\nconst pagination = usePagination(props.filterSortBy)\nconst fetchedItems = ref<ValueObjectOption<string | number>[]>([])\nconst selectedItemsCache = ref<ValueObjectOption<string | number>[]>([])\n\nconst allItems = computed<ValueObjectOption<DocId | IntegerId>[]>(() => {\n const final = new Map()\n selectedItemsCache.value.forEach((value) => {\n final.set(value.value, { value: value.value, title: value.title })\n })\n fetchedItems.value.forEach((value) => {\n final.set(value.value, { value: value.value, title: value.title })\n })\n return Array.from(final, ([key, value]) => {\n return { value: key, title: value.title }\n })\n})\n\nconst loadingLocal = ref(false)\nconst loadingComputed = computed(() => {\n if (loadingLocal.value) return true\n return props.loading\n})\n\nconst apiSearch = async (query: string) => {\n loadingLocal.value = true\n const filterField = innerFilter.value[props.filterByField]\n filterField.model = query\n fetchedItems.value = await props.fetchItems(pagination, innerFilter.value)\n loadingLocal.value = false\n}\n\nconst findLocalDataByValues = (values: Array<DocId | IntegerId>) => {\n const found = allItems.value.filter((item: ValueObjectOption<string | number>) => values.includes(item.value))\n return ([] as ValueObjectOption<string | number>[]).concat(found)\n}\n\nconst tryToLoadFromLocalData = async (value: string | number | string[] | number[]) => {\n let count = 1\n let foundItems = []\n if (isArray(value)) {\n count = value.length\n foundItems = findLocalDataByValues(value)\n } else {\n foundItems = findLocalDataByValues([value])\n }\n selectedItemsCache.value = foundItems\n return foundItems.length === count\n}\n\nconst autoFetched = ref(false)\nconst clearAutoFetchTimer = () => {\n clearTimeout(autoFetchTimer.value)\n autoFetchTimer.value = undefined\n}\nconst autoFetch = async () => {\n clearAutoFetchTimer()\n if (autoFetched.value === true) return\n autoFetched.value = true\n // if (\n // isNull(modelValue.value) ||\n // isUndefined(modelValue.value) ||\n // (isArray(modelValue.value) && modelValue.value.length === 0)\n // ) {\n loadingLocal.value = true\n fetchedItems.value = await props.fetchItems(pagination, innerFilter.value)\n loadingLocal.value = false\n // }\n}\nconst onFocus = () => {\n isFocused.value = true\n clearAutoFetchTimer()\n autoFetch()\n}\n\nconst singleItemSelectedTitle = computed(() => {\n if (!props.multiple && selectedItemsCache.value[0]) {\n return selectedItemsCache.value[0].title\n }\n return undefined\n})\n\nconst onSearchUpdate = (query: string) => {\n if (!props.multiple && !isFocused.value && query.length === 0) return // vuetify fix\n if (singleItemSelectedTitle.value === query) return\n search.value = query\n}\n\nconst onClickClear = async () => {\n fetchedItems.value = await props.fetchItems(pagination, innerFilter.value)\n if (props.multiple) {\n modelValue.value = []\n return\n }\n modelValue.value = null\n}\n\nwatch(\n modelValue,\n async (newValue, oldValue) => {\n if (newValue === oldValue) return\n if (isNull(newValue) || isUndefined(newValue) || (isArray(newValue) && newValue.length === 0)) {\n selectedItemsCache.value = []\n if (props.disableInitFetch || autoFetched.value === true) return\n autoFetchTimer.value = setTimeout(() => {\n autoFetch()\n }, 3000)\n return\n }\n const found = await tryToLoadFromLocalData(newValue)\n if (found) return\n if (isArray<IntegerId | DocId>(newValue)) {\n loadingLocal.value = true\n selectedItemsCache.value = await props.fetchItemsByIds(newValue as Array<IntegerId & DocId>)\n loadingLocal.value = false\n return\n }\n loadingLocal.value = true\n selectedItemsCache.value = await props.fetchItemsByIds([newValue as DocId & IntegerId])\n loadingLocal.value = false\n },\n { immediate: true }\n)\n\nwatchDebounced(\n search,\n (newValue, oldValue) => {\n if (newValue !== oldValue) {\n apiSearch(newValue)\n emit('searchChangeDebounced', newValue)\n }\n },\n { debounce: 300, maxWait: 1000 }\n)\n\nwatch(search, (newValue, oldValue) => {\n if (newValue !== oldValue) {\n emit('searchChange', newValue)\n }\n})\n</script>\n\n<template>\n <VAutocomplete\n v-model=\"modelValue\"\n :items=\"allItems\"\n no-filter\n :multiple=\"multipleComputedVuetifyTypeFix\"\n :clearable=\"clearable\"\n :error-messages=\"errorMessageComputed\"\n :chips=\"multiple\"\n :hide-details=\"hideDetails\"\n :loading=\"loadingComputed\"\n @update:search=\"onSearchUpdate\"\n @blur=\"onBlur\"\n @focus=\"onFocus\"\n @click:clear=\"onClickClear\"\n >\n <template #label>\n <span\n v-if=\"!hideLabel\"\n :key=\"requiredComputed + ''\"\n >\n {{ labelComputed }}\n <span\n v-if=\"requiredComputed\"\n class=\"required\"\n />\n </span>\n </template>\n </VAutocomplete>\n</template>\n","<script lang=\"ts\" setup>\nimport { computed, inject, onMounted, ref, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { SubjectScopeSymbol, SystemScopeSymbol } from '@/components/injectionKeys'\nimport { isUndefined } from '@/utils/common'\nimport { stringSplitOnFirstOccurrence } from '@/utils/string'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: boolean\n callbackToTrue: () => Promise<boolean> // return true if successfully changed, otherwise return false\n callbackToFalse: () => Promise<boolean> // return true if successfully changed, otherwise return false\n label?: string | undefined\n hideDetails?: boolean | undefined\n hideLabel?: boolean | undefined\n v?: any\n }>(),\n {\n label: undefined,\n hideDetails: undefined,\n hideLabel: undefined,\n v: null,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: boolean): void\n}>()\n\nconst { t } = useI18n()\n\nconst system = inject<string | undefined>(SystemScopeSymbol, undefined)\nconst subject = inject<string | undefined>(SubjectScopeSymbol, undefined)\n\nconst labelComputed = computed(() => {\n if (!isUndefined(props.label)) return props.label\n if (isUndefined(system) || isUndefined(subject) || isUndefined(props.v?.$path)) return ''\n const { end: path } = stringSplitOnFirstOccurrence(props.v?.$path, '.')\n return t(system + '.' + subject + '.model.' + path)\n})\n\nconst loading = ref(false)\nconst hasError = ref(false)\nconst uniqueId = ref('')\n\nconst modelValueComputed = computed(() => {\n return props.modelValue\n})\n\nconst internalModelValue = ref(props.modelValue)\n\nconst onClick = async () => {\n if (loading.value) return\n loading.value = true\n hasError.value = false\n if (internalModelValue.value === true) {\n const success = await props.callbackToFalse()\n emit('update:modelValue', !success)\n internalModelValue.value = !success\n if (!success) hasError.value = true\n loading.value = false\n return\n }\n const success = await props.callbackToTrue()\n emit('update:modelValue', success)\n internalModelValue.value = success\n if (!success) hasError.value = true\n loading.value = false\n}\n\nwatch(modelValueComputed, (newValue, oldValue) => {\n if (newValue !== oldValue) {\n internalModelValue.value = newValue\n hasError.value = false\n }\n})\n\nonMounted(() => {\n uniqueId.value = 'remote-switch-' + Date.now()\n})\n</script>\n\n<template>\n <div class=\"d-flex\">\n <VCheckboxBtn\n :id=\"uniqueId\"\n v-model=\"internalModelValue\"\n :disabled=\"loading\"\n @click.stop=\"onClick\"\n />\n <label\n v-if=\"!hideLabel\"\n :for=\"uniqueId\"\n class=\"v-label v-label--clickable\"\n >\n {{ labelComputed }}\n </label>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { computed, inject, onMounted, ref, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { SubjectScopeSymbol, SystemScopeSymbol } from '@/components/injectionKeys'\nimport { isUndefined } from '@/utils/common'\nimport { stringSplitOnFirstOccurrence } from '@/utils/string'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: boolean\n callbackToTrue: () => Promise<boolean> // return true if successfully changed, otherwise return false\n callbackToFalse: () => Promise<boolean> // return true if successfully changed, otherwise return false\n label?: string | undefined\n hideDetails?: boolean | undefined\n hideLabel?: boolean | undefined\n v?: any\n }>(),\n {\n label: undefined,\n hideDetails: undefined,\n hideLabel: undefined,\n v: null,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: boolean): void\n}>()\n\nconst { t } = useI18n()\n\nconst system = inject<string | undefined>(SystemScopeSymbol, undefined)\nconst subject = inject<string | undefined>(SubjectScopeSymbol, undefined)\n\nconst labelComputed = computed(() => {\n if (!isUndefined(props.label)) return props.label\n if (isUndefined(system) || isUndefined(subject) || isUndefined(props.v?.$path)) return ''\n const { end: path } = stringSplitOnFirstOccurrence(props.v?.$path, '.')\n return t(system + '.' + subject + '.model.' + path)\n})\n\nconst loading = ref(false)\nconst hasError = ref(false)\nconst uniqueId = ref('')\n\nconst modelValueComputed = computed(() => {\n return props.modelValue\n})\n\nconst internalModelValue = ref(props.modelValue)\n\nconst onClick = async () => {\n if (loading.value) return\n loading.value = true\n hasError.value = false\n if (internalModelValue.value === true) {\n const success = await props.callbackToFalse()\n emit('update:modelValue', !success)\n internalModelValue.value = !success\n if (!success) hasError.value = true\n loading.value = false\n return\n }\n const success = await props.callbackToTrue()\n emit('update:modelValue', success)\n internalModelValue.value = success\n if (!success) hasError.value = true\n loading.value = false\n}\n\nwatch(modelValueComputed, (newValue, oldValue) => {\n if (newValue !== oldValue) {\n internalModelValue.value = newValue\n hasError.value = false\n }\n})\n\nonMounted(() => {\n uniqueId.value = 'a-remote-switch-' + Date.now()\n})\n</script>\n\n<template>\n <div class=\"d-flex\">\n <VBtn\n :id=\"uniqueId\"\n icon\n class=\"a-switch-fix-click\"\n color=\"transparent\"\n :ripple=\"false\"\n :width=\"hideLabel ? 36 : undefined\"\n :height=\"36\"\n @click.stop=\"onClick\"\n >\n <VSwitch\n v-model=\"internalModelValue\"\n :loading=\"loading\"\n :disabled=\"loading\"\n :hide-details=\"hideDetails\"\n density=\"compact\"\n @click.stop=\"onClick\"\n >\n <template\n v-if=\"hasError\"\n #append\n >\n <VIcon\n icon=\"mdi-alert\"\n class=\"ml-5 mt-1\"\n size=\"x-small\"\n color=\"error\"\n />\n </template>\n </VSwitch>\n </VBtn>\n <label\n v-if=\"!hideLabel\"\n :for=\"uniqueId\"\n class=\"v-label v-label--clickable\"\n >\n {{ labelComputed }}\n </label>\n </div>\n</template>\n\n<style lang=\"scss\">\n.v-btn.a-switch-fix-click:hover > .v-btn__overlay {\n opacity: 0;\n max-height: 36px;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue'\nimport { stringSplitOnFirstOccurrence } from '@/utils/string'\nimport type { ErrorObject } from '@vuelidate/core'\nimport { cloneDeep, isUndefined } from '@/utils/common'\nimport { SubjectScopeSymbol, SystemScopeSymbol } from '@/components/injectionKeys'\nimport { useI18n } from 'vue-i18n'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: any\n items: any[]\n label?: string\n errorMessage?: string\n required?: boolean\n v?: any\n hideLabel?: boolean\n multiple?: boolean\n hideDetails?: boolean\n clearable?: boolean\n dataCy?: string\n }>(),\n {\n label: undefined,\n errorMessage: undefined,\n required: undefined,\n v: null,\n hideLabel: false,\n multiple: false,\n hideDetails: false,\n clearable: false,\n dataCy: '',\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: any): void\n (e: 'blur', data: any): void\n}>()\n\nconst modelValue = computed({\n get() {\n return props.modelValue\n },\n set(newValue) {\n emit('update:modelValue', cloneDeep<any>(newValue))\n },\n})\n\nconst system = inject<string | undefined>(SystemScopeSymbol, undefined)\nconst subject = inject<string | undefined>(SubjectScopeSymbol, undefined)\n\nconst { t } = useI18n()\n\nconst onBlur = () => {\n emit('blur', props.modelValue)\n props.v?.$touch()\n}\n\nconst errorMessageComputed = computed(() => {\n if (!isUndefined(props.errorMessage)) return [props.errorMessage]\n if (props.v?.$errors?.length) return props.v.$errors.map((item: ErrorObject) => item.$message)\n return []\n})\n\nconst labelComputed = computed(() => {\n if (!isUndefined(props.label)) return props.label\n if (isUndefined(system) || isUndefined(subject) || isUndefined(props.v?.$path)) return ''\n const { end: path } = stringSplitOnFirstOccurrence(props.v?.$path, '.')\n return t(system + '.' + subject + '.model.' + path)\n})\n\nconst requiredComputed = computed(() => {\n if (!isUndefined(props.required)) return props.required\n if (props.v?.required && props.v?.required.$params.type === 'required') return true\n return false\n})\n\nconst multipleComputedVuetifyTypeFix = computed(() => {\n if (props.multiple === false) return false\n return true as unknown as undefined\n})\n</script>\n\n<template>\n <VAutocomplete\n v-model=\"modelValue\"\n :items=\"items\"\n item-title=\"title\"\n item-value=\"value\"\n :multiple=\"multipleComputedVuetifyTypeFix\"\n :clearable=\"clearable\"\n :error-messages=\"errorMessageComputed\"\n :data-cy=\"dataCy\"\n @blur=\"onBlur\"\n >\n <template #label>\n <span v-if=\"!hideLabel\">{{ labelComputed\n }}<span\n v-if=\"requiredComputed\"\n class=\"required\"\n /></span>\n </template>\n </VAutocomplete>\n</template>\n","<script lang=\"ts\" setup>\nimport type { ValueObjectOption } from '@/types/ValueObject'\nimport type { Filter } from '@/types/Filter'\nimport { useFilterHelpers } from '@/composables/filter/filterHelpers'\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: Filter\n items: ValueObjectOption<string | number>[]\n }>(),\n {}\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: any): void\n (e: 'change'): void\n}>()\nconst { clearOne } = useFilterHelpers()\n\nconst value = computed({\n get() {\n return props.modelValue.model\n },\n set(newValue) {\n emit('update:modelValue', { ...props.modelValue, ...{ model: newValue } })\n emit('change')\n },\n})\n\nconst { t } = useI18n()\n\nconst label = computed(() => {\n return props.modelValue.titleT ? t(props.modelValue.titleT) : undefined\n})\n\nconst multipleComputedVuetifyTypeFix = computed(() => {\n if (props.modelValue.multiple === false) return false\n return true as unknown as undefined\n})\n</script>\n\n<template>\n <VAutocomplete\n v-model=\"value\"\n :items=\"items\"\n :chips=\"modelValue.multiple\"\n :label=\"label\"\n :multiple=\"multipleComputedVuetifyTypeFix\"\n :clearable=\"!modelValue.mandatory\"\n data-cy=\"filter-value\"\n @clear=\"clearOne(modelValue)\"\n @change=\"emit('change')\"\n />\n</template>\n","<script lang=\"ts\" setup>\nimport { watchDebounced } from '@vueuse/core'\nimport { computed, type Ref, ref, toRefs, watch } from 'vue'\nimport type { ValueObjectOption } from '@/types/ValueObject'\nimport type { Pagination } from '@/types/Pagination'\nimport type { Filter, FilterBag } from '@/types/Filter'\nimport { usePagination } from '@/composables/system/pagination'\nimport { cloneDeep, isArray, isNull, isUndefined } from '@/utils/common'\nimport { useI18n } from 'vue-i18n'\nimport type { DocId, IntegerId } from '@/types/common'\n\ntype fetchItemsByIdsType =\n | ((ids: IntegerId[]) => Promise<ValueObjectOption<IntegerId>[]>)\n | ((ids: DocId[]) => Promise<ValueObjectOption<DocId>[]>)\n\nconst props = withDefaults(\n defineProps<{\n modelValue: Filter\n fetchItems: (pagination: Pagination, filterBag: FilterBag) => Promise<ValueObjectOption<string | number>[]>\n fetchItemsByIds: fetchItemsByIdsType\n innerFilter: FilterBag\n filterByField?: string\n filterSortBy?: string | null\n disableInitFetch?: boolean | undefined\n placeholder?: string | undefined\n }>(),\n {\n filterByField: 'name',\n filterSortBy: 'createdAt',\n disableInitFetch: false,\n placeholder: undefined,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: Filter): void\n}>()\n\nconst modelValueComputed = computed({\n get() {\n return props.modelValue.model\n },\n set(newValue: DocId | IntegerId | DocId[] | IntegerId[] | null) {\n emit('update:modelValue', { ...props.modelValue, ...{ model: cloneDeep(newValue) } })\n },\n})\n\nconst search = ref('')\nconst isFocused = ref(false)\nconst autoFetchTimer: Ref<ReturnType<typeof setTimeout> | undefined> = ref(undefined)\n\nconst { t } = useI18n({ useScope: 'global' })\n\nconst { innerFilter } = toRefs(props)\n\nconst onBlur = () => {\n isFocused.value = true\n}\n\nconst label = computed(() => {\n return props.modelValue.titleT ? t(props.modelValue.titleT) : undefined\n})\n\nconst multipleComputedVuetifyTypeFix = computed(() => {\n if (props.modelValue.multiple === false) return false\n return true as unknown as undefined\n})\n\nconst pagination = usePagination(props.filterSortBy)\nconst fetchedItems = ref<ValueObjectOption<string | number>[]>([])\nconst selectedItemsCache = ref<ValueObjectOption<string | number>[]>([])\n\nconst allItems = computed<ValueObjectOption<DocId | IntegerId>[]>(() => {\n const final = new Map()\n selectedItemsCache.value.forEach((value) => {\n final.set(value.value, { value: value.value, title: value.title })\n })\n fetchedItems.value.forEach((value) => {\n final.set(value.value, { value: value.value, title: value.title })\n })\n return Array.from(final, ([key, value]) => {\n return { value: key, title: value.title }\n })\n})\n\nconst loading = ref(false)\n\nconst apiSearch = async (query: string) => {\n loading.value = true\n const filterField = innerFilter.value[props.filterByField]\n filterField.model = query\n fetchedItems.value = await props.fetchItems(pagination, innerFilter.value)\n loading.value = false\n}\n\nconst findLocalDataByValues = (values: Array<DocId | IntegerId>) => {\n const found = allItems.value.filter((item: ValueObjectOption<string | number>) => values.includes(item.value))\n return ([] as ValueObjectOption<string | number>[]).concat(found)\n}\n\nconst tryToLoadFromLocalData = async (value: string | number | string[] | number[]) => {\n let count = 1\n let foundItems = []\n if (isArray(value)) {\n count = value.length\n foundItems = findLocalDataByValues(value)\n } else {\n foundItems = findLocalDataByValues([value])\n }\n selectedItemsCache.value = foundItems\n return foundItems.length === count\n}\n\nconst autoFetched = ref(false)\nconst clearAutoFetchTimer = () => {\n clearTimeout(autoFetchTimer.value)\n autoFetchTimer.value = undefined\n}\nconst autoFetch = async () => {\n clearAutoFetchTimer()\n if (autoFetched.value === true) return\n autoFetched.value = true\n // if (\n // isNull(modelValueComputed.value) ||\n // isUndefined(modelValueComputed.value) ||\n // (isArray(modelValueComputed.value) && modelValueComputed.value.length === 0)\n // ) {\n loading.value = true\n fetchedItems.value = await props.fetchItems(pagination, innerFilter.value)\n loading.value = false\n // }\n}\nconst onFocus = () => {\n isFocused.value = true\n clearAutoFetchTimer()\n autoFetch()\n}\n\nconst singleItemSelectedTitle = computed(() => {\n if (!props.modelValue.multiple && selectedItemsCache.value[0]) {\n return selectedItemsCache.value[0].title\n }\n return undefined\n})\n\nconst onSearchUpdate = (query: string) => {\n if (!props.modelValue.multiple && !isFocused.value && query.length === 0) return // vuetify fix\n if (singleItemSelectedTitle.value === query) return\n search.value = query\n}\n\nconst onClickClear = async () => {\n fetchedItems.value = await props.fetchItems(pagination, innerFilter.value)\n if (props.modelValue.multiple) {\n modelValueComputed.value = []\n return\n }\n modelValueComputed.value = null\n}\n\nconst placeholderComputed = computed(() => {\n if (!isUndefined(props.placeholder)) return props.placeholder\n if (props.modelValue.variant === 'startsWith') return t('common.model.filterPlaceholder.startsWith')\n if (props.modelValue.variant === 'eq') return t('common.model.filterPlaceholder.eq')\n if (props.modelValue.variant === 'contains' || props.modelValue.variant === 'search')\n return t('common.model.filterPlaceholder.contains')\n return ''\n})\n\nwatch(\n modelValueComputed,\n async (newValue, oldValue) => {\n if (newValue === oldValue) return\n if (isNull(newValue) || isUndefined(newValue) || (isArray(newValue) && newValue.length === 0)) {\n selectedItemsCache.value = []\n if (props.disableInitFetch || autoFetched.value === true) return\n autoFetchTimer.value = setTimeout(() => {\n autoFetch()\n }, 3000)\n return\n }\n const found = await tryToLoadFromLocalData(newValue)\n if (found) return\n if (isArray<IntegerId | DocId>(newValue)) {\n loading.value = true\n selectedItemsCache.value = await props.fetchItemsByIds(newValue as Array<IntegerId & DocId>)\n loading.value = false\n return\n }\n loading.value = true\n selectedItemsCache.value = await props.fetchItemsByIds([newValue as DocId & IntegerId])\n loading.value = false\n },\n { immediate: true }\n)\n\nwatchDebounced(\n search,\n (newValue, oldValue) => {\n if (newValue !== oldValue) {\n apiSearch(newValue)\n }\n },\n { debounce: 300, maxWait: 1000 }\n)\n</script>\n\n<template>\n <VAutocomplete\n v-model=\"modelValueComputed\"\n :items=\"allItems\"\n no-filter\n :placeholder=\"placeholderComputed\"\n :multiple=\"multipleComputedVuetifyTypeFix\"\n :clearable=\"!modelValue.mandatory\"\n :label=\"label\"\n :chips=\"modelValue.multiple\"\n :loading=\"loading\"\n @update:search=\"onSearchUpdate\"\n @blur=\"onBlur\"\n @focus=\"onFocus\"\n @click:clear=\"onClickClear\"\n />\n</template>\n","<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { computed } from 'vue'\n\nimport type { Filter } from '@/types/Filter'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: Filter\n dataCyTrue?: string\n dataCyFalse?: string\n }>(),\n {\n dataCyTrue: 'filter-true',\n dataCyFalse: 'filter-false',\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: any): void\n}>()\n\nconst value = computed({\n get() {\n return props.modelValue.model\n },\n set(newValue) {\n emit('update:modelValue', { ...props.modelValue, ...{ model: newValue } })\n },\n})\n\nconst { t } = useI18n()\n\nconst label = computed(() => {\n return props.modelValue.titleT ? t(props.modelValue.titleT) : undefined\n})\n</script>\n\n<template>\n <div class=\"a-filter-boolean-group d-flex flex-column align-left justify-center mb-2\">\n <VLabel class=\"pr-1\">\n <span>{{ label }}</span>\n </VLabel>\n <VBtnToggle v-model=\"value\">\n <VBtn\n size=\"small\"\n :value=\"true\"\n :data-cy=\"dataCyTrue\"\n :color=\"value === true ? 'secondary' : ''\"\n >\n {{ t('common.model.boolean.true') }}\n </VBtn>\n <VBtn\n size=\"small\"\n :value=\"false\"\n :data-cy=\"dataCyFalse\"\n :color=\"value === false ? 'secondary' : ''\"\n >\n {{ t('common.model.boolean.false') }}\n </VBtn>\n </VBtnToggle>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.a-filter-boolean-group {\n position: relative;\n\n .v-label {\n position: absolute;\n top: -4px;\n left: 0;\n z-index: 2;\n }\n\n .v-btn-group {\n position: relative;\n margin-top: 20px;\n\n .v-btn {\n height: 33px !important;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { computed } from 'vue'\nimport type { Filter } from '@/types/Filter'\nimport { isNull, isUndefined } from '@/utils/common'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: Filter\n dataCy?: string\n }>(),\n {\n dataCy: 'filter-boolean',\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: any): void\n}>()\n\nconst value = computed({\n get() {\n if (isUndefined(props.modelValue.model) || isNull(props.modelValue.model)) return -1\n return props.modelValue.model ? 1 : 0\n },\n set(newValue) {\n let returnValue: null | boolean = null\n if (newValue === 1) returnValue = true\n if (newValue === 0) returnValue = false\n emit('update:modelValue', { ...props.modelValue, ...{ model: returnValue } })\n },\n})\n\nconst { t } = useI18n()\n\nconst label = computed(() => {\n return props.modelValue.titleT ? t(props.modelValue.titleT) : undefined\n})\n\nconst items = computed(() => {\n return [\n { value: -1, title: t('common.model.notSelected') },\n { value: 1, title: t('common.model.boolean.true') },\n { value: 0, title: t('common.model.boolean.false') },\n ]\n})\n</script>\n\n<template>\n <VSelect\n v-model=\"value\"\n :data-cy=\"dataCy\"\n :label=\"label\"\n :items=\"items\"\n />\n</template>\n","import { ref } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport type { ValueObjectOption } from '@/types/ValueObject'\n\nexport enum JobStatus {\n Waiting = 'waiting',\n Processing = 'processing',\n AwaitingBatchProcess = 'awaiting_batch_process',\n Done = 'done',\n Error = 'error',\n Default = Waiting,\n}\n\nexport function useJobStatus() {\n const { t } = useI18n()\n\n const jobStatusOptions = ref<ValueObjectOption<JobStatus>[]>([\n {\n value: JobStatus.Waiting,\n title: t('common.job.status.waiting'),\n color: 'warning',\n },\n {\n value: JobStatus.Processing,\n title: t('common.job.status.processing'),\n color: 'primary',\n },\n {\n value: JobStatus.AwaitingBatchProcess,\n title: t('common.job.status.awaitingBatchProcess'),\n color: 'primary',\n },\n {\n value: JobStatus.Done,\n title: t('common.job.status.done'),\n color: 'success',\n },\n {\n value: JobStatus.Error,\n title: t('common.job.status.error'),\n color: 'error',\n },\n ])\n\n const getJobStatusOption = (value: JobStatus): ValueObjectOption<JobStatus> => {\n return jobStatusOptions.value.find((item) => item.value === value) as ValueObjectOption<JobStatus>\n }\n\n return {\n jobStatusOptions,\n getJobStatusOption,\n }\n}\n","<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { JobStatus, useJobStatus } from '@/model/valueObject/JobStatus'\n\nconst props = defineProps<{\n value: JobStatus\n}>()\n\nconst { getJobStatusOption } = useJobStatus()\nconst option = computed(() => getJobStatusOption(props.value))\n</script>\n\n<template>\n <VChip\n :color=\"option?.color\"\n label\n size=\"small\"\n >\n {{ option?.title }}\n </VChip>\n</template>\n","import type { Immutable } from '@/utils/object'\nimport { objectDeepFreeze } from '@/utils/object'\n\nconst commonConfig = {\n CHIP: {\n CLASS: {\n NO_LINK: 'v-chip-custom-no-link',\n },\n ICON: {\n LINK: 'mdi-arrow-top-right',\n LINK_EXTERNAL: 'mdi-open-in-new',\n },\n },\n}\n\nexport const COMMON_CONFIG: Immutable<typeof commonConfig> = objectDeepFreeze(commonConfig)\n","<script lang=\"ts\" setup>\nimport { computed, shallowRef, watch } from 'vue'\nimport { useRouter } from 'vue-router'\nimport type { DocId, IntegerId } from '@/types/common'\nimport { objectGetValueByPath } from '@/utils/object'\nimport { isNull, isUndefined } from '@/utils/common'\nimport { COMMON_CONFIG } from '@/model/commonConfig'\n\nconst props = withDefaults(\n defineProps<{\n id?: null | undefined | IntegerId | DocId\n title?: string\n containerClass?: undefined | string\n getCachedFn: (id: any) => any\n displayTextPath: string\n route: string\n disableClick?: boolean\n openInNew?: boolean\n size?: string\n forceRounded?: boolean\n textOnly?: boolean\n fallbackIdText?: boolean\n wrapText?: boolean\n }>(),\n {\n id: null,\n title: '',\n containerClass: 'd-inline-flex',\n disableClick: false,\n openInNew: false,\n size: 'small',\n forceRounded: false,\n textOnly: false,\n fallbackIdText: false,\n wrapText: false,\n }\n)\n\nconst router = useRouter()\nconst cached = shallowRef<undefined | any>(undefined)\nconst loaded = shallowRef<boolean>(false)\n\nconst item = computed(() => {\n return props.getCachedFn(props.id as any)\n})\n\nconst containerClassComputed = computed(() => {\n return props.containerClass + props.wrapText ? ' a-chip--wrap' : ''\n})\n\nconst displayTitle = computed(() => {\n if (props.title.length > 0) return props.title\n if (cached.value) {\n return objectGetValueByPath(cached.value, props.displayTextPath)\n }\n return props.fallbackIdText ? props.id : ''\n})\n\nconst onClick = () => {\n router.push({ name: props.route, params: { id: props.id } })\n}\n\nwatch(\n item,\n async (newValue) => {\n if (loaded.value) return\n if (isUndefined(newValue) || newValue._loaded === false) return\n cached.value = newValue\n loaded.value = true\n },\n { immediate: true }\n)\n</script>\n\n<template>\n <div :class=\"containerClassComputed\">\n <template v-if=\"isNull(id) || isUndefined(id)\">\n <slot name=\"empty\">\n -\n </slot>\n </template>\n <div v-else-if=\"textOnly\">\n {{ displayTitle }}\n <VProgressCircular\n v-if=\"!loaded && title.length === 0\"\n :size=\"12\"\n :width=\"2\"\n indeterminate\n class=\"mx-1\"\n />\n </div>\n <VChip\n v-else-if=\"disableClick\"\n :size=\"size\"\n :label=\"forceRounded ? undefined : true\"\n >\n {{ displayTitle }}\n <VProgressCircular\n v-if=\"!loaded && title.length === 0\"\n :size=\"12\"\n :width=\"2\"\n indeterminate\n class=\"mx-1\"\n />\n </VChip>\n <VChip\n v-else\n :size=\"size\"\n :append-icon=\"openInNew ? COMMON_CONFIG.CHIP.ICON.LINK_EXTERNAL : COMMON_CONFIG.CHIP.ICON.LINK\"\n :label=\"forceRounded ? undefined : true\"\n @click.stop=\"onClick\"\n >\n {{ displayTitle }}\n <VProgressCircular\n v-if=\"!loaded && title.length === 0\"\n :size=\"12\"\n :width=\"2\"\n indeterminate\n class=\"mx-1\"\n />\n </VChip>\n </div>\n</template>\n\n<style lang=\"scss\">\n.a-chip--wrap {\n .v-chip {\n height: auto !important;\n }\n\n .v-chip .v-chip__content {\n max-width: 100%;\n height: auto;\n min-height: 32px;\n white-space: pre-wrap;\n }\n}\n</style>\n","import { ref } from 'vue'\nimport type { ValueObjectOption } from '@/types/ValueObject'\n\nexport enum LogLevel {\n Debug = 'DEBUG',\n Info = 'INFO',\n Notice = 'NOTICE',\n Warning = 'WARNING',\n Error = 'ERROR',\n Critical = 'CRITICAL',\n Alert = 'ALERT',\n Emergency = 'EMERGENCY',\n Default = Info,\n}\n\nexport function useLogLevel() {\n const logLevelOptions = ref<ValueObjectOption<LogLevel>[]>([\n {\n value: LogLevel.Debug,\n title: LogLevel.Debug,\n color: 'blue-grey lighten-5',\n },\n {\n value: LogLevel.Info,\n title: LogLevel.Info,\n color: 'blue-grey lighten-3',\n },\n {\n value: LogLevel.Notice,\n title: LogLevel.Notice,\n color: 'amber lighten-4',\n },\n {\n value: LogLevel.Warning,\n title: LogLevel.Warning,\n color: 'amber',\n },\n {\n value: LogLevel.Error,\n title: LogLevel.Error,\n color: 'red',\n },\n {\n value: LogLevel.Critical,\n title: LogLevel.Critical,\n color: 'red accent-4',\n },\n {\n value: LogLevel.Alert,\n title: LogLevel.Alert,\n color: 'pink',\n },\n {\n value: LogLevel.Emergency,\n title: LogLevel.Emergency,\n color: 'ping darken-4',\n },\n ])\n\n const getLogLevelOption = (value: LogLevel) => {\n return logLevelOptions.value.find((item) => item.value === value)\n }\n\n return {\n logLevelOptions,\n getLogLevelOption,\n }\n}\n","<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { type LogLevel, useLogLevel } from '@/model/valueObject/LogLevel'\n\nconst props = withDefaults(\n defineProps<{\n level: LogLevel\n }>(),\n {}\n)\n\nconst { getLogLevelOption } = useLogLevel()\nconst levelOption = computed(() => {\n return getLogLevelOption(props.level)\n})\n</script>\n\n<template>\n <VChip\n v-if=\"levelOption\"\n :color=\"levelOption.color\"\n label\n size=\"small\"\n >\n {{ levelOption.title }}\n </VChip>\n</template>\n","export const numberToString = (value: number): string => {\n return '' + value\n}\n","<script lang=\"ts\" setup>\nimport { useClipboard } from '@vueuse/core'\nimport { eventClickBlur } from '@/utils/event'\nimport { isNumber, isString } from '@/utils/common'\nimport { useI18n } from 'vue-i18n'\nimport { useAlerts } from '@/composables/system/alerts'\nimport { numberToString } from '@/utils/number'\n\nconst props = withDefaults(\n defineProps<{\n value: number | string\n notifyT?: string\n dataCy?: string\n }>(),\n {\n notifyT: 'common.alert.textWasCopied',\n dataCy: 'copy-text',\n }\n)\n\nconst { copy, isSupported } = useClipboard()\nconst { showSuccess } = useAlerts()\nconst { t } = useI18n()\n\nconst onClick = (event: Event) => {\n eventClickBlur(event)\n if (!isSupported) return\n if (isNumber(props.value)) {\n copy(numberToString(props.value)).then(() => {\n showSuccess(t(props.notifyT))\n })\n } else if (isString(props.value) && props.value.length) {\n copy(props.value).then(() => {\n showSuccess(t(props.notifyT))\n })\n }\n}\n</script>\n\n<template>\n <div\n :class=\"{ 'cursor-pointer': isSupported }\"\n :data-cy=\"dataCy\"\n class=\"d-inline-flex align-center anzu-copy-text\"\n @click.stop=\"onClick\"\n >\n <span>{{ value }}</span>\n <VIcon\n v-if=\"isSupported\"\n class=\"ml-1\"\n size=\"x-small\"\n icon=\"mdi-content-copy\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n Copy\n </VTooltip>\n </div>\n</template>\n\n<style lang=\"scss\">\n.anzu-copy-text {\n .v-icon {\n opacity: 0;\n }\n\n &:hover {\n .v-icon {\n opacity: 1;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { isUndefined } from '@/utils/common'\n\nconst props = withDefaults(\n defineProps<{\n color?: string | undefined\n size?: string\n dataCy?: string | undefined\n }>(),\n {\n color: undefined,\n size: 'small',\n dataCy: undefined,\n }\n)\n\nconst customColorClass = computed(() => {\n return isUndefined(props.color) ? 'a-chip-no-link--custom-color' : ''\n})\n</script>\n\n<template>\n <VChip\n :color=\"color as string\"\n :data-cy=\"dataCy\"\n class=\"a-chip-no-link\"\n :class=\"customColorClass\"\n label\n :size=\"size as string\"\n >\n <slot />\n </VChip>\n</template>\n","<script lang=\"ts\" setup>\nimport type { AnzuUserAndTimeTrackingAware } from '@/types/AnzuUserAndTimeTrackingAware'\nimport { useI18n } from 'vue-i18n'\nimport ARow from '@/components/ARow.vue'\nimport ADatetime from '@/components/ADatetime.vue'\n\n// todo add user details, find generic way for all systems\n\nwithDefaults(\n defineProps<{\n data: AnzuUserAndTimeTrackingAware | any\n hideCreatedAt?: boolean\n hideModifiedAt?: boolean\n hideCreatedBy?: boolean\n hideModifiedBy?: boolean\n }>(),\n {\n hideCreatedAt: false,\n hideModifiedAt: false,\n hideCreatedBy: false,\n hideModifiedBy: false,\n }\n)\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <ARow\n v-if=\"!hideCreatedAt\"\n :title=\"t('common.model.tracking.created')\"\n >\n <ADatetime :date-time=\"data.createdAt\" />\n </ARow>\n <ARow\n v-if=\"!hideModifiedAt\"\n :title=\"t('common.model.tracking.modified')\"\n >\n <ADatetime :date-time=\"data.modifiedAt\" />\n </ARow>\n</template>\n","<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { computed } from 'vue'\nimport { isUndefined } from '@/utils/common'\n\nconst props = withDefaults(\n defineProps<{\n routeName?: string\n routeParams?: any | undefined\n buttonT?: string\n buttonClass?: string\n dataCy?: string\n size?: number\n }>(),\n {\n routeName: undefined,\n routeParams: undefined,\n buttonT: 'common.button.close',\n buttonClass: 'ml-2',\n dataCy: 'button-close',\n size: 36,\n }\n)\n\nconst { t } = useI18n()\n\nconst routerToComputed = computed(() => {\n if (isUndefined(props.routeName)) {\n return undefined\n }\n if (!isUndefined(props.routeParams)) {\n return { name: props.routeName, params: { ...props.routeParams } }\n }\n return { name: props.routeName }\n})\n</script>\n\n<template>\n <VBtn\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n :to=\"routerToComputed\"\n icon\n size=\"small\"\n variant=\"text\"\n :width=\"size\"\n :height=\"size\"\n :active=\"false\"\n >\n <VIcon icon=\"mdi-close\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.button.close') }}\n </VTooltip>\n </VBtn>\n</template>\n","<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport type { ButtonVariant } from '@/types/commonAdmin'\nimport { computed } from 'vue'\n\nconst props = withDefaults(\n defineProps<{\n routeName: string\n buttonT?: string\n buttonClass?: string\n dataCy?: string\n size?: number\n variant?: ButtonVariant\n }>(),\n {\n buttonT: 'common.button.create',\n buttonClass: 'ml-2',\n dataCy: 'button-create',\n size: 36,\n variant: 'primary',\n }\n)\n\nconst { t } = useI18n()\n\nconst variantComputed = computed(() => {\n switch (props.variant) {\n case 'secondary':\n return 'outlined'\n case 'tertiary':\n case 'icon':\n return 'text'\n default:\n return 'flat'\n }\n})\n</script>\n\n<template>\n <VBtn\n v-if=\"variant === 'icon'\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n icon\n size=\"small\"\n :variant=\"variantComputed\"\n :to=\"{ name: routeName }\"\n :width=\"size\"\n :height=\"size\"\n >\n <VIcon icon=\"mdi-content-save\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t(buttonT) }}\n </VTooltip>\n </VBtn>\n <VBtn\n v-else\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n :variant=\"variantComputed\"\n :to=\"{ name: routeName }\"\n color=\"primary\"\n rounded=\"pill\"\n :height=\"size\"\n >\n {{ t(buttonT) }}\n </VBtn>\n</template>\n","<script lang=\"ts\" setup>\nimport { computed, ref } from 'vue'\nimport { eventClickBlur } from '@/utils/event'\nimport { useI18n } from 'vue-i18n'\nimport ADialogToolbar from '@/components/ADialogToolbar.vue'\nimport type { ButtonVariant } from '@/types/commonAdmin'\n\nconst props = withDefaults(\n defineProps<{\n variant?: ButtonVariant\n buttonT?: string\n buttonClass?: string\n dialogMessageT?: string\n dialogConfirmButtonT?: string\n dialogCancelButtonT?: string\n dialogConfirmColor?: string\n dialogZIndex?: number\n dialogMaxWidth?: number\n dataCy?: string\n disabled?: boolean\n disableCloseAfterConfirm?: boolean\n loading?: boolean\n color?: string | undefined\n size?: number\n }>(),\n {\n variant: 'icon',\n buttonT: 'common.button.delete',\n buttonClass: 'ml-2',\n dialogMessageT: 'common.system.modal.confirmDelete',\n dialogConfirmButtonT: 'common.button.delete',\n dialogCancelButtonT: 'common.button.cancel',\n dialogConfirmColor: 'primary',\n dialogZIndex: 200,\n dialogMaxWidth: 300,\n dataCy: 'button-delete',\n disabled: false,\n disableCloseAfterConfirm: false,\n color: undefined,\n size: 36,\n }\n)\nconst emit = defineEmits<{\n (e: 'deleteRecord'): void\n}>()\n\nconst dialog = ref(false)\n\nconst onClick = (event: Event) => {\n eventClickBlur(event)\n dialog.value = true\n}\nconst onConfirm = () => {\n emit('deleteRecord')\n if (!props.disableCloseAfterConfirm) closeDialog()\n}\n\nconst closeDialog = () => {\n dialog.value = false\n}\n\nconst onCancel = () => {\n closeDialog()\n}\n\nconst { t } = useI18n()\n\ndefineExpose({\n closeDialog,\n})\n\nconst variantComputed = computed(() => {\n switch (props.variant) {\n case 'secondary':\n return 'outlined'\n case 'tertiary':\n case 'icon':\n return 'text'\n default:\n return 'flat'\n }\n})\n</script>\n\n<template>\n <VBtn\n v-if=\"variant === 'icon'\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n icon\n size=\"small\"\n :variant=\"variantComputed\"\n :disabled=\"disabled\"\n :color=\"color\"\n :loading=\"loading\"\n :width=\"size\"\n :height=\"size\"\n @click.stop=\"onClick\"\n >\n <VIcon icon=\"mdi-trash-can-outline\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t(buttonT) }}\n </VTooltip>\n </VBtn>\n <VBtn\n v-else\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n :variant=\"variantComputed\"\n :color=\"color\"\n rounded=\"pill\"\n :height=\"size\"\n @click.stop=\"onClick\"\n >\n {{ t(buttonT) }}\n </VBtn>\n <VDialog\n v-model=\"dialog\"\n persistent\n :width=\"500\"\n no-click-animation\n >\n <VCard\n v-if=\"dialog\"\n data-cy=\"delete-panel\"\n >\n <ADialogToolbar @on-cancel=\"onCancel\">\n {{ t(dialogMessageT) }}\n </ADialogToolbar>\n <VCardActions>\n <VSpacer />\n <ABtnTertiary\n :disabled=\"loading\"\n data-cy=\"button-cancel\"\n @click.stop=\"onCancel\"\n >\n {{ t(dialogCancelButtonT) }}\n </ABtnTertiary>\n <ABtnPrimary\n :color=\"dialogConfirmColor\"\n :loading=\"loading\"\n data-cy=\"button-confirm-delete\"\n @click.stop=\"onConfirm\"\n >\n {{ t(dialogConfirmButtonT) }}\n </ABtnPrimary>\n </VCardActions>\n </VCard>\n </VDialog>\n</template>\n","<script lang=\"ts\" setup>\nimport { useRouter } from 'vue-router'\nimport { eventClickBlur } from '@/utils/event'\nimport { useI18n } from 'vue-i18n'\nimport type { ButtonVariant } from '@/types/commonAdmin'\nimport { computed } from 'vue'\nimport { isUndefined } from '@/utils/common'\n\nconst props = withDefaults(\n defineProps<{\n routeName: string\n recordId?: number | string | undefined\n routeParams?: any | undefined\n buttonT?: string\n buttonClass?: string\n dataCy?: string\n loading?: boolean\n size?: number\n variant?: ButtonVariant\n }>(),\n {\n recordId: undefined,\n routeParams: undefined,\n buttonT: 'common.button.edit',\n buttonClass: 'ml-2',\n dataCy: 'button-edit',\n loading: false,\n size: 36,\n variant: 'primary',\n }\n)\nconst emit = defineEmits<{\n (e: 'editRecord'): void\n}>()\n\nconst { t } = useI18n()\n\nconst router = useRouter()\n\nconst onClick = (event: Event) => {\n eventClickBlur(event)\n emit('editRecord')\n router.push(routerToComputed.value)\n}\n\nconst routerToComputed = computed(() => {\n if (!isUndefined(props.routeParams)) {\n return { name: props.routeName, params: { ...props.routeParams } }\n }\n return { name: props.routeName, params: { id: props.recordId } }\n})\n\nconst variantComputed = computed(() => {\n switch (props.variant) {\n case 'secondary':\n return 'outlined'\n case 'tertiary':\n case 'icon':\n return 'text'\n default:\n return 'flat'\n }\n})\n</script>\n\n<template>\n <VBtn\n v-if=\"variant === 'icon'\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n icon\n size=\"small\"\n :variant=\"variantComputed\"\n :loading=\"loading\"\n :width=\"size\"\n :height=\"size\"\n @click.stop=\"onClick\"\n >\n <VIcon icon=\"mdi-content-save\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t(buttonT) }}\n </VTooltip>\n </VBtn>\n <VBtn\n v-else\n :class=\"buttonClass\"\n :variant=\"variantComputed\"\n :data-cy=\"dataCy\"\n :loading=\"loading\"\n color=\"primary\"\n rounded=\"pill\"\n :height=\"size\"\n @click.stop=\"onClick\"\n >\n <span>{{ t(buttonT) }}</span>\n </VBtn>\n</template>\n","<script lang=\"ts\" setup>\nimport { eventClickBlur } from '@/utils/event'\nimport { useI18n } from 'vue-i18n'\nimport AIconGroup from '@/components/AIconGroup.vue'\n\nwithDefaults(\n defineProps<{\n buttonT?: string\n buttonClass?: string\n dataCy?: string\n loading?: boolean\n disabled?: boolean\n }>(),\n {\n buttonT: 'common.button.saveAndClose',\n buttonClass: 'ml-2',\n dataCy: 'button-save-close',\n loading: undefined,\n disabled: undefined,\n }\n)\nconst emit = defineEmits<{\n (e: 'saveRecordAndClose'): void\n}>()\n\nconst onClick = (event: Event) => {\n eventClickBlur(event)\n emit('saveRecordAndClose')\n}\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <VBtn\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n :loading=\"loading\"\n :disabled=\"disabled\"\n color=\"primary\"\n icon=\"\"\n variant=\"outlined\"\n :width=\"36\"\n :height=\"35\"\n @click.stop=\"onClick\"\n >\n <AIconGroup\n main-icon=\"mdi-content-save\"\n secondary-icon=\"mdi-close\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t(buttonT) }}\n </VTooltip>\n </VBtn>\n</template>\n","<script lang=\"ts\" setup>\nimport { eventClickBlur } from '@/utils/event'\nimport { useI18n } from 'vue-i18n'\nimport { computed } from 'vue'\nimport type { ButtonVariant } from '@/types/commonAdmin'\n\nconst props = withDefaults(\n defineProps<{\n buttonT?: string\n buttonClass?: string\n dataCy?: string\n loading?: boolean\n disabled?: boolean\n size?: number\n variant?: ButtonVariant\n }>(),\n {\n buttonT: 'common.button.save',\n buttonClass: 'ml-2',\n dataCy: 'button-save',\n loading: undefined,\n disabled: undefined,\n size: 36,\n variant: 'primary',\n }\n)\nconst emit = defineEmits<{\n (e: 'saveRecord'): void\n}>()\n\nconst onClick = (event: Event) => {\n eventClickBlur(event)\n emit('saveRecord')\n}\n\nconst { t } = useI18n()\n\nconst variantComputed = computed(() => {\n switch (props.variant) {\n case 'secondary':\n return 'outlined'\n case 'tertiary':\n case 'icon':\n return 'text'\n default:\n return 'flat'\n }\n})\n</script>\n\n<template>\n <VBtn\n v-if=\"variant === 'icon'\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n icon\n size=\"small\"\n :variant=\"variantComputed\"\n :loading=\"loading\"\n :disabled=\"disabled\"\n :width=\"size\"\n :height=\"size\"\n @click.stop=\"onClick\"\n >\n <VIcon icon=\"mdi-content-save\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t(buttonT) }}\n </VTooltip>\n </VBtn>\n <VBtn\n v-else\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n :variant=\"variantComputed\"\n color=\"primary\"\n rounded=\"pill\"\n :loading=\"loading\"\n :disabled=\"disabled\"\n :height=\"size\"\n @click.stop=\"onClick\"\n >\n {{ t(buttonT) }}\n </VBtn>\n</template>\n","<script lang=\"ts\" setup>\nimport { useClipboard } from '@vueuse/core'\nimport { eventClickBlur } from '@/utils/event'\nimport { useI18n } from 'vue-i18n'\nimport { isNumber, isString } from '@/utils/common'\nimport { numberToString } from '@/utils/number'\nimport { useAlerts } from '@/composables/system/alerts'\nimport AIconGroup from '@/components/AIconGroup.vue'\n\nconst props = withDefaults(\n defineProps<{\n id: number | string\n buttonT?: string\n buttonClass?: string\n iconT?: string\n notifyT?: string\n dataCy?: string\n size?: 'small' | 'x-small'\n }>(),\n {\n buttonT: 'common.button.copyId',\n buttonClass: 'ml-1',\n iconT: 'common.button.id',\n notifyT: 'common.alert.idWasCopied',\n dataCy: 'table-copy',\n size: 'x-small',\n }\n)\n\nconst { t } = useI18n()\nconst { copy, isSupported } = useClipboard()\nconst { showSuccess } = useAlerts()\n\nconst onClick = (event: Event) => {\n eventClickBlur(event)\n if (isNumber(props.id) && props.id > 0) {\n copy(numberToString(props.id)).then(() => {\n showSuccess(t(props.notifyT))\n })\n } else if (isString(props.id) && props.id.length) {\n copy(props.id).then(() => {\n showSuccess(t(props.notifyT))\n })\n }\n}\n</script>\n\n<template>\n <VBtn\n v-if=\"isSupported\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n icon\n :size=\"size\"\n variant=\"text\"\n @click.stop=\"onClick\"\n >\n <AIconGroup\n :secondary-text=\"t(iconT)\"\n main-icon=\"mdi-content-copy\"\n size=\"small\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t(buttonT) }}\n </VTooltip>\n </VBtn>\n</template>\n","<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { computed } from 'vue'\nimport { isUndefined } from '@/utils/common'\n\nconst props = withDefaults(\n defineProps<{\n routeName: string\n recordId?: number | string | undefined\n routeParams?: any | undefined\n buttonT?: string\n buttonClass?: string\n dataCy?: string\n }>(),\n {\n recordId: undefined,\n routeParams: undefined,\n buttonT: 'common.button.detail',\n buttonClass: 'ml-1',\n dataCy: 'table-detail',\n }\n)\n\nconst { t } = useI18n()\n\nconst routerToComputed = computed(() => {\n if (!isUndefined(props.routeParams)) {\n return { name: props.routeName, params: { ...props.routeParams } }\n }\n return { name: props.routeName, params: { id: props.recordId } }\n})\n</script>\n\n<template>\n <VBtn\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n :to=\"routerToComputed\"\n icon\n size=\"x-small\"\n variant=\"text\"\n @click.stop=\"() => {}\"\n >\n <VIcon icon=\"mdi-information-outline\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t(buttonT) }}\n </VTooltip>\n </VBtn>\n</template>\n","<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { computed } from 'vue'\nimport { isUndefined } from '@/utils/common'\n\nconst props = withDefaults(\n defineProps<{\n routeName: string\n recordId?: number | string | undefined\n routeParams?: any | undefined\n buttonT?: string\n buttonClass?: string\n dataCy?: string\n }>(),\n {\n recordId: undefined,\n routeParams: undefined,\n buttonT: 'common.button.edit',\n buttonClass: 'ml-1',\n dataCy: 'table-edit',\n }\n)\n\nconst { t } = useI18n()\n\nconst routerToComputed = computed(() => {\n if (!isUndefined(props.routeParams)) {\n return { name: props.routeName, params: { ...props.routeParams } }\n }\n return { name: props.routeName, params: { id: props.recordId } }\n})\n</script>\n\n<template>\n <VBtn\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n :to=\"routerToComputed\"\n icon\n size=\"x-small\"\n variant=\"text\"\n @click.stop=\"() => {}\"\n >\n <VIcon icon=\"mdi-pencil\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t(buttonT) }}\n </VTooltip>\n </VBtn>\n</template>\n","<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { eventClickBlur } from '@/utils/event'\nimport type { ButtonVariantText } from '@/types/commonAdmin'\nimport { computed } from 'vue'\n\nconst props = withDefaults(\n defineProps<{\n buttonT?: string\n buttonClass?: string\n dataCy?: string\n loading?: boolean\n disabled?: boolean\n disableMore?: boolean\n size?: undefined | 'small' | 'x-small'\n variant?: ButtonVariantText\n rounded?: 'pill' | undefined\n color?: string\n }>(),\n {\n buttonT: '',\n buttonClass: 'ml-2',\n dataCy: 'button-save',\n loading: undefined,\n disabled: undefined,\n disableMore: false,\n size: undefined,\n variant: 'primary',\n rounded: undefined,\n color: 'primary',\n }\n)\nconst emit = defineEmits<{\n (e: 'onClick'): void\n}>()\n\nconst onClick = (event: Event) => {\n eventClickBlur(event)\n emit('onClick')\n}\n\nconst variantComputed = computed(() => {\n switch (props.variant) {\n case 'secondary':\n return 'outlined'\n case 'tertiary':\n return 'text'\n default:\n return 'flat'\n }\n})\n\nconst loadingComputed = computed(() => {\n if (!props.loading) return false\n switch (variantComputed.value) {\n case 'flat':\n return 'white'\n default:\n return 'primary'\n }\n})\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <VBtn\n v-if=\"disableMore\"\n :variant=\"variantComputed\"\n :class=\"buttonClass\"\n :data-cy=\"dataCy\"\n :color=\"color\"\n :rounded=\"rounded\"\n :size=\"size\"\n :loading=\"loadingComputed\"\n :disabled=\"disabled\"\n @click.stop=\"onClick\"\n >\n <slot name=\"button-content\">\n {{ t(buttonT) }}\n </slot>\n </VBtn>\n <div\n v-else\n class=\"a-button-split d-inline-flex\"\n :class=\"buttonClass + ' a-button-split--' + variant\"\n >\n <VBtn\n class=\"a-button-split__main\"\n :variant=\"variantComputed\"\n :data-cy=\"dataCy\"\n :loading=\"loadingComputed\"\n :disabled=\"disabled\"\n :size=\"size\"\n :rounded=\"rounded\"\n :color=\"color\"\n @click.stop=\"onClick\"\n >\n <slot name=\"button-content\">\n {{ t(buttonT) }}\n </slot>\n </VBtn>\n <div class=\"a-button-split__divider d-inline-flex\" />\n <VDivider\n v-if=\"variant === 'tertiary'\"\n vertical\n class=\"my-2 border-opacity-50\"\n :color=\"color\"\n />\n <VBtn\n :variant=\"variantComputed\"\n :disabled=\"disabled || loading\"\n :data-cy=\"dataCy\"\n :color=\"color\"\n :rounded=\"rounded\"\n :size=\"size\"\n class=\"a-button-split__more\"\n >\n <VIcon icon=\"mdi-chevron-down\" />\n <VMenu\n activator=\"parent\"\n location=\"bottom right\"\n >\n <VList\n density=\"compact\"\n class=\"pa-0\"\n >\n <slot name=\"default\" />\n </VList>\n </VMenu>\n </VBtn>\n </div>\n</template>\n\n<style lang=\"scss\">\n.a-button-split {\n .a-button-split__main {\n border-top-right-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n padding-right: 10px !important;\n }\n\n .a-button-split__more {\n border-top-left-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n padding: 0 4px 0 0 !important;\n min-width: 32px !important;\n }\n\n .a-button-split__divider {\n display: inline-block;\n width: 1px;\n }\n\n &--secondary {\n .a-button-split__more {\n left: -2px;\n }\n }\n}\n</style>\n","import { computed, readonly, ref } from 'vue'\nimport { useStorage } from '@vueuse/core'\n\nexport enum ThemeSettings {\n Light = 'light',\n Dark = 'dark',\n Auto = 'auto',\n}\n\nexport enum Theme {\n Light = 'light',\n Dark = 'dark',\n}\n\nconst storedSettings = useStorage('theme', ThemeSettings.Light)\n\nconst QUERY = '(prefers-color-scheme: dark)'\n\nconst settings = ref<ThemeSettings>(\n Object.values(ThemeSettings).some((val) => val === storedSettings.value)\n ? <ThemeSettings>storedSettings.value\n : ThemeSettings.Light\n)\nconst theme = ref<Theme>(Theme.Light)\nconst systemHasDarkPreference = ref(window.matchMedia && window.matchMedia(QUERY).matches)\n\nconst setTheme = () => {\n switch (settings.value) {\n case ThemeSettings.Auto:\n theme.value = systemHasDarkPreference.value ? Theme.Dark : Theme.Light\n break\n case ThemeSettings.Light:\n theme.value = Theme.Light\n break\n case ThemeSettings.Dark:\n theme.value = Theme.Dark\n break\n }\n}\nsetTheme()\n\nconst setThemeSettings = (value: ThemeSettings) => {\n settings.value = value\n storedSettings.value = value\n}\n\nwindow.matchMedia(QUERY).addEventListener('change', (event) => {\n systemHasDarkPreference.value = event.matches\n setTheme()\n})\n\nconst toolbarColor = computed(() => {\n return theme.value === Theme.Light ? 'white' : '#1A1A1A'\n})\n\nexport function useTheme() {\n const setThemeAuto = () => {\n setThemeSettings(ThemeSettings.Auto)\n setTheme()\n }\n\n const setThemeDark = () => {\n setThemeSettings(ThemeSettings.Dark)\n setTheme()\n }\n\n const setThemeLight = () => {\n setThemeSettings(ThemeSettings.Light)\n setTheme()\n }\n\n const toggleTheme = () => {\n switch (settings.value) {\n case ThemeSettings.Light:\n setThemeDark()\n break\n case ThemeSettings.Dark:\n setThemeAuto()\n break\n default:\n setThemeLight()\n break\n }\n }\n\n return {\n settings: readonly(settings),\n theme: readonly(theme),\n toolbarColor: readonly(toolbarColor),\n toggleTheme,\n setThemeAuto,\n setThemeDark,\n setThemeLight,\n }\n}\n","<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { ref } from 'vue'\nimport { ThemeSettings, useTheme } from '@/composables/themeSettings'\n\nconst { setThemeDark, setThemeAuto, setThemeLight, settings } = useTheme()\n\nconst { t } = useI18n()\n\nconst isOpen = ref(false)\n</script>\n\n<template>\n <VMenu\n v-model=\"isOpen\"\n close-on-content-click\n >\n <template #activator=\"{ props }\">\n <VBtn\n class=\"pl-1\"\n rounded=\"pill\"\n v-bind=\"props\"\n variant=\"text\"\n data-cy=\"settings-theme\"\n >\n <div v-if=\"settings === ThemeSettings.Auto\">\n <VIcon\n class=\"mr-1\"\n icon=\"mdi-brightness-auto\"\n :size=\"32\"\n />{{ t('common.system.theme.auto') }}\n </div>\n <div v-else-if=\"settings === ThemeSettings.Light\">\n <VIcon\n class=\"mr-1\"\n icon=\"mdi-brightness-7\"\n :size=\"32\"\n />{{ t('common.system.theme.light') }}\n </div>\n <div v-else-if=\"settings === ThemeSettings.Dark\">\n <VIcon\n class=\"mr-1\"\n icon=\"mdi-brightness-4\"\n :size=\"32\"\n />{{ t('common.system.theme.dark') }}\n </div>\n </VBtn>\n </template>\n <VCard>\n <VList density=\"compact\">\n <VListItem\n :title=\"t('common.system.theme.auto')\"\n @click.stop=\"setThemeAuto\"\n >\n <template #prepend>\n <VIcon\n class=\"mr-2\"\n icon=\"mdi-brightness-auto\"\n />\n </template>\n </VListItem>\n <VListItem\n :title=\"t('common.system.theme.light')\"\n @click.stop=\"setThemeLight\"\n >\n <template #prepend>\n <VIcon\n class=\"mr-2\"\n icon=\"mdi-brightness-7\"\n />\n </template>\n </VListItem>\n <VListItem\n :title=\"t('common.system.theme.dark')\"\n @click.stop=\"setThemeDark\"\n >\n <template #prepend>\n <VIcon\n class=\"mr-2\"\n icon=\"mdi-brightness-4\"\n />\n </template>\n </VListItem>\n </VList>\n </VCard>\n </VMenu>\n</template>\n","import { useStorage } from '@vueuse/core'\nimport { readonly } from 'vue'\n// import { useLocale } from 'vuetify'\nimport { i18n } from '@/plugins/i18n'\n\n// use ISO 639-1 codes\nexport type LanguageCode = 'en' | 'sk' | 'cs' | 'xx'\n\nexport interface Language {\n code: LanguageCode\n title: string\n adminOnly?: boolean\n}\n\nexport const ALL_LANGUAGES = [\n {\n code: 'en',\n title: 'English',\n },\n {\n code: 'sk',\n title: 'Slovensky',\n },\n {\n code: 'cs',\n title: 'Česky',\n },\n {\n code: 'xx',\n title: 'Translation ID',\n adminOnly: true,\n },\n] as Language[]\n\nconst storedSettings = useStorage<LanguageCode | 'default'>('language', 'default')\n\nexport function modifyLanguageSettings(configAvailableLanguages: LanguageCode[], configDefaultLanguage: LanguageCode) {\n if (storedSettings.value === 'default') storedSettings.value = configDefaultLanguage\n // const { current } = useLocale()\n\n function addMessages(language: LanguageCode, messages: any) {\n if (!i18n || !i18n.global) return\n // @ts-ignore\n i18n.global.setLocaleMessage(language, messages)\n }\n\n const setLanguage = (code: LanguageCode) => {\n if (!i18n || !i18n.global) return false\n if (configAvailableLanguages.includes(code) || code === 'xx') {\n // current.value = code\n storedSettings.value = code\n // @ts-ignore\n i18n.global.locale.value = code\n\n return code\n }\n return false\n }\n\n const initializeLanguage = () => {\n if (!i18n || !i18n.global || storedSettings.value === 'default') return\n if (configAvailableLanguages.includes(storedSettings.value) || storedSettings.value === 'xx') {\n // current.value = storedSettings.value\n // @ts-ignore\n i18n.global.locale.value = storedSettings.value\n return\n }\n storedSettings.value = configDefaultLanguage\n // current.value = configDefaultLanguage\n // @ts-ignore\n i18n.global.locale.value = configDefaultLanguage\n }\n\n return {\n addMessages,\n initializeLanguage,\n currentLanguageCode: readonly(storedSettings),\n setLanguage,\n allLanguages: ALL_LANGUAGES,\n }\n}\n\nexport function useLanguageSettings() {\n return {\n currentLanguageCode: readonly(storedSettings),\n }\n}\n","<template>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n viewBox=\"0 0 7410 3900\"\n >\n <path\n fill=\"#b22234\"\n d=\"M0 0h7410v3900H0z\"\n />\n <path\n d=\"M0 450h7410m0 600H0m0 600h7410m0 600H0m0 600h7410m0 600H0\"\n stroke=\"#fff\"\n stroke-width=\"300\"\n />\n <path\n fill=\"#3c3b6e\"\n d=\"M0 0h2964v2100H0z\"\n />\n <g fill=\"#fff\">\n <g id=\"d\">\n <g id=\"c\">\n <g id=\"e\">\n <g id=\"b\">\n <path\n id=\"a\"\n d=\"M247 90l70.534 217.082-184.66-134.164h228.253L176.466 307.082z\"\n />\n <use\n xlink:href=\"#a\"\n y=\"420\"\n />\n <use\n xlink:href=\"#a\"\n y=\"840\"\n />\n <use\n xlink:href=\"#a\"\n y=\"1260\"\n />\n </g>\n <use\n xlink:href=\"#a\"\n y=\"1680\"\n />\n </g>\n <use\n xlink:href=\"#b\"\n x=\"247\"\n y=\"210\"\n />\n </g>\n <use\n xlink:href=\"#c\"\n x=\"494\"\n />\n </g>\n <use\n xlink:href=\"#d\"\n x=\"988\"\n />\n <use\n xlink:href=\"#c\"\n x=\"1976\"\n />\n <use\n xlink:href=\"#e\"\n x=\"2470\"\n />\n </g>\n </svg>\n</template>\n","<template>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 900 600\"\n >\n <rect\n width=\"900\"\n height=\"600\"\n fill=\"#cccccc\"\n />\n </svg>\n</template>\n","<script setup lang=\"ts\">\nimport type { LanguageCode } from '@/composables/languageSettings'\nimport { computed } from 'vue'\nimport FlagSk from '@/components/flags/FlagSk.vue'\nimport FlagEn from '@/components/flags/FlagEn.vue'\nimport FlagEmpty from '@/components/flags/FlagEmpty.vue'\n\n// flag source: https://github.com/hampusborgos/country-flags\n\nconst props = withDefaults(\n defineProps<{\n code?: LanguageCode | undefined\n dataCy?: string\n }>(),\n {\n code: 'xx',\n dataCy: 'flag-country',\n }\n)\n\nconst currentFlagComponent = computed(() => {\n switch (props.code) {\n case 'sk':\n return FlagSk\n case 'en':\n return FlagEn\n default:\n return FlagEmpty\n }\n})\n</script>\n\n<template>\n <div class=\"flag\">\n <component\n :is=\"currentFlagComponent\"\n :data-cy=\"dataCy\"\n />\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport type { Language, LanguageCode } from '@/composables/languageSettings'\nimport { ALL_LANGUAGES, modifyLanguageSettings, useLanguageSettings } from '@/composables/languageSettings'\nimport { computed, inject } from 'vue'\nimport { isUndefined } from '@/utils/common'\nimport FlagCountry from '@/components/flags/FlagCountry.vue'\nimport {\n AvailableLanguagesSymbol,\n CurrentUserSymbol,\n type CurrentUserType,\n DefaultLanguageSymbol,\n} from '@/AnzuSystemsCommonAdmin'\nimport { ROLE_SUPER_ADMIN } from '@/composables/system/ability'\n\nconst emit = defineEmits<{\n (e: 'afterChange', code: LanguageCode): void\n}>()\n\nconst currentUser = inject(CurrentUserSymbol) as CurrentUserType\nconst configAvailableLanguages = inject(AvailableLanguagesSymbol) as LanguageCode[]\nconst configDefaultLanguage = inject(DefaultLanguageSymbol) as LanguageCode\n// @ts-ignore\nconst { setLanguage } = modifyLanguageSettings(configAvailableLanguages, configDefaultLanguage)\nconst { currentLanguageCode } = useLanguageSettings()\n\nconst onLanguageChange = (code: LanguageCode) => {\n const result = setLanguage(code)\n if (result) emit('afterChange', code)\n}\n\nconst currentLocale = computed(() => {\n const found = ALL_LANGUAGES.find((item) => item.code === currentLanguageCode.value)\n if (isUndefined(found)) {\n return ALL_LANGUAGES[0]\n }\n return found as Language\n})\n\nconst availableLocales = computed(() => {\n return ALL_LANGUAGES.filter(\n (item) =>\n (configAvailableLanguages.includes(item.code) || item.code === 'xx') &&\n (!item.adminOnly || currentUser.value?.roles.includes(ROLE_SUPER_ADMIN))\n )\n})\n</script>\n\n<template>\n <VMenu>\n <template #activator=\"{ props }\">\n <VBtn\n class=\"pl-1\"\n rounded=\"pill\"\n v-bind=\"props\"\n variant=\"text\"\n data-cy=\"settings-language\"\n >\n <VAvatar\n class=\"mr-1\"\n size=\"30\"\n >\n <FlagCountry :code=\"currentLocale?.code\" />\n </VAvatar>\n {{ currentLocale.title }}\n </VBtn>\n </template>\n <VCard>\n <VList density=\"compact\">\n <VListItem\n v-for=\"locale in availableLocales\"\n :key=\"locale.code\"\n @click.stop=\"onLanguageChange(locale.code)\"\n >\n <VListItemTitle>\n <VAvatar\n class=\"mr-1\"\n size=\"30\"\n >\n <FlagCountry :code=\"locale.code\" />\n </VAvatar>\n {{ locale.title }}\n </VListItemTitle>\n </VListItem>\n </VList>\n </VCard>\n </VMenu>\n</template>\n\n<style lang=\"scss\" scoped>\n.flag {\n position: relative;\n width: 30px;\n height: 30px;\n\n :deep(svg) {\n width: 90px;\n height: 60px;\n position: absolute;\n top: -15px;\n left: -27px;\n transform: scale(0.7);\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\n\nconst { t } = useI18n()\n\nconst reloadAdmin = () => {\n window.location.reload()\n}\n</script>\n\n<template>\n <span\n v-once\n class=\"system-bar-new-version\"\n >\n {{ t('common.system.newVersionText') }}\n <span\n class=\"text-decoration-underline cursor-pointer\"\n @click.stop=\"reloadAdmin\"\n >\n {{ t('common.system.newVersionReload') }}\n </span>\n </span>\n</template>\n","export const isAnzuApiForbiddenError = (error: unknown): error is AnzuNewVersionFetchError => {\n return error instanceof AnzuNewVersionFetchError\n}\n\nexport class AnzuNewVersionFetchError extends Error {\n constructor(message = '') {\n super(message)\n this.name = 'AnzuNewVersionFetchError'\n this.message = message\n }\n}\n","<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, ref } from 'vue'\nimport { useIntervalFn } from '@vueuse/core'\nimport ASystemBarNewVersion from '@/components/systemBar/ASystemBarNewVersion.vue'\nimport { isUndefined } from '@/utils/common'\nimport { AnzuNewVersionFetchError } from '@/model/error/AnzuNewVersionFetchError'\n\nconst props = withDefaults(\n defineProps<{\n currentVersion: string\n checkInterval?: number\n jsonRelativePath?: string\n }>(),\n {\n checkInterval: 60000,\n jsonRelativePath: 'config.json',\n }\n)\n\nconst showSystemBar = ref(false)\n\nconst checkNewVersion = async () => {\n try {\n const res = await fetch(`/${props.jsonRelativePath}?random=${Date.now()}`)\n if (res.ok) {\n const contentType = res.headers.get('content-type')\n if (!contentType || !contentType.includes('application/json')) {\n throw new AnzuNewVersionFetchError('Unable to load env config. Incorrect content type.')\n }\n const json = await res.json()\n if (Object.keys(json).length < 1) {\n throw new AnzuNewVersionFetchError('Unable to load env config. Incorrect response body.')\n }\n showSystemBar.value = !isUndefined(json.appVersion) && json.appVersion !== props.currentVersion\n\n return\n }\n throw new AnzuNewVersionFetchError('Unable to load env config. Incorrect response code.')\n } catch (error) {\n if (error instanceof AnzuNewVersionFetchError) {\n console.log(error.message)\n return\n }\n if (error instanceof SyntaxError) {\n console.log('There was a SyntaxError', error)\n return\n }\n console.log('There was an error in new version fetch', error)\n }\n}\n\nconst systemBarComponent = computed(() => {\n return ASystemBarNewVersion\n})\n\nconst { pause } = useIntervalFn(() => {\n checkNewVersion()\n}, props.checkInterval)\n\nonBeforeUnmount(() => {\n pause()\n})\n</script>\n\n<template>\n <VAppBar\n v-if=\"showSystemBar\"\n height=\"24\"\n color=\"orange accent-3\"\n elevation=\"0\"\n :order=\"-1\"\n >\n <div class=\"text-center w-100 text-caption pb-1\">\n <component :is=\"systemBarComponent\" />\n </div>\n </VAppBar>\n</template>\n","<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport type { AnzuUserMinimal } from '@/types/AnzuUser'\n\nconst props = withDefaults(\n defineProps<{\n user?: AnzuUserMinimal | undefined | null\n size?: number\n containerClass?: string\n }>(),\n {\n user: undefined,\n size: 36,\n containerClass: '',\n }\n)\n\nconst color = computed(() => {\n if (props.user?.avatar.color && props.user.avatar.color.length === 7) {\n return props.user.avatar.color\n }\n return '#3f6ad8'\n})\n\nconst fontSize = computed(() => {\n return props.size * 0.5 + 'px'\n})\n\nconst text = computed(() => {\n if (!props.user) return ''\n if (props.user.avatar.text.length > 0) return props.user.avatar.text\n const firstNameLastName = props.user.person.firstName.charAt(0) + props.user.person.lastName.charAt(0)\n if (firstNameLastName.length > 0) return firstNameLastName\n return props.user.email.slice(0, 2)\n})\n</script>\n\n<template>\n <VAvatar\n :color=\"color\"\n class=\"text-uppercase\"\n :class=\"containerClass\"\n :size=\"size\"\n >\n <div\n class=\"d-inline-flex text-white font-weight-light\"\n :style=\"{ fontSize: fontSize }\"\n >\n {{ text }}\n </div>\n </VAvatar>\n <div />\n</template>\n","<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: string\n label?: string\n loading?: boolean\n readonly?: boolean\n required?: boolean\n randomColor?: boolean\n hideLabel?: boolean\n }>(),\n {\n label: '',\n loading: false,\n readonly: false,\n required: false,\n randomColor: false,\n hideLabel: false,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: string): void\n}>()\n\nconst swatches = [\n ['#F44336', '#E91E63', '#9C27B0', '#673AB7'],\n ['#2196F3', '#03A9F4', '#00BCD4', '#009688'],\n ['#4CAF50', '#8BC34A', '#CDDC39', '#F9A825'],\n ['#FF6F00', '#FF5722', '#795548', '#607D8B'],\n ['#757575', '#000000', '#3F51B5'],\n]\nconst generatedColor = ref('')\n\nconst generateRandomColor = () => {\n const randomRow = Math.floor(Math.random() * swatches.length)\n generatedColor.value = swatches[randomRow][Math.floor(Math.random() * swatches[randomRow].length)]\n return generatedColor.value\n}\n\nconst variantComputed = computed(() => {\n return props.modelValue.length > 0 ? 'flat' : 'tonal'\n})\n\nconst buttonColorComputed = computed(() => {\n return props.modelValue.length > 0 ? props.modelValue : undefined\n})\n\nconst onColorPickerChange = (newColor: string) => {\n emit('update:modelValue', newColor)\n}\n\nwatch(\n () => props.modelValue,\n (newValue, oldValue) => {\n if (newValue === oldValue) return\n if (newValue.length === 7) return\n if (newValue.length !== 7 && props.randomColor) {\n if (generatedColor.value === '') {\n emit('update:modelValue', generateRandomColor())\n return\n }\n emit('update:modelValue', generatedColor.value)\n }\n },\n { immediate: true }\n)\n</script>\n\n<template>\n <div>\n <label\n v-if=\"!hideLabel\"\n class=\"v-label mr-2\"\n >\n {{ label }}\n <span\n v-if=\"required\"\n class=\"required\"\n />\n </label>\n <VBtn\n :variant=\"variantComputed\"\n icon\n :color=\"buttonColorComputed\"\n >\n <VMenu\n v-if=\"!readonly\"\n activator=\"parent\"\n >\n <VCard>\n <VColorPicker\n :model-value=\"buttonColorComputed\"\n :swatches=\"swatches\"\n class=\"a-color-picker--hide-controls\"\n elevation=\"0\"\n hide-canvas\n hide-inputs\n show-swatches\n @update:model-value=\"onColorPickerChange\"\n />\n </VCard>\n </VMenu>\n </VBtn>\n </div>\n</template>\n\n<style lang=\"scss\">\n.a-color-picker--hide-controls .v-color-picker__controls {\n display: none;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { ref } from 'vue'\nimport type { AnzuUserMinimal } from '@/types/AnzuUser'\nimport AAnzuUserAvatar from '@/components/AAnzuUserAvatar.vue'\n\nwithDefaults(\n defineProps<{\n currentUser: AnzuUserMinimal | undefined | null\n settingsRouteName: string\n logoutRouteName: string\n dataCy?: string\n }>(),\n {\n dataCy: 'navbar-user',\n }\n)\n\nconst { t } = useI18n()\n\nconst logoutDialog = ref(false)\n</script>\n\n<template>\n <VBtn\n variant=\"text\"\n icon\n size=\"small\"\n :data-cy=\"dataCy\"\n >\n <AAnzuUserAvatar\n :size=\"32\"\n :user=\"currentUser\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"top\"\n >\n {{ t('common.system.currentUser.button') }}\n </VTooltip>\n <VMenu\n v-if=\"currentUser\"\n activator=\"parent\"\n >\n <VCard>\n <VList class=\"pb-0\">\n <VListItem\n class=\"pb-6\"\n lines=\"two\"\n >\n <template #prepend>\n <AAnzuUserAvatar\n :user=\"currentUser\"\n :size=\"40\"\n />\n </template>\n <VListItemTitle>{{ currentUser.person.fullName }}</VListItemTitle>\n <VListItemSubtitle>\n {{ currentUser.email }}<br>\n {{ currentUser.id }}\n </VListItemSubtitle>\n </VListItem>\n <VDivider />\n <VListItem\n :active=\"false\"\n prepend-icon=\"mdi-cog\"\n :to=\"{ name: settingsRouteName }\"\n data-cy=\"navbar-user-settings\"\n >\n {{ t('common.system.currentUser.settings') }}\n </VListItem>\n <VListItem\n prepend-icon=\"mdi-logout\"\n data-cy=\"navbar-user-logout\"\n @click.stop=\"logoutDialog = true\"\n >\n {{ t('common.system.currentUser.logout') }}\n <VDialog\n v-model=\"logoutDialog\"\n width=\"auto\"\n >\n <VCard v-if=\"logoutDialog\">\n <VToolbar\n density=\"compact\"\n color=\"transparent\"\n >\n <VToolbarTitle class=\"flex-fill\">\n {{ t('common.system.currentUser.logout') }}\n </VToolbarTitle>\n <VSpacer />\n <VBtn\n class=\"ml-2\"\n icon=\"mdi-close\"\n size=\"small\"\n variant=\"text\"\n data-cy=\"button-close\"\n @click.stop=\"logoutDialog = false\"\n />\n </VToolbar>\n <VCardText>{{ t('common.system.currentUser.logoutText') }}</VCardText>\n <VCardActions>\n <VSpacer />\n <VBtn\n color=\"secondary\"\n variant=\"text\"\n data-cy=\"button-cancel\"\n @click.stop=\"logoutDialog = false\"\n >\n {{ t('common.button.cancel') }}\n </VBtn>\n <VBtn\n color=\"primary\"\n data-cy=\"button-confirm\"\n :to=\"{ name: logoutRouteName }\"\n >\n {{ t('common.system.currentUser.logoutConfirm') }}\n </VBtn>\n </VCardActions>\n </VCard>\n </VDialog>\n </VListItem>\n </VList>\n </VCard>\n </VMenu>\n </VBtn>\n</template>\n","<script lang=\"ts\" setup>\nimport { watchDebounced } from '@vueuse/core'\nimport { computed, inject, ref, toRefs, watch } from 'vue'\nimport type { ErrorObject } from '@vuelidate/core'\nimport { useI18n } from 'vue-i18n'\nimport type { FilterBag } from '@/types/Filter'\nimport type { Pagination } from '@/types/Pagination'\nimport type { DocId, IntegerId } from '@/types/common'\nimport { cloneDeep, isArray, isNull, isUndefined } from '@/utils/common'\nimport { SubjectScopeSymbol, SystemScopeSymbol } from '@/components/injectionKeys'\nimport { usePagination } from '@/composables/system/pagination'\nimport { stringSplitOnFirstOccurrence } from '@/utils/string'\nimport type { ValueObjectOption } from '@/types/ValueObject'\n\n// type FetchItemsByIdsType =\n// | ((ids: IntegerId[]) => Promise<ValueObjectOption<IntegerId>[]>)\n// | ((ids: DocId[]) => Promise<ValueObjectOption<DocId>[]>)\n\ntype FetchItemsMinimalType = (pagination: Pagination, filterBag: FilterBag) => Promise<any[]>\n\ntype UseCachedType = () => {\n fetch: any\n add: any\n addManualMinimal: any\n}\n\nconst props = withDefaults(\n defineProps<{\n modelValue: any\n label?: string | undefined\n required?: boolean\n multiple?: boolean\n clearable?: boolean\n v?: any\n errorMessage?: string\n hideLabel?: boolean\n fetchItemsMinimal: FetchItemsMinimalType\n innerFilter: FilterBag\n filterByField?: string\n filterSortBy?: string | null\n loading?: boolean\n useCached: UseCachedType\n itemTitle?: string\n itemValue?: string\n }>(),\n {\n label: undefined,\n required: undefined,\n multiple: false,\n clearable: false,\n v: null,\n errorMessage: undefined,\n hideLabel: false,\n filterByField: 'name',\n filterSortBy: 'createdAt',\n loading: false,\n itemTitle: 'name',\n itemValue: 'id',\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: DocId | IntegerId | DocId[] | IntegerId[] | null | undefined): void\n (e: 'blur', data: DocId | IntegerId | DocId[] | IntegerId[] | null | undefined): void\n (e: 'focus', data: DocId | IntegerId | DocId[] | IntegerId[] | null | undefined): void\n (e: 'searchChange', data: string): void\n (e: 'searchChangeDebounced', data: string): void\n}>()\n\nconst { fetch, add, addManualMinimal } = props.useCached()\n\nconst modelValue = computed({\n get() {\n return props.modelValue\n },\n set(newValue: DocId | IntegerId | DocId[] | IntegerId[] | null | undefined) {\n emit('update:modelValue', cloneDeep<DocId | IntegerId | DocId[] | IntegerId[] | null | undefined>(newValue))\n },\n})\n\nconst { t } = useI18n()\nconst system = inject<string | undefined>(SystemScopeSymbol, undefined)\nconst subject = inject<string | undefined>(SubjectScopeSymbol, undefined)\n\nconst isFocused = ref(false)\nconst search = ref('')\nconst loadingLocal = ref(false)\nconst { innerFilter } = toRefs(props)\nconst pagination = usePagination(props.filterSortBy)\n\nconst fetchedItemsMinimal = ref<Map<IntegerId | DocId, any>>(new Map())\n// const fetchedItems = ref<Map<IntegerId | DocId, string>>(new Map())\n\nconst onFocus = () => {\n isFocused.value = true\n emit('focus', modelValue.value)\n}\n\nconst onBlur = () => {\n isFocused.value = false\n props.v?.$touch()\n emit('blur', modelValue.value)\n}\n\nconst errorMessageComputed = computed(() => {\n if (!isUndefined(props.errorMessage)) return [props.errorMessage]\n if (props.v?.$errors?.length) return props.v.$errors.map((item: ErrorObject) => item.$message)\n return []\n})\n\nconst labelComputed = computed(() => {\n if (!isUndefined(props.label)) return props.label\n if (isUndefined(system) || isUndefined(subject) || isUndefined(props.v?.$path)) return ''\n const { end: path } = stringSplitOnFirstOccurrence(props.v?.$path, '.')\n return t(system + '.' + subject + '.model.' + path)\n})\n\nconst requiredComputed = computed(() => {\n if (!isUndefined(props.required)) return props.required\n return props.v?.required && props.v?.required.$params.type === 'required'\n})\n\nconst multipleComputedVuetifyTypeFix = computed(() => {\n if (props.multiple === false) return false\n return true as unknown as undefined\n})\n\nconst onSearchUpdate = (query: string) => {\n if (!props.multiple && !isFocused.value && query.length === 0) return // vuetify fix\n search.value = query\n}\n\nconst apiSearch = async (query: string) => {\n loadingLocal.value = true\n const filterField = innerFilter.value[props.filterByField]\n filterField.model = query\n fetchedItemsMinimal.value.clear()\n const res = await props.fetchItemsMinimal(pagination, innerFilter.value)\n res.forEach((item: any) => {\n fetchedItemsMinimal.value.set(item[props.itemValue], item)\n })\n loadingLocal.value = false\n}\n\nconst allItems = computed<ValueObjectOption<DocId | IntegerId>[]>(() => {\n const final: Map<IntegerId | DocId, string> = new Map()\n if (isArray(modelValue.value)) {\n modelValue.value.forEach((value) => {\n final.set(value, '')\n })\n } else if (modelValue.value) {\n final.set(modelValue.value, '')\n }\n fetchedItemsMinimal.value.forEach((value) => {\n final.set(value[props.itemValue], value[props.itemTitle])\n })\n return Array.from(final, ([key, value]) => {\n return { value: key, title: value }\n })\n})\n\nconst tryToAddFromFetchedItems = (ids: Set<DocId | IntegerId>) => {\n return new Promise<boolean>((resolve) => {\n fetchedItemsMinimal.value.forEach((value, key) => {\n if (ids.has(key)) {\n addManualMinimal(cloneDeep(value))\n }\n })\n return resolve(true)\n })\n}\n\nconst onClickClear = () => {\n apiSearch('')\n if (props.multiple) {\n modelValue.value = []\n return\n }\n modelValue.value = null\n}\n\nconst deleteWasPressedTime = ref(0)\nconst onKeydownDelete = () => {\n deleteWasPressedTime.value = Date.now()\n}\n\nwatchDebounced(\n search,\n (newValue, oldValue) => {\n if (newValue !== oldValue) {\n apiSearch(newValue)\n emit('searchChangeDebounced', newValue)\n }\n },\n { debounce: 300, maxWait: 1000 }\n)\n\nwatch(search, (newValue, oldValue) => {\n if (newValue.length === 0 && isFocused.value === true) {\n const now = Date.now()\n if (now - deleteWasPressedTime.value > 200) {\n search.value = oldValue\n return\n }\n }\n if (newValue !== oldValue) {\n emit('searchChange', newValue)\n }\n})\n\nwatch(\n modelValue,\n async (newValue) => {\n if (isNull(newValue) || isUndefined(newValue) || (isArray(newValue) && newValue.length === 0)) {\n return\n }\n const values = isArray(newValue) ? newValue : [newValue]\n const idsToFetch = new Set(values)\n await tryToAddFromFetchedItems(idsToFetch)\n\n if (idsToFetch.size > 0) {\n add(Array.from(idsToFetch) as Array<DocId & IntegerId>)\n fetch()\n }\n },\n { immediate: true }\n)\n</script>\n\n<template>\n <VAutocomplete\n v-model=\"modelValue\"\n :search=\"search\"\n chips\n :items=\"allItems\"\n no-filter\n :multiple=\"multipleComputedVuetifyTypeFix\"\n :clearable=\"clearable\"\n :error-messages=\"errorMessageComputed\"\n :loading=\"loadingLocal\"\n @blur=\"onBlur\"\n @focus=\"onFocus\"\n @update:search=\"onSearchUpdate\"\n @click:clear=\"onClickClear\"\n @keydown.delete=\"onKeydownDelete\"\n >\n <template #label>\n <span\n v-if=\"!hideLabel\"\n :key=\"requiredComputed + ''\"\n >\n {{ labelComputed }}\n <span\n v-if=\"requiredComputed\"\n class=\"required\"\n />\n </span>\n </template>\n <template\n v-if=\"!multiple\"\n #selection\n />\n <template #chip=\"{ props: chipProps, item }\">\n <slot\n name=\"chip\"\n :props=\"chipProps\"\n :item=\"item\"\n >\n <VChip\n v-bind=\"chipProps\"\n :text=\"item.title\"\n />\n </slot>\n </template>\n <template #item=\"{ props: itemProps, item }\">\n <slot\n name=\"item\"\n :props=\"itemProps\"\n :item=\"item\"\n >\n <VListItem :props=\"itemProps\" />\n </slot>\n </template>\n </VAutocomplete>\n</template>\n","<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\n\nwithDefaults(\n defineProps<{\n title?: string | undefined\n logoUrl?: string | undefined\n loginUrl?: undefined | (() => string)\n dataCy?: string\n }>(),\n {\n title: undefined,\n logoUrl: undefined,\n loginUrl: undefined,\n dataCy: 'button-login',\n }\n)\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <div class=\"d-flex justify-center align-center fill-height\">\n <div class=\"d-flex justify-center align-center flex-column\">\n <img\n :src=\"logoUrl\"\n class=\"logo pb-2\"\n alt=\"\"\n >\n <h1\n v-if=\"title\"\n class=\"display-1 my-3\"\n >\n {{ title }}\n </h1>\n <h4 class=\"mb-3 body-1\">\n <span>{{ t('common.system.login.text') }}</span>\n </h4>\n <div class=\"py-5\">\n <VBtn\n v-if=\"loginUrl\"\n :data-cy=\"dataCy\"\n :href=\"loginUrl()\"\n color=\"primary\"\n size=\"large\"\n >\n {{ t('common.system.login.text') }}\n </VBtn>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.logo {\n display: block;\n max-width: 120px;\n height: auto;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { onMounted } from 'vue'\n\nconst props = withDefaults(\n defineProps<{\n logoutUrl?: undefined | (() => string)\n }>(),\n {\n logoutUrl: undefined,\n }\n)\n\nonMounted(() => {\n if (!props.logoutUrl) return\n window.location.href = props.logoutUrl()\n})\n</script>\n\n<template>\n <div />\n</template>\n","<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\n\nwithDefaults(\n defineProps<{\n returnRouteName: string\n }>(),\n {}\n)\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <div class=\"d-flex justify-center align-center fill-height\">\n <div class=\"d-flex flex-column align-center\">\n <h1 class=\"d-flex justify-center align-center text-primary\">\n <VIcon\n size=\"x-large\"\n icon=\"mdi-emoticon-cry\"\n />\n <span>{{ t('common.system.unauthorized.title') }}</span>\n </h1>\n\n <p class=\"pa-4\">\n {{ t('common.system.unauthorized.text') }}\n </p>\n\n <VBtn\n :to=\"{ name: returnRouteName }\"\n color=\"primary\"\n size=\"large\"\n >\n {{ t('common.system.unauthorized.backButton') }}\n </VBtn>\n </div>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\n\nwithDefaults(\n defineProps<{\n returnRouteName: string\n }>(),\n {}\n)\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <div class=\"d-flex justify-center align-center fill-height\">\n <div class=\"d-flex flex-column align-center\">\n <h1 class=\"d-flex justify-center align-center text-primary\">\n <VIcon\n size=\"x-large\"\n icon=\"mdi-emoticon-cry\"\n />\n <span>{{ t('common.system.notFound.title') }}</span>\n </h1>\n\n <p class=\"pa-4\">\n {{ t('common.system.notFound.text') }}\n </p>\n\n <VBtn\n :to=\"{ name: returnRouteName }\"\n color=\"primary\"\n size=\"large\"\n >\n {{ t('common.system.notFound.backButton') }}\n </VBtn>\n </div>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport type { JobBase } from '@/types/Job'\nimport { useI18n } from 'vue-i18n'\nimport ARow from '@/components/ARow.vue'\nimport AJobStatusChip from '@/components/job/AJobStatusChip.vue'\nimport ADatetime from '@/components/ADatetime.vue'\n\nwithDefaults(\n defineProps<{\n job: JobBase\n loading?: boolean\n }>(),\n {\n loading: false,\n }\n)\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <div>\n <ARow\n :title=\"t('common.job.model.id')\"\n :value=\"job.id\"\n />\n <ARow :title=\"t('common.job.model._resourceName')\">\n <slot name=\"resource-name\">\n {{ job._resourceName }}\n </slot>\n </ARow>\n <ARow :title=\"t('common.job.model.status')\">\n <AJobStatusChip :value=\"job.status\" />\n </ARow>\n <ARow :title=\"t('common.job.model.startedAt')\">\n <ADatetime :date-time=\"job.startedAt\" />\n </ARow>\n <ARow :title=\"t('common.job.model.finishedAt')\">\n <ADatetime :date-time=\"job.finishedAt\" />\n </ARow>\n <ARow\n :title=\"t('common.job.model.result')\"\n :value=\"job.result\"\n />\n </div>\n</template>\n","import type { DocId, IntegerId } from '@/types/common'\nimport type { AnzuUserAndTimeTrackingAware } from '@/types/AnzuUserAndTimeTrackingAware'\nimport type { ResourceNameSystemAware } from '@/types/ResourceNameSystemAware'\nimport type { AssetFile } from '@/types/coreDam/AssetFile'\n\ninterface Texts {\n displayTitle: string\n}\n\nexport type DistributionServiceName = string\n\nexport enum DamAssetStatus {\n Draft = 'draft',\n WithFile = 'with_file',\n Deleting = 'deleting',\n Default = Draft,\n}\n\nexport enum DamAssetType {\n Image = 'image',\n Audio = 'audio',\n Video = 'video',\n Document = 'document',\n Default = Image,\n}\n\nexport type DamAssetTypeValues =`${DamAssetType}`\n\nexport const damAssetTypeValueToEnum = (value: DamAssetTypeValues) => {\n switch (value) {\n case 'image':\n return DamAssetType.Image\n case 'audio':\n return DamAssetType.Audio\n case 'video':\n return DamAssetType.Video\n case 'document':\n return DamAssetType.Document\n default:\n return DamAssetType.Default\n }\n}\n\ninterface Attributes {\n assetType: DamAssetType\n assetStatus: DamAssetStatus\n}\n\nexport interface AssetFileProperties {\n distributesInServices: DistributionServiceName[]\n slotNames: string[]\n fromRss: boolean\n width: number\n height: number\n}\n\nexport interface AssetSearchListItemDto extends AnzuUserAndTimeTrackingAware, ResourceNameSystemAware {\n id: DocId\n texts: Texts\n attributes: Attributes\n licence: IntegerId\n mainFile: null | AssetFile\n keywords: DocId[]\n authors: DocId[]\n podcasts: DocId[]\n assetFileProperties: AssetFileProperties\n}\n","import type { AxiosInstance } from 'axios'\nimport type { Pagination } from '@/types/Pagination'\nimport type { FilterBag } from '@/types/Filter'\nimport { apiFetchList } from '@/lib'\nimport type { AssetSearchListItemDto } from '@/types/coreDam/Asset'\n\nconst END_POINT = '/adm/v1/asset'\nexport const ENTITY = 'asset'\nexport const SYSTEM_CORE_DAM = 'coreDam'\n\nexport function useAssetApi(client: () => AxiosInstance) {\n const fetchAssetList = (licenceId: number, pagination: Pagination, filterBag: FilterBag) =>\n apiFetchList<AssetSearchListItemDto[]>(\n client,\n END_POINT + '/licence/:licenceId',\n { licenceId },\n pagination,\n filterBag,\n SYSTEM_CORE_DAM,\n ENTITY\n )\n\n return {\n fetchAssetList,\n }\n}\n","import { reactive } from 'vue'\nimport { makeFilterHelper } from '@/lib'\n\nconst makeFilter = makeFilterHelper('common', 'assetSelect')\n\nconst filter = reactive({\n _elastic: {\n ...makeFilter({ exclude: true }),\n },\n text: {\n ...makeFilter({ name: 'text', variant: 'search' }),\n },\n type: {\n ...makeFilter({ name: 'type', default: [] }),\n },\n status: {\n ...makeFilter({ name: 'status', default: ['with_file'] }),\n },\n mostDominantColor: {\n ...makeFilter({ name: 'mostDominantColor', default: [] }),\n },\n closestMostDominantColor: {\n ...makeFilter({ name: 'closestMostDominantColor', default: [] }),\n },\n codecName: {\n ...makeFilter({ name: 'codecName', default: [] }),\n },\n orientation: {\n ...makeFilter({ name: 'orientation', default: [] }),\n },\n described: {\n ...makeFilter({ name: 'described', default: null }),\n },\n visible: {\n ...makeFilter({ name: 'visible', default: true }),\n },\n generatedBySystem: {\n ...makeFilter({ name: 'generatedBySystem', default: false }),\n },\n inPodcast: {\n ...makeFilter({ name: 'inPodcast', default: null }),\n },\n fromRss: {\n ...makeFilter({ name: 'fromRss', default: null }),\n },\n slotNames: {\n ...makeFilter({ name: 'slotNames', default: [] }),\n },\n distributedInServices: {\n ...makeFilter({ name: 'distributedInServices', default: [], multiple: true }),\n },\n licences: {\n ...makeFilter({ name: 'licences', default: [] }),\n },\n shortestDimensionFrom: {\n ...makeFilter({ name: 'shortestDimensionFrom', default: null }),\n },\n shortestDimensionUntil: {\n ...makeFilter({ name: 'shortestDimensionUntil', default: null }),\n },\n pixelSizeFrom: {\n ...makeFilter({ name: 'pixelSizeFrom', default: null }),\n },\n pixelSizeUntil: {\n ...makeFilter({ name: 'pixelSizeUntil', default: null }),\n },\n widthFrom: {\n ...makeFilter({ name: 'widthFrom', default: null }),\n },\n widthUntil: {\n ...makeFilter({ name: 'widthUntil', default: null }),\n },\n heightFrom: {\n ...makeFilter({ name: 'heightFrom', default: null }),\n },\n heightUntil: {\n ...makeFilter({ name: 'heightUntil', default: null }),\n },\n ratioWidthFrom: {\n ...makeFilter({ name: 'ratioWidthFrom', default: null }),\n },\n ratioWidthUntil: {\n ...makeFilter({ name: 'ratioWidthUntil', default: null }),\n },\n ratioHeightFrom: {\n ...makeFilter({ name: 'ratioHeightFrom', default: null }),\n },\n ratioHeightUntil: {\n ...makeFilter({ name: 'ratioHeightUntil', default: null }),\n },\n rotationFrom: {\n ...makeFilter({ name: 'rotationFrom', default: null }),\n },\n rotationUntil: {\n ...makeFilter({ name: 'rotationUntil', default: null }),\n },\n durationFrom: {\n ...makeFilter({ name: 'durationFrom', default: null }),\n },\n durationUntil: {\n ...makeFilter({ name: 'durationUntil', default: null }),\n },\n bitrateFrom: {\n ...makeFilter({ name: 'bitrateFrom', default: null }),\n },\n bitrateUntil: {\n ...makeFilter({ name: 'bitrateUntil', default: null }),\n },\n slotsCountFrom: {\n ...makeFilter({ name: 'slotsCountFrom', default: null }),\n },\n slotsCountUntil: {\n ...makeFilter({ name: 'slotsCountUntil', default: null }),\n },\n createdAtFrom: {\n ...makeFilter({ name: 'createdAtFrom', default: null }),\n },\n createdAtUntil: {\n ...makeFilter({ name: 'createdAtUntil', default: null }),\n },\n})\n\nexport function useAssetListFilter() {\n return filter\n}\n","import type { DocId } from '@/types/common'\nimport type { AssetSearchListItemDto } from '@/types/coreDam/Asset'\n\nexport enum AssetSelectReturnType {\n MainFileId = 'mainFileId',\n AssetId = 'assetId',\n Asset = 'asset',\n}\n\nexport type AssetSelectReturnTypeValues =`${AssetSelectReturnType}`\n\nexport type AssetSelectReturnData = AssetSelectReturnMainFileId | AssetSelectReturnAssetId | AssetSelectReturnAsset\n\ninterface AssetSelectReturnMainFileId {\n type: 'mainFileId'\n value: Array<DocId>\n}\n\ninterface AssetSelectReturnAssetId {\n type: 'assetId'\n value: Array<DocId>\n}\n\ninterface AssetSelectReturnAsset {\n type: 'asset'\n value: Array<AssetSearchListItemDto>\n}\n\nexport const assetSelectReturnTypeValuesToEnum = (value: AssetSelectReturnTypeValues) => {\n switch (value) {\n case 'assetId':\n return AssetSelectReturnType.AssetId\n case 'asset':\n return AssetSelectReturnType.Asset\n case 'mainFileId':\n default:\n return AssetSelectReturnType.MainFileId\n }\n}\n","import { acceptHMRUpdate, defineStore } from 'pinia'\nimport type { AssetSearchListItemDto, DamAssetType } from '@/types/coreDam/Asset'\nimport { DamAssetType as AssetTypeValue } from '@/types/coreDam/Asset'\nimport type { DocId } from '@/types/common'\nimport { computed, ref } from 'vue'\nimport { type AssetSelectReturnData, AssetSelectReturnType } from '@/types/coreDam/AssetSelect'\n\nexport interface AssetSelectListItem {\n asset: AssetSearchListItemDto\n selected: boolean\n}\n\nexport const useAssetSelectStore = defineStore('commonAdminCoreDamAssetSelectStore', () => {\n const assetListItems = ref<Array<AssetSelectListItem>>([])\n const loader = ref(false)\n const licenceId = ref(0)\n const assetType = ref<AssetTypeValue>(AssetTypeValue.Default)\n const selectedAssets = ref<Map<DocId, AssetSelectListItem>>(new Map())\n const singleMode = ref(false)\n const minCount = ref(0)\n const maxCount = ref(0)\n\n function showLoader() {\n loader.value = true\n }\n\n function hideLoader() {\n loader.value = false\n }\n\n function setLicenceId(value: number) {\n licenceId.value = value\n }\n\n function setSingleMode(value: boolean) {\n singleMode.value = value\n }\n\n function setAssetType(value: DamAssetType) {\n assetType.value = value\n }\n\n function setMinCount(value: number) {\n minCount.value = value\n }\n\n function setMaxCount(value: number) {\n maxCount.value = value\n }\n\n function setList(items: AssetSearchListItemDto[]) {\n assetListItems.value = items.map((item) => {\n return {\n asset: item,\n selected: false,\n }\n })\n }\n\n function appendList(items: AssetSearchListItemDto[]) {\n const assets = items.map((asset) => {\n return {\n asset: asset,\n selected: false,\n }\n })\n assetListItems.value = assetListItems.value.concat(assets)\n }\n\n function toggleSelectedByIndex(index: number) {\n if (!assetListItems.value[index]) return\n\n if (!singleMode.value && isSelectedMax.value && !assetListItems.value[index].selected) {\n return\n }\n\n assetListItems.value[index].selected = !assetListItems.value[index].selected\n\n if (singleMode.value && assetListItems.value[index].selected) {\n unselectAllExcept(index)\n clearSelected()\n addToSelected(assetListItems.value[index])\n return\n }\n\n if (!singleMode.value && assetListItems.value[index].selected) {\n addToSelected(assetListItems.value[index])\n return\n }\n\n removeFromSelected(assetListItems.value[index].asset.id)\n }\n\n function unselectAllExcept(ignoreIndex: number) {\n const items = assetListItems.value\n for (let i = 0; i < items.length; i++) {\n if (items[i].selected && i !== ignoreIndex) {\n items[i].selected = false\n }\n }\n }\n\n function clearSelected() {\n selectedAssets.value.clear()\n }\n\n function addToSelected(assetItem: AssetSelectListItem) {\n if (!selectedAssets.value.has(assetItem.asset.id)) {\n selectedAssets.value.set(assetItem.asset.id, assetItem)\n }\n }\n\n function removeFromSelected(assetId: DocId) {\n if (selectedAssets.value.has(assetId)) {\n selectedAssets.value.delete(assetId)\n }\n }\n\n function getSelectedMainFileIds(): DocId[] {\n const fileIds: Set<DocId> = new Set()\n for (const value of selectedAssets.value.values()) {\n if (value.asset.mainFile?.id) {\n fileIds.add(value.asset.mainFile.id)\n }\n }\n return Array.from(fileIds)\n }\n\n function getSelectedAssetIds(): DocId[] {\n return Array.from(selectedAssets.value.keys())\n }\n\n function getSelectedAssets(): AssetSearchListItemDto[] {\n const assets: Array<AssetSearchListItemDto> = []\n for (const value of selectedAssets.value.values()) {\n assets.push(value.asset)\n }\n return assets\n }\n\n function getSelectedData(type: AssetSelectReturnType): AssetSelectReturnData {\n switch (type) {\n case AssetSelectReturnType.AssetId:\n return {\n type: AssetSelectReturnType.AssetId,\n value: getSelectedAssetIds(),\n }\n case AssetSelectReturnType.Asset:\n return {\n type: AssetSelectReturnType.Asset,\n value: getSelectedAssets(),\n }\n case AssetSelectReturnType.MainFileId:\n default:\n return {\n type: AssetSelectReturnType.MainFileId,\n value: getSelectedMainFileIds(),\n }\n }\n }\n\n const isSelectedMax = computed(() => {\n return selectedCount.value >= maxCount.value\n })\n\n const selectedCount = computed(() => {\n return selectedAssets.value.size\n })\n\n function reset() {\n assetListItems.value = []\n loader.value = false\n clearSelected()\n }\n\n return {\n licenceId,\n assetType,\n singleMode,\n minCount,\n maxCount,\n selectedCount,\n selectedAssets,\n loader,\n assetListItems,\n getSelectedData,\n setAssetType,\n setLicenceId,\n setSingleMode,\n setMinCount,\n setMaxCount,\n showLoader,\n hideLoader,\n setList,\n appendList,\n toggleSelectedByIndex,\n clearSelected,\n reset,\n }\n})\n\nif (import.meta.hot) {\n import.meta.hot.accept(acceptHMRUpdate(useAssetSelectStore, import.meta.hot))\n}\n","import { useAssetApi } from '@/services/api/coreDam/assetApi'\nimport { useAssetListFilter } from '@/model/coreDam/filter/AssetFilter'\nimport { type AssetSelectListItem, useAssetSelectStore } from '@/services/stores/coreDam/assetSelectStore'\nimport { storeToRefs } from 'pinia'\nimport type { Ref } from 'vue'\nimport { inject, ref } from 'vue'\nimport type { DamAssetType } from '@/types/coreDam/Asset'\nimport type { AxiosInstance } from 'axios'\nimport { DamClientSymbol } from '@/components/injectionKeys'\nimport { usePagination } from '@/composables/system/pagination'\nimport { isUndefined } from '@/utils/common'\nimport { useFilterHelpers } from '@/composables/filter/filterHelpers'\nimport { useAlerts } from '@/composables/system/alerts'\nimport type { DocId } from '@/types/common'\n\nconst filter = useAssetListFilter()\nconst pagination = usePagination()\nconst filterIsTouched = ref(false)\n\nexport function useAssetListActions() {\n const damClient = inject<(() => AxiosInstance) | undefined>(DamClientSymbol, undefined)\n\n if (isUndefined(damClient)) {\n throw new Error(\"Composable useAssetListActions can't be used without configured damClient.\")\n }\n\n const { fetchAssetList: apiFetchAssetList } = useAssetApi(damClient)\n\n const assetListStore = useAssetSelectStore()\n const { selectedCount, selectedAssets, assetListItems, loader } = storeToRefs(assetListStore)\n\n const { resetFilter } = useFilterHelpers()\n const { showErrorsDefault } = useAlerts()\n\n const fetchAssetList = async () => {\n pagination.page = 1\n try {\n assetListStore.showLoader()\n assetListStore.setList(await apiFetchAssetList(assetListStore.licenceId, pagination, filter))\n } catch (error) {\n showErrorsDefault(error)\n } finally {\n assetListStore.hideLoader()\n }\n }\n const fetchNextPage = async () => {\n pagination.page = pagination.page + 1\n try {\n assetListStore.showLoader()\n assetListStore.appendList(await apiFetchAssetList(assetListStore.licenceId, pagination, filter))\n } catch (error) {\n showErrorsDefault(error)\n } finally {\n assetListStore.hideLoader()\n }\n }\n\n const onItemClick = (data: { assetId: DocId; index: number }) => {\n assetListStore.toggleSelectedByIndex(data.index)\n }\n\n const resetAssetList = async () => {\n assetListStore.reset()\n filter.type.default = [assetListStore.assetType]\n resetFilter(filter, pagination, fetchAssetList)\n }\n\n const filterTouch = () => {\n filterIsTouched.value = true\n }\n const filterUnTouch = () => {\n filterIsTouched.value = false\n }\n\n const initStoreContext = (\n licenceId: number,\n assetType: DamAssetType,\n singleMode: boolean,\n minCount: number,\n maxCount: number\n ): void => {\n assetListStore.clearSelected()\n assetListStore.setAssetType(assetType)\n assetListStore.setLicenceId(licenceId)\n assetListStore.setSingleMode(singleMode)\n assetListStore.setMinCount(minCount)\n assetListStore.setMaxCount(maxCount)\n }\n\n return {\n filterIsTouched,\n filter,\n selectedCount,\n selectedAssets,\n pagination,\n loader,\n assetListItems: assetListItems as Ref<Array<AssetSelectListItem>>,\n getSelectedData: assetListStore.getSelectedData,\n onItemClick,\n fetchAssetList,\n fetchNextPage,\n resetAssetList,\n filterTouch,\n filterUnTouch,\n initStoreContext,\n }\n}\n","import { computed } from 'vue'\nimport type { AssetSearchListItemDto } from '@/types/coreDam/Asset'\nimport type { AssetSelectListItem } from '@/services/stores/coreDam/assetSelectStore'\n\nconst IMAGE_HEIGHT = 200\nconst IMAGE_BG_COLOR_DEFAULT = '#ccc'\n\nexport function useAssetItemActions(item: AssetSelectListItem) {\n const asset = computed<AssetSearchListItemDto>(() => {\n return item.asset\n })\n\n const assetType = computed(() => {\n return asset.value.attributes.assetType\n })\n\n const assetStatus = computed(() => {\n return asset.value.attributes.assetStatus\n })\n\n const imageProperties = computed(() => {\n if (asset.value.mainFile && asset.value.mainFile.links && asset.value.mainFile.links.image_list) {\n return {\n url: asset.value.mainFile.links.image_list.url,\n width: asset.value.mainFile.links.image_list.width,\n height: asset.value.mainFile.links.image_list.height,\n bgColor: IMAGE_BG_COLOR_DEFAULT,\n }\n }\n return {\n url: undefined,\n width: undefined,\n height: IMAGE_HEIGHT,\n bgColor: IMAGE_BG_COLOR_DEFAULT,\n }\n })\n\n const tableImageProperties = computed(() => {\n if (asset.value.mainFile && asset.value.mainFile.links && asset.value.mainFile.links.image_table) {\n return {\n url: asset.value.mainFile.links.image_table.url,\n width: asset.value.mainFile.links.image_table.width,\n height: asset.value.mainFile.links.image_table.height,\n bgColor: IMAGE_BG_COLOR_DEFAULT,\n }\n }\n return {\n url: undefined,\n width: undefined,\n height: IMAGE_HEIGHT,\n bgColor: IMAGE_BG_COLOR_DEFAULT,\n }\n })\n\n return {\n asset,\n assetType,\n assetStatus,\n imageProperties,\n tableImageProperties,\n }\n}\n","export default \"data:image/jpeg;base64,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ADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAANVAAAABgAAAAAAAAAAAAADhAAABkAAAAAQAHAAbABhAGMAZQBoAG8AbABkAGUAcgAtADEANgAtADkAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAABkAAAAOEAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxsAAAAAgAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAOEAAAAAFJnaHRsb25nAAAGQAAAAAZzbGljZXNWbExzAAAAAU9iamMAAAABAAAAAAAFc2xpY2UAAAASAAAAB3NsaWNlSURsb25nAAAAAAAAAAdncm91cElEbG9uZwAAAAAAAAAGb3JpZ2luZW51bQAAAAxFU2xpY2VPcmlnaW4AAAANYXV0b0dlbmVyYXRlZAAAAABUeXBlZW51bQAAAApFU2xpY2VUeXBlAAAAAEltZyAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAADhAAAAABSZ2h0bG9uZwAABkAAAAADdXJsVEVYVAAAAAEAAAAAAABudWxsVEVYVAAAAAEAAAAAAABNc2dlVEVYVAAAAAEAAAAAAAZhbHRUYWdURVhUAAAAAQAAAAAADmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAIY2VsbFRleHRURVhUAAAAAQAAAAAACWhvcnpBbGlnbmVudW0AAAAPRVNsaWNlSG9yekFsaWduAAAAB2RlZmF1bHQAAAAJdmVydEFsaWduZW51bQAAAA9FU2xpY2VWZXJ0QWxp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Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06RG9jdW1lbnRJRD0iMjc4M0ZDMUFGQTdBRThFREUyRDE3MjI5NTdCNEExQjAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MGVlZDBlZGUtOGM3MC00OTljLWEyYjUtMzMwZmFmNWYxMjZmIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9IjI3ODNGQzFBRkE3QUU4RURFMkQxNzIyOTU3QjRBMUIwIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHBob3Rvc2hvcDpMZWdhY3lJUFRDRGlnZXN0PSJDNzVEMTdFNTc0QjU2RUY1REJCRTM5OTRDMEU5Nzk1QyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9IiIgeG1wOkNyZWF0ZURhdGU9IjIwMTctMDQtMjFUMTI6MTk6MTkrMDE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE3LTA0LTI2VDE0OjIzOjU0KzAxOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE3LTA0LTI2VDE0OjIzOjU0KzAxOjAwIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChNYWNpbnRvc2gpIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NDU2NTBiMjEtMjM4Zi00MGNjLTlkNGEtNDZiZTMyOWUzYWExIiBzdEV2dDp3aGVuPSIyMDE3LTA0LTIxVDEyOjE5OjU3KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MGVlZDBlZGUtOGM3MC00OTljLWEyYjUtMzMwZmFmNWYxMjZmIiBzdEV2dDp3aGVuPSIyMDE3LTA0LTI2VDE0OjIzOjU0KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/uAA5BZG9iZQBkAAAAAAH/2wCEAAYEBAcFBwsGBgsOCggKDhEODg4OERYTExMTExYRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBwkJEwwTIhMTIhQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIA4QGQAMBEQACEQEDEQH/3QAEAMj/xAGiAAAABwEBAQEBAAAAAAAAAAAEBQMCBgEABwgJCgsBAAICAwEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAgEDAwIEAgYHAwQCBgJzAQIDEQQABSESMUFRBhNhInGBFDKRoQcVsUIjwVLR4TMWYvAkcoLxJUM0U5KismNzwjVEJ5OjszYXVGR0w9LiCCaDCQoYGYSURUaktFbTVSga8uPzxNTk9GV1hZWltcXV5fVmdoaWprbG1ub2N0dXZ3eHl6e3x9fn9zhIWGh4iJiouMjY6PgpOUlZaXmJmam5ydnp+So6SlpqeoqaqrrK2ur6EQACAgECAwUFBAUGBAgDA20BAAIRAwQhEjFBBVETYSIGcYGRMqGx8BTB0eEjQhVSYnLxMyQ0Q4IWklMlomOywgdz0jXiRIMXVJMICQoYGSY2RRonZHRVN/Kjs8MoKdPj84SUpLTE1OT0ZXWFlaW1xdXl9UZWZnaGlqa2xtbm9kdXZ3eHl6e3x9fn9zhIWGh4iJiouMjY6Pg5SVlpeYmZqbnJ2en5KjpKWmp6ipqqusra6vr/2gAMAwEAAhEDEQA/AO4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/0O4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/0e4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/0u4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/0+4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/1O4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/1e4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/1u4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/1+4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/0O4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/0e4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/0u4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/0+4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/1O4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/1e4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/1u4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/1+4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/0O4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/0e4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/0u4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/0+4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/1O4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/1e4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/1u4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/1+4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/0O4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/0e4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/0u4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/0+4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/1O4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/1e4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/1u4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/1+4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/0O4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq3xJ7Yq7ifDFXcT4Yq7ifDFXcT4Yq7ifDFXcT4Yq7ifDFXcT4Yq7ifDFXcT4Yq7ifDFXcT4Yq7ifDFXcT4Yq7ifDFXcT4Yq7ifDFXcT4Yq7ifDFXcT4Yq7ifDFXcT4Yq7ifDFXcT4Yq7ifDFXcT4Yq7ifDFXcT4Yq7ifDFXcT4Yq7ifDFXcT4Yq7ifDFXcT4Yq7ifDFXcT4Yq7ifDFXcT4Yq7ifDFWsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/9HuGKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KrJZViUvIeKKKknsMVYrqPm+SQlLEcE/nPU+4H7OKpNJqV1KavM5P+sf4Yqt+uT/79f/gjirvrk/8Av1/+COKu+uT/AO/X/wCCOKu+uT/79f8A4I4q765P/v1/+COKu+uT/wC/X/4I4q765P8A79f/AII4q765P/v1/wDgjirvrk/+/X/4I4q765P/AL9f/gjirvrk/wDv1/8Agjirvrk/+/X/AOCOKu+uT/79f/gjirvrk/8Av1/+COKu+uT/AO/X/wCCOKu+uT/79f8A4I4q765P/v1/+COKu+uT/wC/X/4I4q765P8A79f/AII4q765P/v1/wDgjirvrk/+/X/4I4q765P/AL9f/gjirvrk/wDv1/8Agjirvrk/+/X/AOCOKu+uT/79f/gjirvrk/8Av1/+COKu+uT/AO/X/wCCOKu+uT/79f8A4I4q765P/v1/+COKu+uT/wC/X/4I4q765P8A79f/AII4q765P/v1/wDgjirvrk/+/X/4I4q765P/AL9f/gjirvrk/wDv1/8Agjirvrk/+/X/AOCOKu+uT/79f/gjirvrk/8Av1/+COKuF5cD/dr/APBHFUZaeYb22NBJzX+V9x/zVirK9H1qLUlIUcJV+0h/Wv8AMuKpjirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir/AP/S7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirEPNmqGab6nGfgj3b/Kb/mwYqkOKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVfBO1s6zREq6GoOKvQrC8W8gS4Xo43Hge4xVEYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/0+4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FWj2xV5tcyGWV5G6sxP44qsxVuONpGCICzHoB1xVX/AEbdf75k/wCBOKu/Rt1/vmT/AIE4q79G3X++ZP8AgTirv0bdf75k/wCBOKu/Rt1/vmT/AIE4q79G3X++ZP8AgTirv0bdf75k/wCBOKu/Rt1/vmT/AIE4q79G3X++ZP8AgTirv0bdf75k/wCBOKu/Rt1/vmT/AIE4q79G3X++ZP8AgTirv0bdf75k/wCBOKu/Rt1/vmT/AIE4q79G3X++ZP8AgTirv0bdf75k/wCBOKu/Rt1/vmT/AIE4q79G3X++ZP8AgTirv0bdf75k/wCBOKu/Rt1/vmT/AIE4q79G3X++ZP8AgTirv0bdf75k/wCBOKu/Rt1/vmT/AIE4q79G3X++ZP8AgTirv0bdf75k/wCBOKu/Rt1/vmT/AIE4q79G3X++ZP8AgTirv0bdf75k/wCBOKu/Rt1/vmT/AIE4q79G3X++ZP8AgTirv0bdf75k/wCBOKu/Rt1/vmT/AIE4q79G3X++ZP8AgTirv0bdf75k/wCBOKu/Rt1/vmT/AIE4q79G3X++ZP8AgTirv0bdf75k/wCBOKu/Rt1/vmT/AIE4qsltJoRyljZV8SKb4qo4q3irLfJkpa2kjJ2WTb6RirIMVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir/AP/U7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVaxV5o/2j8z+vFWsVR2gml9D/r4qz8HFW64q6uKurirq4q6uKurirq4q6uKurirq4q6uKurirq4q6uKurirq4q6uKurirq4q6uKurirq4q6uKurirq4q6uKurirq4q6uKurirq4q6uKurirq4q6uKurirq4qkPnE/6Gv/GQfqOKsOGKt4qyryUP3U//ABkX9WKsjxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kv//V7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirzN/tH5n9eKtYqjtC/3uh/18VZ+MVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqRecf8AeNf+Mg/UcVYcOmKt4qyryV/cz/8AGRf1YqyPFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq//9buGKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvM3+0fmf14q1iqO0L/e6H/XxVn4xV2KuxVw36Yql15r1naMVkkBYfsr8R/DFUJ/i6yHaT/gf7cVd/i+y/4s/4Ef1xV3+L7L/iz/gR/XFXf4vsv+LP+BH9cVd/i+y/4s/4Ef1xV3+L7L/iz/gR/XFXf4vsv+LP+BH9cVd/i+y/4s/4Ef1xV3+L7L/iz/gR/XFXf4vsv+LP+BH9cVd/i+y/4s/4Ef1xV3+L7L/iz/gR/XFXf4vsv+LP+BH9cVd/i+y/4s/4Ef1xV3+L7L/iz/gR/XFXf4vsv+LP+BH9cVd/i+y/4s/4Ef1xV3+L7L/iz/gR/XFXf4vsv+LP+BH9cVd/i+y/4s/4Ef1xV3+L7L/iz/gR/XFXf4vsv+LP+BH9cVd/i+y/4s/4Ef1xV3+L7L/iz/gR/XFXf4vsv+LP+BH9cVd/i+y/4s/4Ef1xV3+L7L/iz/gR/XFXf4vsv+LP+BH9cVd/i+y/4s/4Ef1xV3+L7L/iz/gR/XFXf4vsv+LP+BH9cVd/i+y/4s/4Ef1xV3+L7L/iz/gR/XFUt8wa9b6hbiGEPyDg/EKbCuKsfGKt4qnXlzWoNOSRZ+VXYEcRXoPniqb/AOL7L/iz/gR/XFXf4vsvCT/gf7cVXR+bbJjQl19yv9Diqa211FdLzgcOPbFVXFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq//1+4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq8zf7R+Z/XirWKo7Qv97of9fFWfjFXYq7FWH675ia4Zra2YrCNmYdWPen+TiqRAU6Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqvt7mW1cSwMUYeH8R3xVnOi6uupRVNFmSgdR/xIe2KpjirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir//0O4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq8zf7R+Z/XirWKo7Qv97of9fFWfjFXYqlnmS8a1smKGjueCnwr1/wCFxVggFP4Yq3irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVR2h3htLyNx9ljwb5NtirPz1pirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir//R7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirzN/tH5n9eKtYqjtC/3uh/18VZ+MVdirHfOjEQwDsZG/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sVdirsVdirsVdirsVS3zDqP1G0ZlP7x/hX5nq3+xGKsDpireKuxV2KuxV2Ktd69D4+GKs+0LUfr9qsjf3q/A/wAx3/2WKphirsVdirsVccVYDr3+903+viqAxVtPtL8x+vFXpgxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV//X7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirzN/tH5n9eKtYqjtC/3uh/18VZ+MVdirHPOv9zB/xkb9WKsVxVpumKsx8m/7xt/xkP6hiqe4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FWJecrgvcRwjoicvvxVj+KuxV2KuxV2KuxV2Ksh8mTH1ZYezKGH0bYqywYq7FXYq7FXHFWA69/vdN/r4qgMVbT7S/MfrxV6YMVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf//Q7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirzN/tH5n9eKtYqjtC/3uh/18VZ+MVdirHPOv9zB/xkb9WKsVxVpumKsx8m/7xt/xkP6hiqe4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq44qwrzcCL817op+6uKpPirsVdirsVdirsVdiqd+UP97Sewjav4YqzIYq7FXYq7FXHFWA69/vdN/r4qgMVbT7S/MfrxV6YMVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf//R7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirzN/tH5n9eKtYqjtC/3uh/18VZ+MVdirHPOv9zB/xkb9WKsVxVpumKsx8m/7xt/xkP6hiqe4q7FXYq7FXYq7FXYq7FXYq7FXYqsmmSFfUlIVQQKn3xVdXemKt4q7FXYq7FXYq7FXYq7FXYq7FXYqxbzrbHnFcDoQUJ+W64qxvFXYq7FXYq7FXYq7FWTeS7U/vbk9NkH62xVk9KbYq7FXYq7FXHFWA69/vdN/r4qgMVbT7S/MfrxV6YMVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/S7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirzN/tH5n9eKtYqjtC/3uh/18VZ+MVdirHPOv9zB/xkb9WKsVxVpumKsx8m/7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nh+0vaux8a4qz/T76O+hWeLodiO4PcYqiMVdirsVdirsVdirsVdirsVdirsVdirsVS7Wdai01KP8Ux+yn8W/ycVYRd3kt5IZpzyc/cPliqlirKvJX9zP/wAZF/VirI8VccVYDr3+903+viqAxVtPtL8x+vFXpgxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV//S7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirzN/tH5n9eKtYqjtC/3uh/18VZ+MVdirHPOv9zB/xkb9WKsVxVpumKsx8m/7xt/xkP6hiqe4q7FXYq7FXYq7FUq8xamLK2IU0mkqq+w/afFWDYq3irsVdirsVdirsVdirsVdirsVR+jaq2mzcxvE2zj2/m/2OKs7SZZVWSM8kcVB8cVX4q7FXYq7FXYq7FXYq7FXYq7FXYqk2u+YksAYIKNc/gvz/wAr/JxVhskryuZJCWdtyTiq3FXYqyryV/cz/wDGRf1YqyPFXHFWA69/vdN/r4qgMVbT7S/MfrxV6YMVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/T7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV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sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir//X7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirzN/tH5n9eKtYqjtC/3uh/18VZ+MVdirHPOv9zB/xkb9WKsVxVpumKsx8m/7xt/xkP6hiqe4q7FXYqgNa1EadbtMPtt8Ke5P/NOKsBJJJLGpJrirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVR+jaq+nTch8Ub7Ovt/MP8AKGKsi/xhZeEn3D+uKu/xhZeEn3f24qtl842oUmNHZ+wIoK++KsVu72a9kM1weTdvAey4qpYq7FXYq7FXYq7FXYq7FWVeSv7mf/jIv6sVZHirjirAde/3um/18VQGKtp9pfmP14q9MGKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kv//Q7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirzN/tH5n9eKtYqjtC/3uh/18VZ+MVdirHPOv9zB/xkb9WKsVxVpumKsx8m/7xt/xkP6hiqe4q7FXYqwTX9U+v3BK/wB1HVV9/wCZ/wDZYqluKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KtcRiruIxV1BireKuxV2KuxV2KuxV2KuxV2Ksq8lf3M/wDxkX9WKsjxVxxVgOvf73Tf6+KoDFW0+0vzH68VemDFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX//0e4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq8zf7R+Z/XirWKo7Qv97of9fFWfjFXYqxzzr/cwf8ZG/VirFcVabpirMfJv+8bf8ZD+oYqnuKuxVJPNGqfVoPq8ZpLKCPcL4/TirDKDt0xVvFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FWVeSv7mf/jIv6sVZHirjirAde/3um/18VQGKtp9pfmP14q9MGKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kv//S7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirzN/tH5n9eKtYqjtC/3uh/18VZ+MVdirHPOv9zB/xkb9WKsVxVpumKsx8m/7xt/xkP6hiqe4q4Cppirz3WLl7i8leQ1IYqPYDpiqExV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ksq8lf3M//GRf1YqyPFXHFWA69/vdN/r4qgMVbT7S/MfrxV6YMVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/9PuGKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvM3+0fmf14q1iqO0L/e6H/XxVn4xV2Ksc86/3MH/GRv1YqxXFWm6YqzHyb/vG3/GQ/qGKp7ira9RirzjUf96Zf+MjfrxVQxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ksq8lf3M//GRf1YqyPFXHFWA69/vdN/r4qgMVbT7S/MfrxV6YMVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/9TuGKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvM3+0fmf14q1iqO0L/e6H/XxVn1QMVdyGKsc86n9zB/xkb9WKsWxVpumKsx8m/wC8bf8AGQ/qGKp7ira9RirzjUf96Zf+MjfrOKqGKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVlXkr+5n/4yL+rFWR4q44qwHXv97pv9fFUBirafaX5j9eKvTBirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir//1e4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXd8VeaTIUkZG+0rEH6Diq3FV8MzwuJYjxdTUEYqjf8Q3/APv9vuH9MVd/iHUP9/t9w/piqHu9SubwBbiQyBTUVpscVQ+KtN0xVmPk3/eNv+Mh/UMVT3FW16jFXnGo/wC9Mv8Axkb9ZxVQxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ksq8lf3M//ABkX9WKsjxVxxVgOvf73Tf6+KoDFW0+0vzH68VemDFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/9buGKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KsM81aabe4Nwo/dy717Bv2v+asVSQGuKt4q7FXYq7FXYq03TFWY+Tf942/4yH9QxVPcVbXqMVecaj/AL0y/wDGRv1nFVDFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqyryV/cz/8AGRf1YqyPFXHFWA69/vdN/r4qgMVbT7S/MfrxV6YMVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/1+4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqpXNrHdRtDMOSN1H8RirD9R8rXFqS0AM0Xt9ofMd8VShkZDRgQfcEYq1irsVdirsVabpirMfJv+8bf8ZD+oYqnuKtr1xV5xqP8AvTKP+LG/WcVUMVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirKvJX9zP/AMZF/VirI8VccVYDr3+903+viqAxVtPtL8x+vFXpgxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV/9DuGKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KtEV3O+Ku4D/MYq7iP8xirHPOw/dQf8ZGH4YqxbFWm6YqzHyb/vG3/GQ/qGKp7irsVaIH+YxV3Af5jFXcB/mMVdwH+YxV3Af5jFXcB/mMVdwH+YxV3Af5jFXcB/mMVdwH+YxV3Af5jFXcB/mMVdwH+YxV3Af5jFXcB/mMVdwH+YxV3Af5jFXcB/mMVdwH+YxV3Af5jFXcB/mMVdwH+YxV3Af5jFXcB/mMVdwH+YxV3Af5jFXcB/mMVdwH+YxV3Af5jFXcB/mMVdwH+YxV3Af5jFXcR/mMVb/z2xV2KuOKsB17/e6b/XxVAYq2n2l+Y/Xir0wYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq//0e4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FWOedf7mD/jI36sVYrirTdMVZj5N/3jb/jIf1DFU9xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVxxVgOvf73Tf6+KoDFW0+0vzH68VemDFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/0u4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FWOedf7mDwEjfqxViuKtHocVZN5Z1W1s7Yx3EgRi5NDXpiqbf4jsP8Afy/ccVd/iOw/38v3HFXf4jsP9/L9xxV3+I7D/fy/ccVd/iOw/wB/L9xxV3+I7D/fy/ccVd/iOw/38v3HFXf4jsP9/L9xxV3+I7D/AH8v3HFXf4jsP9/L9xxV3+I7D/fy/ccVd/iOw/38v3HFXf4jsP8Afy/ccVd/iOw/38v3HFXf4jsP9/L9xxV3+I7D/fy/ccVd/iOw/wB/L9xxV3+I7D/fy/ccVd/iOw/38v3HFXf4jsP9/L9xxV3+I7D/AH8v3HFXf4jsP9/L9xxV3+I7D/fy/ccVd/iOw/38v3HFXf4jsP8Afy/ccVd/iOw/38v3HFXf4jsP9/L9xxV3+I7D/fy/ccVd/iOw/wB/L9xxV3+I7D/fy/ccVd/iOw/38v3HFXf4jsP9/L9xxV3+I7D/AH8v3HFXf4jsP9/L9xxV3+I7D/fy/ccVd/iOw/38v3HFXf4jsP8Afy/ccVd/iKw7zKPoOKsP1edJ7uWWI8kZqg+OKoTFW0+0PmP14q9MGKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kv/9PuGKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVJfNtqZrL1F/3Uwb6OhxVhdcVbxVqmKupirqYq6mKupirqYq6mKupirqYq6mKupirqYq6mKupirqYq6mKupirqYq6mKupirqYq6mKupirqYq6mKupirqYq6mKupirqYq6mKupirqYq6mKupirqYq6mKupireKuxV2KojTbY3V1HCBWrD7hucVei98VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/1O4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FVrRq4KMKq2xHtirA9Z0iTTZOJ+KFjVG+f7LeDYql+Kt4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXfLcnwxVmPlrRTZqbicUlcUA/lX/AJqbFU8xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV//1e4Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqsmhSZDHKodG6qehxVIbryZC/wAVu5jr+ydwPp+1iqEPkuftKn3HFXf4Kn/37H9xxV3+Cp/9+x/ccVd/gqf/AH7H9xxV3+Cp/wDfsf3HFXf4Kn/37H9xxV3+Cp/9+x/ccVd/gqf/AH7H9xxV3+Cp/wDfsf3HFXf4Kn/37H9xxV3+Cp/9+x/ccVd/gqf/AH7H9xxV3+Cp/wDfsf3HFXf4Kn/37H9xxV3+Cp/9+x/ccVd/gqf/AH7H9xxV3+Cp/wDfsf3HFXf4Kn/37H9xxV3+Cp/9+x/ccVd/gqf/AH7H9xxV3+Cp/wDfsf3HFXf4Kn/37H9xxV3+Cp/9+x/ccVd/gqf/AH7H9xxV3+Cp/wDfsf3HFXf4Kn/37H9xxV3+Cp/9+x/ccVd/gqf/AH7H9xxV3+Cp/wDfsf3HFXf4Kn/37H9xxV3+Cp/9+x/ccVd/gqf/AH7H9xxV3+Cp/wDfsf3HFXf4Kn/37H9xxV3+Cp/9+x/ccVd/gqf/AH7H9xxV3+Cp/wDfsf3HFXf4Kn/37H9xxVr/AAVcf79T7jiq6PyVJX95MtPZTX8cVTjTfL9tYEOg5yD9tuv+xH7OKpnirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf//W7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/X7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/Q7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/R7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/S7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/T7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/U7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/V7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/W7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/X7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/Q7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/R7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/S7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/T7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/U7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/V7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/W7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/X7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/Q7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/R7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/S7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/T7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/U7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/V7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/W7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/X7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/Q7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/R7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/S7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/T7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/U7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/V7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/W7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/X7hirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/Z\"","<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { DamAssetStatus, DamAssetType } from '@/types/coreDam/Asset'\nimport placeholder16x9 from '@/assets/image/placeholder16x9.jpg'\nimport { isUndefined } from '@/lib'\n\nconst props = withDefaults(\n defineProps<{\n src?: string\n assetType?: DamAssetType\n assetStatus?: DamAssetStatus\n backgroundColor?: string\n width?: number\n height?: number\n fallbackHeight?: number\n iconSize?: number\n iconColor?: string\n }>(),\n {\n assetType: DamAssetType.Image,\n assetStatus: DamAssetStatus.WithFile,\n src: undefined,\n backgroundColor: '#ccc',\n width: undefined,\n height: undefined,\n fallbackHeight: 200,\n iconSize: 80,\n iconColor: '#505050',\n }\n)\nconst emit = defineEmits<{\n (e: 'error'): void\n}>()\n\nconst onError = () => {\n emit('error')\n}\n\nconst icon = computed(() => {\n if (props.assetStatus === DamAssetStatus.Deleting) return 'mdi-trash-can'\n switch (props.assetType) {\n case DamAssetType.Audio:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-music' : 'mdi-music-off'\n case DamAssetType.Document:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-note' : 'mdi-note-off'\n case DamAssetType.Video:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-video' : 'mdi-video-off'\n case DamAssetType.Image:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-image' : 'mdi-image-off'\n default:\n return ''\n }\n})\n\nconst srcComputed = computed(() => {\n return isUndefined(props.src) ? placeholder16x9 : props.src\n})\n\nconst showIconComputed = computed(() => {\n if (props.assetType === DamAssetType.Image && props.src) return false\n return true\n})\n</script>\n\n<template>\n <div\n v-if=\"assetStatus === DamAssetStatus.WithFile && src\"\n class=\"anzu-common-asset-image anzu-common-asset-image--img position-relative\"\n :style=\"{ width: width + 'px' }\"\n >\n <img\n :src=\"srcComputed\"\n :width=\"width\"\n :height=\"height\"\n alt=\"\"\n :style=\"'background-color:' + backgroundColor\"\n @onerror=\"onError\"\n >\n <div\n v-if=\"showIconComputed\"\n class=\"anzu-common-asset-image__icon-wrapper\"\n >\n <div\n class=\"anzu-common-asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n class=\"anzu-common-asset-image__icon\"\n />\n </div>\n </div>\n </div>\n <div\n v-else\n :style=\"{ height: fallbackHeight + 'px', backgroundColor: backgroundColor }\"\n style=\"width: 100%\"\n class=\"asset-image asset-image--placeholder d-flex align-center justify-center\"\n >\n <div\n v-if=\"showIconComputed\"\n class=\"asset-image__icon-wrapper\"\n >\n <div\n class=\"asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n class=\"asset-image__icon\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.anzu-common-asset-image {\n position: relative;\n\n &__icon-wrapper {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n &__icon-circle {\n border-radius: 100%;\n background-color: rgba(204 204 204 / 50%);\n }\n}\n</style>\n","export const prettyBytes = (bytes: number, decimals = 2) => {\n if (bytes === 0) {\n return '0 Bytes'\n }\n\n const k = 1024\n const dm = decimals < 0 ? 0 : decimals\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\n const i = Math.floor(Math.log(bytes) / Math.log(k))\n\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i]\n}\n","<script lang=\"ts\" setup>\nimport type { AssetSelectListItem } from '@/services/stores/coreDam/assetSelectStore'\nimport { useI18n } from 'vue-i18n'\nimport { useAssetItemActions } from '@/components/dam/assetSelect/composables/assetSelectItemActions'\nimport AssetImagePreview from '@/components/dam/assetSelect/components/AssetImagePreview.vue'\nimport type { DocId } from '@/types/common'\nimport { prettyBytes } from '@/utils/file'\nimport ADatetime from '@/components/ADatetime.vue'\n\nconst { t } = useI18n()\n\nconst IMAGE_HEIGHT = 72\nconst IMAGE_WIDTH = 128\n\nconst props = withDefaults(\n defineProps<{\n index: number\n item: AssetSelectListItem\n showMetaIcons?: boolean\n }>(),\n {\n showMetaIcons: false,\n }\n)\n\nconst { asset, tableImageProperties, assetType, assetStatus } = useAssetItemActions(props.item)\n\nconst emit = defineEmits<{\n (e: 'itemClick', data: { assetId: DocId; index: number }): void\n}>()\n\nconst onItemClick = () => {\n emit('itemClick', { assetId: asset.value.id, index: props.index })\n}\n</script>\n\n<template>\n <tr\n class=\"a-datatable__row\"\n :class=\"{ 'a-datatable__row--selected': item.selected }\"\n @click.stop.exact=\"onItemClick\"\n >\n <td>\n <VIcon\n v-if=\"item.selected\"\n icon=\"mdi-checkbox-outline\"\n :size=\"20\"\n />\n <VIcon\n v-else\n icon=\"mdi-checkbox-blank-outline\"\n :size=\"20\"\n />\n </td>\n <td>\n <AssetImagePreview\n :asset-type=\"assetType\"\n :asset-status=\"assetStatus\"\n :src=\"tableImageProperties.url\"\n :background-color=\"tableImageProperties.bgColor\"\n :width=\"IMAGE_WIDTH\"\n :height=\"IMAGE_HEIGHT\"\n :icon-size=\"20\"\n :fallback-height=\"IMAGE_HEIGHT\"\n />\n </td>\n <td>\n {{ asset.texts.displayTitle || t('commonCoreDam.asset.list.noTitle') }}\n </td>\n <td>\n <ADatetime :date-time=\"asset.createdAt\" />\n </td>\n <td>\n {{ asset.mainFile?.fileAttributes.mimeType }}\n </td>\n <td>\n {{ prettyBytes(asset.mainFile?.fileAttributes.size || 0) }}\n </td>\n </tr>\n</template>\n","<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport AssetSelectTableRowItem from '@/components/dam/assetSelect/components/AssetSelectTableRowItem.vue'\nimport { useAssetListActions } from '@/components/dam/assetSelect/composables/assetSelectListActions'\n\nconst { t } = useI18n()\n\nconst { onItemClick, assetListItems, loader } = useAssetListActions()\n</script>\n\n<template>\n <VTable\n class=\"a-datatable a-datatable--dialog-sticky-fix\"\n fixed-header\n >\n <thead>\n <tr>\n <th class=\"text-left\" />\n <th class=\"text-left\">\n {{ t('common.assetSelect.meta.table.image') }}\n </th>\n <th class=\"text-left\">\n {{ t('common.assetSelect.model.texts.displayTitle') }}\n </th>\n <th class=\"text-left\">\n {{ t('common.model.tracking.created') }}\n </th>\n <th class=\"text-left\">\n {{ t('common.assetSelect.model.mainFile.fileAttributes.mimeType') }}\n </th>\n <th class=\"text-left\">\n {{ t('common.assetSelect.model.mainFile.fileAttributes.size') }}\n </th>\n </tr>\n </thead>\n <tbody>\n <AssetSelectTableRowItem\n v-for=\"(item, index) in assetListItems\"\n :key=\"item.asset.id\"\n :index=\"index\"\n :item=\"item\"\n @item-click=\"onItemClick\"\n />\n <tr v-if=\"!loader && assetListItems.length === 0\">\n <td\n colspan=\"6\"\n class=\"text-center\"\n >\n {{ t('common.assetSelect.meta.texts.noItemsFound') }}\n </td>\n </tr>\n </tbody>\n </VTable>\n</template>\n","import { readonly, ref } from 'vue'\n\nexport enum AssetSelectGridView {\n Masonry = 'masonry',\n Thumbnail = 'thumbnail',\n Table = 'table',\n Default = Masonry,\n}\n\nconst gridView = ref<AssetSelectGridView>(AssetSelectGridView.Default)\n\nexport function useGridView() {\n const setGridView = (value: AssetSelectGridView) => {\n gridView.value = value\n }\n\n return {\n gridView: readonly(gridView),\n setGridView,\n }\n}\n","import { ref } from 'vue'\n\nconst sidebarLeft = ref(false)\n\nexport function useSidebar() {\n const toggleSidebar = () => {\n sidebarLeft.value ? closeSidebar() : openSidebar()\n }\n\n const openSidebar = () => {\n sidebarLeft.value = true\n }\n\n const closeSidebar = () => {\n sidebarLeft.value = false\n }\n\n return {\n sidebarLeft,\n toggleSidebar,\n openSidebar,\n }\n}\n","<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { AssetSelectGridView, useGridView } from '@/components/dam/assetSelect/composables/assetSelectGridView'\nimport { useSidebar } from '@/components/dam/assetSelect/composables/assetSelectFilterSidebar'\n\nconst { t } = useI18n()\nconst { setGridView } = useGridView()\nconst { toggleSidebar } = useSidebar()\n</script>\n\n<template>\n <VToolbar\n density=\"compact\"\n color=\"transparent\"\n :height=\"46\"\n elevation=\"0\"\n class=\"system-border-b subject-select__second-bar\"\n >\n <slot name=\"second-bar\">\n <div class=\"d-flex flex-column w-100 px-1 align-center\">\n <div class=\"d-flex justify-space-between w-100 align-center\">\n <div class=\"d-flex align-center\">\n <VBtn\n icon\n :width=\"30\"\n :height=\"30\"\n @click=\"toggleSidebar\"\n >\n <VIcon\n icon=\"mdi-tune\"\n :size=\"16\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.meta.filter.toggle') }}\n </VTooltip>\n </VBtn>\n <slot name=\"second-bar-left\" />\n </div>\n <div class=\"d-flex align-center\">\n <slot name=\"second-bar-right\" />\n <VBtn\n size=\"x-small\"\n icon\n variant=\"text\"\n @click.stop=\"setGridView(AssetSelectGridView.Masonry)\"\n >\n <VIcon icon=\"mdi-view-compact\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.meta.grid.masonry') }}\n </VTooltip>\n </VBtn>\n <VBtn\n icon\n size=\"x-small\"\n variant=\"text\"\n @click.stop=\"setGridView(AssetSelectGridView.Thumbnail)\"\n >\n <VIcon icon=\"mdi-view-grid\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.meta.grid.thumbnail') }}\n </VTooltip>\n </VBtn>\n <VBtn\n size=\"x-small\"\n icon\n variant=\"text\"\n @click.stop=\"setGridView(AssetSelectGridView.Table)\"\n >\n <VIcon icon=\"mdi-view-headline\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.assetSelect.meta.grid.table') }}\n </VTooltip>\n </VBtn>\n </div>\n </div>\n </div>\n </slot>\n </VToolbar>\n</template>\n","<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport type { AssetSelectListItem } from '@/services/stores/coreDam/assetSelectStore'\nimport { useAssetItemActions } from '@/components/dam/assetSelect/composables/assetSelectItemActions'\nimport AssetImagePreview from '@/components/dam/assetSelect/components/AssetImagePreview.vue'\nimport type { DocId } from '@/types/common'\n\nconst { t } = useI18n()\n\nconst IMAGE_HEIGHT = 200\n\nconst props = withDefaults(\n defineProps<{\n index: number\n item: AssetSelectListItem\n showMetaIcons?: boolean\n }>(),\n {\n showMetaIcons: false,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'itemClick', data: { assetId: DocId; index: number }): void\n}>()\n\nconst onItemClick = () => {\n emit('itemClick', { assetId: asset.value.id, index: props.index })\n}\n\nconst { asset, assetType, assetStatus, imageProperties } = useAssetItemActions(props.item)\n</script>\n\n<template>\n <div\n class=\"asset-list-tiles__item\"\n :class=\"{ 'asset-list-tiles__item--selected': item.selected }\"\n @click.stop.exact=\"onItemClick\"\n >\n <div class=\"asset-list-tiles__item-card\">\n <div\n v-if=\"item.selected\"\n class=\"asset-list-tiles__selected-triangle\"\n >\n <div class=\"asset-list-tiles__selected-triangle__bg\" />\n <VIcon\n class=\"asset-list-tiles__selected-triangle__icon\"\n icon=\"mdi-check\"\n color=\"white\"\n size=\"x-small\"\n />\n </div>\n <AssetImagePreview\n :asset-type=\"assetType\"\n :asset-status=\"assetStatus\"\n :src=\"imageProperties.url\"\n :background-color=\"imageProperties.bgColor\"\n :width=\"imageProperties.width\"\n :height=\"imageProperties.height\"\n :fallback-height=\"IMAGE_HEIGHT\"\n :asset-file-properties=\"item.asset.assetFileProperties\"\n :show-meta-icons=\"showMetaIcons\"\n />\n <div class=\"asset-list-tiles__item-text text-caption px-2 py-1\">\n <div class=\"d-flex align-center justify-space-between position-relative\">\n <div class=\"line-clamp-1\">\n {{ asset.texts.displayTitle || t('commonCoreDam.asset.list.noTitle') }}\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport AssetSelectTilesItem from '@/components/dam/assetSelect/components/AssetSelectTilesItem.vue'\nimport { useGridView } from '@/components/dam/assetSelect/composables/assetSelectGridView'\nimport { useAssetListActions } from '@/components/dam/assetSelect/composables/assetSelectListActions'\nimport { useI18n } from 'vue-i18n'\n\nconst { gridView } = useGridView()\nconst { onItemClick, assetListItems, loader } = useAssetListActions()\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <div\n class=\"asset-list-tiles\"\n :class=\"'asset-list-tiles--' + gridView\"\n >\n <AssetSelectTilesItem\n v-for=\"(item, index) in assetListItems\"\n :key=\"item.asset.id\"\n :index=\"index\"\n :item=\"item\"\n @item-click=\"onItemClick\"\n />\n </div>\n <div\n v-if=\"!loader && assetListItems.length === 0\"\n class=\"text-h6 text-medium-emphasis d-flex w-100 h-100 align-center justify-center\"\n >\n {{ t('common.assetSelect.meta.texts.noItemsFound') }}\n </div>\n</template>\n\n<style lang=\"scss\">\n// css similar to '.dam-image-grid' in admin-dam, for now renamed here to new class to avoid conflicts\n// consider refactor later according how much different both versions will be\n\n$class-name-root: 'asset-list-tiles';\n$bg-color-light: #f9f9f9;\n$bg-color-dark: #1e1e1e;\n$border-color-light: #e8e9ea;\n$border-color-dark: #2c2c2c;\n$shadow-color-light: #959595;\n$shadow-color-dark: #3d3d3d;\n$bg-color-actions-light: #fff;\n$bg-color-actions-dark: #1a1a1a;\n\n.#{$class-name-root} {\n display: flex;\n flex-wrap: wrap;\n max-width: 100%;\n padding: 2px;\n\n &__item {\n cursor: pointer;\n user-select: none;\n flex-grow: 2;\n max-width: 800px;\n padding: 10px;\n position: relative;\n overflow: hidden;\n min-width: 200px;\n\n &-card {\n border-radius: 5px;\n overflow: hidden;\n\n img:not(.img-svg) {\n display: block;\n height: 200px;\n min-width: 100%;\n object-fit: cover;\n width: 100%;\n }\n\n &:hover {\n .#{$class-name-root}__item-card-actions {\n display: block;\n }\n }\n\n &-actions {\n border-radius: 4px;\n position: absolute;\n top: -2px;\n right: -5px;\n display: none;\n overflow: hidden;\n }\n }\n\n &-text,\n &-text .line-clamp-1 {\n font-weight: 500;\n line-height: 30px;\n min-height: 38px;\n max-height: 38px;\n }\n }\n\n &--thumbnail {\n display: grid;\n grid-template-columns: repeat(6, auto);\n\n .#{$class-name-root}__item {\n img:not(.img-svg) {\n object-fit: contain;\n padding-left: 6px;\n padding-right: 6px;\n padding-top: 6px;\n background-color: transparent !important;\n }\n }\n }\n\n .#{$class-name-root}__selected-triangle {\n position: absolute;\n top: 11px;\n right: 11px;\n z-index: 1;\n\n &__bg {\n content: '';\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 0 30px 30px 0;\n border-color: transparent #608a32 transparent transparent;\n top: 0;\n right: 0;\n position: absolute;\n }\n\n &__icon {\n position: absolute;\n display: block;\n width: 16px;\n height: 16px;\n top: -3px;\n right: 0;\n }\n }\n}\n\n.v-theme--light {\n .#{$class-name-root} {\n &__item {\n &-card {\n background-color: $bg-color-light;\n border: 1px solid $border-color-light;\n\n &:hover {\n box-shadow: 0 0 3px 1px $shadow-color-light;\n }\n\n &-actions {\n background-color: $bg-color-actions-light;\n }\n }\n\n &--selected {\n .#{$class-name-root}__item-card {\n border-color: #608a32;\n }\n }\n\n &--active {\n .#{$class-name-root}__item-card {\n border-color: blue;\n }\n }\n }\n }\n}\n\n.v-theme--dark {\n .#{$class-name-root} {\n &__item {\n &-card {\n background-color: $bg-color-dark;\n border: 1px solid $border-color-dark;\n\n &:hover {\n box-shadow: 0 0 3px 1px $shadow-color-dark;\n }\n\n &-actions {\n background-color: $bg-color-actions-dark;\n }\n }\n\n &--selected {\n .#{$class-name-root}__item-card {\n border-color: #608a32;\n }\n }\n\n &--active {\n .#{$class-name-root}__item-card {\n border-color: blue;\n }\n }\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { useAssetListActions } from '@/components/dam/assetSelect/composables/assetSelectListActions'\nimport AFilterString from '@/components/filter/AFilterString.vue'\nimport AFilterBooleanSelect from '@/components/filter/AFilterBooleanSelect.vue'\n\nconst { filter, filterTouch, filterUnTouch, fetchAssetList } = useAssetListActions()\n\nconst onAnyFilterUpdate = () => {\n filterTouch()\n}\n\nconst submitFilter = () => {\n filterUnTouch()\n fetchAssetList()\n}\n</script>\n\n<template>\n <VRow>\n <VCol :cols=\"12\">\n <AFilterString\n v-model=\"filter.text\"\n @update:model-value=\"onAnyFilterUpdate\"\n @keydown.enter=\"submitFilter\"\n />\n </VCol>\n </VRow>\n <VRow>\n <VCol :cols=\"12\">\n <AFilterBooleanSelect\n v-model=\"filter.described\"\n @update:model-value=\"onAnyFilterUpdate\"\n />\n </VCol>\n </VRow>\n <VRow>\n <VCol :cols=\"12\">\n <AFilterBooleanSelect\n v-model=\"filter.visible\"\n @update:model-value=\"onAnyFilterUpdate\"\n />\n </VCol>\n </VRow>\n <VRow>\n <VCol>\n <AFilterBooleanSelect\n v-model=\"filter.generatedBySystem\"\n @update:model-value=\"onAnyFilterUpdate\"\n />\n </VCol>\n </VRow>\n</template>\n","<script lang=\"ts\" setup>\nimport { useAssetListActions } from '@/components/dam/assetSelect/composables/assetSelectListActions'\nimport AFilterString from '@/components/filter/AFilterString.vue'\n\nconst { filter, fetchAssetList, filterTouch, filterUnTouch } = useAssetListActions()\n\nconst submitFilter = () => {\n filterUnTouch()\n fetchAssetList()\n}\n\nconst onAnyFilterUpdate = () => {\n filterTouch()\n}\n</script>\n\n<template>\n <VRow>\n <VCol :cols=\"12\">\n <AFilterString\n v-model=\"filter.text\"\n @update:model-value=\"onAnyFilterUpdate\"\n @keydown.enter=\"submitFilter\"\n />\n </VCol>\n </VRow>\n</template>\n","<script lang=\"ts\" setup>\nimport { useI18n } from 'vue-i18n'\nimport { useAssetListActions } from '@/components/dam/assetSelect/composables/assetSelectListActions'\nimport { computed } from 'vue'\nimport { useAssetSelectStore } from '@/services/stores/coreDam/assetSelectStore'\nimport { DamAssetType as AssetTypeValue } from '@/types/coreDam/Asset'\nimport AssetSelectFilterFormImage from '@/components/dam/assetSelect/components/filter/AssetSelectFilterFormImage.vue'\nimport AssetSelectFilterFormDefault from '@/components/dam/assetSelect/components/filter/AssetSelectFilterFormDefault.vue'\n\nconst { t } = useI18n()\nconst { fetchAssetList, resetAssetList, filterUnTouch, filterIsTouched } = useAssetListActions()\n\nconst assetListStore = useAssetSelectStore()\n\nconst submitFilter = () => {\n filterUnTouch()\n fetchAssetList()\n}\n\nconst resetFilter = () => {\n resetAssetList()\n filterUnTouch()\n}\n\nconst componentComputed = computed(() => {\n switch (assetListStore.assetType) {\n case AssetTypeValue.Image:\n return AssetSelectFilterFormImage\n default:\n return AssetSelectFilterFormDefault\n }\n})\n</script>\n\n<template>\n <div class=\"subject-select-filter\">\n <div class=\"subject-select-filter__content\">\n <VForm\n name=\"search2\"\n class=\"px-2 pt-4\"\n @submit.prevent=\"submitFilter\"\n >\n <Component :is=\"componentComputed\" />\n </VForm>\n </div>\n <div class=\"subject-select-filter__actions\">\n <VBtn\n color=\"primary\"\n class=\"mx-2\"\n :variant=\"filterIsTouched ? 'flat' : 'text'\"\n size=\"small\"\n @click.stop=\"submitFilter\"\n >\n {{ t('common.button.submitFilter') }}\n </VBtn>\n <VBtn\n class=\"px-2\"\n color=\"light\"\n min-width=\"36px\"\n variant=\"flat\"\n size=\"small\"\n @click.stop=\"resetFilter\"\n >\n <VIcon icon=\"mdi-filter-remove-outline\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.button.resetFilter') }}\n </VTooltip>\n </VBtn>\n </div>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { computed, inject, ref, withModifiers } from 'vue'\nimport ADialogToolbar from '@/components/ADialogToolbar.vue'\nimport { useI18n } from 'vue-i18n'\nimport type { DamAssetType, DamAssetTypeValues } from '@/types/coreDam/Asset'\nimport { damAssetTypeValueToEnum } from '@/types/coreDam/Asset'\nimport { useAssetListActions } from '@/components/dam/assetSelect/composables/assetSelectListActions'\nimport AssetSelectListTable from '@/components/dam/assetSelect/components/AssetSelectListTable.vue'\nimport AssetSelectListBar from '@/components/dam/assetSelect/components/AssetSelectListBar.vue'\nimport { AssetSelectGridView, useGridView } from '@/components/dam/assetSelect/composables/assetSelectGridView'\nimport AssetSelectListTiles from '@/components/dam/assetSelect/components/AssetSelectListTiles.vue'\nimport { useSidebar } from '@/components/dam/assetSelect/composables/assetSelectFilterSidebar'\nimport AssetSelectFilter from '@/components/dam/assetSelect/components/filter/AssetSelectFilter.vue'\nimport { DefaultLicenceIdSymbol } from '@/AnzuSystemsCommonAdmin'\nimport { isUndefined } from '@/utils/common'\nimport type {\n AssetSelectReturnData,\n AssetSelectReturnType,\n AssetSelectReturnTypeValues,\n} from '@/types/coreDam/AssetSelect'\nimport { assetSelectReturnTypeValuesToEnum } from '@/types/coreDam/AssetSelect'\n\nconst { t } = useI18n()\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: boolean | undefined\n assetType: DamAssetType | DamAssetTypeValues\n minCount: number\n maxCount: number\n assetLicenceId?: number\n returnType?: AssetSelectReturnType | AssetSelectReturnTypeValues\n }>(),\n {\n modelValue: undefined,\n assetLicenceId: undefined,\n returnType: 'mainFileId',\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: boolean): void\n (e: 'onConfirm', data: AssetSelectReturnData): void\n}>()\n\nconst dialogLocal = ref(false)\nconst dialog = computed({\n get() {\n if (isUndefined(props.modelValue)) return dialogLocal.value\n return props.modelValue\n },\n set(newValue: boolean) {\n dialogLocal.value = newValue\n emit('update:modelValue', newValue)\n },\n})\n\nconst { selectedCount, loader, pagination, fetchNextPage, resetAssetList, getSelectedData, initStoreContext } =\n useAssetListActions()\n\nconst { openSidebar, sidebarLeft } = useSidebar()\n\nconst defaultLicenceId = inject<number | undefined>(DefaultLicenceIdSymbol, undefined)\n\nconst onOpen = () => {\n const licenceId = props.assetLicenceId || defaultLicenceId\n if (isUndefined(licenceId)) {\n throw new Error('LicenceId must be provided. Provide using props or common-admin configuration.')\n }\n\n initStoreContext(\n licenceId,\n damAssetTypeValueToEnum(props.assetType),\n 1 === props.minCount && props.minCount === props.maxCount,\n props.minCount,\n props.maxCount\n )\n resetAssetList()\n openSidebar()\n dialog.value = true\n}\n\nconst onClose = () => {\n dialog.value = false\n}\n\nconst onConfirm = () => {\n emit('onConfirm', getSelectedData(assetSelectReturnTypeValuesToEnum(props.returnType)))\n onClose()\n}\n\nconst autoloadOnIntersect = (isIntersecting: boolean) => {\n if (isIntersecting && pagination.hasNextPage === true) {\n fetchNextPage()\n }\n}\n\nconst { gridView } = useGridView()\n\nconst componentComputed = computed(() => {\n switch (gridView.value) {\n case AssetSelectGridView.Table:\n return AssetSelectListTable\n default:\n case AssetSelectGridView.Masonry:\n case AssetSelectGridView.Thumbnail:\n return AssetSelectListTiles\n }\n})\n\nconst disabledSubmit = computed(() => {\n return selectedCount.value < props.minCount || selectedCount.value > props.maxCount\n})\n\ndefineExpose({\n open: onOpen,\n})\n</script>\n\n<template>\n <slot\n name=\"activator\"\n :props=\"{ onClick: withModifiers(() => onOpen(), ['stop']) }\"\n />\n <VDialog\n :model-value=\"dialog\"\n fullscreen\n class=\"subject-select\"\n @update:model-value=\"emit('update:modelValue', $event)\"\n >\n <VCard\n v-if=\"dialog\"\n class=\"subject-select__card\"\n >\n <ADialogToolbar\n class=\"subject-select__toolbar system-border-b\"\n @on-cancel=\"onClose\"\n >\n <slot name=\"title\">\n {{ t('common.assetSelect.meta.texts.title') }}\n </slot>\n </ADialogToolbar>\n <AssetSelectListBar />\n <div\n class=\"subject-select__main\"\n :class=\"{ 'subject-select__main--sidebar-active': sidebarLeft }\"\n >\n <div class=\"subject-select__sidebar system-border-r\">\n <AssetSelectFilter />\n </div>\n <div class=\"subject-select__content\">\n <component :is=\"componentComputed\" />\n <div class=\"d-flex w-100 align-center justify-center pa-4\">\n <ABtnSecondary\n v-show=\"pagination.hasNextPage || loader\"\n v-intersect=\"autoloadOnIntersect\"\n :loading=\"loader\"\n size=\"small\"\n @click=\"fetchNextPage\"\n >\n <slot name=\"button-confirm-title\">\n {{ t('common.assetSelect.meta.controls.loadMore') }}\n </slot>\n </ABtnSecondary>\n </div>\n </div>\n </div>\n <div class=\"subject-select__actions system-border-t\">\n <div v-if=\"props.minCount === props.maxCount\">\n {{ t('common.assetSelect.meta.texts.pickExactCount', { count: props.minCount, selected: selectedCount }) }}\n </div>\n <div v-else>\n {{\n t('common.assetSelect.meta.texts.pickRangeCount', {\n minCount: props.minCount,\n maxCount: props.maxCount,\n selected: selectedCount,\n })\n }}\n </div>\n <VSpacer />\n <ABtnPrimary\n :disabled=\"disabledSubmit\"\n @click.stop=\"onConfirm\"\n >\n <slot name=\"button-confirm-title\">\n {{ t('common.assetSelect.meta.controls.confirm') }}\n </slot>\n </ABtnPrimary>\n </div>\n </VCard>\n </VDialog>\n</template>\n","export const booleanToInteger = (value: boolean) => {\n return value ? 1 : 0\n}\n","import { dateTimeNow } from '@/utils/datetime'\nimport { isString } from '@/utils/common'\nimport type { AnzuUser } from '@/types/AnzuUser'\n\nexport function useAnzuUserFactory(system = '', resourceName = 'user') {\n let _system = system\n let _resourceName = resourceName\n const createAnzuUser = (system?: string, resourceName?: string): AnzuUser => {\n if (isString(system)) _system = system\n if (isString(resourceName)) _resourceName = resourceName\n\n return {\n id: 0,\n createdAt: dateTimeNow(),\n createdBy: 0,\n email: '',\n avatar: {\n color: '',\n text: '',\n },\n person: {\n firstName: '',\n fullName: '',\n lastName: '',\n },\n enabled: false,\n modifiedAt: dateTimeNow(),\n modifiedBy: 0,\n permissionGroups: [],\n permissions: {},\n resolvedPermissions: {},\n roles: [],\n _system: _system,\n _resourceName: _resourceName,\n }\n }\n\n return {\n createAnzuUser,\n }\n}\n","import type { PermissionConfig } from '@/types/PermissionConfig'\n\nexport function usePermissionConfigFactory() {\n const createPermissionConfig = (): PermissionConfig => {\n return {\n config: {},\n defaultGrants: [],\n roles: [],\n translation: {\n actions: {},\n subjects: {},\n roles: {},\n },\n }\n }\n\n return {\n createPermissionConfig,\n }\n}\n","import { dateTimeNow } from '@/utils/datetime'\nimport type { PermissionGroup } from '@/types/PermissionGroup'\n\nexport function usePermissionGroupFactory() {\n const createPermissionGroup = (): PermissionGroup => {\n return {\n id: 0,\n title: '',\n description: '',\n permissions: {},\n createdBy: 0,\n modifiedBy: 0,\n createdAt: dateTimeNow(),\n modifiedAt: dateTimeNow(),\n _resourceName: 'permissionGroup',\n _system: '',\n }\n }\n\n return {\n createPermissionGroup,\n }\n}\n","import { HTTP_STATUS_VALID_ALL } from '@/composables/statusCodes'\n\nexport const isValidHTTPStatus = (statusCode: number) => {\n return HTTP_STATUS_VALID_ALL.includes(statusCode)\n}\n","import { stringUrlTemplateReplace } from '@/utils/string'\nimport { isEmptyObject } from '@/utils/common'\n\nexport type UrlParams = {\n [key: string]: number | string\n}\n\nexport const replaceUrlParameters = (urlTemplate: string, urlParams: UrlParams, overrideUrlTemplate = '') => {\n if (isEmptyObject(urlParams)) return urlTemplate\n return stringUrlTemplateReplace(overrideUrlTemplate === '' ? urlTemplate : overrideUrlTemplate, urlParams)\n}\n","import { AnzuApiResponseCodeError } from '@/model/error/AnzuApiResponseCodeError'\nimport { AnzuApiValidationError, axiosErrorResponseHasValidationData } from '@/model/error/AnzuApiValidationError'\nimport { replaceUrlParameters, type UrlParams } from '@/services/api/apiHelper'\nimport { isNull } from '@/utils/common'\nimport { isValidHTTPStatus } from '@/utils/response'\nimport type { AxiosInstance, AxiosRequestConfig, Method } from 'axios'\nimport { AnzuFatalError } from '@/model/error/AnzuFatalError'\nimport { AnzuApiForbiddenError, axiosErrorResponseIsForbidden } from '@/model/error/AnzuApiForbiddenError'\nimport {\n AnzuApiForbiddenOperationError,\n axiosErrorResponseHasForbiddenOperationData,\n} from '@/model/error/AnzuApiForbiddenOperationError'\nimport { HTTP_STATUS_NO_CONTENT } from '@/composables/statusCodes'\n\n/**\n * @template T Type used for request payload, by default same as Response type\n * @template R Response type override, optional\n */\nexport const apiAnyRequest = <T, R = T>(\n client: () => AxiosInstance,\n method: Method,\n urlTemplate = '',\n urlParams: UrlParams = {},\n object: T | null = null,\n system: string,\n entity: string,\n options: AxiosRequestConfig = {}\n): Promise<R> => {\n return new Promise((resolve, reject) => {\n const axiosConfig: AxiosRequestConfig = { method: method }\n if (urlTemplate !== '') {\n axiosConfig.url = replaceUrlParameters(urlTemplate, urlParams)\n }\n if (!isNull(object)) {\n axiosConfig.data = JSON.stringify(object)\n }\n client()\n .request({ ...options, ...axiosConfig })\n .then((res) => {\n if (!isValidHTTPStatus(res.status)) {\n return reject(new AnzuApiResponseCodeError(res.status))\n }\n if (res.data) {\n return resolve(res.data)\n }\n if (res.status === HTTP_STATUS_NO_CONTENT) {\n return resolve(null as R)\n }\n return reject(new AnzuFatalError())\n })\n .catch((err) => {\n if (axiosErrorResponseIsForbidden(err)) {\n return reject(new AnzuApiForbiddenError(err))\n }\n if (axiosErrorResponseHasValidationData(err)) {\n return reject(new AnzuApiValidationError(err, system, entity, err))\n }\n if (axiosErrorResponseHasForbiddenOperationData(err)) {\n return reject(new AnzuApiForbiddenOperationError(err, err))\n }\n return reject(new AnzuFatalError(err))\n })\n })\n}\n","import { AnzuApiResponseCodeError } from '@/model/error/AnzuApiResponseCodeError'\nimport { AnzuApiValidationError, axiosErrorResponseHasValidationData } from '@/model/error/AnzuApiValidationError'\nimport { replaceUrlParameters, type UrlParams } from '@/services/api/apiHelper'\nimport { isValidHTTPStatus } from '@/utils/response'\nimport type { AxiosInstance, AxiosRequestConfig } from 'axios'\nimport { AnzuFatalError } from '@/model/error/AnzuFatalError'\nimport { AnzuApiForbiddenError, axiosErrorResponseIsForbidden } from '@/model/error/AnzuApiForbiddenError'\nimport {\n AnzuApiForbiddenOperationError,\n axiosErrorResponseHasForbiddenOperationData,\n} from '@/model/error/AnzuApiForbiddenOperationError'\nimport { HTTP_STATUS_NO_CONTENT } from '@/composables/statusCodes'\n\n/**\n * @template T Type used for request payload, by default same as Response type\n * @template R Response type override, optional\n */\nexport const apiCreateOne = <T, R = T>(\n client: () => AxiosInstance,\n object: T | Record<string, never> = {},\n urlTemplate: string,\n urlParams: UrlParams = {},\n system: string,\n entity: string,\n options: AxiosRequestConfig = {}\n): Promise<R> => {\n return new Promise((resolve, reject) => {\n client()\n .post(replaceUrlParameters(urlTemplate, urlParams), JSON.stringify(object), options)\n .then((res) => {\n if (!isValidHTTPStatus(res.status)) {\n return reject(new AnzuApiResponseCodeError(res.status))\n }\n if (res.data) {\n return resolve(res.data)\n }\n if (res.status === HTTP_STATUS_NO_CONTENT) {\n return resolve(null as R)\n }\n return reject(new AnzuFatalError())\n })\n .catch((err) => {\n if (axiosErrorResponseIsForbidden(err)) {\n return reject(new AnzuApiForbiddenError(err))\n }\n if (axiosErrorResponseHasValidationData(err)) {\n return reject(new AnzuApiValidationError(err, system, entity, err))\n }\n if (axiosErrorResponseHasForbiddenOperationData(err)) {\n return reject(new AnzuApiForbiddenOperationError(err, err))\n }\n return reject(new AnzuFatalError(err))\n })\n })\n}\n","import { AnzuApiResponseCodeError } from '@/model/error/AnzuApiResponseCodeError'\nimport { AnzuApiValidationError, axiosErrorResponseHasValidationData } from '@/model/error/AnzuApiValidationError'\nimport { replaceUrlParameters, type UrlParams } from '@/services/api/apiHelper'\nimport { isValidHTTPStatus } from '@/utils/response'\nimport type { AxiosInstance, AxiosRequestConfig } from 'axios'\nimport { AnzuFatalError } from '@/model/error/AnzuFatalError'\nimport { AnzuApiForbiddenError, axiosErrorResponseIsForbidden } from '@/model/error/AnzuApiForbiddenError'\nimport {\n AnzuApiForbiddenOperationError,\n axiosErrorResponseHasForbiddenOperationData,\n} from '@/model/error/AnzuApiForbiddenOperationError'\nimport { HTTP_STATUS_NO_CONTENT } from '@/composables/statusCodes'\n\n/**\n * @template T Type used for request payload, by default same as Response type\n * @template R Response type override, optional\n */\nexport const apiDeleteOne = <T, R = T>(\n client: () => AxiosInstance,\n urlTemplate: string,\n urlParams: UrlParams = {},\n system: string,\n entity: string,\n options: AxiosRequestConfig = {}\n): Promise<R> => {\n return new Promise((resolve, reject) => {\n client()\n .delete(replaceUrlParameters(urlTemplate, urlParams), options)\n .then((res) => {\n if (!isValidHTTPStatus(res.status)) {\n return reject(new AnzuApiResponseCodeError(res.status))\n }\n if (res.data) {\n return resolve(res.data)\n }\n if (res.status === HTTP_STATUS_NO_CONTENT) {\n return resolve(null as R)\n }\n return reject(new AnzuFatalError())\n })\n .catch((err) => {\n if (axiosErrorResponseIsForbidden(err)) {\n return reject(new AnzuApiForbiddenError(err))\n }\n if (axiosErrorResponseHasValidationData(err)) {\n return reject(new AnzuApiValidationError(err, system, entity, err))\n }\n if (axiosErrorResponseHasForbiddenOperationData(err)) {\n return reject(new AnzuApiForbiddenOperationError(err, err))\n }\n return reject(new AnzuFatalError(err))\n })\n })\n}\n","import { ref } from 'vue'\nimport { isArray, isBoolean, isNull, isNumber, isString, isUndefined } from '@/utils/common'\nimport type { Filter, FilterBag, FilterVariant } from '@/types/Filter'\n\n/**\n * Docs: /doc/Admin-Cms-Doc/Filters.md\n */\nexport function useApiQueryBuilder() {\n const q = ref<string[]>([])\n\n const querySetLimit = (value: number): void => {\n queryAdd('limit', value)\n }\n\n const querySetOffset = (page: number, limit: number): void => {\n queryAdd('offset', page * limit - limit)\n }\n\n const querySetOrder = (field: string | null, desc: boolean): void => {\n if (!isNull(field) && field.length > 0) queryAdd('order[' + field + ']', desc ? 'desc' : 'asc')\n }\n\n const formatValue = (value: string | number | boolean): string | number => {\n if (isBoolean(value)) {\n return value ? '1' : '0'\n }\n return value\n }\n\n const queryAddFilter = (filterVariant: FilterVariant, field: string, value: string | number | boolean): void => {\n if (isString(value) && value.length === 0) return\n q.value.push('filter_' + filterVariant + '[' + field + ']=' + formatValue(value))\n }\n\n const getValue = (filter: Filter): string | number | boolean | null => {\n const model = filter.model\n if (isNull(model)) {\n if (filter.mandatory) {\n filter.model = filter.default\n return filter.default\n }\n return null\n }\n if (isString(model)) {\n if (model.length === 0) {\n if (filter.mandatory) {\n filter.model = filter.default\n return filter.default\n }\n return null\n }\n return encodeURIComponent(model)\n }\n if (isArray(model)) {\n if (model.length === 0) {\n if (filter.mandatory) {\n filter.model = filter.default\n return filter.default\n }\n return null\n }\n return model.map((item) => (isString(item) ? encodeURIComponent(item) : item)).join(',')\n }\n if (isNumber(model) || isBoolean(model)) {\n return model\n }\n\n return null\n }\n\n const queryAdd = (key: string, value: any): void => {\n q.value.push(key + '=' + value)\n }\n\n const queryBuild = (): string => {\n return '?' + q.value.join('&')\n }\n\n const querySetFilters = (filterBag: FilterBag): void => {\n const isSearchApi = !isUndefined(filterBag._elastic)\n for (const filterName in filterBag) {\n const filter = filterBag[filterName]\n const field = filter.field || filterName\n if (filter.exclude) {\n continue\n }\n const value = getValue(filter)\n if (isNull(value)) {\n continue\n }\n if (isSearchApi) {\n queryAdd(field, value)\n continue\n }\n queryAddFilter(filter.variant, field, value)\n }\n }\n\n return {\n querySetLimit,\n querySetOffset,\n querySetOrder,\n queryAddFilter,\n querySetFilters,\n queryAdd,\n queryBuild,\n }\n}\n","import { AnzuApiResponseCodeError } from '@/model/error/AnzuApiResponseCodeError'\nimport { AnzuApiValidationError, axiosErrorResponseHasValidationData } from '@/model/error/AnzuApiValidationError'\nimport { replaceUrlParameters, type UrlParams } from '@/services/api/apiHelper'\nimport { isValidHTTPStatus } from '@/utils/response'\nimport type { AxiosInstance, AxiosRequestConfig } from 'axios'\nimport { useApiQueryBuilder } from '@/services/api/queryBuilder'\nimport { AnzuApiForbiddenError, axiosErrorResponseIsForbidden } from '@/model/error/AnzuApiForbiddenError'\nimport { AnzuFatalError } from '@/model/error/AnzuFatalError'\nimport {\n AnzuApiForbiddenOperationError,\n axiosErrorResponseHasForbiddenOperationData,\n} from '@/model/error/AnzuApiForbiddenOperationError'\nimport { HTTP_STATUS_NO_CONTENT } from '@/composables/statusCodes'\n\n/**\n * @template T Type used for request payload, by default same as Response type\n * @template R Response type override, optional\n */\nconst generateByIdsApiQuery = (ids: number[] | string[], isSearchApi: boolean): string => {\n const { querySetLimit, querySetOffset, querySetOrder, queryBuild, queryAddFilter, queryAdd } = useApiQueryBuilder()\n const limit = ids.length\n querySetLimit(limit)\n querySetOffset(1, limit)\n querySetOrder('id', false)\n if (isSearchApi) queryAdd('id', ids.join(','))\n else queryAddFilter('in', 'id', ids.join(','))\n\n return queryBuild()\n}\n\nexport const apiFetchByIds = <T, R = T>(\n client: () => AxiosInstance,\n ids: string[] | number[],\n urlTemplate: string,\n urlParams: UrlParams = {},\n system: string,\n entity: string,\n options: AxiosRequestConfig = {},\n isSearchApi = false\n): Promise<R> => {\n return new Promise((resolve, reject) => {\n client()\n .get(replaceUrlParameters(urlTemplate, urlParams) + generateByIdsApiQuery(ids, isSearchApi), options)\n .then((res) => {\n if (!isValidHTTPStatus(res.status)) {\n return reject(new AnzuApiResponseCodeError(res.status))\n }\n if (res.data?.data) {\n return resolve(res.data.data)\n }\n if (res.status === HTTP_STATUS_NO_CONTENT) {\n return resolve(null as R)\n }\n return reject(new AnzuFatalError())\n })\n .catch((err) => {\n if (axiosErrorResponseIsForbidden(err)) {\n return reject(new AnzuApiForbiddenError(err))\n }\n if (axiosErrorResponseHasValidationData(err)) {\n return reject(new AnzuApiValidationError(err, system, entity, err))\n }\n if (axiosErrorResponseHasForbiddenOperationData(err)) {\n return reject(new AnzuApiForbiddenOperationError(err, err))\n }\n return reject(new AnzuFatalError(err))\n })\n })\n}\n","import { isObject } from '@/utils/common'\n\nexport interface ApiResponseList<T> {\n totalCount: number\n data: T\n}\n\nexport interface ApiInfiniteResponseList<T> {\n hasNextPage: boolean\n data: T\n}\n\nexport const isApiResponseList = <T>(value: unknown): value is ApiResponseList<T> => {\n return isObject(value) && Object.hasOwn(value, 'totalCount')\n}\n\nexport const isApiInfiniteResponseList = <T>(value: unknown): value is ApiInfiniteResponseList<T> => {\n return isObject(value) && Object.hasOwn(value, 'hasNextPage')\n}\n","import { AnzuApiResponseCodeError } from '@/model/error/AnzuApiResponseCodeError'\nimport { AnzuApiValidationError, axiosErrorResponseHasValidationData } from '@/model/error/AnzuApiValidationError'\nimport { replaceUrlParameters, type UrlParams } from '@/services/api/apiHelper'\nimport { isValidHTTPStatus } from '@/utils/response'\nimport type { FilterBag } from '@/types/Filter'\nimport type { Pagination } from '@/types/Pagination'\nimport { isUndefined } from '@/utils/common'\nimport type { AxiosInstance, AxiosRequestConfig } from 'axios'\nimport { useApiQueryBuilder } from '@/services/api/queryBuilder'\nimport { AnzuApiForbiddenError, axiosErrorResponseIsForbidden } from '@/model/error/AnzuApiForbiddenError'\nimport { AnzuFatalError } from '@/model/error/AnzuFatalError'\nimport type { ApiInfiniteResponseList, ApiResponseList } from '@/types/ApiResponse'\nimport { isApiInfiniteResponseList, isApiResponseList } from '@/types/ApiResponse'\nimport {\n AnzuApiForbiddenOperationError,\n axiosErrorResponseHasForbiddenOperationData,\n} from '@/model/error/AnzuApiForbiddenOperationError'\nimport { HTTP_STATUS_NO_CONTENT } from '@/composables/statusCodes'\n\nconst generateListApiQuery = (pagination: Pagination, filterBag: FilterBag): string => {\n const { querySetLimit, querySetOffset, querySetOrder, queryBuild, querySetFilters } = useApiQueryBuilder()\n querySetLimit(pagination.rowsPerPage)\n querySetOffset(pagination.page, pagination.rowsPerPage)\n querySetOrder(pagination.sortBy, pagination.descending)\n querySetFilters(filterBag)\n return queryBuild()\n}\n\n/**\n * @template T Type used for request payload, by default same as Response type\n * @template R Response type override, optional\n */\nexport const apiFetchList = <T, R = T>(\n client: () => AxiosInstance,\n urlTemplate: string,\n urlParams: UrlParams = {},\n pagination: Pagination,\n filterBag: FilterBag,\n system: string,\n entity: string,\n options: AxiosRequestConfig = {}\n): Promise<R> => {\n return new Promise((resolve, reject) => {\n const searchApi = isUndefined(filterBag._elastic) ? '' : '/search'\n client()\n .get(\n replaceUrlParameters(urlTemplate, urlParams) + searchApi + generateListApiQuery(pagination, filterBag),\n options\n )\n .then((res) => {\n if (!isValidHTTPStatus(res.status)) {\n return reject(new AnzuApiResponseCodeError(res.status))\n }\n if (res.data) {\n const resData = res.data as unknown as ApiResponseList<R> | ApiInfiniteResponseList<R>\n if (isApiInfiniteResponseList(resData)) {\n pagination.hasNextPage = res.data.hasNextPage\n } else if (isApiResponseList(resData)) {\n pagination.totalCount = resData.totalCount\n }\n pagination.currentViewCount = res.data.data.length\n return resolve(res.data.data)\n }\n if (res.status === HTTP_STATUS_NO_CONTENT) {\n return resolve(null as R)\n }\n return reject(new AnzuFatalError())\n })\n .catch((err) => {\n if (axiosErrorResponseIsForbidden(err)) {\n return reject(new AnzuApiForbiddenError(err))\n }\n if (axiosErrorResponseHasValidationData(err)) {\n return reject(new AnzuApiValidationError(err, system, entity, err))\n }\n if (axiosErrorResponseHasForbiddenOperationData(err)) {\n return reject(new AnzuApiForbiddenOperationError(err, err))\n }\n return reject(new AnzuFatalError(err))\n })\n })\n}\n","import { AnzuApiResponseCodeError } from '@/model/error/AnzuApiResponseCodeError'\nimport { AnzuApiValidationError, axiosErrorResponseHasValidationData } from '@/model/error/AnzuApiValidationError'\nimport { replaceUrlParameters, type UrlParams } from '@/services/api/apiHelper'\nimport { isValidHTTPStatus } from '@/utils/response'\nimport type { AxiosInstance, AxiosRequestConfig } from 'axios'\nimport { AnzuFatalError } from '@/model/error/AnzuFatalError'\nimport { AnzuApiForbiddenError, axiosErrorResponseIsForbidden } from '@/model/error/AnzuApiForbiddenError'\nimport {\n AnzuApiForbiddenOperationError,\n axiosErrorResponseHasForbiddenOperationData,\n} from '@/model/error/AnzuApiForbiddenOperationError'\nimport { HTTP_STATUS_NO_CONTENT } from '@/composables/statusCodes'\n\n/**\n * @template R Response type\n */\nexport const apiFetchOne = <R>(\n client: () => AxiosInstance,\n urlTemplate: string,\n urlParams: UrlParams = {},\n system: string,\n entity: string,\n options: AxiosRequestConfig = {}\n): Promise<R> => {\n return new Promise((resolve, reject) => {\n client()\n .get(replaceUrlParameters(urlTemplate, urlParams), options)\n .then((res) => {\n if (!isValidHTTPStatus(res.status)) {\n return reject(new AnzuApiResponseCodeError(res.status))\n }\n if (res.data) {\n return resolve(res.data)\n }\n if (res.status === HTTP_STATUS_NO_CONTENT) {\n return resolve(null as R)\n }\n return reject(new AnzuFatalError())\n })\n .catch((err) => {\n if (axiosErrorResponseIsForbidden(err)) {\n return reject(new AnzuApiForbiddenError(err))\n }\n if (axiosErrorResponseHasValidationData(err)) {\n return reject(new AnzuApiValidationError(err, system, entity, err))\n }\n if (axiosErrorResponseHasForbiddenOperationData(err)) {\n return reject(new AnzuApiForbiddenOperationError(err, err))\n }\n return reject(new AnzuFatalError(err))\n })\n })\n}\n","import { AnzuApiResponseCodeError } from '@/model/error/AnzuApiResponseCodeError'\nimport { AnzuApiValidationError, axiosErrorResponseHasValidationData } from '@/model/error/AnzuApiValidationError'\nimport { replaceUrlParameters, type UrlParams } from '@/services/api/apiHelper'\nimport { isValidHTTPStatus } from '@/utils/response'\nimport type { AxiosInstance, AxiosRequestConfig } from 'axios'\nimport { AnzuApiForbiddenError, axiosErrorResponseIsForbidden } from '@/model/error/AnzuApiForbiddenError'\nimport { AnzuFatalError } from '@/model/error/AnzuFatalError'\nimport {\n AnzuApiForbiddenOperationError,\n axiosErrorResponseHasForbiddenOperationData,\n} from '@/model/error/AnzuApiForbiddenOperationError'\nimport { HTTP_STATUS_NO_CONTENT } from '@/composables/statusCodes'\n\n/**\n * @template T Type used for request payload, by default same as Response type\n * @template R Response type override, optional\n */\nexport const apiUpdateOne = <T, R = T>(\n client: () => AxiosInstance,\n object: T | Record<string, never> = {},\n urlTemplate: string,\n urlParams: UrlParams = {},\n system: string,\n entity: string,\n options: AxiosRequestConfig = {}\n): Promise<R> => {\n return new Promise((resolve, reject) => {\n client()\n .put(replaceUrlParameters(urlTemplate, urlParams), JSON.stringify(object), options)\n .then((res) => {\n if (!isValidHTTPStatus(res.status)) {\n return reject(new AnzuApiResponseCodeError(res.status))\n }\n if (res.data) {\n return resolve(res.data)\n }\n if (res.status === HTTP_STATUS_NO_CONTENT) {\n return resolve(null as R)\n }\n return reject(new AnzuFatalError())\n })\n .catch((err) => {\n if (axiosErrorResponseIsForbidden(err)) {\n return reject(new AnzuApiForbiddenError(err))\n }\n if (axiosErrorResponseHasValidationData(err)) {\n return reject(new AnzuApiValidationError(err, system, entity, err))\n }\n if (axiosErrorResponseHasForbiddenOperationData(err)) {\n return reject(new AnzuApiForbiddenOperationError(err, err))\n }\n return reject(new AnzuFatalError(err))\n })\n })\n}\n","import { isAnzuApiValidationError } from '@/model/error/AnzuApiValidationError'\nimport { isAnzuFatalError } from '@/model/error/AnzuFatalError'\nimport { isAnzuApiForbiddenError } from '@/model/error/AnzuApiForbiddenError'\nimport { isAnzuApiResponseCodeError } from '@/model/error/AnzuApiResponseCodeError'\n\nexport function useErrors() {\n return {\n isAnzuFatalError,\n isAnzuApiForbiddenError,\n isAnzuApiValidationError,\n isAnzuApiResponseCodeError,\n }\n}\n","import type { AxiosInstance } from 'axios'\nimport type { Pagination } from '@/types/Pagination'\nimport type { FilterBag } from '@/types/Filter'\nimport type { JobBase } from '@/types/Job'\nimport { apiFetchList } from '@/services/api/apiFetchList'\nimport { apiFetchOne } from '@/services/api/apiFetchOne'\nimport { apiCreateOne } from '@/services/api/apiCreateOne'\nimport { apiDeleteOne } from '@/services/api/apiDeleteOne'\nimport { stringToKebabCase } from '@/utils/string'\n\nconst END_POINT = '/adm/v1/job'\nexport const ENTITY = 'job'\n\nexport function useJobApi<JobType extends JobBase = JobBase>(client: () => AxiosInstance, system: string) {\n const fetchJobList = (pagination: Pagination, filterBag: FilterBag) =>\n apiFetchList<JobType[]>(client, END_POINT, {}, pagination, filterBag, system, ENTITY)\n\n const fetchJob = (id: number) => apiFetchOne<JobType>(client, END_POINT + '/:id', { id }, system, ENTITY)\n\n const createJob = (data: JobType) => {\n const type = stringToKebabCase(data._resourceName)\n .slice(4) // remove \"job-\" prefix\n .replace('-kind-', '-kind/') // replace \"-kind-\" with \"-kind/\" if the needle is found\n\n return apiCreateOne<JobType>(client, data, END_POINT + '/:type', { type }, system, ENTITY)\n }\n\n const deleteJob = (id: number) => apiDeleteOne<JobType>(client, END_POINT + '/:id', { id }, system, ENTITY)\n\n return {\n fetchJobList,\n fetchJob,\n createJob,\n deleteJob,\n }\n}\n","import { ref } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport type { ValueObjectOption } from '@/types/ValueObject'\n\nexport const JOB_RESOURCE_USER_DATA_DELETE = 'jobUserDataDelete'\n\nexport type JobBaseResource = typeof JOB_RESOURCE_USER_DATA_DELETE | `job${string}`\n\nexport function useJobBaseResource<T extends JobBaseResource = JobBaseResource>(\n customJobs: ValueObjectOption<T>[] = []\n) {\n const { t } = useI18n()\n\n const jobResourceOptions = ref<ValueObjectOption<T>[]>([\n ...([\n {\n value: 'jobUserDataDelete',\n title: t('common.job.jobResource.jobUserDataDelete'),\n },\n ] as unknown as ValueObjectOption<T>[]),\n ...customJobs,\n ])\n\n const getJobResourceOption = (value: T): ValueObjectOption<T> => {\n return jobResourceOptions.value.find((item) => item.value === value) as ValueObjectOption<T>\n }\n\n return {\n jobResourceOptions,\n getJobResourceOption,\n }\n}\n","export const arrayItemToggle = <T>(array: Array<T>, value: T) => {\n const index = array.indexOf(value)\n if (index === -1) {\n array.push(value)\n return\n }\n array.splice(index, 1)\n}\n\nexport const arrayToString = (values: Array<string | number>, separator = ', ') => values.join(separator)\n\nexport const arrayFromArgs = <T>(...args: [T[]]) => Array.from(...args)\n\nexport type NestedArray<T> = Array<NestedArray<T> | T>\n\nexport const arrayFlatten = <T>(input: NestedArray<T>, acc: T[] = []): T[] => {\n return input.reduce((_: T[], current) => {\n if (Array.isArray(current)) return arrayFlatten(current, acc)\n acc.push(current)\n return acc\n }, [])\n}\n\nexport const arraysHaveSameElements = <T>(array1: T[], array2: T[]): boolean => {\n if (array1.length !== array2.length) {\n return false\n }\n\n // Sort both arrays\n const sortedArray1 = array1.slice().sort()\n const sortedArray2 = array2.slice().sort()\n\n // Compare the sorted arrays\n for (let i = 0; i < sortedArray1.length; i++) {\n if (sortedArray1[i] !== sortedArray2[i]) {\n return false\n }\n }\n\n return true\n}\n","import type { RouteLocationRaw, Router } from 'vue-router'\n\nexport const browserHistoryReplaceUrlByString = (path: string) => {\n history.replaceState(history.state, '', path)\n}\n\nexport const browserHistoryReplaceUrlByRouter = (router: Router, to: RouteLocationRaw) => {\n const resolved = router.resolve(to)\n browserHistoryReplaceUrlByString(resolved.href)\n}\n","import vuetify from '@/locales/en/vuetify.json'\nimport alert from '@/locales/en/common/alert.json'\nimport button from '@/locales/en/common/button.json'\nimport model from '@/locales/en/common/model.json'\nimport system from '@/locales/en/common/system.json'\nimport anzuUser from '@/locales/en/common/anzuUser.json'\nimport job from '@/locales/en/common/job.json'\nimport log from '@/locales/en/common/log.json'\nimport permission from '@/locales/en/common/permission.json'\nimport permissionGroup from '@/locales/en/common/permissionGroup.json'\nimport apiValidation from '@/locales/en/error/apiValidation.json'\nimport jsValidation from '@/locales/en/error/jsValidation.json'\nimport apiForbiddenOperation from '@/locales/en/error/apiForbiddenOperation.json'\nimport assetSelect from '@/locales/en/common/assetSelect.json'\nimport time from '@/locales/en/common/time.json'\n\nexport default {\n common: {\n alert,\n button,\n model,\n system,\n anzuUser,\n job,\n log,\n permission,\n permissionGroup,\n assetSelect,\n time,\n },\n $vuetify: vuetify,\n error: {\n apiValidation: {\n ...apiValidation,\n },\n apiForbiddenOperation: {\n ...apiForbiddenOperation,\n },\n jsValidation: {\n ...jsValidation,\n },\n },\n}\n","import alert from '@/locales/sk/common/alert.json'\nimport button from '@/locales/sk/common/button.json'\nimport model from '@/locales/sk/common/model.json'\nimport system from '@/locales/sk/common/system.json'\nimport anzuUser from '@/locales/sk/common/anzuUser.json'\nimport job from '@/locales/sk/common/job.json'\nimport log from '@/locales/sk/common/log.json'\nimport permission from '@/locales/sk/common/permission.json'\nimport permissionGroup from '@/locales/sk/common/permissionGroup.json'\nimport vuetify from '@/locales/sk/vuetify.json'\nimport apiValidation from '@/locales/sk/error/apiValidation.json'\nimport apiForbiddenOperation from '@/locales/sk/error/apiForbiddenOperation.json'\nimport jsValidation from '@/locales/sk/error/jsValidation.json'\nimport assetSelect from '@/locales/sk/common/assetSelect.json'\nimport time from '@/locales/sk/common/time.json'\n\nexport default {\n common: {\n alert,\n button,\n model,\n system,\n anzuUser,\n job,\n log,\n permission,\n permissionGroup,\n assetSelect,\n time,\n },\n $vuetify: vuetify,\n error: {\n apiValidation: {\n ...apiValidation,\n },\n apiForbiddenOperation: {\n ...apiForbiddenOperation,\n },\n jsValidation: {\n ...jsValidation,\n },\n },\n}\n","import { between, createI18nMessage } from '@vuelidate/validators'\nimport { i18n } from '@/plugins/i18n'\n\nconst { t } = i18n.global\n\nexport function useValidateBetween() {\n const withI18nMessage = createI18nMessage({ t })\n\n return withI18nMessage(between, {\n withArguments: true,\n messagePath: () => 'error.jsValidation.between',\n })\n}\n","import { createI18nMessage, email } from '@vuelidate/validators'\nimport { i18n } from '@/plugins/i18n'\n\nconst { t } = i18n.global\n\nexport function useValidateEmail() {\n const withI18nMessage = createI18nMessage({ t })\n\n return withI18nMessage(email, {\n messagePath: () => 'error.jsValidation.email',\n })\n}\n","import { createI18nMessage, maxLength } from '@vuelidate/validators'\nimport { i18n } from '@/plugins/i18n'\n\nconst { t } = i18n.global\n\nexport function useValidateMaxLength() {\n const withI18nMessage = createI18nMessage({ t })\n\n return withI18nMessage(maxLength, {\n withArguments: true,\n messagePath: () => 'error.jsValidation.maxLength',\n })\n}\n","import { createI18nMessage, maxValue } from '@vuelidate/validators'\nimport { i18n } from '@/plugins/i18n'\n\nconst { t } = i18n.global\n\nexport function useValidateMaxValue() {\n const withI18nMessage = createI18nMessage({ t })\n\n return withI18nMessage(maxValue, {\n withArguments: true,\n messagePath: () => 'error.jsValidation.maxValue',\n })\n}\n","import { createI18nMessage, minLength } from '@vuelidate/validators'\nimport { i18n } from '@/plugins/i18n'\n\nconst { t } = i18n.global\n\nexport function useValidateMinLength() {\n const withI18nMessage = createI18nMessage({ t })\n\n return withI18nMessage(minLength, {\n withArguments: true,\n messagePath: () => 'error.jsValidation.minLength',\n })\n}\n","import { createI18nMessage, minValue } from '@vuelidate/validators'\nimport { i18n } from '@/plugins/i18n'\n\nconst { t } = i18n.global\n\nexport function useValidateMinValue() {\n const withI18nMessage = createI18nMessage({ t })\n\n return withI18nMessage(minValue, {\n withArguments: true,\n messagePath: () => 'error.jsValidation.minValue',\n })\n}\n","import { createI18nMessage, numeric } from '@vuelidate/validators'\nimport { i18n } from '@/plugins/i18n'\n\nconst { t } = i18n.global\n\nexport function useValidateNumeric() {\n const withI18nMessage = createI18nMessage({ t })\n\n return withI18nMessage(numeric, {\n messagePath: () => 'error.jsValidation.numeric',\n })\n}\n","import { createI18nMessage, required } from '@vuelidate/validators'\nimport { i18n } from '@/plugins/i18n'\n\nconst { t } = i18n.global\n\nexport function useValidateRequired() {\n const withI18nMessage = createI18nMessage({ t })\n\n return withI18nMessage(required, {\n messagePath: () => 'error.jsValidation.required',\n })\n}\n","import { createI18nMessage, helpers } from '@vuelidate/validators'\nimport { i18n } from '@/plugins/i18n'\n\nconst { t } = i18n.global\n\nexport function useValidateSlug() {\n const withI18nMessage = createI18nMessage({ t })\n\n return withI18nMessage(helpers.regex(/^[a-z\\-0-9/]+$/), {\n messagePath: () => 'error.jsValidation.slug',\n })\n}\n","import { createI18nMessage, helpers } from '@vuelidate/validators'\nimport { unref } from 'vue'\nimport { i18n } from '@/plugins/i18n'\n\nconst { t } = i18n.global\n\nexport function useValidateStringArrayItemLength() {\n const withI18nMessage = createI18nMessage({ t })\n\n const stringArrayItemLengthValidator = (min: number, max: number) => {\n return (value: string[]) =>\n !helpers.req(value) || value.every((item) => item.length >= unref(min) && item.length <= unref(max))\n }\n const stringArrayItemLengthHelper = (min: number, max: number) => {\n return {\n $validator: stringArrayItemLengthValidator(min, max),\n // $message not required when using i18n\n // $message: (input: { $params: Record<string, any> }) => {\n // const { $params } = input\n // return `Item length in list must have between ${$params.min} and ${$params.max} characters.`\n // },\n $params: {\n min,\n max,\n type: 'stringArrayItemLength',\n },\n }\n }\n\n return withI18nMessage(stringArrayItemLengthHelper, {\n withArguments: true,\n messagePath: () => 'error.jsValidation.stringArrayItemLength',\n })\n}\n","import { createI18nMessage, url } from '@vuelidate/validators'\nimport { i18n } from '@/plugins/i18n'\n\nconst { t } = i18n.global\n\nexport function useValidateUrl() {\n const withI18nMessage = createI18nMessage({ t })\n\n return withI18nMessage(url, {\n messagePath: () => 'error.jsValidation.url',\n })\n}\n","import { useValidateBetween } from '@/validators/vuelidate/common/useValidateBetween'\nimport { useValidateEmail } from '@/validators/vuelidate/common/useValidateEmail'\nimport { useValidateMaxLength } from '@/validators/vuelidate/common/useValidateMaxLength'\nimport { useValidateMaxValue } from '@/validators/vuelidate/common/useValidateMaxValue'\nimport { useValidateMinLength } from '@/validators/vuelidate/common/useValidateMinLength'\nimport { useValidateMinValue } from '@/validators/vuelidate/common/useValidateMinValue'\nimport { useValidateNumeric } from '@/validators/vuelidate/common/useValidateNumeric'\nimport { useValidateRequired } from '@/validators/vuelidate/common/useValidateRequired'\nimport { useValidateRequiredIf } from '@/validators/vuelidate/common/useValidateRequiredIf'\nimport { useValidateSlug } from '@/validators/vuelidate/common/useValidateSlug'\nimport { useValidateStringArrayItemLength } from '@/validators/vuelidate/common/useValidateStringArrayItemLength'\nimport { useValidateUrl } from '@/validators/vuelidate/common/useValidateUrl'\n\nexport function useValidate() {\n return {\n required: useValidateRequired(),\n requiredIf: useValidateRequiredIf(),\n minLength: useValidateMinLength(),\n maxLength: useValidateMaxLength(),\n minValue: useValidateMinValue(),\n maxValue: useValidateMaxValue(),\n between: useValidateBetween(),\n email: useValidateEmail(),\n numeric: useValidateNumeric(),\n slug: useValidateSlug(),\n url: useValidateUrl(),\n stringArrayItemLength: useValidateStringArrayItemLength(),\n }\n}\n","import { computed, type Ref } from 'vue'\nimport { i18n } from '@/plugins/i18n'\nimport type { Pagination } from '@/types/Pagination'\nimport { usePagination } from '@/composables/system/pagination'\nimport { isUndefined } from '@/utils/common'\n\nexport const DATETIME_AUTO_LABEL_TRACKING = ['createdAt', 'modifiedAt']\n\nexport type DatatableSortBy =\n | {\n key: string\n order: 'asc' | 'desc'\n }\n | null\n | undefined\n\nexport type DatatableOrderingOption = { id: number; titleT: string; sortBy?: DatatableSortBy; customData?: any }\n\nexport type DatatableOrderingOptions = Array<DatatableOrderingOption>\n\nexport type ColumnConfig = {\n key: string\n title?: string\n sortable?: boolean\n fixed?: boolean\n}\n\nexport type ColumnInternalValues = {\n key: string\n title?: string\n sortable: boolean\n fixed: boolean\n}\n\nconst defaultColumn: ColumnInternalValues = {\n key: '',\n title: undefined,\n sortable: false,\n fixed: false,\n}\n\nexport function createDatatableColumnsConfig(\n config: ColumnConfig[],\n columnsHidden: Ref<Array<string>>,\n system: string | undefined = undefined,\n subject: string | undefined = undefined,\n disableActions: boolean = false,\n customPagination: Pagination | undefined = undefined,\n customI18n: undefined | any = undefined\n) {\n const localI18n = customI18n ?? i18n\n const { t } = localI18n.global || localI18n\n const pagination: Pagination = usePagination()\n if (customPagination) {\n for (const prop of Object.keys(pagination)) {\n if (prop in customPagination) {\n // @ts-ignore\n pagination[prop] = customPagination[prop]\n }\n }\n }\n\n const columnsAll = config.map((item) => {\n const obj = { ...defaultColumn, ...item }\n if (!isUndefined(obj.title)) {\n // do not modify\n } else if (isUndefined(obj.title) && DATETIME_AUTO_LABEL_TRACKING.includes(obj.key)) {\n obj.title = t('common.model.tracking.' + obj.key)\n } else if (isUndefined(obj.title) && system && subject) {\n obj.title = t(system + '.' + subject + '.model.' + obj.key)\n } else {\n obj.title = ''\n }\n return obj\n })\n\n const columnsVisible = computed(() => {\n const columns: any = []\n columnsAll.forEach((column) => {\n if (!columnsHidden.value.includes(column.key)) {\n columns.push(column)\n }\n })\n if (!disableActions) columns.push({ key: 'actions', sortable: false, fixed: true })\n return columns\n })\n\n const updateSortBy = (sortBy: any) => {\n if (sortBy) {\n pagination.sortBy = sortBy.key\n pagination.descending = sortBy.order === 'desc' ? true : false\n return\n }\n pagination.sortBy = null\n }\n\n return {\n columnsAll,\n columnsVisible,\n columnsHidden,\n updateSortBy,\n pagination,\n }\n}\n","import { VBtn, VChip } from 'vuetify/components'\n\nexport const useCommonVuetifyConfig = () => {\n const commonTheme = () => {\n return {\n defaultTheme: 'light',\n variations: {\n colors: [],\n lighten: 0,\n darken: 0,\n },\n themes: {\n light: {\n dark: false,\n colors: {\n background: '#ffffff',\n surface: '#ffffff',\n 'on-surface': '#333',\n primary: '#3f6ad8',\n secondary: '#E0E0E0',\n 'on-secondary': '#333',\n success: '#3ac47d',\n 'on-success': '#fff',\n warning: '#FB8C00',\n error: '#d92550',\n info: '#78c3fb',\n },\n variables: {},\n },\n dark: {\n dark: true,\n colors: {\n background: '#1A1A1A',\n surface: '#1A1A1A',\n primary: '#3f6ad8',\n secondary: '#E0E0E0',\n 'on-secondary': '#333',\n success: '#3ac47d',\n warning: '#FB8C00',\n error: '#d92550',\n info: '#78c3fb',\n },\n variables: {},\n },\n },\n }\n }\n\n const commonDefaults = () => {\n return {\n global: {},\n VTextField: {\n variant: 'underlined',\n density: 'compact',\n color: 'primary',\n },\n VTextarea: {\n variant: 'underlined',\n density: 'compact',\n color: 'primary',\n },\n VSelect: {\n variant: 'underlined',\n density: 'compact',\n color: 'primary',\n },\n VAutocomplete: {\n variant: 'underlined',\n density: 'compact',\n color: 'primary',\n },\n VCombobox: {\n variant: 'underlined',\n density: 'compact',\n color: 'primary',\n },\n VSwitch: {\n color: 'success',\n density: 'compact',\n },\n VCard: {\n variant: 'flat',\n },\n VDialog: {\n noClickAnimation: true,\n persistent: true,\n },\n VProgressCircular: {\n color: 'primary',\n },\n VBtn: {\n variant: 'flat',\n },\n ABtnPrimary: {\n variant: 'flat',\n color: 'primary',\n },\n ABtnSecondary: {\n variant: 'outlined',\n color: 'primary',\n },\n ABtnTertiary: {\n variant: 'text',\n color: 'primary',\n },\n ABtnIcon: {\n variant: 'text',\n icon: true,\n },\n }\n }\n\n const commonAliases = () => {\n return {\n ABtnPrimary: VBtn as any,\n ABtnSecondary: VBtn as any,\n ABtnTertiary: VBtn as any,\n ABtnIcon: VBtn as any,\n AChipNoLink: VChip as any,\n }\n }\n\n return {\n commonAliases,\n commonDefaults,\n commonTheme,\n }\n}\n","import { ref } from 'vue'\nimport { useDebounceFn } from '@vueuse/core'\nimport type { DocId, IntegerId } from '@/types/common'\nimport { isArray, isNull, isUndefined } from '@/utils/common'\n\nexport type CachedItem<T extends object> = T & { _loaded: boolean }\n\nexport type AddToCachedArgs<T extends DocId | IntegerId> =\n | Array<T | null | undefined>\n | Array<Array<T | null | undefined> | T | null | undefined>\n\n/**\n * @template I Identifier type\n * @template T Source type\n * @template M Minimal type\n */\nexport function defineCached<\n I extends DocId | IntegerId,\n T extends Record<DocId | IntegerId, any>,\n M extends Record<DocId | IntegerId, any>\n>(\n mapFullToMinimal: (source: T) => M,\n mapIdToMinimal: (id: I) => M,\n fetchCallback: (ids: I[]) => Promise<T[]>,\n idProp = 'id'\n) {\n const cache = ref<Map<I, CachedItem<M>>>(new Map())\n const toFetch = ref<Set<I>>(new Set())\n\n const add = (...args: AddToCachedArgs<I>) => {\n const toAdd = ref<Set<I>>(new Set())\n for (let i = 0; i < args.length; i++) {\n const arg = args[i]\n if (isNull(arg) || isUndefined(arg)) continue\n if (isArray(arg)) {\n for (let j = 0; j < arg.length; j++) {\n const item = arg[j]\n if (isNull(item) || isUndefined(item)) continue\n if (!cache.value.has(item)) toAdd.value.add(item)\n }\n continue\n }\n if (!cache.value.has(arg)) toAdd.value.add(arg)\n }\n toAdd.value.forEach((id) => {\n cache.value.set(id, { ...mapIdToMinimal(id), ...{ _loaded: false } })\n toFetch.value.add(id)\n })\n }\n\n const addManual = (data: T) => {\n if (data[idProp]) {\n cache.value.set(data[idProp] as I, { ...mapFullToMinimal(data), ...{ _loaded: true } })\n }\n }\n\n const addManualMinimal = (data: M) => {\n if (data[idProp]) {\n cache.value.set(data[idProp] as I, { ...data, ...{ _loaded: true } })\n }\n }\n\n const updateMap = (data: T[]) => {\n for (let i = 0; i < data.length; i += 1) {\n cache.value.set(data[i][idProp] as I, { ...mapFullToMinimal(data[i]), ...{ _loaded: true } })\n }\n }\n\n const updateToFetch = (ids: Array<I>) => {\n for (let i = 0; i < ids.length; i += 1) {\n toFetch.value.delete(ids[i])\n }\n }\n\n async function apiFetch() {\n if (toFetch.value.size > 0) {\n const ids = Array.from(toFetch.value)\n const res = await fetchCallback(ids)\n updateToFetch(ids)\n updateMap(res)\n return res\n }\n return []\n }\n\n const debouncedFetch = useDebounceFn(\n async () => {\n return await apiFetch()\n },\n 1500,\n { maxWait: 5000 }\n )\n\n /**\n * Debounced fetch for best performance.\n * For general usage.\n */\n const fetch = () => {\n return debouncedFetch()\n }\n\n /**\n * Immediate fetch with no debounce and with result in promise.\n * Use for special cases.\n */\n const immediateFetch = () => {\n return apiFetch()\n }\n\n const get = (id: I | null | undefined) => {\n if (!id) return undefined\n return cache.value.get(id)\n }\n\n const has = (id: I | null | undefined): boolean => {\n if (!id) return false\n return cache.value.has(id)\n }\n\n const isLoaded = (id: I | null | undefined): boolean => {\n if (!id) return false\n const item = cache.value.get(id)\n if (!item) return false\n return item._loaded\n }\n\n return {\n cache,\n toFetch,\n fetch,\n immediateFetch,\n add,\n addManual,\n addManualMinimal,\n has,\n get,\n isLoaded,\n }\n}\n","export async function loadCommonFonts() {\n const webfontloader = await import('webfontloader')\n\n webfontloader.load({\n google: {\n families: ['Roboto:100,300,400,500,700,900&display=swap'],\n },\n // urls: ['https://cdn.jsdelivr.net/npm/@mdi/font@5.x/css/materialdesignicons.min.css']\n })\n}\n","import type { JobBase, JobUserDataDelete } from '@/types/Job'\nimport { JobStatus } from '@/model/valueObject/JobStatus'\nimport { dateTimeNow } from '@/utils/datetime'\nimport type { JobBaseResource } from '@/model/valueObject/JobBaseResource'\n\nexport function useCommonJobFactory() {\n const createBase = (resourceName: JobBaseResource, system: string): JobBase => {\n return {\n id: 0,\n status: JobStatus.Default,\n result: '',\n batchProcessedIterationCount: 0,\n finishedAt: null,\n startedAt: null,\n lastBatchProcessedRecord: '',\n createdAt: dateTimeNow(),\n modifiedAt: dateTimeNow(),\n createdBy: null,\n modifiedBy: null,\n _resourceName: resourceName,\n _system: system,\n }\n }\n\n const createUserDataDelete = (system: string): JobUserDataDelete => {\n return {\n ...createBase('jobUserDataDelete', system),\n ...{\n targetUserId: null,\n anonymizeUser: false,\n },\n }\n }\n\n return {\n createBase,\n createUserDataDelete,\n }\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport { unsafeStringify } from './stringify.js'; // **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || rng)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || unsafeStringify(b);\n}\n\nexport default v1;","// @ts-ignore // todo\nimport { v1 as uuidv1 } from 'uuid'\n\nexport const generateUUIDv1 = () => {\n return uuidv1()\n}\n","import { readonly, ref } from 'vue'\nimport type { RouteLocationNormalized } from 'vue-router'\nimport { isNull } from '@/utils/common'\n\nenum LoginState {\n Success = 'success',\n FailureSsoCommunicationFailed = 'failure-sso-communication',\n FailureInternalError = 'failure-internal-error',\n FailureUnauthorized = 'failure-unauthorized',\n}\n\nconst status = ref<string | null>(null)\n\nexport function useLoginStatus(to: RouteLocationNormalized) {\n if (to.query.loginState) {\n status.value = to.query.loginState.toString()\n }\n\n const isStatusNotDefined = () => isNull(status.value)\n const isStatusLoginSuccess = () => status.value === LoginState.Success\n const isStatusSsoCommunicationFailure = () => status.value === LoginState.FailureSsoCommunicationFailed\n const isStatusInternalErrorFailure = () => status.value === LoginState.FailureInternalError\n const isStatusUnauthorized = () => status.value === LoginState.FailureUnauthorized\n\n return {\n status: readonly(status),\n isStatusNotDefined,\n isStatusLoginSuccess,\n isStatusSsoCommunicationFailure,\n isStatusInternalErrorFailure,\n isStatusUnauthorized,\n }\n}\n","import { useI18n } from 'vue-i18n'\n\nconst MINUTE_IN_SECONDS = 60\nconst HOUR_IN_SECONDS = 3600\nconst DAY_IN_SECONDS = 86400\n\nexport function useRemainingTime() {\n const { t } = useI18n()\n\n const remainingTime = (seconds: number, short: boolean): string => {\n const prefix = short ? 'common.time.short.' : 'common.time.long.'\n if (seconds > DAY_IN_SECONDS) {\n return t(prefix + 'remainingDays', { value: Math.floor(seconds / DAY_IN_SECONDS) })\n }\n if (seconds > HOUR_IN_SECONDS) {\n return t(prefix + 'remainingHours', { value: Math.floor(seconds / HOUR_IN_SECONDS) })\n }\n if (seconds > MINUTE_IN_SECONDS) {\n return t(prefix + 'remainingMinutes', { value: Math.floor(seconds / MINUTE_IN_SECONDS) })\n }\n return t(prefix + 'remainingSeconds', { value: seconds })\n }\n\n const remainingTimeShort = (seconds: number): string => {\n return remainingTime(seconds, true)\n }\n\n const remainingTimeLong = (seconds: number): string => {\n return remainingTime(seconds, false)\n }\n\n return {\n remainingTimeShort,\n remainingTimeLong,\n }\n}\n"],"names":["t","useI18n","booleanValue","computed","props","text","color","loadingComputed","isUndefined","value","isDefined","isNull","isNumber","isString","isArray","isFunction","isBoolean","isDocId","isInt","x","isObject","isEmptyObject","isEmptyArray","isEmpty","cloneDeep","object","isProxy","toRaw","isRef","unref","stringToInt","fallbackValue","check","stringToFloat","stringSplitOnFirstOccurrence","delimiter","index","stringToSlug","stringToKebabCase","stringTrimLength","maxLength","stringUrlTemplateReplace","template","params","newParts","part","key","stringUrlTemplateReplaceVueRouter","regex","match","stringNormalizeForSlotName","name","SystemScopeSymbol","SubjectScopeSymbol","DamClientSymbol","system","inject","subject","onUpdate","newValue","emit","onBlur","_a","errorMessageComputed","_b","item","labelComputed","path","requiredComputed","provide","modelValueComputed","lastPage","displayedFrom","displayedTo","disabledFirstAndPrev","disabledLast","disabledNext","computedTotalCountText","rowsPerPageComputed","watch","oldValue","pageComputed","onClickFirst","onClickLast","onClickPrev","onClickNext","isVisible","toggleVisibility","cloned","active","ref","defaultItems","defaultItemsMostRelevant","activeTitle","found","options","onItemClick","onCancel","computedData","M","e","i","s","n","d","C","w","R","V","W","Y","m","j","y","v","G","c","a","g","$","T","z","F","P","q","h","L","J","K","f","Q","o","l","I","r","O","u","S","E","U","X","Z","tt","et","p","b","k","_","B","D","N","H","it","A","st","at","REQUIRED_LOCALES","i18n","createI18n","locale","isAnzuFatalError","error","AnzuFatalError","cause","message","HTTP_STATUS_OK","HTTP_STATUS_CREATED","HTTP_STATUS_NO_CONTENT","HTTP_STATUS_BAD_REQUEST","HTTP_STATUS_UNAUTHORIZED","HTTP_STATUS_FORBIDDEN","HTTP_STATUS_UNPROCESSABLE_ENTITY","HTTP_STATUS_VALID_ALL","axiosErrorResponseIsForbidden","axios","isAnzuApiForbiddenError","AnzuApiForbiddenError","ERROR_VALIDATION","axiosErrorResponseHasValidationData","_c","isAnzuApiValidationError","AnzuApiValidationError","resolveResponseData","axiosError","entity","data","items","values","__publicField","isAnzuApiResponseCodeError","AnzuApiResponseCodeError","code","ERROR_FORBIDDEN_OPERATION","axiosErrorResponseHasForbiddenOperationData","isAnzuApiForbiddenOperationError","AnzuApiForbiddenOperationError","DEFAULT_DURATION_SECONDS","NEW_LINE_MARK","useAlerts","showSuccess","duration","notify","showSuccessT","translation","showError","showErrorT","showInfo","showInfoT","showWarning","showWarningT","showValidationError","showRecordWas","variant","showApiValidationError","errors","fieldIsTranslated","te","texts","fieldText","errorsTexts","showApiForbiddenOperationError","detail","showUnknownError","showForbiddenError","buttonLoading","onOpen","onClose","router","useRouter","showErrorsDefault","onConfirm","res","config","onMounted","useFetch","module","this","dayjs","utc","SUFFIX","FORMAT","DATETIME_MIN","DATETIME_MAX","dateNow","dateTimeToDate","isoDate","timestampCurrent","dateTimeNow","ignoreFractionalSeconds","ignoreSeconds","dateTimeStartOfDay","days","dateTimeEndOfDay","dateModifyMinutes","minutes","date","dateToUtc","yearNow","dateTimePretty","edgeDateValue","dateTimeFriendly","displayYear","displayDayMonth","now","datePretty","timePretty","dateDiff","date1","date2","unit","date1dayjs","date2dayjs","createdAt","modifiedAt","makeFilterHelper","defaultValue","titleT","useFilterHelpers","clearOne","filter","clearAll","filterBag","filterName","clearAllErrors","pagination","callback","label","placeholderComputed","model","filterId","filterText","filterDocId","filterUrl","filterOverrides","toRefs","filterActive","clearIfActive","clearAllActiveExcept","exceptFilter","_d","_e","_f","_g","_h","_i","overrideFilter","currentFilter","setFilters","newModel","autodetectFilter","filterLabels","currentFilterModel","eventClickBlur","event","onClick","icon","resetFilter","advancedFilter","toggleAdvancedFilter","Grant","useGrant","grantOptions","selectedGrant","newGrant","getGrantOption","GrantOrigin","useGrantOrigin","grantOriginOptions","grantOption","getGrantOriginOption","grantOriginOption","objectDeepFreeze","obj","propNames","objectGetValues","objectGetValueByPath","splitChar","objectSetValueByPath","objectDeletePropertyByPath","pathParts","lastIndex","recurse","isOwnerAware","isCreatedByAware","CurrentUserSymbol","CustomAclResolverSymbol","AvailableLanguagesSymbol","DefaultLanguageSymbol","DefaultLicenceIdSymbol","AnzuSystemsCommonAdmin","app","Acl","Notification","ROLE_SUPER_ADMIN","useAcl","shouldInject","currentUser","customAclProvider","can","acl","permission","canOwner","acls","allowed","pretty","HOOKS","defaults","err","givenDate","week1","english","nth","pad","number","length","int","bool","debounce","fn","wait","_this","args","arrayify","toggleClass","elem","className","createElement","tag","content","clearNode","node","findParent","condition","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","getEventTarget","doNothing","monthToStr","monthNumber","shorthand","revFormat","dateObj","monthName","hour","day","amPM","shortMonth","seconds","unixSeconds","weekNum","weekNumber","year","ISODate","month","unixMillSeconds","tokenRegex","formats","createDateFormatter","l10n","isMobile","frmt","overrideLocale","arr","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","format","datestr","matched","ops","matchIndex","regexStr","token","isBackSlash","escaped","val","compareDates","isBetween","ts","ts1","ts2","calculateSecondsSinceMidnight","hours","parseSeconds","secondsSinceMidnight","getDefaultHours","minHour","minMinutes","minSeconds","maxHr","maxMinutes","target","_loop_1","source","args_1","__assign","__spreadArrays","il","jl","DEBOUNCED_CHANGE_MS","FlatpickrInstance","element","instanceConfig","self","defaultOptions","flatpickr","English","bind","setHoursFromDate","positionCalendar","changeMonth","changeYear","clear","close","onMouseOver","createDay","destroy","isEnabled","jumpToDate","updateValue","open","redraw","set","setDate","toggle","setupHelperFunctions","yr","init","parseConfig","setupLocale","setupInputs","setupDates","build","bindEvents","setCalendarWidth","isSafari","triggerEvent","getClosestActiveElement","bindToInstance","daysWidth","updateTime","defaultDate","timeWrapper","prevValue","setHoursFromInputs","ampm2military","military2ampm","limitMinHours","limitMaxHours","minBound","maxBound","currentTime","result","maxTime","minTime","setHours","onYearInput","eventTarget","handler","ev","el","triggerChange","evt","setupMobile","debouncedResize","onResize","onKeyDown","documentClick","onMonthNavClick","selectDate","selText","timeIncrement","jumpDate","jumpTo","oldYear","oldMonth","buildMonthSwitch","incrementNumInput","delta","inputElem","input","createEvent","fragment","buildMonthNav","buildWeeks","weekWrapper","weekNumbers","buildWeekdays","buildDays","buildTime","customAppend","_dayNumber","dateIsEnabled","dayElement","isDateSelected","isDateInRange","focusOnDayElem","targetNode","getFirstAvailableDay","startMonth","endMonth","startIndex","endIndex","getNextAvailableDay","current","givenMonth","loopDelta","numMonthDays","focusOnDay","offset","activeElement","dayFocused","isInView","startElem","buildMonthDays","firstOfMonth","prevMonthDays","daysInMonth","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayNumber","dayIndex","dayNum","dayContainer","frag","shouldBuildMonth","buildMonth","container","monthNavFragment","monthElement","selectedMonth","yearInput","yearElement","currentMonth","buildMonths","updateNavigationCurrentMonth","separator","hourInput","minuteInput","secondInput","updateWeekdays","firstDayOfWeek","weekdays","isOffset","triggerChangeEvent","toInitial","isCalendarElem","eventTarget_1","isCalendarElement","isInput","lostFocus","isIgnored","newYear","newYearNum","isNewYear","dateToCheck","array","parsed","valueChanged","getDateStr","allowInput","allowKeydown","allowInlineKeydown","isTimeObj","focusAndClose","delta_1","elems","cellClass","hoverDate","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","hoverableCells","dayElem","timestamp","outOfRange","positionElement","wasOpen","minMaxDateSetter","type","inverseDateObj","boolOpts","userConfig","dates","parseDateRules","timeMode","defaultDateFormat","defaultAltFormat","minMaxTimeSetter","hook","pluginConf","getInputElem","customPositionElement","calendarHeight","acc","child","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","distanceFromBottom","showOnTop","top","left","isCenter","isRight","right","rightMost","centerMost","doc","getDocumentStyleSheet","bodyWidth","centerLeft","centerBefore","centerAfter","centerIndex","centerStyle","editableSheet","sheet","createStyleSheet","style","isSelectable","selectedDate","shouldChangeMonth","selectedIndex","single","range","CALLBACKS","updatePositionElement","option","setSelectedDate","inputDate","rule","preloadedDate","inputType","hooks","specificFormat","dObj","isPrevMonth","isNextMonth","isKeyDown","min","max","step","curValue","isHourElem","isMinuteElem","_flatpickr","nodeList","nodes","instances","selector","includedEvents","excludedEvents","camelToKebab","string","nullify","allEvents","configCallbacks","Component","defineComponent","safeConfig","globalCallbacks","localCallback","onCloseCb","nextTick","selectedDates","dateStr","newState","newConfig","global","factory","exports","fp","Arabic","fp$1","Austria","fp$2","Azerbaijan","fp$3","Belarusian","fp$4","Bosnian","fp$5","Bulgarian","fp$6","Bangla","fp$7","Catalan","fp$8","Kurdish","fp$9","Czech","fp$a","Welsh","fp$b","Danish","fp$c","German","fp$d","Esperanto","fp$e","Spanish","fp$f","Estonian","fp$g","Persian","fp$h","Finnish","fp$i","Faroese","fp$j","French","fp$k","Greek","fp$l","Hebrew","fp$m","Hindi","fp$n","Croatian","fp$o","Hungarian","fp$p","Armenian","fp$q","Indonesian","fp$r","Icelandic","fp$s","Italian","fp$t","Japanese","fp$u","Georgian","fp$v","Korean","fp$w","Khmer","fp$x","Kazakh","fp$y","Lithuanian","fp$z","Latvian","fp$A","Macedonian","fp$B","Mongolian","fp$C","Malaysian","fp$D","Burmese","fp$E","Dutch","fp$F","NorwegianNynorsk","fp$G","Norwegian","fp$H","Punjabi","fp$I","Polish","fp$J","Portuguese","fp$K","Romanian","fp$L","Russian","fp$M","Sinhala","fp$N","Slovak","fp$O","Slovenian","fp$P","Albanian","fp$Q","Serbian","fp$R","Swedish","fp$S","Thai","fp$T","Turkish","fp$U","Ukrainian","fp$V","Uzbek","fp$W","UzbekLatin","fp$X","Vietnamese","fp$Y","Mandarin","fp$Z","MandarinTraditional","useValidateRequiredIf","createI18nMessage","requiredIf","shortcutButtonsPlugin","pluginsImported","flatickrRefIsInitialized","flatickrRef","textFieldRef","isOpened","lang","textFieldValue","flatpickrValue","initialized","fixFormat","checkIfReallyEmitChange","onFlatpickrUpdate","onFlatpickrOpen","onTextFieldBlur","onFlatpickrClose","onFlatpickrChange","filtered","altFormat","v$","onClear","enableComputed","defaultValueComputed","pluginsComputed","flatpickrConfig","FlatpickrLanguages","onCalendarClick","rules","useVuelidate","checkboxModel","onCheckboxClick","usePagination","sortBy","reactive","usePaginationAutoHide","modelValue","search","isFocused","autoFetchTimer","innerFilter","multipleComputedVuetifyTypeFix","fetchedItems","selectedItemsCache","allItems","final","loadingLocal","apiSearch","query","filterField","findLocalDataByValues","tryToLoadFromLocalData","count","foundItems","autoFetched","clearAutoFetchTimer","autoFetch","onFocus","singleItemSelectedTitle","onSearchUpdate","onClickClear","watchDebounced","loading","hasError","uniqueId","internalModelValue","success","returnValue","JobStatus","useJobStatus","jobStatusOptions","getJobStatusOption","commonConfig","COMMON_CONFIG","cached","shallowRef","loaded","containerClassComputed","displayTitle","LogLevel","useLogLevel","logLevelOptions","getLogLevelOption","levelOption","numberToString","copy","isSupported","useClipboard","customColorClass","routerToComputed","variantComputed","dialog","closeDialog","__expose","ThemeSettings","Theme","storedSettings","useStorage","QUERY","settings","theme","systemHasDarkPreference","setTheme","setThemeSettings","toolbarColor","useTheme","setThemeAuto","setThemeDark","setThemeLight","toggleTheme","readonly","isOpen","ALL_LANGUAGES","modifyLanguageSettings","configAvailableLanguages","configDefaultLanguage","addMessages","language","messages","setLanguage","useLanguageSettings","_hoisted_1","_hoisted_6","_sfc_render","_ctx","_cache","_hoisted_2","_createElementVNode","_hoisted_3","currentFlagComponent","FlagSk","FlagEn","FlagEmpty","currentLanguageCode","onLanguageChange","currentLocale","availableLocales","reloadAdmin","AnzuNewVersionFetchError","showSystemBar","checkNewVersion","contentType","json","systemBarComponent","ASystemBarNewVersion","pause","useIntervalFn","onBeforeUnmount","fontSize","firstNameLastName","swatches","generatedColor","generateRandomColor","randomRow","buttonColorComputed","onColorPickerChange","newColor","logoutDialog","fetch","add","addManualMinimal","fetchedItemsMinimal","tryToAddFromFetchedItems","ids","resolve","deleteWasPressedTime","onKeydownDelete","idsToFetch","DamAssetStatus","DamAssetType","damAssetTypeValueToEnum","END_POINT","ENTITY","SYSTEM_CORE_DAM","useAssetApi","client","licenceId","apiFetchList","makeFilter","useAssetListFilter","AssetSelectReturnType","assetSelectReturnTypeValuesToEnum","useAssetSelectStore","defineStore","assetListItems","loader","assetType","AssetTypeValue","selectedAssets","singleMode","minCount","maxCount","showLoader","hideLoader","setLicenceId","setSingleMode","setAssetType","setMinCount","setMaxCount","setList","appendList","assets","asset","toggleSelectedByIndex","isSelectedMax","unselectAllExcept","clearSelected","addToSelected","removeFromSelected","ignoreIndex","assetItem","assetId","getSelectedMainFileIds","fileIds","getSelectedAssetIds","getSelectedAssets","getSelectedData","selectedCount","reset","filterIsTouched","useAssetListActions","damClient","apiFetchAssetList","assetListStore","storeToRefs","fetchAssetList","fetchNextPage","resetAssetList","filterTouch","filterUnTouch","initStoreContext","IMAGE_HEIGHT","IMAGE_BG_COLOR_DEFAULT","useAssetItemActions","assetStatus","imageProperties","tableImageProperties","placeholder16x9","onError","srcComputed","showIconComputed","prettyBytes","bytes","decimals","dm","sizes","IMAGE_WIDTH","AssetSelectGridView","gridView","useGridView","setGridView","sidebarLeft","useSidebar","toggleSidebar","closeSidebar","openSidebar","onAnyFilterUpdate","submitFilter","componentComputed","AssetSelectFilterFormImage","AssetSelectFilterFormDefault","dialogLocal","defaultLicenceId","autoloadOnIntersect","isIntersecting","AssetSelectListTable","AssetSelectListTiles","disabledSubmit","booleanToInteger","useAnzuUserFactory","resourceName","_system","_resourceName","usePermissionConfigFactory","usePermissionGroupFactory","isValidHTTPStatus","statusCode","replaceUrlParameters","urlTemplate","urlParams","overrideUrlTemplate","apiAnyRequest","method","reject","axiosConfig","apiCreateOne","apiDeleteOne","useApiQueryBuilder","querySetLimit","queryAdd","querySetOffset","page","limit","querySetOrder","field","desc","formatValue","queryAddFilter","filterVariant","getValue","isSearchApi","generateByIdsApiQuery","queryBuild","apiFetchByIds","isApiResponseList","isApiInfiniteResponseList","generateListApiQuery","querySetFilters","searchApi","resData","apiFetchOne","apiUpdateOne","useErrors","useJobApi","id","JOB_RESOURCE_USER_DATA_DELETE","useJobBaseResource","customJobs","jobResourceOptions","arrayItemToggle","arrayToString","arrayFromArgs","arrayFlatten","arraysHaveSameElements","array1","array2","sortedArray1","sortedArray2","browserHistoryReplaceUrlByString","browserHistoryReplaceUrlByRouter","to","resolved","en","alert","button","anzuUser","job","log","permissionGroup","assetSelect","time","vuetify","apiValidation","apiForbiddenOperation","jsValidation","sk","useValidateBetween","between","useValidateEmail","email","useValidateMaxLength","useValidateMaxValue","maxValue","useValidateMinLength","minLength","useValidateMinValue","minValue","useValidateNumeric","numeric","useValidateRequired","required","useValidateSlug","helpers","useValidateStringArrayItemLength","withI18nMessage","stringArrayItemLengthValidator","useValidateUrl","url","useValidate","DATETIME_AUTO_LABEL_TRACKING","defaultColumn","createDatatableColumnsConfig","columnsHidden","disableActions","customPagination","customI18n","localI18n","prop","columnsAll","columnsVisible","columns","column","useCommonVuetifyConfig","VBtn","VChip","defineCached","mapFullToMinimal","mapIdToMinimal","fetchCallback","idProp","cache","toFetch","toAdd","arg","addManual","updateMap","updateToFetch","apiFetch","debouncedFetch","useDebounceFn","loadCommonFonts","useCommonJobFactory","createBase","getRandomValues","rnds8","rng","byteToHex","unsafeStringify","_nodeId","_clockseq","_lastMSecs","_lastNSecs","v1","buf","clockseq","seedBytes","msecs","nsecs","dt","tl","tmh","generateUUIDv1","uuidv1","status","useLoginStatus","isStatusNotDefined","isStatusLoginSuccess","isStatusSsoCommunicationFailure","isStatusInternalErrorFailure","isStatusUnauthorized","MINUTE_IN_SECONDS","HOUR_IN_SECONDS","DAY_IN_SECONDS","useRemainingTime","remainingTime","short","prefix"],"mappings":"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","x_google_ignoreList":[13,24,25,48,49,50,51,52,53,54,55,56,57,58,59,173,174,175]}