- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- */
-
-/** Used as the size to enable large array optimizations. */
-var LARGE_ARRAY_SIZE = 200;
-
-/** Used as the `TypeError` message for "Functions" methods. */
-var FUNC_ERROR_TEXT = 'Expected a function';
-
-/** Used to stand-in for `undefined` hash values. */
-var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
-/** Used to compose bitmasks for comparison styles. */
-var UNORDERED_COMPARE_FLAG = 1,
- PARTIAL_COMPARE_FLAG = 2;
-
-/** Used as references for various `Number` constants. */
-var INFINITY = 1 / 0,
- MAX_SAFE_INTEGER = 9007199254740991;
-
-/** `Object#toString` result references. */
-var argsTag = '[object Arguments]',
- arrayTag = '[object Array]',
- boolTag = '[object Boolean]',
- dateTag = '[object Date]',
- errorTag = '[object Error]',
- funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]',
- mapTag = '[object Map]',
- numberTag = '[object Number]',
- objectTag = '[object Object]',
- promiseTag = '[object Promise]',
- regexpTag = '[object RegExp]',
- setTag = '[object Set]',
- stringTag = '[object String]',
- symbolTag = '[object Symbol]',
- weakMapTag = '[object WeakMap]';
-
-var arrayBufferTag = '[object ArrayBuffer]',
- dataViewTag = '[object DataView]',
- float32Tag = '[object Float32Array]',
- float64Tag = '[object Float64Array]',
- int8Tag = '[object Int8Array]',
- int16Tag = '[object Int16Array]',
- int32Tag = '[object Int32Array]',
- uint8Tag = '[object Uint8Array]',
- uint8ClampedTag = '[object Uint8ClampedArray]',
- uint16Tag = '[object Uint16Array]',
- uint32Tag = '[object Uint32Array]';
-
-/** Used to match property names within property paths. */
-var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
- reIsPlainProp = /^\w*$/,
- reLeadingDot = /^\./,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
-
-/**
- * Used to match `RegExp`
- * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
- */
-var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
-
-/** Used to match backslashes in property paths. */
-var reEscapeChar = /\\(\\)?/g;
-
-/** Used to detect host constructors (Safari). */
-var reIsHostCtor = /^\[object .+?Constructor\]$/;
-
-/** Used to detect unsigned integer values. */
-var reIsUint = /^(?:0|[1-9]\d*)$/;
-
-/** Used to identify `toStringTag` values of typed arrays. */
-var typedArrayTags = {};
-typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
-typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
-typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
-typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
-typedArrayTags[uint32Tag] = true;
-typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
-typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
-typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
-typedArrayTags[errorTag] = typedArrayTags[funcTag] =
-typedArrayTags[mapTag] = typedArrayTags[numberTag] =
-typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
-typedArrayTags[setTag] = typedArrayTags[stringTag] =
-typedArrayTags[weakMapTag] = false;
-
-/** Detect free variable `global` from Node.js. */
-var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
-
-/** Detect free variable `self`. */
-var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
-
-/** Used as a reference to the global object. */
-var root = freeGlobal || freeSelf || Function('return this')();
-
-/** Detect free variable `exports`. */
-var freeExports = true && exports && !exports.nodeType && exports;
-
-/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
-
-/** Detect the popular CommonJS extension `module.exports`. */
-var moduleExports = freeModule && freeModule.exports === freeExports;
-
-/** Detect free variable `process` from Node.js. */
-var freeProcess = moduleExports && freeGlobal.process;
-
-/** Used to access faster Node.js helpers. */
-var nodeUtil = (function() {
- try {
- return freeProcess && freeProcess.binding('util');
- } catch (e) {}
-}());
-
-/* Node.js helper references. */
-var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
-
-/**
- * A specialized version of `_.map` for arrays without support for iteratee
- * shorthands.
- *
- * @private
- * @param {Array} [array] The array to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns the new mapped array.
- */
-function arrayMap(array, iteratee) {
- var index = -1,
- length = array ? array.length : 0,
- result = Array(length);
-
- while (++index < length) {
- result[index] = iteratee(array[index], index, array);
- }
- return result;
-}
-
-/**
- * A specialized version of `_.some` for arrays without support for iteratee
- * shorthands.
- *
- * @private
- * @param {Array} [array] The array to iterate over.
- * @param {Function} predicate The function invoked per iteration.
- * @returns {boolean} Returns `true` if any element passes the predicate check,
- * else `false`.
- */
-function arraySome(array, predicate) {
- var index = -1,
- length = array ? array.length : 0;
-
- while (++index < length) {
- if (predicate(array[index], index, array)) {
- return true;
- }
- }
- return false;
-}
-
-/**
- * The base implementation of `_.property` without support for deep paths.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @returns {Function} Returns the new accessor function.
- */
-function baseProperty(key) {
- return function(object) {
- return object == null ? undefined : object[key];
- };
-}
-
-/**
- * The base implementation of `_.times` without support for iteratee shorthands
- * or max array length checks.
- *
- * @private
- * @param {number} n The number of times to invoke `iteratee`.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns the array of results.
- */
-function baseTimes(n, iteratee) {
- var index = -1,
- result = Array(n);
-
- while (++index < n) {
- result[index] = iteratee(index);
- }
- return result;
-}
-
-/**
- * The base implementation of `_.unary` without support for storing metadata.
- *
- * @private
- * @param {Function} func The function to cap arguments for.
- * @returns {Function} Returns the new capped function.
- */
-function baseUnary(func) {
- return function(value) {
- return func(value);
- };
-}
-
-/**
- * Gets the value at `key` of `object`.
- *
- * @private
- * @param {Object} [object] The object to query.
- * @param {string} key The key of the property to get.
- * @returns {*} Returns the property value.
- */
-function getValue(object, key) {
- return object == null ? undefined : object[key];
-}
-
-/**
- * Checks if `value` is a host object in IE < 9.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
- */
-function isHostObject(value) {
- // Many host objects are `Object` objects that can coerce to strings
- // despite having improperly defined `toString` methods.
- var result = false;
- if (value != null && typeof value.toString != 'function') {
- try {
- result = !!(value + '');
- } catch (e) {}
- }
- return result;
-}
-
-/**
- * Converts `map` to its key-value pairs.
- *
- * @private
- * @param {Object} map The map to convert.
- * @returns {Array} Returns the key-value pairs.
- */
-function mapToArray(map) {
- var index = -1,
- result = Array(map.size);
-
- map.forEach(function(value, key) {
- result[++index] = [key, value];
- });
- return result;
-}
-
-/**
- * Creates a unary function that invokes `func` with its argument transformed.
- *
- * @private
- * @param {Function} func The function to wrap.
- * @param {Function} transform The argument transform.
- * @returns {Function} Returns the new function.
- */
-function overArg(func, transform) {
- return function(arg) {
- return func(transform(arg));
- };
-}
-
-/**
- * Converts `set` to an array of its values.
- *
- * @private
- * @param {Object} set The set to convert.
- * @returns {Array} Returns the values.
- */
-function setToArray(set) {
- var index = -1,
- result = Array(set.size);
-
- set.forEach(function(value) {
- result[++index] = value;
- });
- return result;
-}
-
-/** Used for built-in method references. */
-var arrayProto = Array.prototype,
- funcProto = Function.prototype,
- objectProto = Object.prototype;
-
-/** Used to detect overreaching core-js shims. */
-var coreJsData = root['__core-js_shared__'];
-
-/** Used to detect methods masquerading as native. */
-var maskSrcKey = (function() {
- var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
- return uid ? ('Symbol(src)_1.' + uid) : '';
-}());
-
-/** Used to resolve the decompiled source of functions. */
-var funcToString = funcProto.toString;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
-/** Used to detect if a method is native. */
-var reIsNative = RegExp('^' +
- funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
-);
-
-/** Built-in value references. */
-var Symbol = root.Symbol,
- Uint8Array = root.Uint8Array,
- propertyIsEnumerable = objectProto.propertyIsEnumerable,
- splice = arrayProto.splice;
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeKeys = overArg(Object.keys, Object);
-
-/* Built-in method references that are verified to be native. */
-var DataView = getNative(root, 'DataView'),
- Map = getNative(root, 'Map'),
- Promise = getNative(root, 'Promise'),
- Set = getNative(root, 'Set'),
- WeakMap = getNative(root, 'WeakMap'),
- nativeCreate = getNative(Object, 'create');
-
-/** Used to detect maps, sets, and weakmaps. */
-var dataViewCtorString = toSource(DataView),
- mapCtorString = toSource(Map),
- promiseCtorString = toSource(Promise),
- setCtorString = toSource(Set),
- weakMapCtorString = toSource(WeakMap);
-
-/** Used to convert symbols to primitives and strings. */
-var symbolProto = Symbol ? Symbol.prototype : undefined,
- symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,
- symbolToString = symbolProto ? symbolProto.toString : undefined;
-
-/**
- * Creates a hash object.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
-function Hash(entries) {
- var index = -1,
- length = entries ? entries.length : 0;
-
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
-}
-
-/**
- * Removes all key-value entries from the hash.
- *
- * @private
- * @name clear
- * @memberOf Hash
- */
-function hashClear() {
- this.__data__ = nativeCreate ? nativeCreate(null) : {};
-}
-
-/**
- * Removes `key` and its value from the hash.
- *
- * @private
- * @name delete
- * @memberOf Hash
- * @param {Object} hash The hash to modify.
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function hashDelete(key) {
- return this.has(key) && delete this.__data__[key];
-}
-
-/**
- * Gets the hash value for `key`.
- *
- * @private
- * @name get
- * @memberOf Hash
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function hashGet(key) {
- var data = this.__data__;
- if (nativeCreate) {
- var result = data[key];
- return result === HASH_UNDEFINED ? undefined : result;
- }
- return hasOwnProperty.call(data, key) ? data[key] : undefined;
-}
-
-/**
- * Checks if a hash value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf Hash
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function hashHas(key) {
- var data = this.__data__;
- return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
-}
-
-/**
- * Sets the hash `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf Hash
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the hash instance.
- */
-function hashSet(key, value) {
- var data = this.__data__;
- data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
- return this;
-}
-
-// Add methods to `Hash`.
-Hash.prototype.clear = hashClear;
-Hash.prototype['delete'] = hashDelete;
-Hash.prototype.get = hashGet;
-Hash.prototype.has = hashHas;
-Hash.prototype.set = hashSet;
-
-/**
- * Creates an list cache object.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
-function ListCache(entries) {
- var index = -1,
- length = entries ? entries.length : 0;
-
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
-}
-
-/**
- * Removes all key-value entries from the list cache.
- *
- * @private
- * @name clear
- * @memberOf ListCache
- */
-function listCacheClear() {
- this.__data__ = [];
-}
-
-/**
- * Removes `key` and its value from the list cache.
- *
- * @private
- * @name delete
- * @memberOf ListCache
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function listCacheDelete(key) {
- var data = this.__data__,
- index = assocIndexOf(data, key);
-
- if (index < 0) {
- return false;
- }
- var lastIndex = data.length - 1;
- if (index == lastIndex) {
- data.pop();
- } else {
- splice.call(data, index, 1);
- }
- return true;
-}
-
-/**
- * Gets the list cache value for `key`.
- *
- * @private
- * @name get
- * @memberOf ListCache
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function listCacheGet(key) {
- var data = this.__data__,
- index = assocIndexOf(data, key);
-
- return index < 0 ? undefined : data[index][1];
-}
-
-/**
- * Checks if a list cache value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf ListCache
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function listCacheHas(key) {
- return assocIndexOf(this.__data__, key) > -1;
-}
-
-/**
- * Sets the list cache `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf ListCache
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the list cache instance.
- */
-function listCacheSet(key, value) {
- var data = this.__data__,
- index = assocIndexOf(data, key);
-
- if (index < 0) {
- data.push([key, value]);
- } else {
- data[index][1] = value;
- }
- return this;
-}
-
-// Add methods to `ListCache`.
-ListCache.prototype.clear = listCacheClear;
-ListCache.prototype['delete'] = listCacheDelete;
-ListCache.prototype.get = listCacheGet;
-ListCache.prototype.has = listCacheHas;
-ListCache.prototype.set = listCacheSet;
-
-/**
- * Creates a map cache object to store key-value pairs.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
-function MapCache(entries) {
- var index = -1,
- length = entries ? entries.length : 0;
-
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
-}
-
-/**
- * Removes all key-value entries from the map.
- *
- * @private
- * @name clear
- * @memberOf MapCache
- */
-function mapCacheClear() {
- this.__data__ = {
- 'hash': new Hash,
- 'map': new (Map || ListCache),
- 'string': new Hash
- };
-}
-
-/**
- * Removes `key` and its value from the map.
- *
- * @private
- * @name delete
- * @memberOf MapCache
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function mapCacheDelete(key) {
- return getMapData(this, key)['delete'](key);
-}
-
-/**
- * Gets the map value for `key`.
- *
- * @private
- * @name get
- * @memberOf MapCache
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function mapCacheGet(key) {
- return getMapData(this, key).get(key);
-}
-
-/**
- * Checks if a map value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf MapCache
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function mapCacheHas(key) {
- return getMapData(this, key).has(key);
-}
-
-/**
- * Sets the map `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf MapCache
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the map cache instance.
- */
-function mapCacheSet(key, value) {
- getMapData(this, key).set(key, value);
- return this;
-}
-
-// Add methods to `MapCache`.
-MapCache.prototype.clear = mapCacheClear;
-MapCache.prototype['delete'] = mapCacheDelete;
-MapCache.prototype.get = mapCacheGet;
-MapCache.prototype.has = mapCacheHas;
-MapCache.prototype.set = mapCacheSet;
-
-/**
- *
- * Creates an array cache object to store unique values.
- *
- * @private
- * @constructor
- * @param {Array} [values] The values to cache.
- */
-function SetCache(values) {
- var index = -1,
- length = values ? values.length : 0;
-
- this.__data__ = new MapCache;
- while (++index < length) {
- this.add(values[index]);
- }
-}
-
-/**
- * Adds `value` to the array cache.
- *
- * @private
- * @name add
- * @memberOf SetCache
- * @alias push
- * @param {*} value The value to cache.
- * @returns {Object} Returns the cache instance.
- */
-function setCacheAdd(value) {
- this.__data__.set(value, HASH_UNDEFINED);
- return this;
-}
-
-/**
- * Checks if `value` is in the array cache.
- *
- * @private
- * @name has
- * @memberOf SetCache
- * @param {*} value The value to search for.
- * @returns {number} Returns `true` if `value` is found, else `false`.
- */
-function setCacheHas(value) {
- return this.__data__.has(value);
-}
-
-// Add methods to `SetCache`.
-SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
-SetCache.prototype.has = setCacheHas;
-
-/**
- * Creates a stack cache object to store key-value pairs.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
-function Stack(entries) {
- this.__data__ = new ListCache(entries);
-}
-
-/**
- * Removes all key-value entries from the stack.
- *
- * @private
- * @name clear
- * @memberOf Stack
- */
-function stackClear() {
- this.__data__ = new ListCache;
-}
-
-/**
- * Removes `key` and its value from the stack.
- *
- * @private
- * @name delete
- * @memberOf Stack
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function stackDelete(key) {
- return this.__data__['delete'](key);
-}
-
-/**
- * Gets the stack value for `key`.
- *
- * @private
- * @name get
- * @memberOf Stack
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function stackGet(key) {
- return this.__data__.get(key);
-}
-
-/**
- * Checks if a stack value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf Stack
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function stackHas(key) {
- return this.__data__.has(key);
-}
-
-/**
- * Sets the stack `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf Stack
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the stack cache instance.
- */
-function stackSet(key, value) {
- var cache = this.__data__;
- if (cache instanceof ListCache) {
- var pairs = cache.__data__;
- if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
- pairs.push([key, value]);
- return this;
- }
- cache = this.__data__ = new MapCache(pairs);
- }
- cache.set(key, value);
- return this;
-}
-
-// Add methods to `Stack`.
-Stack.prototype.clear = stackClear;
-Stack.prototype['delete'] = stackDelete;
-Stack.prototype.get = stackGet;
-Stack.prototype.has = stackHas;
-Stack.prototype.set = stackSet;
-
-/**
- * Creates an array of the enumerable property names of the array-like `value`.
- *
- * @private
- * @param {*} value The value to query.
- * @param {boolean} inherited Specify returning inherited property names.
- * @returns {Array} Returns the array of property names.
- */
-function arrayLikeKeys(value, inherited) {
- // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
- // Safari 9 makes `arguments.length` enumerable in strict mode.
- var result = (isArray(value) || isArguments(value))
- ? baseTimes(value.length, String)
- : [];
-
- var length = result.length,
- skipIndexes = !!length;
-
- for (var key in value) {
- if ((inherited || hasOwnProperty.call(value, key)) &&
- !(skipIndexes && (key == 'length' || isIndex(key, length)))) {
- result.push(key);
- }
- }
- return result;
-}
-
-/**
- * Gets the index at which the `key` is found in `array` of key-value pairs.
- *
- * @private
- * @param {Array} array The array to inspect.
- * @param {*} key The key to search for.
- * @returns {number} Returns the index of the matched value, else `-1`.
- */
-function assocIndexOf(array, key) {
- var length = array.length;
- while (length--) {
- if (eq(array[length][0], key)) {
- return length;
- }
- }
- return -1;
-}
-
-/**
- * The base implementation of `_.forEach` without support for iteratee shorthands.
- *
- * @private
- * @param {Array|Object} collection The collection to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array|Object} Returns `collection`.
- */
-var baseEach = createBaseEach(baseForOwn);
-
-/**
- * The base implementation of `baseForOwn` which iterates over `object`
- * properties returned by `keysFunc` and invokes `iteratee` for each property.
- * Iteratee functions may exit iteration early by explicitly returning `false`.
- *
- * @private
- * @param {Object} object The object to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @param {Function} keysFunc The function to get the keys of `object`.
- * @returns {Object} Returns `object`.
- */
-var baseFor = createBaseFor();
-
-/**
- * The base implementation of `_.forOwn` without support for iteratee shorthands.
- *
- * @private
- * @param {Object} object The object to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Object} Returns `object`.
- */
-function baseForOwn(object, iteratee) {
- return object && baseFor(object, iteratee, keys);
-}
-
-/**
- * The base implementation of `_.get` without support for default values.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {Array|string} path The path of the property to get.
- * @returns {*} Returns the resolved value.
- */
-function baseGet(object, path) {
- path = isKey(path, object) ? [path] : castPath(path);
-
- var index = 0,
- length = path.length;
-
- while (object != null && index < length) {
- object = object[toKey(path[index++])];
- }
- return (index && index == length) ? object : undefined;
-}
-
-/**
- * The base implementation of `getTag`.
- *
- * @private
- * @param {*} value The value to query.
- * @returns {string} Returns the `toStringTag`.
- */
-function baseGetTag(value) {
- return objectToString.call(value);
-}
-
-/**
- * The base implementation of `_.hasIn` without support for deep paths.
- *
- * @private
- * @param {Object} [object] The object to query.
- * @param {Array|string} key The key to check.
- * @returns {boolean} Returns `true` if `key` exists, else `false`.
- */
-function baseHasIn(object, key) {
- return object != null && key in Object(object);
-}
-
-/**
- * The base implementation of `_.isEqual` which supports partial comparisons
- * and tracks traversed objects.
- *
- * @private
- * @param {*} value The value to compare.
- * @param {*} other The other value to compare.
- * @param {Function} [customizer] The function to customize comparisons.
- * @param {boolean} [bitmask] The bitmask of comparison flags.
- * The bitmask may be composed of the following flags:
- * 1 - Unordered comparison
- * 2 - Partial comparison
- * @param {Object} [stack] Tracks traversed `value` and `other` objects.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- */
-function baseIsEqual(value, other, customizer, bitmask, stack) {
- if (value === other) {
- return true;
- }
- if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {
- return value !== value && other !== other;
- }
- return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);
-}
-
-/**
- * A specialized version of `baseIsEqual` for arrays and objects which performs
- * deep comparisons and tracks traversed objects enabling objects with circular
- * references to be compared.
- *
- * @private
- * @param {Object} object The object to compare.
- * @param {Object} other The other object to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
- * @param {Function} [customizer] The function to customize comparisons.
- * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
- * @param {Object} [stack] Tracks traversed `object` and `other` objects.
- * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
- */
-function baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {
- var objIsArr = isArray(object),
- othIsArr = isArray(other),
- objTag = arrayTag,
- othTag = arrayTag;
-
- if (!objIsArr) {
- objTag = getTag(object);
- objTag = objTag == argsTag ? objectTag : objTag;
- }
- if (!othIsArr) {
- othTag = getTag(other);
- othTag = othTag == argsTag ? objectTag : othTag;
- }
- var objIsObj = objTag == objectTag && !isHostObject(object),
- othIsObj = othTag == objectTag && !isHostObject(other),
- isSameTag = objTag == othTag;
-
- if (isSameTag && !objIsObj) {
- stack || (stack = new Stack);
- return (objIsArr || isTypedArray(object))
- ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)
- : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);
- }
- if (!(bitmask & PARTIAL_COMPARE_FLAG)) {
- var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
- othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
-
- if (objIsWrapped || othIsWrapped) {
- var objUnwrapped = objIsWrapped ? object.value() : object,
- othUnwrapped = othIsWrapped ? other.value() : other;
-
- stack || (stack = new Stack);
- return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack);
- }
- }
- if (!isSameTag) {
- return false;
- }
- stack || (stack = new Stack);
- return equalObjects(object, other, equalFunc, customizer, bitmask, stack);
-}
-
-/**
- * The base implementation of `_.isMatch` without support for iteratee shorthands.
- *
- * @private
- * @param {Object} object The object to inspect.
- * @param {Object} source The object of property values to match.
- * @param {Array} matchData The property names, values, and compare flags to match.
- * @param {Function} [customizer] The function to customize comparisons.
- * @returns {boolean} Returns `true` if `object` is a match, else `false`.
- */
-function baseIsMatch(object, source, matchData, customizer) {
- var index = matchData.length,
- length = index,
- noCustomizer = !customizer;
-
- if (object == null) {
- return !length;
- }
- object = Object(object);
- while (index--) {
- var data = matchData[index];
- if ((noCustomizer && data[2])
- ? data[1] !== object[data[0]]
- : !(data[0] in object)
- ) {
- return false;
- }
- }
- while (++index < length) {
- data = matchData[index];
- var key = data[0],
- objValue = object[key],
- srcValue = data[1];
-
- if (noCustomizer && data[2]) {
- if (objValue === undefined && !(key in object)) {
- return false;
- }
- } else {
- var stack = new Stack;
- if (customizer) {
- var result = customizer(objValue, srcValue, key, object, source, stack);
- }
- if (!(result === undefined
- ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack)
- : result
- )) {
- return false;
- }
- }
- }
- return true;
-}
-
-/**
- * The base implementation of `_.isNative` without bad shim checks.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a native function,
- * else `false`.
- */
-function baseIsNative(value) {
- if (!isObject(value) || isMasked(value)) {
- return false;
- }
- var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;
- return pattern.test(toSource(value));
-}
-
-/**
- * The base implementation of `_.isTypedArray` without Node.js optimizations.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
- */
-function baseIsTypedArray(value) {
- return isObjectLike(value) &&
- isLength(value.length) && !!typedArrayTags[objectToString.call(value)];
-}
-
-/**
- * The base implementation of `_.iteratee`.
- *
- * @private
- * @param {*} [value=_.identity] The value to convert to an iteratee.
- * @returns {Function} Returns the iteratee.
- */
-function baseIteratee(value) {
- // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.
- // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.
- if (typeof value == 'function') {
- return value;
- }
- if (value == null) {
- return identity;
- }
- if (typeof value == 'object') {
- return isArray(value)
- ? baseMatchesProperty(value[0], value[1])
- : baseMatches(value);
- }
- return property(value);
-}
-
-/**
- * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names.
- */
-function baseKeys(object) {
- if (!isPrototype(object)) {
- return nativeKeys(object);
- }
- var result = [];
- for (var key in Object(object)) {
- if (hasOwnProperty.call(object, key) && key != 'constructor') {
- result.push(key);
- }
- }
- return result;
-}
-
-/**
- * The base implementation of `_.map` without support for iteratee shorthands.
- *
- * @private
- * @param {Array|Object} collection The collection to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns the new mapped array.
- */
-function baseMap(collection, iteratee) {
- var index = -1,
- result = isArrayLike(collection) ? Array(collection.length) : [];
-
- baseEach(collection, function(value, key, collection) {
- result[++index] = iteratee(value, key, collection);
- });
- return result;
-}
-
-/**
- * The base implementation of `_.matches` which doesn't clone `source`.
- *
- * @private
- * @param {Object} source The object of property values to match.
- * @returns {Function} Returns the new spec function.
- */
-function baseMatches(source) {
- var matchData = getMatchData(source);
- if (matchData.length == 1 && matchData[0][2]) {
- return matchesStrictComparable(matchData[0][0], matchData[0][1]);
- }
- return function(object) {
- return object === source || baseIsMatch(object, source, matchData);
- };
-}
-
-/**
- * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.
- *
- * @private
- * @param {string} path The path of the property to get.
- * @param {*} srcValue The value to match.
- * @returns {Function} Returns the new spec function.
- */
-function baseMatchesProperty(path, srcValue) {
- if (isKey(path) && isStrictComparable(srcValue)) {
- return matchesStrictComparable(toKey(path), srcValue);
- }
- return function(object) {
- var objValue = get(object, path);
- return (objValue === undefined && objValue === srcValue)
- ? hasIn(object, path)
- : baseIsEqual(srcValue, objValue, undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG);
- };
-}
-
-/**
- * A specialized version of `baseProperty` which supports deep paths.
- *
- * @private
- * @param {Array|string} path The path of the property to get.
- * @returns {Function} Returns the new accessor function.
- */
-function basePropertyDeep(path) {
- return function(object) {
- return baseGet(object, path);
- };
-}
-
-/**
- * The base implementation of `_.toString` which doesn't convert nullish
- * values to empty strings.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- */
-function baseToString(value) {
- // Exit early for strings to avoid a performance hit in some environments.
- if (typeof value == 'string') {
- return value;
- }
- if (isSymbol(value)) {
- return symbolToString ? symbolToString.call(value) : '';
- }
- var result = (value + '');
- return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
-}
-
-/**
- * Casts `value` to a path array if it's not one.
- *
- * @private
- * @param {*} value The value to inspect.
- * @returns {Array} Returns the cast property path array.
- */
-function castPath(value) {
- return isArray(value) ? value : stringToPath(value);
-}
-
-/**
- * Creates a `baseEach` or `baseEachRight` function.
- *
- * @private
- * @param {Function} eachFunc The function to iterate over a collection.
- * @param {boolean} [fromRight] Specify iterating from right to left.
- * @returns {Function} Returns the new base function.
- */
-function createBaseEach(eachFunc, fromRight) {
- return function(collection, iteratee) {
- if (collection == null) {
- return collection;
- }
- if (!isArrayLike(collection)) {
- return eachFunc(collection, iteratee);
- }
- var length = collection.length,
- index = fromRight ? length : -1,
- iterable = Object(collection);
-
- while ((fromRight ? index-- : ++index < length)) {
- if (iteratee(iterable[index], index, iterable) === false) {
- break;
- }
- }
- return collection;
- };
-}
-
-/**
- * Creates a base function for methods like `_.forIn` and `_.forOwn`.
- *
- * @private
- * @param {boolean} [fromRight] Specify iterating from right to left.
- * @returns {Function} Returns the new base function.
- */
-function createBaseFor(fromRight) {
- return function(object, iteratee, keysFunc) {
- var index = -1,
- iterable = Object(object),
- props = keysFunc(object),
- length = props.length;
-
- while (length--) {
- var key = props[fromRight ? length : ++index];
- if (iteratee(iterable[key], key, iterable) === false) {
- break;
- }
- }
- return object;
- };
-}
-
-/**
- * A specialized version of `baseIsEqualDeep` for arrays with support for
- * partial deep comparisons.
- *
- * @private
- * @param {Array} array The array to compare.
- * @param {Array} other The other array to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
- * @param {Function} customizer The function to customize comparisons.
- * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
- * @param {Object} stack Tracks traversed `array` and `other` objects.
- * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
- */
-function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
- var isPartial = bitmask & PARTIAL_COMPARE_FLAG,
- arrLength = array.length,
- othLength = other.length;
-
- if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
- return false;
- }
- // Assume cyclic values are equal.
- var stacked = stack.get(array);
- if (stacked && stack.get(other)) {
- return stacked == other;
- }
- var index = -1,
- result = true,
- seen = (bitmask & UNORDERED_COMPARE_FLAG) ? new SetCache : undefined;
-
- stack.set(array, other);
- stack.set(other, array);
-
- // Ignore non-index properties.
- while (++index < arrLength) {
- var arrValue = array[index],
- othValue = other[index];
-
- if (customizer) {
- var compared = isPartial
- ? customizer(othValue, arrValue, index, other, array, stack)
- : customizer(arrValue, othValue, index, array, other, stack);
- }
- if (compared !== undefined) {
- if (compared) {
- continue;
- }
- result = false;
- break;
- }
- // Recursively compare arrays (susceptible to call stack limits).
- if (seen) {
- if (!arraySome(other, function(othValue, othIndex) {
- if (!seen.has(othIndex) &&
- (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {
- return seen.add(othIndex);
- }
- })) {
- result = false;
- break;
- }
- } else if (!(
- arrValue === othValue ||
- equalFunc(arrValue, othValue, customizer, bitmask, stack)
- )) {
- result = false;
- break;
- }
- }
- stack['delete'](array);
- stack['delete'](other);
- return result;
-}
-
-/**
- * A specialized version of `baseIsEqualDeep` for comparing objects of
- * the same `toStringTag`.
- *
- * **Note:** This function only supports comparing values with tags of
- * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
- *
- * @private
- * @param {Object} object The object to compare.
- * @param {Object} other The other object to compare.
- * @param {string} tag The `toStringTag` of the objects to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
- * @param {Function} customizer The function to customize comparisons.
- * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
- * @param {Object} stack Tracks traversed `object` and `other` objects.
- * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
- */
-function equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {
- switch (tag) {
- case dataViewTag:
- if ((object.byteLength != other.byteLength) ||
- (object.byteOffset != other.byteOffset)) {
- return false;
- }
- object = object.buffer;
- other = other.buffer;
-
- case arrayBufferTag:
- if ((object.byteLength != other.byteLength) ||
- !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
- return false;
- }
- return true;
-
- case boolTag:
- case dateTag:
- case numberTag:
- // Coerce booleans to `1` or `0` and dates to milliseconds.
- // Invalid dates are coerced to `NaN`.
- return eq(+object, +other);
-
- case errorTag:
- return object.name == other.name && object.message == other.message;
-
- case regexpTag:
- case stringTag:
- // Coerce regexes to strings and treat strings, primitives and objects,
- // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
- // for more details.
- return object == (other + '');
-
- case mapTag:
- var convert = mapToArray;
-
- case setTag:
- var isPartial = bitmask & PARTIAL_COMPARE_FLAG;
- convert || (convert = setToArray);
-
- if (object.size != other.size && !isPartial) {
- return false;
- }
- // Assume cyclic values are equal.
- var stacked = stack.get(object);
- if (stacked) {
- return stacked == other;
- }
- bitmask |= UNORDERED_COMPARE_FLAG;
-
- // Recursively compare objects (susceptible to call stack limits).
- stack.set(object, other);
- var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack);
- stack['delete'](object);
- return result;
-
- case symbolTag:
- if (symbolValueOf) {
- return symbolValueOf.call(object) == symbolValueOf.call(other);
- }
- }
- return false;
-}
-
-/**
- * A specialized version of `baseIsEqualDeep` for objects with support for
- * partial deep comparisons.
- *
- * @private
- * @param {Object} object The object to compare.
- * @param {Object} other The other object to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
- * @param {Function} customizer The function to customize comparisons.
- * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
- * @param {Object} stack Tracks traversed `object` and `other` objects.
- * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
- */
-function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
- var isPartial = bitmask & PARTIAL_COMPARE_FLAG,
- objProps = keys(object),
- objLength = objProps.length,
- othProps = keys(other),
- othLength = othProps.length;
-
- if (objLength != othLength && !isPartial) {
- return false;
- }
- var index = objLength;
- while (index--) {
- var key = objProps[index];
- if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
- return false;
- }
- }
- // Assume cyclic values are equal.
- var stacked = stack.get(object);
- if (stacked && stack.get(other)) {
- return stacked == other;
- }
- var result = true;
- stack.set(object, other);
- stack.set(other, object);
-
- var skipCtor = isPartial;
- while (++index < objLength) {
- key = objProps[index];
- var objValue = object[key],
- othValue = other[key];
-
- if (customizer) {
- var compared = isPartial
- ? customizer(othValue, objValue, key, other, object, stack)
- : customizer(objValue, othValue, key, object, other, stack);
- }
- // Recursively compare objects (susceptible to call stack limits).
- if (!(compared === undefined
- ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack))
- : compared
- )) {
- result = false;
- break;
- }
- skipCtor || (skipCtor = key == 'constructor');
- }
- if (result && !skipCtor) {
- var objCtor = object.constructor,
- othCtor = other.constructor;
-
- // Non `Object` object instances with different constructors are not equal.
- if (objCtor != othCtor &&
- ('constructor' in object && 'constructor' in other) &&
- !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
- typeof othCtor == 'function' && othCtor instanceof othCtor)) {
- result = false;
- }
- }
- stack['delete'](object);
- stack['delete'](other);
- return result;
-}
-
-/**
- * Gets the data for `map`.
- *
- * @private
- * @param {Object} map The map to query.
- * @param {string} key The reference key.
- * @returns {*} Returns the map data.
- */
-function getMapData(map, key) {
- var data = map.__data__;
- return isKeyable(key)
- ? data[typeof key == 'string' ? 'string' : 'hash']
- : data.map;
-}
-
-/**
- * Gets the property names, values, and compare flags of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array} Returns the match data of `object`.
- */
-function getMatchData(object) {
- var result = keys(object),
- length = result.length;
-
- while (length--) {
- var key = result[length],
- value = object[key];
-
- result[length] = [key, value, isStrictComparable(value)];
- }
- return result;
-}
-
-/**
- * Gets the native function at `key` of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {string} key The key of the method to get.
- * @returns {*} Returns the function if it's native, else `undefined`.
- */
-function getNative(object, key) {
- var value = getValue(object, key);
- return baseIsNative(value) ? value : undefined;
-}
-
-/**
- * Gets the `toStringTag` of `value`.
- *
- * @private
- * @param {*} value The value to query.
- * @returns {string} Returns the `toStringTag`.
- */
-var getTag = baseGetTag;
-
-// Fallback for data views, maps, sets, and weak maps in IE 11,
-// for data views in Edge < 14, and promises in Node.js.
-if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
- (Map && getTag(new Map) != mapTag) ||
- (Promise && getTag(Promise.resolve()) != promiseTag) ||
- (Set && getTag(new Set) != setTag) ||
- (WeakMap && getTag(new WeakMap) != weakMapTag)) {
- getTag = function(value) {
- var result = objectToString.call(value),
- Ctor = result == objectTag ? value.constructor : undefined,
- ctorString = Ctor ? toSource(Ctor) : undefined;
-
- if (ctorString) {
- switch (ctorString) {
- case dataViewCtorString: return dataViewTag;
- case mapCtorString: return mapTag;
- case promiseCtorString: return promiseTag;
- case setCtorString: return setTag;
- case weakMapCtorString: return weakMapTag;
- }
- }
- return result;
- };
-}
-
-/**
- * Checks if `path` exists on `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {Array|string} path The path to check.
- * @param {Function} hasFunc The function to check properties.
- * @returns {boolean} Returns `true` if `path` exists, else `false`.
- */
-function hasPath(object, path, hasFunc) {
- path = isKey(path, object) ? [path] : castPath(path);
-
- var result,
- index = -1,
- length = path.length;
-
- while (++index < length) {
- var key = toKey(path[index]);
- if (!(result = object != null && hasFunc(object, key))) {
- break;
- }
- object = object[key];
- }
- if (result) {
- return result;
- }
- var length = object ? object.length : 0;
- return !!length && isLength(length) && isIndex(key, length) &&
- (isArray(object) || isArguments(object));
-}
-
-/**
- * Checks if `value` is a valid array-like index.
- *
- * @private
- * @param {*} value The value to check.
- * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
- * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
- */
-function isIndex(value, length) {
- length = length == null ? MAX_SAFE_INTEGER : length;
- return !!length &&
- (typeof value == 'number' || reIsUint.test(value)) &&
- (value > -1 && value % 1 == 0 && value < length);
-}
-
-/**
- * Checks if `value` is a property name and not a property path.
- *
- * @private
- * @param {*} value The value to check.
- * @param {Object} [object] The object to query keys on.
- * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
- */
-function isKey(value, object) {
- if (isArray(value)) {
- return false;
- }
- var type = typeof value;
- if (type == 'number' || type == 'symbol' || type == 'boolean' ||
- value == null || isSymbol(value)) {
- return true;
- }
- return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
- (object != null && value in Object(object));
-}
-
-/**
- * Checks if `value` is suitable for use as unique object key.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
- */
-function isKeyable(value) {
- var type = typeof value;
- return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
- ? (value !== '__proto__')
- : (value === null);
-}
-
-/**
- * Checks if `func` has its source masked.
- *
- * @private
- * @param {Function} func The function to check.
- * @returns {boolean} Returns `true` if `func` is masked, else `false`.
- */
-function isMasked(func) {
- return !!maskSrcKey && (maskSrcKey in func);
-}
-
-/**
- * Checks if `value` is likely a prototype object.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
- */
-function isPrototype(value) {
- var Ctor = value && value.constructor,
- proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
-
- return value === proto;
-}
-
-/**
- * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` if suitable for strict
- * equality comparisons, else `false`.
- */
-function isStrictComparable(value) {
- return value === value && !isObject(value);
-}
-
-/**
- * A specialized version of `matchesProperty` for source values suitable
- * for strict equality comparisons, i.e. `===`.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @param {*} srcValue The value to match.
- * @returns {Function} Returns the new spec function.
- */
-function matchesStrictComparable(key, srcValue) {
- return function(object) {
- if (object == null) {
- return false;
- }
- return object[key] === srcValue &&
- (srcValue !== undefined || (key in Object(object)));
- };
-}
-
-/**
- * Converts `string` to a property path array.
- *
- * @private
- * @param {string} string The string to convert.
- * @returns {Array} Returns the property path array.
- */
-var stringToPath = memoize(function(string) {
- string = toString(string);
-
- var result = [];
- if (reLeadingDot.test(string)) {
- result.push('');
- }
- string.replace(rePropName, function(match, number, quote, string) {
- result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
- });
- return result;
-});
-
-/**
- * Converts `value` to a string key if it's not a string or symbol.
- *
- * @private
- * @param {*} value The value to inspect.
- * @returns {string|symbol} Returns the key.
- */
-function toKey(value) {
- if (typeof value == 'string' || isSymbol(value)) {
- return value;
- }
- var result = (value + '');
- return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
-}
-
-/**
- * Converts `func` to its source code.
- *
- * @private
- * @param {Function} func The function to process.
- * @returns {string} Returns the source code.
- */
-function toSource(func) {
- if (func != null) {
- try {
- return funcToString.call(func);
- } catch (e) {}
- try {
- return (func + '');
- } catch (e) {}
- }
- return '';
-}
-
-/**
- * Creates an array of values by running each element in `collection` thru
- * `iteratee`. The iteratee is invoked with three arguments:
- * (value, index|key, collection).
- *
- * Many lodash methods are guarded to work as iteratees for methods like
- * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.
- *
- * The guarded methods are:
- * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,
- * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,
- * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,
- * `template`, `trim`, `trimEnd`, `trimStart`, and `words`
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Collection
- * @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [iteratee=_.identity] The function invoked per iteration.
- * @returns {Array} Returns the new mapped array.
- * @example
- *
- * function square(n) {
- * return n * n;
- * }
- *
- * _.map([4, 8], square);
- * // => [16, 64]
- *
- * _.map({ 'a': 4, 'b': 8 }, square);
- * // => [16, 64] (iteration order is not guaranteed)
- *
- * var users = [
- * { 'user': 'barney' },
- * { 'user': 'fred' }
- * ];
- *
- * // The `_.property` iteratee shorthand.
- * _.map(users, 'user');
- * // => ['barney', 'fred']
- */
-function map(collection, iteratee) {
- var func = isArray(collection) ? arrayMap : baseMap;
- return func(collection, baseIteratee(iteratee, 3));
-}
-
-/**
- * Creates a function that memoizes the result of `func`. If `resolver` is
- * provided, it determines the cache key for storing the result based on the
- * arguments provided to the memoized function. By default, the first argument
- * provided to the memoized function is used as the map cache key. The `func`
- * is invoked with the `this` binding of the memoized function.
- *
- * **Note:** The cache is exposed as the `cache` property on the memoized
- * function. Its creation may be customized by replacing the `_.memoize.Cache`
- * constructor with one whose instances implement the
- * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
- * method interface of `delete`, `get`, `has`, and `set`.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Function
- * @param {Function} func The function to have its output memoized.
- * @param {Function} [resolver] The function to resolve the cache key.
- * @returns {Function} Returns the new memoized function.
- * @example
- *
- * var object = { 'a': 1, 'b': 2 };
- * var other = { 'c': 3, 'd': 4 };
- *
- * var values = _.memoize(_.values);
- * values(object);
- * // => [1, 2]
- *
- * values(other);
- * // => [3, 4]
- *
- * object.a = 2;
- * values(object);
- * // => [1, 2]
- *
- * // Modify the result cache.
- * values.cache.set(object, ['a', 'b']);
- * values(object);
- * // => ['a', 'b']
- *
- * // Replace `_.memoize.Cache`.
- * _.memoize.Cache = WeakMap;
- */
-function memoize(func, resolver) {
- if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {
- throw new TypeError(FUNC_ERROR_TEXT);
- }
- var memoized = function() {
- var args = arguments,
- key = resolver ? resolver.apply(this, args) : args[0],
- cache = memoized.cache;
-
- if (cache.has(key)) {
- return cache.get(key);
- }
- var result = func.apply(this, args);
- memoized.cache = cache.set(key, result);
- return result;
- };
- memoized.cache = new (memoize.Cache || MapCache);
- return memoized;
-}
-
-// Assign cache to `_.memoize`.
-memoize.Cache = MapCache;
-
-/**
- * Performs a
- * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
- * comparison between two values to determine if they are equivalent.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to compare.
- * @param {*} other The other value to compare.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- * @example
- *
- * var object = { 'a': 1 };
- * var other = { 'a': 1 };
- *
- * _.eq(object, object);
- * // => true
- *
- * _.eq(object, other);
- * // => false
- *
- * _.eq('a', 'a');
- * // => true
- *
- * _.eq('a', Object('a'));
- * // => false
- *
- * _.eq(NaN, NaN);
- * // => true
- */
-function eq(value, other) {
- return value === other || (value !== value && other !== other);
-}
-
-/**
- * Checks if `value` is likely an `arguments` object.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an `arguments` object,
- * else `false`.
- * @example
- *
- * _.isArguments(function() { return arguments; }());
- * // => true
- *
- * _.isArguments([1, 2, 3]);
- * // => false
- */
-function isArguments(value) {
- // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
- return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&
- (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
-}
-
-/**
- * Checks if `value` is classified as an `Array` object.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an array, else `false`.
- * @example
- *
- * _.isArray([1, 2, 3]);
- * // => true
- *
- * _.isArray(document.body.children);
- * // => false
- *
- * _.isArray('abc');
- * // => false
- *
- * _.isArray(_.noop);
- * // => false
- */
-var isArray = Array.isArray;
-
-/**
- * Checks if `value` is array-like. A value is considered array-like if it's
- * not a function and has a `value.length` that's an integer greater than or
- * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
- * @example
- *
- * _.isArrayLike([1, 2, 3]);
- * // => true
- *
- * _.isArrayLike(document.body.children);
- * // => true
- *
- * _.isArrayLike('abc');
- * // => true
- *
- * _.isArrayLike(_.noop);
- * // => false
- */
-function isArrayLike(value) {
- return value != null && isLength(value.length) && !isFunction(value);
-}
-
-/**
- * This method is like `_.isArrayLike` except that it also checks if `value`
- * is an object.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an array-like object,
- * else `false`.
- * @example
- *
- * _.isArrayLikeObject([1, 2, 3]);
- * // => true
- *
- * _.isArrayLikeObject(document.body.children);
- * // => true
- *
- * _.isArrayLikeObject('abc');
- * // => false
- *
- * _.isArrayLikeObject(_.noop);
- * // => false
- */
-function isArrayLikeObject(value) {
- return isObjectLike(value) && isArrayLike(value);
-}
-
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a function, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8-9 which returns 'object' for typed array and other constructors.
- var tag = isObject(value) ? objectToString.call(value) : '';
- return tag == funcTag || tag == genTag;
-}
-
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This method is loosely based on
- * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- * @example
- *
- * _.isLength(3);
- * // => true
- *
- * _.isLength(Number.MIN_VALUE);
- * // => false
- *
- * _.isLength(Infinity);
- * // => false
- *
- * _.isLength('3');
- * // => false
- */
-function isLength(value) {
- return typeof value == 'number' &&
- value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
-}
-
-/**
- * Checks if `value` is the
- * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
- * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(_.noop);
- * // => true
- *
- * _.isObject(null);
- * // => false
- */
-function isObject(value) {
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/**
- * Checks if `value` is classified as a `Symbol` primitive or object.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
- * @example
- *
- * _.isSymbol(Symbol.iterator);
- * // => true
- *
- * _.isSymbol('abc');
- * // => false
- */
-function isSymbol(value) {
- return typeof value == 'symbol' ||
- (isObjectLike(value) && objectToString.call(value) == symbolTag);
-}
-
-/**
- * Checks if `value` is classified as a typed array.
- *
- * @static
- * @memberOf _
- * @since 3.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
- * @example
- *
- * _.isTypedArray(new Uint8Array);
- * // => true
- *
- * _.isTypedArray([]);
- * // => false
- */
-var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
-
-/**
- * Converts `value` to a string. An empty string is returned for `null`
- * and `undefined` values. The sign of `-0` is preserved.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- * @example
- *
- * _.toString(null);
- * // => ''
- *
- * _.toString(-0);
- * // => '-0'
- *
- * _.toString([1, 2, 3]);
- * // => '1,2,3'
- */
-function toString(value) {
- return value == null ? '' : baseToString(value);
-}
-
-/**
- * Gets the value at `path` of `object`. If the resolved value is
- * `undefined`, the `defaultValue` is returned in its place.
- *
- * @static
- * @memberOf _
- * @since 3.7.0
- * @category Object
- * @param {Object} object The object to query.
- * @param {Array|string} path The path of the property to get.
- * @param {*} [defaultValue] The value returned for `undefined` resolved values.
- * @returns {*} Returns the resolved value.
- * @example
- *
- * var object = { 'a': [{ 'b': { 'c': 3 } }] };
- *
- * _.get(object, 'a[0].b.c');
- * // => 3
- *
- * _.get(object, ['a', '0', 'b', 'c']);
- * // => 3
- *
- * _.get(object, 'a.b.c', 'default');
- * // => 'default'
- */
-function get(object, path, defaultValue) {
- var result = object == null ? undefined : baseGet(object, path);
- return result === undefined ? defaultValue : result;
-}
-
-/**
- * Checks if `path` is a direct or inherited property of `object`.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Object
- * @param {Object} object The object to query.
- * @param {Array|string} path The path to check.
- * @returns {boolean} Returns `true` if `path` exists, else `false`.
- * @example
- *
- * var object = _.create({ 'a': _.create({ 'b': 2 }) });
- *
- * _.hasIn(object, 'a');
- * // => true
- *
- * _.hasIn(object, 'a.b');
- * // => true
- *
- * _.hasIn(object, ['a', 'b']);
- * // => true
- *
- * _.hasIn(object, 'b');
- * // => false
- */
-function hasIn(object, path) {
- return object != null && hasPath(object, path, baseHasIn);
-}
-
-/**
- * Creates an array of the own enumerable property names of `object`.
- *
- * **Note:** Non-object values are coerced to objects. See the
- * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
- * for more details.
- *
- * @static
- * @since 0.1.0
- * @memberOf _
- * @category Object
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names.
- * @example
- *
- * function Foo() {
- * this.a = 1;
- * this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * _.keys(new Foo);
- * // => ['a', 'b'] (iteration order is not guaranteed)
- *
- * _.keys('hi');
- * // => ['0', '1']
- */
-function keys(object) {
- return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
-}
-
-/**
- * This method returns the first argument it receives.
- *
- * @static
- * @since 0.1.0
- * @memberOf _
- * @category Util
- * @param {*} value Any value.
- * @returns {*} Returns `value`.
- * @example
- *
- * var object = { 'a': 1 };
- *
- * console.log(_.identity(object) === object);
- * // => true
- */
-function identity(value) {
- return value;
-}
-
-/**
- * Creates a function that returns the value at `path` of a given object.
- *
- * @static
- * @memberOf _
- * @since 2.4.0
- * @category Util
- * @param {Array|string} path The path of the property to get.
- * @returns {Function} Returns the new accessor function.
- * @example
- *
- * var objects = [
- * { 'a': { 'b': 2 } },
- * { 'a': { 'b': 1 } }
- * ];
- *
- * _.map(objects, _.property('a.b'));
- * // => [2, 1]
- *
- * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');
- * // => [1, 2]
- */
-function property(path) {
- return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);
-}
-
-module.exports = map;
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! ./../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
-
-/***/ }),
-
-/***/ "./node_modules/mithril/mithril.mjs":
-/*!******************************************!*\
- !*** ./node_modules/mithril/mithril.mjs ***!
- \******************************************/
-/*! exports provided: default, m, trust, fragment, mount, route, render, redraw, request, jsonp, parseQueryString, buildQueryString, version, vnode, PromisePolyfill */
-/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return _m; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "trust", function() { return _trust; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fragment", function() { return _fragment; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mount", function() { return _mount; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "route", function() { return _route; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _render; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "redraw", function() { return _redraw; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "request", function() { return _request; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "jsonp", function() { return _jsonp; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseQueryString", function() { return _parseQueryString; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildQueryString", function() { return _buildQueryString; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return _version; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "vnode", function() { return _vnode; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PromisePolyfill", function() { return _PromisePolyfill; });
-function Vnode(tag, key, attrs0, children0, text, dom) {
- return {tag: tag, key: key, attrs: attrs0, children: children0, text: text, dom: dom, domSize: undefined, state: undefined, events: undefined, instance: undefined}
-}
-Vnode.normalize = function(node) {
- if (Array.isArray(node)) return Vnode("[", undefined, undefined, Vnode.normalizeChildren(node), undefined, undefined)
- if (node != null && typeof node !== "object") return Vnode("#", undefined, undefined, node === false ? "" : node, undefined, undefined)
- return node
-}
-Vnode.normalizeChildren = function(input) {
- var children0 = []
- for (var i = 0; i < input.length; i++) {
- children0[i] = Vnode.normalize(input[i])
- }
- return children0
-}
-// Call via `hyperscriptVnode0.apply(startOffset, arguments)`
-//
-// The reason I do it this way, forwarding the arguments and passing the start
-// offset in `this`, is so I don't have to create a temporary array in a
-// performance-critical path.
-//
-// In native ES6, I'd instead add a final `...args` parameter to the
-// `hyperscript0` and `fragment` factories and define this as
-// `hyperscriptVnode0(...args)`, since modern engines do optimize that away. But
-// ES5 (what Mithril requires thanks to IE support) doesn't give me that luxury,
-// and engines aren't nearly intelligent enough to do either of these:
-//
-// 1. Elide the allocation for `[].slice.call(arguments, 1)` when it's passed to
-// another function only to be indexed.
-// 2. Elide an `arguments` allocation when it's passed to any function other
-// than `Function.prototype.apply` or `Reflect.apply`.
-//
-// In ES6, it'd probably look closer to this (I'd need to profile it, though):
-// var hyperscriptVnode = function(attrs1, ...children1) {
-// if (attrs1 == null || typeof attrs1 === "object" && attrs1.tag == null && !Array.isArray(attrs1)) {
-// if (children1.length === 1 && Array.isArray(children1[0])) children1 = children1[0]
-// } else {
-// children1 = children1.length === 0 && Array.isArray(attrs1) ? attrs1 : [attrs1, ...children1]
-// attrs1 = undefined
-// }
-//
-// if (attrs1 == null) attrs1 = {}
-// return Vnode("", attrs1.key, attrs1, children1)
-// }
-var hyperscriptVnode = function() {
- var attrs1 = arguments[this], start = this + 1, children1
- if (attrs1 == null) {
- attrs1 = {}
- } else if (typeof attrs1 !== "object" || attrs1.tag != null || Array.isArray(attrs1)) {
- attrs1 = {}
- start = this
- }
- if (arguments.length === start + 1) {
- children1 = arguments[start]
- if (!Array.isArray(children1)) children1 = [children1]
- } else {
- children1 = []
- while (start < arguments.length) children1.push(arguments[start++])
- }
- return Vnode("", attrs1.key, attrs1, children1)
-}
-var selectorParser = /(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g
-var selectorCache = {}
-var hasOwn = {}.hasOwnProperty
-function isEmpty(object) {
- for (var key in object) if (hasOwn.call(object, key)) return false
- return true
-}
-function compileSelector(selector) {
- var match, tag = "div", classes = [], attrs = {}
- while (match = selectorParser.exec(selector)) {
- var type = match[1], value = match[2]
- if (type === "" && value !== "") tag = value
- else if (type === "#") attrs.id = value
- else if (type === ".") classes.push(value)
- else if (match[3][0] === "[") {
- var attrValue = match[6]
- if (attrValue) attrValue = attrValue.replace(/\\(["'])/g, "$1").replace(/\\\\/g, "\\")
- if (match[4] === "class") classes.push(attrValue)
- else attrs[match[4]] = attrValue === "" ? attrValue : attrValue || true
- }
- }
- if (classes.length > 0) attrs.className = classes.join(" ")
- return selectorCache[selector] = {tag: tag, attrs: attrs}
-}
-function execSelector(state, vnode) {
- var attrs = vnode.attrs
- var children = Vnode.normalizeChildren(vnode.children)
- var hasClass = hasOwn.call(attrs, "class")
- var className = hasClass ? attrs.class : attrs.className
- vnode.tag = state.tag
- vnode.attrs = null
- vnode.children = undefined
- if (!isEmpty(state.attrs) && !isEmpty(attrs)) {
- var newAttrs = {}
- for (var key in attrs) {
- if (hasOwn.call(attrs, key)) newAttrs[key] = attrs[key]
- }
- attrs = newAttrs
- }
- for (var key in state.attrs) {
- if (hasOwn.call(state.attrs, key) && key !== "className" && !hasOwn.call(attrs, key)){
- attrs[key] = state.attrs[key]
- }
- }
- if (className != null || state.attrs.className != null) attrs.className =
- className != null
- ? state.attrs.className != null
- ? String(state.attrs.className) + " " + String(className)
- : className
- : state.attrs.className != null
- ? state.attrs.className
- : null
- if (hasClass) attrs.class = null
- for (var key in attrs) {
- if (hasOwn.call(attrs, key) && key !== "key") {
- vnode.attrs = attrs
- break
- }
- }
- if (Array.isArray(children) && children.length === 1 && children[0] != null && children[0].tag === "#") {
- vnode.text = children[0].children
- } else {
- vnode.children = children
- }
- return vnode
-}
-function hyperscript(selector) {
- if (selector == null || typeof selector !== "string" && typeof selector !== "function" && typeof selector.view !== "function") {
- throw Error("The selector must be either a string or a component.");
- }
- var vnode = hyperscriptVnode.apply(1, arguments)
- if (typeof selector === "string") {
- vnode.children = Vnode.normalizeChildren(vnode.children)
- if (selector !== "[") return execSelector(selectorCache[selector] || compileSelector(selector), vnode)
- }
-
- vnode.tag = selector
- return vnode
-}
-hyperscript.trust = function(html) {
- if (html == null) html = ""
- return Vnode("<", undefined, undefined, html, undefined, undefined)
-}
-hyperscript.fragment = function() {
- var vnode2 = hyperscriptVnode.apply(0, arguments)
- vnode2.tag = "["
- vnode2.children = Vnode.normalizeChildren(vnode2.children)
- return vnode2
-}
-var m = function m() { return hyperscript.apply(this, arguments) }
-m.m = hyperscript
-m.trust = hyperscript.trust
-m.fragment = hyperscript.fragment
-/** @constructor */
-var PromisePolyfill = function(executor) {
- if (!(this instanceof PromisePolyfill)) throw new Error("Promise must be called with `new`")
- if (typeof executor !== "function") throw new TypeError("executor must be a function")
- var self = this, resolvers = [], rejectors = [], resolveCurrent = handler(resolvers, true), rejectCurrent = handler(rejectors, false)
- var instance = self._instance = {resolvers: resolvers, rejectors: rejectors}
- var callAsync = typeof setImmediate === "function" ? setImmediate : setTimeout
- function handler(list, shouldAbsorb) {
- return function execute(value) {
- var then
- try {
- if (shouldAbsorb && value != null && (typeof value === "object" || typeof value === "function") && typeof (then = value.then) === "function") {
- if (value === self) throw new TypeError("Promise can't be resolved w/ itself")
- executeOnce(then.bind(value))
- }
- else {
- callAsync(function() {
- if (!shouldAbsorb && list.length === 0) console.error("Possible unhandled promise rejection:", value)
- for (var i = 0; i < list.length; i++) list[i](value)
- resolvers.length = 0, rejectors.length = 0
- instance.state = shouldAbsorb
- instance.retry = function() {execute(value)}
- })
- }
- }
- catch (e) {
- rejectCurrent(e)
- }
- }
- }
- function executeOnce(then) {
- var runs = 0
- function run(fn) {
- return function(value) {
- if (runs++ > 0) return
- fn(value)
- }
- }
- var onerror = run(rejectCurrent)
- try {then(run(resolveCurrent), onerror)} catch (e) {onerror(e)}
- }
- executeOnce(executor)
-}
-PromisePolyfill.prototype.then = function(onFulfilled, onRejection) {
- var self = this, instance = self._instance
- function handle(callback, list, next, state) {
- list.push(function(value) {
- if (typeof callback !== "function") next(value)
- else try {resolveNext(callback(value))} catch (e) {if (rejectNext) rejectNext(e)}
- })
- if (typeof instance.retry === "function" && state === instance.state) instance.retry()
- }
- var resolveNext, rejectNext
- var promise = new PromisePolyfill(function(resolve, reject) {resolveNext = resolve, rejectNext = reject})
- handle(onFulfilled, instance.resolvers, resolveNext, true), handle(onRejection, instance.rejectors, rejectNext, false)
- return promise
-}
-PromisePolyfill.prototype.catch = function(onRejection) {
- return this.then(null, onRejection)
-}
-PromisePolyfill.prototype.finally = function(callback) {
- return this.then(
- function(value) {
- return PromisePolyfill.resolve(callback()).then(function() {
- return value
- })
- },
- function(reason) {
- return PromisePolyfill.resolve(callback()).then(function() {
- return PromisePolyfill.reject(reason);
- })
- }
- )
-}
-PromisePolyfill.resolve = function(value) {
- if (value instanceof PromisePolyfill) return value
- return new PromisePolyfill(function(resolve) {resolve(value)})
-}
-PromisePolyfill.reject = function(value) {
- return new PromisePolyfill(function(resolve, reject) {reject(value)})
-}
-PromisePolyfill.all = function(list) {
- return new PromisePolyfill(function(resolve, reject) {
- var total = list.length, count = 0, values = []
- if (list.length === 0) resolve([])
- else for (var i = 0; i < list.length; i++) {
- (function(i) {
- function consume(value) {
- count++
- values[i] = value
- if (count === total) resolve(values)
- }
- if (list[i] != null && (typeof list[i] === "object" || typeof list[i] === "function") && typeof list[i].then === "function") {
- list[i].then(consume, reject)
- }
- else consume(list[i])
- })(i)
- }
- })
-}
-PromisePolyfill.race = function(list) {
- return new PromisePolyfill(function(resolve, reject) {
- for (var i = 0; i < list.length; i++) {
- list[i].then(resolve, reject)
- }
- })
-}
-if (typeof window !== "undefined") {
- if (typeof window.Promise === "undefined") {
- window.Promise = PromisePolyfill
- } else if (!window.Promise.prototype.finally) {
- window.Promise.prototype.finally = PromisePolyfill.prototype.finally
- }
- var PromisePolyfill = window.Promise
-} else if (typeof global !== "undefined") {
- if (typeof global.Promise === "undefined") {
- global.Promise = PromisePolyfill
- } else if (!global.Promise.prototype.finally) {
- global.Promise.prototype.finally = PromisePolyfill.prototype.finally
- }
- var PromisePolyfill = global.Promise
-} else {
-}
-var buildQueryString = function(object) {
- if (Object.prototype.toString.call(object) !== "[object Object]") return ""
- var args = []
- for (var key in object) {
- destructure(key, object[key])
- }
- return args.join("&")
- function destructure(key, value) {
- if (Array.isArray(value)) {
- for (var i = 0; i < value.length; i++) {
- destructure(key + "[" + i + "]", value[i])
- }
- }
- else if (Object.prototype.toString.call(value) === "[object Object]") {
- for (var i in value) {
- destructure(key + "[" + i + "]", value[i])
- }
- }
- else args.push(encodeURIComponent(key) + (value != null && value !== "" ? "=" + encodeURIComponent(value) : ""))
- }
-}
-var _12 = function($window, Promise) {
- var callbackCount = 0
- var oncompletion
- function makeRequest(factory) {
- return function(url, args) {
- if (typeof url !== "string") { args = url; url = url.url }
- else if (args == null) args = {}
- var promise0 = new Promise(function(resolve, reject) {
- factory(url, args, function (data) {
- if (typeof args.type === "function") {
- if (Array.isArray(data)) {
- for (var i = 0; i < data.length; i++) {
- data[i] = new args.type(data[i])
- }
- }
- else data = new args.type(data)
- }
- resolve(data)
- }, reject)
- })
- if (args.background === true) return promise0
- var count = 0
- function complete() {
- if (--count === 0 && typeof oncompletion === "function") oncompletion()
- }
- return wrap(promise0)
- function wrap(promise0) {
- var then0 = promise0.then
- promise0.then = function() {
- count++
- var next = then0.apply(promise0, arguments)
- next.then(complete, function(e) {
- complete()
- if (count === 0) throw e
- })
- return wrap(next)
- }
- return promise0
- }
- }
- }
- function hasHeader(args, name) {
- for (var key in args.headers) {
- if ({}.hasOwnProperty.call(args.headers, key) && name.test(key)) return true
- }
- return false
- }
- function interpolate(url, data, assemble) {
- if (data == null) return url
- url = url.replace(/:([^\/]+)/gi, function (m0, key) {
- return data[key] != null ? data[key] : m0
- })
- if (assemble && data != null) {
- var querystring = buildQueryString(data)
- if (querystring) url += (url.indexOf("?") < 0 ? "?" : "&") + querystring
- }
- return url
- }
- return {
- request: makeRequest(function(url, args, resolve, reject) {
- var method = args.method != null ? args.method.toUpperCase() : "GET"
- var useBody = method !== "GET" && method !== "TRACE" &&
- (typeof args.useBody !== "boolean" || args.useBody)
- var data = args.data
- var assumeJSON = (args.serialize == null || args.serialize === JSON.serialize) && !(data instanceof $window.FormData)
- if (useBody) {
- if (typeof args.serialize === "function") data = args.serialize(data)
- else if (!(data instanceof $window.FormData)) data = JSON.stringify(data)
- }
- var xhr = new $window.XMLHttpRequest(),
- aborted = false,
- _abort = xhr.abort
- xhr.abort = function abort() {
- aborted = true
- _abort.call(xhr)
- }
- xhr.open(method, interpolate(url, args.data, !useBody), typeof args.async !== "boolean" || args.async, typeof args.user === "string" ? args.user : undefined, typeof args.password === "string" ? args.password : undefined)
- if (assumeJSON && useBody && !hasHeader(args, /^content-type0$/i)) {
- xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8")
- }
- if (typeof args.deserialize !== "function" && !hasHeader(args, /^accept$/i)) {
- xhr.setRequestHeader("Accept", "application/json, text/*")
- }
- if (args.withCredentials) xhr.withCredentials = args.withCredentials
- if (args.timeout) xhr.timeout = args.timeout
- if (args.responseType) xhr.responseType = args.responseType
- for (var key in args.headers) {
- if ({}.hasOwnProperty.call(args.headers, key)) {
- xhr.setRequestHeader(key, args.headers[key])
- }
- }
- if (typeof args.config === "function") xhr = args.config(xhr, args) || xhr
- xhr.onreadystatechange = function() {
- // Don't throw errors on xhr.abort().
- if(aborted) return
- if (xhr.readyState === 4) {
- try {
- var success = (xhr.status >= 200 && xhr.status < 300) || xhr.status === 304 || (/^file:\/\//i).test(url)
- var response = xhr.responseText
- if (typeof args.extract === "function") {
- response = args.extract(xhr, args)
- success = true
- } else if (typeof args.deserialize === "function") {
- response = args.deserialize(response)
- } else {
- try {response = response ? JSON.parse(response) : null}
- catch (e) {throw new Error("Invalid JSON: " + response)}
- }
- if (success) resolve(response)
- else {
- var error = new Error(xhr.responseText)
- error.code = xhr.status
- error.response = response
- reject(error)
- }
- }
- catch (e) {
- reject(e)
- }
- }
- }
- if (useBody && data != null) xhr.send(data)
- else xhr.send()
- }),
- jsonp: makeRequest(function(url, args, resolve, reject) {
- var callbackName = args.callbackName || "_mithril_" + Math.round(Math.random() * 1e16) + "_" + callbackCount++
- var script = $window.document.createElement("script")
- $window[callbackName] = function(data) {
- script.parentNode.removeChild(script)
- resolve(data)
- delete $window[callbackName]
- }
- script.onerror = function() {
- script.parentNode.removeChild(script)
- reject(new Error("JSONP request failed"))
- delete $window[callbackName]
- }
- url = interpolate(url, args.data, true)
- script.src = url + (url.indexOf("?") < 0 ? "?" : "&") +
- encodeURIComponent(args.callbackKey || "callback") + "=" +
- encodeURIComponent(callbackName)
- $window.document.documentElement.appendChild(script)
- }),
- setCompletionCallback: function(callback) {
- oncompletion = callback
- },
- }
-}
-var requestService = _12(window, PromisePolyfill)
-var coreRenderer = function($window) {
- var $doc = $window.document
- var nameSpace = {
- svg: "http://www.w3.org/2000/svg",
- math: "http://www.w3.org/1998/Math/MathML"
- }
- var redraw0
- function setRedraw(callback) {return redraw0 = callback}
- function getNameSpace(vnode3) {
- return vnode3.attrs && vnode3.attrs.xmlns || nameSpace[vnode3.tag]
- }
- //sanity check to discourage people from doing `vnode3.state = ...`
- function checkState(vnode3, original) {
- if (vnode3.state !== original) throw new Error("`vnode.state` must not be modified")
- }
- //Note: the hook is passed as the `this` argument to allow proxying the
- //arguments without requiring a full array allocation to do so. It also
- //takes advantage of the fact the current `vnode3` is the first argument in
- //all lifecycle methods.
- function callHook(vnode3) {
- var original = vnode3.state
- try {
- return this.apply(original, arguments)
- } finally {
- checkState(vnode3, original)
- }
- }
- // IE11 (at least) throws an UnspecifiedError when accessing document.activeElement when
- // inside an iframe. Catch and swallow this error1, and heavy-handidly return null.
- function activeElement() {
- try {
- return $doc.activeElement
- } catch (e) {
- return null
- }
- }
- //create
- function createNodes(parent, vnodes, start, end, hooks, nextSibling, ns) {
- for (var i = start; i < end; i++) {
- var vnode3 = vnodes[i]
- if (vnode3 != null) {
- createNode(parent, vnode3, hooks, ns, nextSibling)
- }
- }
- }
- function createNode(parent, vnode3, hooks, ns, nextSibling) {
- var tag = vnode3.tag
- if (typeof tag === "string") {
- vnode3.state = {}
- if (vnode3.attrs != null) initLifecycle(vnode3.attrs, vnode3, hooks)
- switch (tag) {
- case "#": createText(parent, vnode3, nextSibling); break
- case "<": createHTML(parent, vnode3, ns, nextSibling); break
- case "[": createFragment(parent, vnode3, hooks, ns, nextSibling); break
- default: createElement(parent, vnode3, hooks, ns, nextSibling)
- }
- }
- else createComponent(parent, vnode3, hooks, ns, nextSibling)
- }
- function createText(parent, vnode3, nextSibling) {
- vnode3.dom = $doc.createTextNode(vnode3.children)
- insertNode(parent, vnode3.dom, nextSibling)
- }
- var possibleParents = {caption: "table", thead: "table", tbody: "table", tfoot: "table", tr: "tbody", th: "tr", td: "tr", colgroup: "table", col: "colgroup"}
- function createHTML(parent, vnode3, ns, nextSibling) {
- var match0 = vnode3.children.match(/^\s*?<(\w+)/im) || []
- // not using the proper parent makes the child element(s) vanish.
- // var div = document.createElement("div")
- // div.innerHTML = "i | j | "
- // console.log(div.innerHTML)
- // --> "ij", no in sight.
- var temp = $doc.createElement(possibleParents[match0[1]] || "div")
- if (ns === "http://www.w3.org/2000/svg") {
- temp.innerHTML = ""
- temp = temp.firstChild
- } else {
- temp.innerHTML = vnode3.children
- }
- vnode3.dom = temp.firstChild
- vnode3.domSize = temp.childNodes.length
- var fragment = $doc.createDocumentFragment()
- var child
- while (child = temp.firstChild) {
- fragment.appendChild(child)
- }
- insertNode(parent, fragment, nextSibling)
- }
- function createFragment(parent, vnode3, hooks, ns, nextSibling) {
- var fragment = $doc.createDocumentFragment()
- if (vnode3.children != null) {
- var children3 = vnode3.children
- createNodes(fragment, children3, 0, children3.length, hooks, null, ns)
- }
- vnode3.dom = fragment.firstChild
- vnode3.domSize = fragment.childNodes.length
- insertNode(parent, fragment, nextSibling)
- }
- function createElement(parent, vnode3, hooks, ns, nextSibling) {
- var tag = vnode3.tag
- var attrs2 = vnode3.attrs
- var is = attrs2 && attrs2.is
- ns = getNameSpace(vnode3) || ns
- var element = ns ?
- is ? $doc.createElementNS(ns, tag, {is: is}) : $doc.createElementNS(ns, tag) :
- is ? $doc.createElement(tag, {is: is}) : $doc.createElement(tag)
- vnode3.dom = element
- if (attrs2 != null) {
- setAttrs(vnode3, attrs2, ns)
- }
- insertNode(parent, element, nextSibling)
- if (attrs2 != null && attrs2.contenteditable != null) {
- setContentEditable(vnode3)
- }
- else {
- if (vnode3.text != null) {
- if (vnode3.text !== "") element.textContent = vnode3.text
- else vnode3.children = [Vnode("#", undefined, undefined, vnode3.text, undefined, undefined)]
- }
- if (vnode3.children != null) {
- var children3 = vnode3.children
- createNodes(element, children3, 0, children3.length, hooks, null, ns)
- if (vnode3.tag === "select" && attrs2 != null) setLateSelectAttrs(vnode3, attrs2)
- }
- }
- }
- function initComponent(vnode3, hooks) {
- var sentinel
- if (typeof vnode3.tag.view === "function") {
- vnode3.state = Object.create(vnode3.tag)
- sentinel = vnode3.state.view
- if (sentinel.$$reentrantLock$$ != null) return
- sentinel.$$reentrantLock$$ = true
- } else {
- vnode3.state = void 0
- sentinel = vnode3.tag
- if (sentinel.$$reentrantLock$$ != null) return
- sentinel.$$reentrantLock$$ = true
- vnode3.state = (vnode3.tag.prototype != null && typeof vnode3.tag.prototype.view === "function") ? new vnode3.tag(vnode3) : vnode3.tag(vnode3)
- }
- initLifecycle(vnode3.state, vnode3, hooks)
- if (vnode3.attrs != null) initLifecycle(vnode3.attrs, vnode3, hooks)
- vnode3.instance = Vnode.normalize(callHook.call(vnode3.state.view, vnode3))
- if (vnode3.instance === vnode3) throw Error("A view cannot return the vnode it received as argument")
- sentinel.$$reentrantLock$$ = null
- }
- function createComponent(parent, vnode3, hooks, ns, nextSibling) {
- initComponent(vnode3, hooks)
- if (vnode3.instance != null) {
- createNode(parent, vnode3.instance, hooks, ns, nextSibling)
- vnode3.dom = vnode3.instance.dom
- vnode3.domSize = vnode3.dom != null ? vnode3.instance.domSize : 0
- }
- else {
- vnode3.domSize = 0
- }
- }
- //update
- /**
- * @param {Element|Fragment} parent - the parent element
- * @param {Vnode[] | null} old - the list of vnodes of the last `render()` call for
- * this part of the tree
- * @param {Vnode[] | null} vnodes - as above, but for the current `render()` call.
- * @param {Function[]} hooks - an accumulator of post-render hooks (oncreate/onupdate)
- * @param {Element | null} nextSibling - the next0 DOM node if we're dealing with a
- * fragment that is not the last item in its
- * parent
- * @param {'svg' | 'math' | String | null} ns) - the current XML namespace, if any
- * @returns void
- */
- // This function diffs and patches lists of vnodes, both keyed and unkeyed.
- //
- // We will:
- //
- // 1. describe its general structure
- // 2. focus on the diff algorithm optimizations
- // 3. discuss DOM node operations.
- // ## Overview:
- //
- // The updateNodes() function:
- // - deals with trivial cases
- // - determines whether the lists are keyed or unkeyed based on the first non-null node
- // of each list.
- // - diffs them and patches the DOM if needed (that's the brunt of the code)
- // - manages the leftovers: after diffing, are there:
- // - old nodes left to remove?
- // - new nodes to insert?
- // deal with them!
- //
- // The lists are only iterated over once, with an exception for the nodes in `old` that
- // are visited in the fourth part of the diff and in the `removeNodes` loop.
- // ## Diffing
- //
- // Reading https://github.com/localvoid/ivi/blob/ddc09d06abaef45248e6133f7040d00d3c6be853/packages/ivi/src/vdom/implementation.ts#L617-L837
- // may be good for context on longest increasing subsequence-based logic for moving nodes.
- //
- // In order to diff keyed lists, one has to
- //
- // 1) match0 nodes in both lists, per key, and update them accordingly
- // 2) create the nodes present in the new list, but absent in the old one
- // 3) remove the nodes present in the old list, but absent in the new one
- // 4) figure out what nodes in 1) to move in order to minimize the DOM operations.
- //
- // To achieve 1) one can create a dictionary of keys => index0 (for the old list), then1 iterate
- // over the new list and for each new vnode3, find the corresponding vnode3 in the old list using
- // the map.
- // 2) is achieved in the same step: if a new node has no corresponding entry in the map, it is new
- // and must be created.
- // For the removals, we actually remove the nodes that have been updated from the old list.
- // The nodes that remain in that list after 1) and 2) have been performed can be safely removed.
- // The fourth step is a bit more complex and relies on the longest increasing subsequence (LIS)
- // algorithm.
- //
- // the longest increasing subsequence is the list of nodes that can remain in place. Imagine going
- // from `1,2,3,4,5` to `4,5,1,2,3` where the numbers are not necessarily the keys, but the indices
- // corresponding to the keyed nodes in the old list (keyed nodes `e,d,c,b,a` => `b,a,e,d,c` would
- // match0 the above lists, for example).
- //
- // In there are two increasing subsequences: `4,5` and `1,2,3`, the latter being the longest. We
- // can update those nodes without moving them, and only call `insertNode` on `4` and `5`.
- //
- // @localvoid adapted the algo to also support node deletions and insertions (the `lis` is actually
- // the longest increasing subsequence *of old nodes still present in the new list*).
- //
- // It is a general algorithm that is fireproof in all circumstances, but it requires the allocation
- // and the construction of a `key => oldIndex` map, and three arrays (one with `newIndex => oldIndex`,
- // the `LIS` and a temporary one to create the LIS).
- //
- // So we cheat where we can: if the tails of the lists are identical, they are guaranteed to be part of
- // the LIS and can be updated without moving them.
- //
- // If two nodes are swapped, they are guaranteed not to be part of the LIS, and must be moved (with
- // the exception of the last node if the list is fully reversed).
- //
- // ## Finding the next0 sibling.
- //
- // `updateNode()` and `createNode()` expect a nextSibling parameter to perform DOM operations.
- // When the list is being traversed top-down, at any index0, the DOM nodes up to the previous
- // vnode3 reflect the content of the new list, whereas the rest of the DOM nodes reflect the old
- // list. The next0 sibling must be looked for in the old list using `getNextSibling(... oldStart + 1 ...)`.
- //
- // In the other scenarios (swaps, upwards traversal, map-based diff),
- // the new vnodes list is traversed upwards. The DOM nodes at the bottom of the list reflect the
- // bottom part of the new vnodes list, and we can use the `v.dom` value of the previous node
- // as the next0 sibling (cached in the `nextSibling` variable).
- // ## DOM node moves
- //
- // In most scenarios `updateNode()` and `createNode()` perform the DOM operations. However,
- // this is not the case if the node moved (second and fourth part of the diff algo). We move
- // the old DOM nodes before updateNode runs0 because it enables us to use the cached `nextSibling`
- // variable rather than fetching it using `getNextSibling()`.
- //
- // The fourth part of the diff currently inserts nodes unconditionally, leading to issues
- // like #1791 and #1999. We need to be smarter about those situations where adjascent old
- // nodes remain together in the new list in a way that isn't covered by parts one and
- // three of the diff algo.
- function updateNodes(parent, old, vnodes, hooks, nextSibling, ns) {
- if (old === vnodes || old == null && vnodes == null) return
- else if (old == null || old.length === 0) createNodes(parent, vnodes, 0, vnodes.length, hooks, nextSibling, ns)
- else if (vnodes == null || vnodes.length === 0) removeNodes(old, 0, old.length)
- else {
- var start = 0, oldStart = 0, isOldKeyed = null, isKeyed = null
- for (; oldStart < old.length; oldStart++) {
- if (old[oldStart] != null) {
- isOldKeyed = old[oldStart].key != null
- break
- }
- }
- for (; start < vnodes.length; start++) {
- if (vnodes[start] != null) {
- isKeyed = vnodes[start].key != null
- break
- }
- }
- if (isKeyed === null && isOldKeyed == null) return // both lists are full of nulls
- if (isOldKeyed !== isKeyed) {
- removeNodes(old, oldStart, old.length)
- createNodes(parent, vnodes, start, vnodes.length, hooks, nextSibling, ns)
- } else if (!isKeyed) {
- // Don't index0 past the end of either list (causes deopts).
- var commonLength = old.length < vnodes.length ? old.length : vnodes.length
- // Rewind if necessary to the first non-null index0 on either side.
- // We could alternatively either explicitly create or remove nodes when `start !== oldStart`
- // but that would be optimizing for sparse lists which are more rare than dense ones.
- start = start < oldStart ? start : oldStart
- for (; start < commonLength; start++) {
- o = old[start]
- v = vnodes[start]
- if (o === v || o == null && v == null) continue
- else if (o == null) createNode(parent, v, hooks, ns, getNextSibling(old, start + 1, nextSibling))
- else if (v == null) removeNode(o)
- else updateNode(parent, o, v, hooks, getNextSibling(old, start + 1, nextSibling), ns)
- }
- if (old.length > commonLength) removeNodes(old, start, old.length)
- if (vnodes.length > commonLength) createNodes(parent, vnodes, start, vnodes.length, hooks, nextSibling, ns)
- } else {
- // keyed diff
- var oldEnd = old.length - 1, end = vnodes.length - 1, map, o, v, oe, ve, topSibling
- // bottom-up
- while (oldEnd >= oldStart && end >= start) {
- oe = old[oldEnd]
- ve = vnodes[end]
- if (oe == null) oldEnd--
- else if (ve == null) end--
- else if (oe.key === ve.key) {
- if (oe !== ve) updateNode(parent, oe, ve, hooks, nextSibling, ns)
- if (ve.dom != null) nextSibling = ve.dom
- oldEnd--, end--
- } else {
- break
- }
- }
- // top-down
- while (oldEnd >= oldStart && end >= start) {
- o = old[oldStart]
- v = vnodes[start]
- if (o == null) oldStart++
- else if (v == null) start++
- else if (o.key === v.key) {
- oldStart++, start++
- if (o !== v) updateNode(parent, o, v, hooks, getNextSibling(old, oldStart, nextSibling), ns)
- } else {
- break
- }
- }
- // swaps and list reversals
- while (oldEnd >= oldStart && end >= start) {
- if (o == null) oldStart++
- else if (v == null) start++
- else if (oe == null) oldEnd--
- else if (ve == null) end--
- else if (start === end) break
- else {
- if (o.key !== ve.key || oe.key !== v.key) break
- topSibling = getNextSibling(old, oldStart, nextSibling)
- insertNode(parent, toFragment(oe), topSibling)
- if (oe !== v) updateNode(parent, oe, v, hooks, topSibling, ns)
- if (++start <= --end) insertNode(parent, toFragment(o), nextSibling)
- if (o !== ve) updateNode(parent, o, ve, hooks, nextSibling, ns)
- if (ve.dom != null) nextSibling = ve.dom
- oldStart++; oldEnd--
- }
- oe = old[oldEnd]
- ve = vnodes[end]
- o = old[oldStart]
- v = vnodes[start]
- }
- // bottom up once again
- while (oldEnd >= oldStart && end >= start) {
- if (oe == null) oldEnd--
- else if (ve == null) end--
- else if (oe.key === ve.key) {
- if (oe !== ve) updateNode(parent, oe, ve, hooks, nextSibling, ns)
- if (ve.dom != null) nextSibling = ve.dom
- oldEnd--, end--
- } else {
- break
- }
- oe = old[oldEnd]
- ve = vnodes[end]
- }
- if (start > end) removeNodes(old, oldStart, oldEnd + 1)
- else if (oldStart > oldEnd) createNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns)
- else {
- // inspired by ivi https://github.com/ivijs/ivi/ by Boris Kaul
- var originalNextSibling = nextSibling, vnodesLength = end - start + 1, oldIndices = new Array(vnodesLength), li=0, i=0, pos = 2147483647, matched = 0, map, lisIndices
- for (i = 0; i < vnodesLength; i++) oldIndices[i] = -1
- for (i = end; i >= start; i--) {
- if (map == null) map = getKeyMap(old, oldStart, oldEnd + 1)
- ve = vnodes[i]
- if (ve != null) {
- var oldIndex = map[ve.key]
- if (oldIndex != null) {
- pos = (oldIndex < pos) ? oldIndex : -1 // becomes -1 if nodes were re-ordered
- oldIndices[i-start] = oldIndex
- oe = old[oldIndex]
- old[oldIndex] = null
- if (oe !== ve) updateNode(parent, oe, ve, hooks, nextSibling, ns)
- if (ve.dom != null) nextSibling = ve.dom
- matched++
- }
- }
- }
- nextSibling = originalNextSibling
- if (matched !== oldEnd - oldStart + 1) removeNodes(old, oldStart, oldEnd + 1)
- if (matched === 0) createNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns)
- else {
- if (pos === -1) {
- // the indices of the indices of the items that are part of the
- // longest increasing subsequence in the oldIndices list
- lisIndices = makeLisIndices(oldIndices)
- li = lisIndices.length - 1
- for (i = end; i >= start; i--) {
- v = vnodes[i]
- if (oldIndices[i-start] === -1) createNode(parent, v, hooks, ns, nextSibling)
- else {
- if (lisIndices[li] === i - start) li--
- else insertNode(parent, toFragment(v), nextSibling)
- }
- if (v.dom != null) nextSibling = vnodes[i].dom
- }
- } else {
- for (i = end; i >= start; i--) {
- v = vnodes[i]
- if (oldIndices[i-start] === -1) createNode(parent, v, hooks, ns, nextSibling)
- if (v.dom != null) nextSibling = vnodes[i].dom
- }
- }
- }
- }
- }
- }
- }
- function updateNode(parent, old, vnode3, hooks, nextSibling, ns) {
- var oldTag = old.tag, tag = vnode3.tag
- if (oldTag === tag) {
- vnode3.state = old.state
- vnode3.events = old.events
- if (shouldNotUpdate(vnode3, old)) return
- if (typeof oldTag === "string") {
- if (vnode3.attrs != null) {
- updateLifecycle(vnode3.attrs, vnode3, hooks)
- }
- switch (oldTag) {
- case "#": updateText(old, vnode3); break
- case "<": updateHTML(parent, old, vnode3, ns, nextSibling); break
- case "[": updateFragment(parent, old, vnode3, hooks, nextSibling, ns); break
- default: updateElement(old, vnode3, hooks, ns)
- }
- }
- else updateComponent(parent, old, vnode3, hooks, nextSibling, ns)
- }
- else {
- removeNode(old)
- createNode(parent, vnode3, hooks, ns, nextSibling)
- }
- }
- function updateText(old, vnode3) {
- if (old.children.toString() !== vnode3.children.toString()) {
- old.dom.nodeValue = vnode3.children
- }
- vnode3.dom = old.dom
- }
- function updateHTML(parent, old, vnode3, ns, nextSibling) {
- if (old.children !== vnode3.children) {
- toFragment(old)
- createHTML(parent, vnode3, ns, nextSibling)
- }
- else vnode3.dom = old.dom, vnode3.domSize = old.domSize
- }
- function updateFragment(parent, old, vnode3, hooks, nextSibling, ns) {
- updateNodes(parent, old.children, vnode3.children, hooks, nextSibling, ns)
- var domSize = 0, children3 = vnode3.children
- vnode3.dom = null
- if (children3 != null) {
- for (var i = 0; i < children3.length; i++) {
- var child = children3[i]
- if (child != null && child.dom != null) {
- if (vnode3.dom == null) vnode3.dom = child.dom
- domSize += child.domSize || 1
- }
- }
- if (domSize !== 1) vnode3.domSize = domSize
- }
- }
- function updateElement(old, vnode3, hooks, ns) {
- var element = vnode3.dom = old.dom
- ns = getNameSpace(vnode3) || ns
- if (vnode3.tag === "textarea") {
- if (vnode3.attrs == null) vnode3.attrs = {}
- if (vnode3.text != null) {
- vnode3.attrs.value = vnode3.text //FIXME handle0 multiple children3
- vnode3.text = undefined
- }
- }
- updateAttrs(vnode3, old.attrs, vnode3.attrs, ns)
- if (vnode3.attrs != null && vnode3.attrs.contenteditable != null) {
- setContentEditable(vnode3)
- }
- else if (old.text != null && vnode3.text != null && vnode3.text !== "") {
- if (old.text.toString() !== vnode3.text.toString()) old.dom.firstChild.nodeValue = vnode3.text
- }
- else {
- if (old.text != null) old.children = [Vnode("#", undefined, undefined, old.text, undefined, old.dom.firstChild)]
- if (vnode3.text != null) vnode3.children = [Vnode("#", undefined, undefined, vnode3.text, undefined, undefined)]
- updateNodes(element, old.children, vnode3.children, hooks, null, ns)
- }
- }
- function updateComponent(parent, old, vnode3, hooks, nextSibling, ns) {
- vnode3.instance = Vnode.normalize(callHook.call(vnode3.state.view, vnode3))
- if (vnode3.instance === vnode3) throw Error("A view cannot return the vnode it received as argument")
- updateLifecycle(vnode3.state, vnode3, hooks)
- if (vnode3.attrs != null) updateLifecycle(vnode3.attrs, vnode3, hooks)
- if (vnode3.instance != null) {
- if (old.instance == null) createNode(parent, vnode3.instance, hooks, ns, nextSibling)
- else updateNode(parent, old.instance, vnode3.instance, hooks, nextSibling, ns)
- vnode3.dom = vnode3.instance.dom
- vnode3.domSize = vnode3.instance.domSize
- }
- else if (old.instance != null) {
- removeNode(old.instance)
- vnode3.dom = undefined
- vnode3.domSize = 0
- }
- else {
- vnode3.dom = old.dom
- vnode3.domSize = old.domSize
- }
- }
- function getKeyMap(vnodes, start, end) {
- var map = Object.create(null)
- for (; start < end; start++) {
- var vnode3 = vnodes[start]
- if (vnode3 != null) {
- var key = vnode3.key
- if (key != null) map[key] = start
- }
- }
- return map
- }
- // Lifted from ivi https://github.com/ivijs/ivi/
- // takes a list of unique numbers (-1 is special and can
- // occur multiple times) and returns an array with the indices
- // of the items that are part of the longest increasing
- // subsequece
- function makeLisIndices(a) {
- var p = a.slice()
- var result = []
- result.push(0)
- var u
- var v
- for (var i = 0, il = a.length; i < il; ++i) {
- if (a[i] === -1) {
- continue
- }
- var j = result[result.length - 1]
- if (a[j] < a[i]) {
- p[i] = j
- result.push(i)
- continue
- }
- u = 0
- v = result.length - 1
- while (u < v) {
- var c = ((u + v) / 2) | 0 // eslint-disable-line no-bitwise
- if (a[result[c]] < a[i]) {
- u = c + 1
- }
- else {
- v = c
- }
- }
- if (a[i] < a[result[u]]) {
- if (u > 0) {
- p[i] = result[u - 1]
- }
- result[u] = i
- }
- }
- u = result.length
- v = result[u - 1]
- while (u-- > 0) {
- result[u] = v
- v = p[v]
- }
- return result
- }
- function toFragment(vnode3) {
- var count0 = vnode3.domSize
- if (count0 != null || vnode3.dom == null) {
- var fragment = $doc.createDocumentFragment()
- if (count0 > 0) {
- var dom = vnode3.dom
- while (--count0) fragment.appendChild(dom.nextSibling)
- fragment.insertBefore(dom, fragment.firstChild)
- }
- return fragment
- }
- else return vnode3.dom
- }
- function getNextSibling(vnodes, i, nextSibling) {
- for (; i < vnodes.length; i++) {
- if (vnodes[i] != null && vnodes[i].dom != null) return vnodes[i].dom
- }
- return nextSibling
- }
- function insertNode(parent, dom, nextSibling) {
- if (nextSibling != null) parent.insertBefore(dom, nextSibling)
- else parent.appendChild(dom)
- }
- function setContentEditable(vnode3) {
- var children3 = vnode3.children
- if (children3 != null && children3.length === 1 && children3[0].tag === "<") {
- var content = children3[0].children
- if (vnode3.dom.innerHTML !== content) vnode3.dom.innerHTML = content
- }
- else if (vnode3.text != null || children3 != null && children3.length !== 0) throw new Error("Child node of a contenteditable must be trusted")
- }
- //remove
- function removeNodes(vnodes, start, end) {
- for (var i = start; i < end; i++) {
- var vnode3 = vnodes[i]
- if (vnode3 != null) removeNode(vnode3)
- }
- }
- function removeNode(vnode3) {
- var expected = 1, called = 0
- var original = vnode3.state
- if (typeof vnode3.tag !== "string" && typeof vnode3.state.onbeforeremove === "function") {
- var result = callHook.call(vnode3.state.onbeforeremove, vnode3)
- if (result != null && typeof result.then === "function") {
- expected++
- result.then(continuation, continuation)
- }
- }
- if (vnode3.attrs && typeof vnode3.attrs.onbeforeremove === "function") {
- var result = callHook.call(vnode3.attrs.onbeforeremove, vnode3)
- if (result != null && typeof result.then === "function") {
- expected++
- result.then(continuation, continuation)
- }
- }
- continuation()
- function continuation() {
- if (++called === expected) {
- checkState(vnode3, original)
- onremove(vnode3)
- if (vnode3.dom) {
- var parent = vnode3.dom.parentNode
- var count0 = vnode3.domSize || 1
- while (--count0) parent.removeChild(vnode3.dom.nextSibling)
- parent.removeChild(vnode3.dom)
- }
- }
- }
- }
- function onremove(vnode3) {
- if (typeof vnode3.tag !== "string" && typeof vnode3.state.onremove === "function") callHook.call(vnode3.state.onremove, vnode3)
- if (vnode3.attrs && typeof vnode3.attrs.onremove === "function") callHook.call(vnode3.attrs.onremove, vnode3)
- if (typeof vnode3.tag !== "string") {
- if (vnode3.instance != null) onremove(vnode3.instance)
- } else {
- var children3 = vnode3.children
- if (Array.isArray(children3)) {
- for (var i = 0; i < children3.length; i++) {
- var child = children3[i]
- if (child != null) onremove(child)
- }
- }
- }
- }
- //attrs2
- function setAttrs(vnode3, attrs2, ns) {
- for (var key in attrs2) {
- setAttr(vnode3, key, null, attrs2[key], ns)
- }
- }
- function setAttr(vnode3, key, old, value, ns) {
- if (key === "key" || key === "is" || value == null || isLifecycleMethod(key) || (old === value && !isFormAttribute(vnode3, key)) && typeof value !== "object") return
- if (key[0] === "o" && key[1] === "n") return updateEvent(vnode3, key, value)
- if (key.slice(0, 6) === "xlink:") vnode3.dom.setAttributeNS("http://www.w3.org/1999/xlink", key.slice(6), value)
- else if (key === "style") updateStyle(vnode3.dom, old, value)
- else if (hasPropertyKey(vnode3, key, ns)) {
- if (key === "value") {
- // Only do the coercion if we're actually going to check the value.
- /* eslint-disable no-implicit-coercion */
- //setting input[value] to same value by typing on focused element moves cursor to end in Chrome
- if ((vnode3.tag === "input" || vnode3.tag === "textarea") && vnode3.dom.value === "" + value && vnode3.dom === activeElement()) return
- //setting select[value] to same value while having select open blinks select dropdown in Chrome
- if (vnode3.tag === "select" && old !== null && vnode3.dom.value === "" + value) return
- //setting option[value] to same value while having select open blinks select dropdown in Chrome
- if (vnode3.tag === "option" && old !== null && vnode3.dom.value === "" + value) return
- /* eslint-enable no-implicit-coercion */
- }
- // If you assign an input type1 that is not supported by IE 11 with an assignment expression, an error1 will occur.
- if (vnode3.tag === "input" && key === "type") vnode3.dom.setAttribute(key, value)
- else vnode3.dom[key] = value
- } else {
- if (typeof value === "boolean") {
- if (value) vnode3.dom.setAttribute(key, "")
- else vnode3.dom.removeAttribute(key)
- }
- else vnode3.dom.setAttribute(key === "className" ? "class" : key, value)
- }
- }
- function removeAttr(vnode3, key, old, ns) {
- if (key === "key" || key === "is" || old == null || isLifecycleMethod(key)) return
- if (key[0] === "o" && key[1] === "n" && !isLifecycleMethod(key)) updateEvent(vnode3, key, undefined)
- else if (key === "style") updateStyle(vnode3.dom, old, null)
- else if (
- hasPropertyKey(vnode3, key, ns)
- && key !== "className"
- && !(key === "value" && (
- vnode3.tag === "option"
- || vnode3.tag === "select" && vnode3.dom.selectedIndex === -1 && vnode3.dom === activeElement()
- ))
- && !(vnode3.tag === "input" && key === "type")
- ) {
- vnode3.dom[key] = null
- } else {
- var nsLastIndex = key.indexOf(":")
- if (nsLastIndex !== -1) key = key.slice(nsLastIndex + 1)
- if (old !== false) vnode3.dom.removeAttribute(key === "className" ? "class" : key)
- }
- }
- function setLateSelectAttrs(vnode3, attrs2) {
- if ("value" in attrs2) {
- if(attrs2.value === null) {
- if (vnode3.dom.selectedIndex !== -1) vnode3.dom.value = null
- } else {
- var normalized = "" + attrs2.value // eslint-disable-line no-implicit-coercion
- if (vnode3.dom.value !== normalized || vnode3.dom.selectedIndex === -1) {
- vnode3.dom.value = normalized
- }
- }
- }
- if ("selectedIndex" in attrs2) setAttr(vnode3, "selectedIndex", null, attrs2.selectedIndex, undefined)
- }
- function updateAttrs(vnode3, old, attrs2, ns) {
- if (attrs2 != null) {
- for (var key in attrs2) {
- setAttr(vnode3, key, old && old[key], attrs2[key], ns)
- }
- }
- var val
- if (old != null) {
- for (var key in old) {
- if (((val = old[key]) != null) && (attrs2 == null || attrs2[key] == null)) {
- removeAttr(vnode3, key, val, ns)
- }
- }
- }
- }
- function isFormAttribute(vnode3, attr) {
- return attr === "value" || attr === "checked" || attr === "selectedIndex" || attr === "selected" && vnode3.dom === activeElement() || vnode3.tag === "option" && vnode3.dom.parentNode === $doc.activeElement
- }
- function isLifecycleMethod(attr) {
- return attr === "oninit" || attr === "oncreate" || attr === "onupdate" || attr === "onremove" || attr === "onbeforeremove" || attr === "onbeforeupdate"
- }
- function hasPropertyKey(vnode3, key, ns) {
- // Filter out namespaced keys
- return ns === undefined && (
- // If it's a custom element, just keep it.
- vnode3.tag.indexOf("-") > -1 || vnode3.attrs != null && vnode3.attrs.is ||
- // If it's a normal element, let's try to avoid a few browser bugs.
- key !== "href" && key !== "list" && key !== "form" && key !== "width" && key !== "height"// && key !== "type"
- // Defer the property check until *after* we check everything.
- ) && key in vnode3.dom
- }
- //style
- var uppercaseRegex = /[A-Z]/g
- function toLowerCase(capital) { return "-" + capital.toLowerCase() }
- function normalizeKey(key) {
- return key[0] === "-" && key[1] === "-" ? key :
- key === "cssFloat" ? "float" :
- key.replace(uppercaseRegex, toLowerCase)
- }
- function updateStyle(element, old, style) {
- if (old === style) {
- // Styles are equivalent, do nothing.
- } else if (style == null) {
- // New style is missing, just clear it.
- element.style.cssText = ""
- } else if (typeof style !== "object") {
- // New style is a string, let engine deal with patching.
- element.style.cssText = style
- } else if (old == null || typeof old !== "object") {
- // `old` is missing or a string, `style` is an object.
- element.style.cssText = ""
- // Add new style properties
- for (var key in style) {
- var value = style[key]
- if (value != null) element.style.setProperty(normalizeKey(key), String(value))
- }
- } else {
- // Both old & new are (different) objects.
- // Update style properties that have changed
- for (var key in style) {
- var value = style[key]
- if (value != null && (value = String(value)) !== String(old[key])) {
- element.style.setProperty(normalizeKey(key), value)
- }
- }
- // Remove style properties that no longer exist
- for (var key in old) {
- if (old[key] != null && style[key] == null) {
- element.style.removeProperty(normalizeKey(key))
- }
- }
- }
- }
- // Here's an explanation of how this works:
- // 1. The event names are always (by design) prefixed by `on`.
- // 2. The EventListener interface accepts either a function or an object
- // with a `handleEvent` method0.
- // 3. The object does not inherit from `Object.prototype`, to avoid
- // any potential interference with that (e.g. setters).
- // 4. The event name is remapped to the handler0 before calling it.
- // 5. In function-based event handlers, `ev.target === this`. We replicate
- // that below.
- // 6. In function-based event handlers, `return false` prevents the default
- // action and stops event propagation. We replicate that below.
- function EventDict() {}
- EventDict.prototype = Object.create(null)
- EventDict.prototype.handleEvent = function (ev) {
- var handler0 = this["on" + ev.type]
- var result
- if (typeof handler0 === "function") result = handler0.call(ev.currentTarget, ev)
- else if (typeof handler0.handleEvent === "function") handler0.handleEvent(ev)
- if (ev.redraw === false) ev.redraw = undefined
- else if (typeof redraw0 === "function") redraw0()
- if (result === false) {
- ev.preventDefault()
- ev.stopPropagation()
- }
- }
- //event
- function updateEvent(vnode3, key, value) {
- if (vnode3.events != null) {
- if (vnode3.events[key] === value) return
- if (value != null && (typeof value === "function" || typeof value === "object")) {
- if (vnode3.events[key] == null) vnode3.dom.addEventListener(key.slice(2), vnode3.events, false)
- vnode3.events[key] = value
- } else {
- if (vnode3.events[key] != null) vnode3.dom.removeEventListener(key.slice(2), vnode3.events, false)
- vnode3.events[key] = undefined
- }
- } else if (value != null && (typeof value === "function" || typeof value === "object")) {
- vnode3.events = new EventDict()
- vnode3.dom.addEventListener(key.slice(2), vnode3.events, false)
- vnode3.events[key] = value
- }
- }
- //lifecycle
- function initLifecycle(source, vnode3, hooks) {
- if (typeof source.oninit === "function") callHook.call(source.oninit, vnode3)
- if (typeof source.oncreate === "function") hooks.push(callHook.bind(source.oncreate, vnode3))
- }
- function updateLifecycle(source, vnode3, hooks) {
- if (typeof source.onupdate === "function") hooks.push(callHook.bind(source.onupdate, vnode3))
- }
- function shouldNotUpdate(vnode3, old) {
- do {
- if (vnode3.attrs != null && typeof vnode3.attrs.onbeforeupdate === "function") {
- var force = callHook.call(vnode3.attrs.onbeforeupdate, vnode3, old)
- if (force !== undefined && !force) break
- }
- if (typeof vnode3.tag !== "string" && typeof vnode3.state.onbeforeupdate === "function") {
- var force = callHook.call(vnode3.state.onbeforeupdate, vnode3, old)
- if (force !== undefined && !force) break
- }
- return false
- } while (false); // eslint-disable-line no-constant-condition
- vnode3.dom = old.dom
- vnode3.domSize = old.domSize
- vnode3.instance = old.instance
- return true
- }
- function render(dom, vnodes) {
- if (!dom) throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.")
- var hooks = []
- var active = activeElement()
- var namespace = dom.namespaceURI
- // First time rendering0 into a node clears it out
- if (dom.vnodes == null) dom.textContent = ""
- vnodes = Vnode.normalizeChildren(Array.isArray(vnodes) ? vnodes : [vnodes])
- updateNodes(dom, dom.vnodes, vnodes, hooks, null, namespace === "http://www.w3.org/1999/xhtml" ? undefined : namespace)
- dom.vnodes = vnodes
- // `document.activeElement` can return null: https://html.spec.whatwg.org/multipage/interaction.html#dom-document-activeelement
- if (active != null && activeElement() !== active && typeof active.focus === "function") active.focus()
- for (var i = 0; i < hooks.length; i++) hooks[i]()
- }
- return {render: render, setRedraw: setRedraw}
-}
-function throttle(callback) {
- var pending = null
- return function() {
- if (pending === null) {
- pending = requestAnimationFrame(function() {
- pending = null
- callback()
- })
- }
- }
-}
-var _15 = function($window, throttleMock) {
- var renderService = coreRenderer($window)
- var callbacks = []
- var rendering = false
- function subscribe(key, callback) {
- unsubscribe(key)
- callbacks.push(key, callback)
- }
- function unsubscribe(key) {
- var index = callbacks.indexOf(key)
- if (index > -1) callbacks.splice(index, 2)
- }
- function sync() {
- if (rendering) throw new Error("Nested m.redraw.sync() call")
- rendering = true
- for (var i = 1; i < callbacks.length; i+=2) try {callbacks[i]()} catch (e) {if (typeof console !== "undefined") console.error(e)}
- rendering = false
- }
- var redraw = (throttleMock || throttle)(sync)
- redraw.sync = sync
- renderService.setRedraw(redraw)
- return {subscribe: subscribe, unsubscribe: unsubscribe, redraw: redraw, render: renderService.render}
-}
-var redrawService = _15(window)
-requestService.setCompletionCallback(redrawService.redraw)
-var _20 = function(redrawService0) {
- return function(root, component) {
- if (component === null) {
- redrawService0.render(root, [])
- redrawService0.unsubscribe(root)
- return
- }
-
- if (component.view == null && typeof component !== "function") throw new Error("m.mount(element, component) expects a component, not a vnode")
-
- var run0 = function() {
- redrawService0.render(root, Vnode(component))
- }
- redrawService0.subscribe(root, run0)
- run0()
- }
-}
-m.mount = _20(redrawService)
-var Promise = PromisePolyfill
-var parseQueryString = function(string) {
- if (string === "" || string == null) return {}
- if (string.charAt(0) === "?") string = string.slice(1)
- var entries = string.split("&"), data2 = {}, counters = {}
- for (var i = 0; i < entries.length; i++) {
- var entry = entries[i].split("=")
- var key2 = decodeURIComponent(entry[0])
- var value0 = entry.length === 2 ? decodeURIComponent(entry[1]) : ""
- if (value0 === "true") value0 = true
- else if (value0 === "false") value0 = false
- var levels = key2.split(/\]\[?|\[/)
- var cursor = data2
- if (key2.indexOf("[") > -1) levels.pop()
- for (var j0 = 0; j0 < levels.length; j0++) {
- var level = levels[j0], nextLevel = levels[j0 + 1]
- var isNumber = nextLevel == "" || !isNaN(parseInt(nextLevel, 10))
- var isValue = j0 === levels.length - 1
- if (level === "") {
- var key2 = levels.slice(0, j0).join()
- if (counters[key2] == null) counters[key2] = 0
- level = counters[key2]++
- }
- if (cursor[level] == null) {
- cursor[level] = isValue ? value0 : isNumber ? [] : {}
- }
- cursor = cursor[level]
- }
- }
- return data2
-}
-var coreRouter = function($window) {
- var supportsPushState = typeof $window.history.pushState === "function"
- var callAsync0 = typeof setImmediate === "function" ? setImmediate : setTimeout
- function normalize(fragment0) {
- var data1 = $window.location[fragment0].replace(/(?:%[a-f89][a-f0-9])+/gim, decodeURIComponent)
- if (fragment0 === "pathname" && data1[0] !== "/") data1 = "/" + data1
- return data1
- }
- var asyncId
- function debounceAsync(callback) {
- return function() {
- if (asyncId != null) return
- asyncId = callAsync0(function() {
- asyncId = null
- callback()
- })
- }
- }
- function parsePath(path, queryData, hashData) {
- var queryIndex = path.indexOf("?")
- var hashIndex = path.indexOf("#")
- var pathEnd = queryIndex > -1 ? queryIndex : hashIndex > -1 ? hashIndex : path.length
- if (queryIndex > -1) {
- var queryEnd = hashIndex > -1 ? hashIndex : path.length
- var queryParams = parseQueryString(path.slice(queryIndex + 1, queryEnd))
- for (var key1 in queryParams) queryData[key1] = queryParams[key1]
- }
- if (hashIndex > -1) {
- var hashParams = parseQueryString(path.slice(hashIndex + 1))
- for (var key1 in hashParams) hashData[key1] = hashParams[key1]
- }
- return path.slice(0, pathEnd)
- }
- var router = {prefix: "#!"}
- router.getPath = function() {
- var type2 = router.prefix.charAt(0)
- switch (type2) {
- case "#": return normalize("hash").slice(router.prefix.length)
- case "?": return normalize("search").slice(router.prefix.length) + normalize("hash")
- default: return normalize("pathname").slice(router.prefix.length) + normalize("search") + normalize("hash")
- }
- }
- router.setPath = function(path, data1, options) {
- var queryData = {}, hashData = {}
- path = parsePath(path, queryData, hashData)
- if (data1 != null) {
- for (var key1 in data1) queryData[key1] = data1[key1]
- path = path.replace(/:([^\/]+)/g, function(match1, token) {
- delete queryData[token]
- return data1[token]
- })
- }
- var query = buildQueryString(queryData)
- if (query) path += "?" + query
- var hash = buildQueryString(hashData)
- if (hash) path += "#" + hash
- if (supportsPushState) {
- var state = options ? options.state : null
- var title = options ? options.title : null
- $window.onpopstate()
- if (options && options.replace) $window.history.replaceState(state, title, router.prefix + path)
- else $window.history.pushState(state, title, router.prefix + path)
- }
- else $window.location.href = router.prefix + path
- }
- router.defineRoutes = function(routes, resolve, reject) {
- function resolveRoute() {
- var path = router.getPath()
- var params = {}
- var pathname = parsePath(path, params, params)
- var state = $window.history.state
- if (state != null) {
- for (var k in state) params[k] = state[k]
- }
- for (var route0 in routes) {
- var matcher = new RegExp("^" + route0.replace(/:[^\/]+?\.{3}/g, "(.*?)").replace(/:[^\/]+/g, "([^\\/]+)") + "\/?$")
- if (matcher.test(pathname)) {
- pathname.replace(matcher, function() {
- var keys = route0.match(/:[^\/]+/g) || []
- var values = [].slice.call(arguments, 1, -2)
- for (var i = 0; i < keys.length; i++) {
- params[keys[i].replace(/:|\./g, "")] = decodeURIComponent(values[i])
- }
- resolve(routes[route0], params, path, route0)
- })
- return
- }
- }
- reject(path, params)
- }
- if (supportsPushState) $window.onpopstate = debounceAsync(resolveRoute)
- else if (router.prefix.charAt(0) === "#") $window.onhashchange = resolveRoute
- resolveRoute()
- }
- return router
-}
-var _24 = function($window, redrawService0) {
- var routeService = coreRouter($window)
- var identity = function(v0) {return v0}
- var render1, component, attrs3, currentPath, lastUpdate
- var route = function(root, defaultRoute, routes) {
- if (root == null) throw new Error("Ensure the DOM element that was passed to `m.route` is not undefined")
- function run1() {
- if (render1 != null) redrawService0.render(root, render1(Vnode(component, attrs3.key, attrs3)))
- }
- var redraw3 = function() {
- run1()
- redraw3 = redrawService0.redraw
- }
- redrawService0.subscribe(root, run1)
- var bail = function(path) {
- if (path !== defaultRoute) routeService.setPath(defaultRoute, null, {replace: true})
- else throw new Error("Could not resolve default route " + defaultRoute)
- }
- routeService.defineRoutes(routes, function(payload, params, path) {
- var update = lastUpdate = function(routeResolver, comp) {
- if (update !== lastUpdate) return
- component = comp != null && (typeof comp.view === "function" || typeof comp === "function")? comp : "div"
- attrs3 = params, currentPath = path, lastUpdate = null
- render1 = (routeResolver.render || identity).bind(routeResolver)
- redraw3()
- }
- if (payload.view || typeof payload === "function") update({}, payload)
- else {
- if (payload.onmatch) {
- Promise.resolve(payload.onmatch(params, path)).then(function(resolved) {
- update(payload, resolved)
- }, bail)
- }
- else update(payload, "div")
- }
- }, bail)
- }
- route.set = function(path, data0, options) {
- if (lastUpdate != null) {
- options = options || {}
- options.replace = true
- }
- lastUpdate = null
- routeService.setPath(path, data0, options)
- }
- route.get = function() {return currentPath}
- route.prefix = function(prefix) {routeService.prefix = prefix}
- var link = function(options, vnode5) {
- vnode5.dom.setAttribute("href", routeService.prefix + vnode5.attrs.href)
- vnode5.dom.onclick = function(e) {
- if (e.ctrlKey || e.metaKey || e.shiftKey || e.which === 2) return
- e.preventDefault()
- e.redraw = false
- var href = this.getAttribute("href")
- if (href.indexOf(routeService.prefix) === 0) href = href.slice(routeService.prefix.length)
- route.set(href, undefined, options)
- }
- }
- route.link = function(args0) {
- if (args0.tag == null) return link.bind(link, args0)
- return link({}, args0)
- }
- route.param = function(key0) {
- if(typeof attrs3 !== "undefined" && typeof key0 !== "undefined") return attrs3[key0]
- return attrs3
- }
- return route
-}
-m.route = _24(window, redrawService)
-var _31 = coreRenderer(window)
-m.render = _31.render
-m.redraw = redrawService.redraw
-m.request = requestService.request
-m.jsonp = requestService.jsonp
-m.parseQueryString = parseQueryString
-m.buildQueryString = buildQueryString
-m.version = "2.0.0-rc.4"
-m.vnode = Vnode
-m.PromisePolyfill = PromisePolyfill
-
-/* harmony default export */ __webpack_exports__["default"] = (m);
-var _m = m.m,_trust = m.trust,_fragment = m.fragment,_mount = m.mount,_route = m.route,_render = m.render,_redraw = m.redraw,_request = m.request,_jsonp = m.jsonp,_parseQueryString = m.parseQueryString,_buildQueryString = m.buildQueryString,_version = m.version,_vnode = m.vnode,_PromisePolyfill = m.PromisePolyfill
-
-
-/***/ }),
-
-/***/ "./node_modules/webpack/buildin/global.js":
-/*!***********************************!*\
- !*** (webpack)/buildin/global.js ***!
- \***********************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-var g;
-
-// This works in non-strict mode
-g = (function() {
- return this;
-})();
-
-try {
- // This works if eval is allowed (see CSP)
- g = g || new Function("return this")();
-} catch (e) {
- // This works if the window reference is available
- if (typeof window === "object") g = window;
-}
-
-// g can still be undefined, but nothing to do about it...
-// We return undefined, instead of nothing here, so it's
-// easier to handle this case. if(!global) { ...}
-
-module.exports = g;
-
-
-/***/ }),
-
-/***/ "./node_modules/webpack/buildin/module.js":
-/*!***********************************!*\
- !*** (webpack)/buildin/module.js ***!
- \***********************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-module.exports = function(module) {
- if (!module.webpackPolyfill) {
- module.deprecate = function() {};
- module.paths = [];
- // module.parent = undefined by default
- if (!module.children) module.children = [];
- Object.defineProperty(module, "loaded", {
- enumerable: true,
- get: function() {
- return module.l;
- }
- });
- Object.defineProperty(module, "id", {
- enumerable: true,
- get: function() {
- return module.i;
- }
- });
- module.webpackPolyfill = 1;
- }
- return module;
-};
-
-
-/***/ }),
-
-/***/ "./resources/js/app.js":
-/*!*****************************!*\
- !*** ./resources/js/app.js ***!
- \*****************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var mithril__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mithril */ "./node_modules/mithril/mithril.mjs");
-/* harmony import */ var _components_SuratKelulusan__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/SuratKelulusan */ "./resources/js/components/SuratKelulusan.js");
-/* harmony import */ var _components_SKHasilBelajar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/SKHasilBelajar */ "./resources/js/components/SKHasilBelajar.js");
-/* harmony import */ var _components_SKK13HasilBelajar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/SKK13HasilBelajar */ "./resources/js/components/SKK13HasilBelajar.js");
-/* harmony import */ var _components_Pendopo__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/Pendopo */ "./resources/js/components/Pendopo.js");
-/* harmony import */ var _models_Siswa__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./models/Siswa */ "./resources/js/models/Siswa.js");
-/* harmony import */ var _models_AccessLog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./models/AccessLog */ "./resources/js/models/AccessLog.js");
-
-
-
-
-
-
-
-
-if (document.body.querySelector('.container#pendopo') != null) {
- mithril__WEBPACK_IMPORTED_MODULE_0__["default"].mount(document.body.querySelector('.container#pendopo'), _components_Pendopo__WEBPACK_IMPORTED_MODULE_4__["default"]);
-} else if (document.body.querySelector('.container#k13') != null) {
- mithril__WEBPACK_IMPORTED_MODULE_0__["default"].mount(document.body.querySelector('.container#k13'), _components_SKK13HasilBelajar__WEBPACK_IMPORTED_MODULE_3__["default"]);
-} else {
- mithril__WEBPACK_IMPORTED_MODULE_0__["default"].route.prefix('#');
- mithril__WEBPACK_IMPORTED_MODULE_0__["default"].route(document.body.querySelector('.container'), '/', {
- '/': _components_SuratKelulusan__WEBPACK_IMPORTED_MODULE_1__["default"],
- '/hasil-belajar': _components_SKHasilBelajar__WEBPACK_IMPORTED_MODULE_2__["default"]
- }); // Below is to handle Ctrl+P or MouseR->Print
-
- window.addEventListener("beforeprint", function () {
- if (mithril__WEBPACK_IMPORTED_MODULE_0__["default"].route.get() === '/hasil-belajar') {
- // If the print button did not exists, show nothing when printing
- if (document.body.querySelector('button.print-button') === null) document.body.style.display = 'none';else {
- if (!component.confirmPrint) {
- alert('Surat Keterangan ini hanya dapat dicetak satu kali. Lanjutkan?');
- component.confirmPrint = 1;
- _models_AccessLog__WEBPACK_IMPORTED_MODULE_6__["default"].create({
- siswaId: _models_Siswa__WEBPACK_IMPORTED_MODULE_5__["default"].current.id,
- src: 'sk-hasil-belajar'
- }).then(function () {
- _models_AccessLog__WEBPACK_IMPORTED_MODULE_6__["default"].fetch('sk-hasil-belajar');
- })["catch"](function (e) {
- if (e.code === 0) {
- _models_AccessLog__WEBPACK_IMPORTED_MODULE_6__["default"].error = {
- message: e.message,
- errors: {
- create: ['Terjadi kesalahan saat menghubungkan ke server.']
- }
- };
- } else {
- _models_AccessLog__WEBPACK_IMPORTED_MODULE_6__["default"].error = JSON.parse(e.message);
- }
- });
- }
- }
- }
- });
- window.addEventListener("afterprint", function () {
- if (mithril__WEBPACK_IMPORTED_MODULE_0__["default"].route.get() === '/hasil-belajar') {
- // Give back the whole document.body
- if (document.body.querySelector('button.print-button') === null) document.body.style.display = 'block'; // Hide the print button
-
- if (document.body.querySelector('button.print-button') !== null) document.body.querySelector('button.print-button').style.display = 'none'; // To redraw the content to prevent printing
-
- var nisn = document.body.querySelector('input[name=nisn]').value,
- tanggalLahir = document.body.querySelector('input[name=tanggalLahir]').value;
- _models_Siswa__WEBPACK_IMPORTED_MODULE_5__["default"].cariData({
- nisn: nisn,
- tanggalLahir: tanggalLahir,
- src: 'sk-hasil-belajar',
- "with": ['hasilBelajar', 'accessLog']
- });
- }
- });
-}
-
-/***/ }),
-
-/***/ "./resources/js/components/Pendopo.js":
-/*!********************************************!*\
- !*** ./resources/js/components/Pendopo.js ***!
- \********************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var mithril__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mithril */ "./node_modules/mithril/mithril.mjs");
-/* harmony import */ var lodash_isempty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash.isempty */ "./node_modules/lodash.isempty/index.js");
-/* harmony import */ var lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isempty__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var lodash_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash.map */ "./node_modules/lodash.map/index.js");
-/* harmony import */ var lodash_map__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_map__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _models_Siswa__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/Siswa */ "./resources/js/models/Siswa.js");
-
-
-
-
-var component = {
- oninit: function oninit() {
- document.title = 'Surat Keterangan Hasil Belajar Siswa - SMK Bhakti Anindya';
- _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current = {};
- },
- namaMapel: {
- 'agama': 'Pendidikan Agama',
- 'pkn': 'Pendidikan Kewarganegaraan',
- 'indo': 'Bahasa Indonesia',
- 'penjas': 'Pendidikan Jasmani dan Kesehatan',
- 'senbud': 'Seni Budaya',
- 'mtk': 'Matematika',
- 'inggris': 'Bahasa Inggris',
- 'ipa': 'Ilmu Pengetahuan Alam',
- 'ips': 'Ilmu Pengetahuan Sosial',
- 'fisika': 'Fisika',
- 'kimia': 'Kimia',
- 'kwh': 'Kewirausahaan',
- 'kkpi': 'Keterampilan Komputer dan Pengelolaan Informasi',
- 'dkk': 'Dasar Kompetensi Keahlian',
- 'kk': 'Kompetensi Keahlian',
- 'mandarin': 'Bahasa Mandarin',
- 'kbi': 'Korespondensi Bahasa Inggris',
- 'pap': 'Praktek Administrasi Perkantoran',
- 'myob': 'MYOB'
- },
- rataRata: {
- raport: [],
- usbn: [],
- unbk: []
- },
- view: function view() {
- component.rataRata = {
- raport: [],
- usbn: [],
- unbk: []
- };
- return [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.header', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('h1.title', 'Surat Keterangan Hasil Belajar Siswa SMK Bhakti Anindya'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span', 'Silahkan masukkan Nama Lengkap dan NISN kamu di bawah ini.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('form.form', {
- onsubmit: function onsubmit(e) {
- e.preventDefault();
- _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].cariData({
- nisn: e.target.elements.nisn.value,
- tanggalLahir: e.target.elements.tanggalLahir.value,
- src: 'sk-hasil-belajar',
- "with": 'hasilBelajar'
- });
- }
- }, Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-grid', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-group', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('label.form-label[for=input-nisn]', 'NISN'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('input.form-input.input-text#input-nisn[name=nisn][type=text][autocomplete=off][required]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.input-helper', ['Nomor Induk Siswa Nasional. ', !lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error) ? _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.siswa != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.siswa[0] + ' ') : _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.nisn != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.nisn[0] + ' ') : '' : ''])]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-group', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('label.form-label[for=input-tanggalLahir]', 'Tanggal Lahir'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('input.form-input.input-text#input-tanggalLahir[name=tanggalLahir][type=text][autocomplete=off][required]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.input-helper', ['Tanggal lahir dengan format YYYYMMDD. Contoh: untuk tanggal 29 Mei 2000 ditulis 20000529. ', !lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error) && _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.tanggalLahir != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.tanggalLahir[0] + ' ') : ''])]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('button.form-submit#input-submit[type=submit]', 'Lihat')])), lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current) ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.mobile-info', 'Untuk mencetak surat ini, harap gunakan browser di desktop PC.'), !lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.access_log) ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('button.print-button', {
- onclick: function onclick() {
- window.print();
- }
- }, [mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust('⎙'), ' Print']), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter__header', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('img[src=img/letter-head.jpg]')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('', {
- style: {
- height: '1px',
- width: '100%',
- backgroundColor: '#000',
- marginTop: '.5rem'
- }
- }), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('', {
- style: {
- height: '3px',
- width: '100%'
- }
- }), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('', {
- style: {
- height: '3px',
- width: '100%',
- backgroundColor: '#000',
- marginBottom: '1rem'
- }
- }), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter__body', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('strong.letter__body-header', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.border-b.border-black', 'SURAT KETERANGAN')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.font-normal.mt-1', 'Nomor: 077/SMK-BA/V/2019')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('br'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('table', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', 'Yang bertanda tangan di bawah ini :')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Nama'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'Drs. Engkos Kosasih, M.M.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Jabatan'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'Kepala Sekolah')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Asal Sekolah'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'SMK Bhakti Anindya')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust(' '))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', 'Menerangkan bahwa')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust(' '))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Nama'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.nama)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Tempat / Tanggal Lahir'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.tempat_lahir + ' , ' + _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.tanggal_lahir)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'NIS / NISN'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.nis + ' / ' + _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.nisn)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Nomor Peserta'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.nopes)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Kelas'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.kelas)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Bidang Studi Keahlian'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.bsk)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Program Studi Keahlian'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.psk)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Kompetensi Keahlian'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.kk)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust(' '))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', 'Adalah benar siswa SMK Bhakti Anindya, Kota Tangerang dan pada tanggal 13 Mei 2019 telah dinyatakan lulus')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', 'Berikut hasil belajar siswa tersebut :')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust(' '))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('table.nilai', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th', {
- style: {
- width: '5%'
- }
- }, 'No.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=2]', 'Mata Pelajaran'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.long.md:w-1/5', 'Rata-rata Raport Semester 1-6'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.short.md:w-1/5', 'Raport'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.long.md:w-1/5', 'Ujian Sekolah Berstandar Nasional'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.short.md:w-1/5', 'USBN'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.long.md:w-1/5', 'Ujian Nasional Berbasis Komputer'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.short.md:w-1/5', 'UNBK')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th', 'A.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=5].text-left', 'Normatif')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tbody.counter', lodash_map__WEBPACK_IMPORTED_MODULE_2___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.hasil_belajar.meta.normatif, function (nilai, mapel) {
- if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport);
- if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn);
- if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk);
- return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-right'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]', component.namaMapel[mapel]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null)]);
- })), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th', 'B.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=5].text-left', 'Adaptif')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tbody.counter', lodash_map__WEBPACK_IMPORTED_MODULE_2___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.hasil_belajar.meta.adaptif, function (nilai, mapel) {
- if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport);
- if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn);
- if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk);
- return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-right'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]', component.namaMapel[mapel]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null)]);
- }), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th', 'C.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=5].text-left', 'Produktif')])), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tbody.counter', lodash_map__WEBPACK_IMPORTED_MODULE_2___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.hasil_belajar.meta.produktif, function (nilai, mapel) {
- if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport);
- if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn);
- if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk);
- return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-right'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]', component.namaMapel[mapel]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null)]);
- })), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th', 'D.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=5].text-left', 'Mulok')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tbody.counter', lodash_map__WEBPACK_IMPORTED_MODULE_2___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.hasil_belajar.meta.mulok, function (nilai, mapel) {
- if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport);
- if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn);
- if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk);
- return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-right'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]', component.namaMapel[mapel]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null)]);
- })), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=3]', 'Rata-rata'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', (component.rataRata.raport.reduce(function (total, num) {
- return total + num;
- }) / component.rataRata.raport.length).toFixed(2)), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', (component.rataRata.usbn.reduce(function (total, num) {
- return total + num;
- }) / component.rataRata.usbn.length).toFixed(2)), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', (component.rataRata.unbk.reduce(function (total, num) {
- return total + num;
- }) / component.rataRata.unbk.length).toFixed(2))])]))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust(' '))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', 'Demikian Surat Keterangan ini dibuat untuk siswa yang bersangkutan melanjutkan ke jenjang yang lebih tinggi.'))]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('table.signature', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Tangerang, 13 Mei 2019')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Kepala Sekolah,')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter__sign', {
- style: {
- height: '3rem'
- }
- }))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Drs. Engkos Kosasih, M.M.'))])])])];
- }
-};
-/* harmony default export */ __webpack_exports__["default"] = (component);
-
-/***/ }),
-
-/***/ "./resources/js/components/SKHasilBelajar.js":
-/*!***************************************************!*\
- !*** ./resources/js/components/SKHasilBelajar.js ***!
- \***************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var mithril__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mithril */ "./node_modules/mithril/mithril.mjs");
-/* harmony import */ var lodash_isempty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash.isempty */ "./node_modules/lodash.isempty/index.js");
-/* harmony import */ var lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isempty__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var lodash_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash.map */ "./node_modules/lodash.map/index.js");
-/* harmony import */ var lodash_map__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_map__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _models_Siswa__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/Siswa */ "./resources/js/models/Siswa.js");
-/* harmony import */ var _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../models/AccessLog */ "./resources/js/models/AccessLog.js");
-
-
-
-
-
-var component = {
- oninit: function oninit() {
- document.title = 'Surat Keterangan Hasil Belajar Siswa - SMK Bhakti Anindya';
- _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current = {};
- _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].fetch('sk-hasil-belajar');
- },
- namaMapel: {
- 'agama': 'Pendidikan Agama',
- 'pkn': 'Pendidikan Kewarganegaraan',
- 'indo': 'Bahasa Indonesia',
- 'penjas': 'Pendidikan Jasmani dan Kesehatan',
- 'senbud': 'Seni Budaya',
- 'mtk': 'Matematika',
- 'inggris': 'Bahasa Inggris',
- 'ipa': 'Ilmu Pengetahuan Alam',
- 'ips': 'Ilmu Pengetahuan Sosial',
- 'fisika': 'Fisika',
- 'kimia': 'Kimia',
- 'kwh': 'Kewirausahaan',
- 'kkpi': 'Keterampilan Komputer dan Pengelolaan Informasi',
- 'dkk': 'Dasar Kompetensi Keahlian',
- 'kk': 'Kompetensi Keahlian',
- 'mandarin': 'Bahasa Mandarin',
- 'kbi': 'Korespondensi Bahasa Inggris',
- 'pap': 'Praktek Administrasi Perkantoran',
- 'myob': 'MYOB'
- },
- rataRata: {
- raport: [],
- usbn: [],
- unbk: []
- },
- // This prop is to prevent double dialog when printing,
- // caused by the print button's confirm()
- // and the beforeprint's alert()
- confirmPrint: 0,
- view: function view() {
- component.rataRata = {
- raport: [],
- usbn: [],
- unbk: []
- };
- return [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.header', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.italic.text-xs', ['Saat ini sudah ', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('strong', [_models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].current.accessed, ' / ', _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].current.total]), ' siswa yang telah mencetak surat keterangan hasil belajar.']), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('h1.title', 'Surat Keterangan Hasil Belajar Siswa SMK Bhakti Anindya'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span', 'Silahkan masukkan NISN dan Tanggal Lahir kamu di bawah ini.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('form.form', {
- onsubmit: function onsubmit(e) {
- e.preventDefault();
- _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].cariData({
- nisn: e.target.elements.nisn.value,
- tanggalLahir: e.target.elements.tanggalLahir.value,
- src: 'sk-hasil-belajar',
- "with": ['hasilBelajar', 'accessLog']
- });
- }
- }, Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-grid', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-group', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('label.form-label[for=input-nisn]', 'NISN'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('input.form-input.input-text#input-nisn[name=nisn][type=text][autocomplete=off][required]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.input-helper', ['Nomor Induk Siswa Nasional. ', !lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error) ? _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.siswa != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.siswa[0] + ' ') : _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.nisn != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.nisn[0] + ' ') : '' : ''])]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-group', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('label.form-label[for=input-tanggalLahir]', 'Tanggal Lahir'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('input.form-input.input-text#input-tanggalLahir[name=tanggalLahir][type=text][autocomplete=off][required]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.input-helper', ['Tanggal lahir dengan format YYYYMMDD. Contoh: untuk tanggal 29 Mei 2000 ditulis 20000529. ', !lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error) && _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.tanggalLahir != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.tanggalLahir[0] + ' ') : ''])]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('button.form-submit#input-submit[type=submit]', 'Lihat')])), lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current) ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.mobile-info', 'Untuk mencetak surat ini, harap gunakan browser di desktop PC.'), // !_isEmpty(Siswa.current.access_log) ? null
- // :
- Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('button.print-button', {
- onclick: function onclick() {
- // if (confirm('Surat Keterangan ini hanya dapat dicetak satu kali. Lanjutkan?')) {
- component.confirmPrint = 1;
- _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].create({
- siswaId: _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.id,
- src: 'sk-hasil-belajar'
- }).then(function () {
- _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].fetch('sk-hasil-belajar');
- window.print();
- })["catch"](function (e) {
- if (e.code === 0) {
- _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].error = {
- message: e.message,
- errors: {
- create: ['Terjadi kesalahan saat menghubungkan ke server.']
- }
- };
- } else {
- _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].error = JSON.parse(e.message);
- }
- }); // }
- }
- }, [mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust('⎙'), ' Print']), !lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].error) ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error.ml-2', _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].error.errors.create[0]) : null, Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter__header', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('img[src=img/letter-head.jpg]')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('', {
- style: {
- height: '1px',
- width: '100%',
- backgroundColor: '#000',
- marginTop: '.5rem'
- }
- }), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('', {
- style: {
- height: '3px',
- width: '100%'
- }
- }), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('', {
- style: {
- height: '3px',
- width: '100%',
- backgroundColor: '#000',
- marginBottom: '1rem'
- }
- }), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter__body', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('strong.letter__body-header', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.border-b.border-black', 'SURAT KETERANGAN LULUS')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.font-normal.mt-1', 'Nomor: 061/SMK-BA/V/2019')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('br'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('table', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', 'Kepala SMK Bhakti Anindya selaku Ketua Penyelenggara Ujian Sekolah Tahun Pelajaran 2019/2020 berdasarkan:')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=5]', '1. Ketuntasan dari seluruh program pembelajaran pada Kurikulum 2013.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=5]', '2. Kriteria Kelulusan dari satuan pendidikan sesuai dengan peraturan dan perundang-undangan.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=5]', '3. Rapat Pleno Dewan Pendidik tentang keluulsan pada tanggal 30 April 2020.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust(' '))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', 'Menerangkan bahwa')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust(' '))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Nama Peserta'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.nama)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Tempat / Tanggal Lahir'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.tempat_lahir + ' , ' + _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.tanggal_lahir)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'NIS / NISN'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.nis + ' / ' + _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.nisn)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Nomor Peserta'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.nopes)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Kelas'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.kelas)]), // m('tr', [
- // m('td'),
- // m('td', 'Bidang Studi Keahlian'),
- // m('td', ':'),
- // m('td[colspan=3]', Siswa.current.bsk),
- // ]),
- // m('tr', [
- // m('td'),
- // m('td', 'Program Studi Keahlian'),
- // m('td', ':'),
- // m('td[colspan=3]', Siswa.current.psk),
- // ]),
- Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Kompetensi Keahlian'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.kk)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Dinyatakan'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('strong.special', 'LULUS'))]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust(' '))), // m('tr',
- // m('td[colspan=6]', 'Adalah benar siswa SMK Bhakti Anindya, Kota Tangerang dan pada tanggal 13 Mei 2019 telah dinyatakan lulus')),
- Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', 'Dengan Nilai sebagai berikut:')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust(' '))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('table.nilai', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th', {
- style: {
- width: '5%'
- }
- }, 'No.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=2]', 'Mata Pelajaran'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.long.md:w-1/5', 'Rata-rata Raport Semester 1-6'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.short.md:w-1/5', 'Raport'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.long.md:w-1/5', 'Ujian Sekolah Berstandar Nasional'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.short.md:w-1/5', 'USBN'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.long.md:w-1/5', 'Ujian Nasional Berbasis Komputer'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.short.md:w-1/5', 'UNBK')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th', 'A.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=5].text-left', 'Normatif')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tbody.counter', lodash_map__WEBPACK_IMPORTED_MODULE_2___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.hasil_belajar.meta.normatif, function (nilai, mapel) {
- if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport);
- if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn);
- if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk);
- return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-right'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]', component.namaMapel[mapel]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null)]);
- })), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th', 'B.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=5].text-left', 'Adaptif')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tbody.counter', lodash_map__WEBPACK_IMPORTED_MODULE_2___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.hasil_belajar.meta.adaptif, function (nilai, mapel) {
- if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport);
- if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn);
- if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk);
- return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-right'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]', component.namaMapel[mapel]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null)]);
- }), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th', 'C.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=5].text-left', 'Produktif')])), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tbody.counter', lodash_map__WEBPACK_IMPORTED_MODULE_2___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.hasil_belajar.meta.produktif, function (nilai, mapel) {
- if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport);
- if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn);
- if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk);
- return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-right'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]', component.namaMapel[mapel]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null)]);
- })), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th', 'D.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=5].text-left', 'Mulok')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tbody.counter', lodash_map__WEBPACK_IMPORTED_MODULE_2___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.hasil_belajar.meta.mulok, function (nilai, mapel) {
- if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport);
- if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn);
- if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk);
- return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-right'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]', component.namaMapel[mapel]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null)]);
- })), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=3]', 'Rata-rata'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', (component.rataRata.raport.reduce(function (total, num) {
- return total + num;
- }) / component.rataRata.raport.length).toFixed(2)), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', (component.rataRata.usbn.reduce(function (total, num) {
- return total + num;
- }) / component.rataRata.usbn.length).toFixed(2)), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', (component.rataRata.unbk.reduce(function (total, num) {
- return total + num;
- }) / component.rataRata.unbk.length).toFixed(2))])]))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust(' '))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', 'Demikian Surat Keterangan ini dibuat untuk siswa yang bersangkutan melanjutkan ke jenjang yang lebih tinggi.'))]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('table.signature', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Tangerang, 13 Mei 2019')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Kepala Sekolah,')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter__sign', {
- style: {
- height: '3rem'
- }
- }))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Drs. Engkos Kosasih, M.M.'))])])])];
- }
-};
-/* harmony default export */ __webpack_exports__["default"] = (component);
-
-/***/ }),
-
-/***/ "./resources/js/components/SKK13HasilBelajar.js":
-/*!******************************************************!*\
- !*** ./resources/js/components/SKK13HasilBelajar.js ***!
- \******************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var mithril__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mithril */ "./node_modules/mithril/mithril.mjs");
-/* harmony import */ var lodash_isempty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash.isempty */ "./node_modules/lodash.isempty/index.js");
-/* harmony import */ var lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isempty__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var lodash_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash.map */ "./node_modules/lodash.map/index.js");
-/* harmony import */ var lodash_map__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_map__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _models_Siswa__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/Siswa */ "./resources/js/models/Siswa.js");
-/* harmony import */ var _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../models/AccessLog */ "./resources/js/models/AccessLog.js");
-
-
-
-
-
-var component = {
- oninit: function oninit() {
- document.title = 'Surat Keterangan Lulus - SMK Bhakti Anindya';
- _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current = {};
- _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].fetch('sk-k13-hasil-belajar');
- },
- namaMapel: {
- 'agama': 'Pendidikan Agama dan Budi Pekerti',
- 'pkn': 'Pendidikan Pancasila dan Kewarganegaraan',
- 'indo': 'Bahasa Indonesia',
- 'penjas': 'Pendidikan Jasmani, Olahraga dan Kesehatan',
- 'senbud': 'Seni Budaya',
- 'mtk': 'Matematika',
- 'inggris': 'Bahasa Inggris dan Bahasa Asing Lainnya',
- 'ipa': 'Ilmu Pengetahuan Alam',
- 'sejarah': 'Sejarah Indonesia',
- 'fisika': 'Fisika',
- 'kimia': 'Kimia',
- 'simdig': 'Simulasi dan Komunikasi Digital',
- 'dpk': 'Dasar Program Keahlian',
- 'kk': 'Kompetensi Keahlian',
- 'mandarin': 'Bahasa Mandarin',
- 'eb': 'Ekonomi Bisnis',
- 'au': 'Administrasi Umum'
- },
- rataRata: [],
- namaMuatan: {
- 'munas': 'Muatan Nasional',
- 'muwil': 'Muatan Wilayah',
- 'mujur': 'Muatan Peminatan Jurusan'
- },
- // This prop is to prevent double dialog when printing,
- // caused by the print button's confirm()
- // and the beforeprint's alert()
- confirmPrint: 0,
- view: function view() {
- component.rataRata = [];
- return [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.header', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.italic.text-xs', ['Saat ini sudah ', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('strong', [_models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].current.accessed, ' / ', _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].current.total]), ' siswa yang telah mencetak surat keterangan hasil belajar.']), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('h1.title', 'Surat Keterangan Lulus Siswa SMK Bhakti Anindya'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span', 'Silahkan masukkan NISN dan Tanggal Lahir kamu di bawah ini.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('form.form', {
- onsubmit: function onsubmit(e) {
- e.preventDefault();
- _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].cariData({
- nisn: e.target.elements.nisn.value,
- tanggalLahir: e.target.elements.tanggalLahir.value,
- src: 'sk-k13-hasil-belajar',
- "with": ['k13HasilBelajar', 'accessLog']
- });
- }
- }, Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-grid', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-group', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('label.form-label[for=input-nisn]', 'NISN'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('input.form-input.input-text#input-nisn[name=nisn][type=text][autocomplete=off][required]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.input-helper', ['Nomor Induk Siswa Nasional. ', !lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error) ? _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.siswa != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.siswa[0] + ' ') : _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.nisn != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.nisn[0] + ' ') : '' : ''])]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-group', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('label.form-label[for=input-tanggalLahir]', 'Tanggal Lahir'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('input.form-input.input-text#input-tanggalLahir[name=tanggalLahir][type=text][autocomplete=off][required]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.input-helper', ['Tanggal lahir dengan format YYYYMMDD. Contoh: untuk tanggal 29 Mei 2000 ditulis 20000529. ', !lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error) && _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.tanggalLahir != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.tanggalLahir[0] + ' ') : ''])]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('button.form-submit#input-submit[type=submit]', 'Lihat')])), lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current) ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.mobile-info', 'Untuk mencetak surat ini, harap gunakan browser di desktop PC.'), // !_isEmpty(Siswa.current.access_log) ? null
- // :
- Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('button.print-button', {
- onclick: function onclick() {
- // if (confirm('Surat Keterangan ini hanya dapat dicetak satu kali. Lanjutkan?')) {
- component.confirmPrint = 1;
- _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].create({
- siswaId: _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.id,
- src: 'sk-k13-hasil-belajar'
- }).then(function () {
- _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].fetch('sk-k13-hasil-belajar');
- window.print();
- })["catch"](function (e) {
- if (e.code === 0) {
- _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].error = {
- message: e.message,
- errors: {
- create: ['Terjadi kesalahan saat menghubungkan ke server.']
- }
- };
- } else {
- _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].error = JSON.parse(e.message);
- }
- }); // }
- },
- style: {
- marginTop: '4rem'
- }
- }, [mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust('⎙'), ' Print']), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span', {
- style: {
- margin: '0 1rem',
- fontSize: '.8rem',
- color: '#718096',
- fontStyle: 'italic'
- }
- }, 'Pastikan memilih kertas ukuran F4 atau US Legal agar isi SKL tidak terpotong.'), !lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].error) ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error.ml-2', _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].error.errors.create[0]) : null, Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter__header', {
- style: {
- marginTop: '3rem'
- }
- }, [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('img[src=img/letter-head.jpg]')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('', {
- style: {
- borderTop: '1px solid',
- height: '8px',
- borderBottom: '3px solid',
- width: '100%',
- margin: '10px 0' // height: '1px',
- // width: '100%',
- // backgroundColor: '#000',
- // marginTop: '.5rem',
-
- }
- }), // m('', {
- // style: {
- // height: '3px',
- // width: '100%',
- // }}),
- // m('', {
- // style: {
- // height: '3px',
- // width: '100%',
- // backgroundColor: '#000',
- // marginBottom: '1rem',
- // }}),
- Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter__body', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('strong.letter__body-header', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.border-b.border-black', 'SURAT KETERANGAN LULUS')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.mt-1', 'Nomor: 102/SMK-BA/V/2021')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('br'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('table', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', 'Kepala SMK Bhakti Anindya selaku Ketua Penyelenggara Ujian Sekolah Tahun Pelajaran 2020/2021 berdasarkan:')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=5]', '1. Menyelesaikan program pembelajaran di masa COVID -19 yang dibuktikan dengan rapor tiap semester;')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=5]', '2. Memperoleh nilai sikap/prilaku minimal baik;')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=5]', '3. Mengikuti Ujian yang diselenggarakan oleh satuan pendidikan;')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=5]', '4. Rapat Pleno Dewan Pendidik tentang kelulusan pada tanggal 29 Mei 2021.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust(' '))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', 'Menerangkan bahwa:')), // m('tr',
- // m('td',
- // m.trust(' '))),
- Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Nama Peserta'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.nama)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Tempat & Tanggal Lahir'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.tempat_lahir + ' , ' + _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.tanggal_lahir)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'NIS / NISN'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.nis + ' / ' + _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.nisn)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Kelas'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.kelas)]), // m('tr', [
- // m('td'),
- // m('td', 'Nomor Peserta'),
- // m('td', ':'),
- // m('td[colspan=3]', Siswa.current.nopes),
- // ]),
- // m('tr', [
- // m('td'),
- // m('td', 'Bidang Studi Keahlian'),
- // m('td', ':'),
- // m('td[colspan=3]', Siswa.current.bsk),
- // ]),
- // m('tr', [
- // m('td'),
- // m('td', 'Program Studi Keahlian'),
- // m('td', ':'),
- // m('td[colspan=3]', Siswa.current.psk),
- // ]),
- Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Kompetensi Keahlian'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.kk)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Dinyatakan'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('strong.special', 'LULUS'))]), // m('tr',
- // m('td',
- // m.trust(' '))),
- // m('tr',
- // m('td[colspan=6]', 'Adalah benar siswa SMK Bhakti Anindya, Kota Tangerang dan pada tanggal 13 Mei 2019 telah dinyatakan lulus')),
- Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', 'Dengan Nilai sebagai berikut:')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust(' '))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('table.nilai', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th', {
- style: {
- width: '5%'
- }
- }, 'No.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=2]', 'Mata Pelajaran'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.long.md:w-1/5', 'Nilai Ujian Sekolah'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.short.md:w-1/5', 'US')]), lodash_map__WEBPACK_IMPORTED_MODULE_2___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.k13_hasil_belajar.meta.nilai, function (mapel, muatan) {
- return [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th', muatan == 'munas' ? 'A.' : muatan == 'muwil' ? 'B.' : muatan == 'mujur' ? 'C.' : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.text-left[colspan=3]', component.namaMuatan[muatan])]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tbody.counter', lodash_map__WEBPACK_IMPORTED_MODULE_2___default()(mapel, function (nilai, nama) {
- if (nama == 'mulok') {
- return [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-right'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.text-left[colspan=2]', 'Mulok'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center')]), lodash_map__WEBPACK_IMPORTED_MODULE_2___default()(nilai, function (nl, mp) {
- if (nl != 0) component.rataRata.push(nl);
- return nilai == 0 ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-right.no-num'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]', component.namaMapel[mp]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center.font-bold', nl)]);
- })];
- } else {
- if (nilai != 0) component.rataRata.push(nilai);
- return nilai == 0 ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-right'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]', component.namaMapel[nama]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center.font-bold', nilai)]);
- }
- }))];
- }), // m('tr', [
- // m('th', 'A.'),
- // m('th[colspan=5].text-left', 'Normatif'),
- // ]),
- // m('tbody.counter',
- // _map(Siswa.current.hasil_belajar.meta.normatif, (nilai, mapel) => {
- // if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport);
- // if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn);
- // if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk);
- // return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : m('tr', [
- // m('td.text-right'),
- // m('td[colspan=2]', component.namaMapel[mapel]),
- // m('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null),
- // m('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null),
- // m('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null),
- // ]);
- // })),
- // m('tr', [
- // m('th', 'B.'),
- // m('th[colspan=5].text-left', 'Adaptif'),
- // ]),
- // m('tbody.counter',
- // _map(Siswa.current.hasil_belajar.meta.adaptif, (nilai, mapel) => {
- // if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport);
- // if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn);
- // if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk);
- // return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : m('tr', [
- // m('td.text-right'),
- // m('td[colspan=2]', component.namaMapel[mapel]),
- // m('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null),
- // m('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null),
- // m('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null),
- // ]);
- // }),
- // m('tr', [
- // m('th', 'C.'),
- // m('th[colspan=5].text-left', 'Produktif'),
- // ])),
- // m('tbody.counter',
- // _map(Siswa.current.hasil_belajar.meta.produktif, (nilai, mapel) => {
- // if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport);
- // if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn);
- // if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk);
- // return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : m('tr', [
- // m('td.text-right'),
- // m('td[colspan=2]', component.namaMapel[mapel]),
- // m('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null),
- // m('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null),
- // m('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null),
- // ]);
- // })),
- // m('tr', [
- // m('th', 'D.'),
- // m('th[colspan=5].text-left', 'Mulok'),
- // ]),
- // m('tbody.counter',
- // _map(Siswa.current.hasil_belajar.meta.mulok, (nilai, mapel) => {
- // if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport);
- // if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn);
- // if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk);
- // return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : m('tr', [
- // m('td.text-right'),
- // m('td[colspan=2]', component.namaMapel[mapel]),
- // m('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null),
- // m('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null),
- // m('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null),
- // ]);
- // })),
- Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=3]', 'Rata-rata'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center.font-bold', (component.rataRata.reduce(function (total, num) {
- return total + num;
- }) / component.rataRata.length).toFixed(2))])])))]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('table.signature', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Tangerang, 03 Juni 2021')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Kepala Sekolah,')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter__sign', {
- style: {
- height: '5rem'
- }
- }, Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('img[src=img/letter-sign-stamp.png]', {
- style: {
- maxHeight: '100%'
- }
- })))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Ferdy, S.E., M.M.'))])])])];
- }
-};
-/* harmony default export */ __webpack_exports__["default"] = (component);
-
-/***/ }),
-
-/***/ "./resources/js/components/SuratKelulusan.js":
-/*!***************************************************!*\
- !*** ./resources/js/components/SuratKelulusan.js ***!
- \***************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var mithril__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mithril */ "./node_modules/mithril/mithril.mjs");
-/* harmony import */ var lodash_isempty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash.isempty */ "./node_modules/lodash.isempty/index.js");
-/* harmony import */ var lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isempty__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var _models_Siswa__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../models/Siswa */ "./resources/js/models/Siswa.js");
-/* harmony import */ var _models_AccessLog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/AccessLog */ "./resources/js/models/AccessLog.js");
-
-
-
-
-var component = {
- oninit: function oninit() {
- document.title = 'Surat Kelulusan Siswa - SMK Bhakti Anindya';
- _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].current = {};
- _models_AccessLog__WEBPACK_IMPORTED_MODULE_3__["default"].fetch('surat-kelulusan');
- },
- view: function view() {
- return [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.header', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.italic.text-xs', ['Saat ini sudah ', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('strong', [_models_AccessLog__WEBPACK_IMPORTED_MODULE_3__["default"].current.accessed, ' / ', _models_AccessLog__WEBPACK_IMPORTED_MODULE_3__["default"].current.total]), ' siswa yang telah melihat pengumuman kelulusan.']), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('h1.title', 'Surat Kelulusan Siswa SMK Bhakti Anindya'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span', 'Silahkan masukkan NISN dan Tanggal Lahir kamu di bawah ini.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('form.form', {
- onsubmit: function onsubmit(e) {
- e.preventDefault();
- _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].cariData({
- nisn: e.target.elements.nisn.value,
- tanggalLahir: e.target.elements.tanggalLahir.value,
- src: 'surat-kelulusan'
- });
- }
- }, Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-grid', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-group', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('label.form-label[for=input-nisn]', 'NISN'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('input.form-input.input-text#input-nisn[name=nisn][type=text][autocomplete=off][required]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.input-helper', ['Nomor Induk Siswa Nasional. ', !lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error) ? _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error.errors.siswa != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error.errors.siswa[0] + ' ') : _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error.errors.nisn != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error.errors.nisn[0] + ' ') : '' : ''])]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-group', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('label.form-label[for=input-tanggalLahir]', 'Tanggal Lahir'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('input.form-input.input-text#input-tanggalLahir[name=tanggalLahir][type=text][autocomplete=off][required]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.input-helper', ['Tanggal lahir dengan format YYYYMMDD. Contoh: untuk tanggal 29 Mei 2000 ditulis 20000529. ', !lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error) && _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error.errors.tanggalLahir != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error.errors.tanggalLahir[0] + ' ') : ''])]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('button.form-submit#input-submit[type=submit]', 'Lihat')])), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])(!lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].current) ? '.letter' : '.letter.hidden', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.mobile-info', 'Untuk mencetak surat ini, harap gunakan browser di desktop PC.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('button.print-button', {
- onclick: function onclick() {
- window.print();
- }
- }, [mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust('⎙'), ' Print']), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter__header', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('img[src=img/letter-head.jpg]')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('', {
- style: {
- height: '1px',
- width: '100%',
- backgroundColor: '#000',
- marginTop: '.5rem'
- }
- }), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('', {
- style: {
- height: '3px',
- width: '100%'
- }
- }), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('', {
- style: {
- height: '3px',
- width: '100%',
- backgroundColor: '#000',
- marginBottom: '1rem'
- }
- }), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter__body', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('strong.letter__body-header', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p', 'KEPUTUSAN'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p', 'KEPALA SEKOLAH MENENGAH KEJURUAN (SMK) BHAKTI ANINDYA'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p', 'Nomor: 076 / SMK - BA / V / 2019'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p', 'TENTANG'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p', 'KELULUSAN PESERTA UJIAN DARI SATUAN PENDIDIKAN'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p', 'TAHUN PELAJARAN 2018 / 2019'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('br'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p', 'KEPALA SMK BHAKTI ANINDYA')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('br'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('table', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Menimbang'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', '1.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'Bahwa dalam rangka pengumuman hasil ujian akhir kelas XII Tahun Pelajaran 2018/2019 dipandang perlu untuk menerbitkan surat keputusan tentang kelulusan peserta ujian dari satuan pendidikan SMK Bhakti Anindya.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', '2.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'Bahwa peserta ujian yang namanya tercantum pada surat keputusan ini dipandang cakap, kompeten, dan layak untuk dinyatakan lulus dari Satuan Pendidikan SMK Bhakti Anindya.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('br'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Mengingat'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', '1.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'Undang Undang No. 20 Tahun 2003 tentang Sistem Pendidikan Nasional.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', '2.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'Permendikbud Nomor 57 Tahun 2015 Tentang Penilaian Hasil Belajar Oleh Pemerintah Melalui Ujian Nasional Dan Penilaian Hasil Belajar Oleh Satuan Pendidikan Melalui Ujian Sekolah/ Madrasah/ Pendidikan Kesetaraan Pada SMP/ MTs/ Yang Sederajat Dan SMA/ MA/ SMK Atau Yang Sederajat.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', '3.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'Peraturan BSNP NOMOR: 0047/P/BSNP/XI/2018 tentang Prosedur Operasional Standar Penyelenggaraan Ujian Nasional Tahun Pelajaran 2018/2019.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', '4.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'Peraturan BSNP NOMOR: 0048/BSNP/XI/2018 tentang Prosedur Operasional Standar Penyelenggaraan Ujian Sekolah Berstandar Nasaional Tahun Pelajaran 2018/2019.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', '5.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'Pedoman Penyelenggaraan UKK dan Sertifikasi Siswa SMK pada Ujian Nasional Tahun Pelajaran 2017/2018.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('br'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Memperhatikan'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', '1.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'Nilat raport semester 1 – 6 Tahun Pelajaran 2016/2017 – 2018/2019.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', '2.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'Nilai Hasil Ujian Praktik Kejuruan ( UPK ) yang diselenggarakan tanggal 1 April s.d 3 Mei 2019.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', '3.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'Nilai Hasil Ujian Sekolah Berstandar Nasional (USBN) yang diselenggarakan tanggal 05 – 12 April 2019.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', '4.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'Nilai Hasil Ujian Nasional Berbasis Komputer (UNBK) yang diselenggarakan tanggal 25 – 28 Maret 2019.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', '5.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'Hasil pengamatan dan penilaian mengenai sikap, prilaku, dan kepribadian yang bersangkutan selama menjadi siswa SMK Bhakti Anindya.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', '6.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'Hasil Rapat Pleno Dewan Guru SMK Bhakti Anindya tanggal 10 Mei 2019.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', '7.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'Surat Keputusan Tentang Kriteria Kelulusan dari Satuan Pendidikan.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center[colspan=6]', 'MEMUTUSKAN :')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Menetapkan'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Pertama'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Nama Peserta'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.strong', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.strong', _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].current.nama)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Tempat & Tanggal Lahir'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.strong', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.strong', _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].current.tempat_lahir + ' , ' + _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].current.tanggal_lahir)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'NIS / NISN'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.strong', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.strong', _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].current.nis + ' / ' + _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].current.nisn)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Nomor Peserta'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.strong', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.strong', _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].current.nopes)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Bidang Studi Keahlian'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.strong', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.strong', _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].current.bsk)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Program Studi Keahlian'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.strong', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.strong', _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].current.psk)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Kompetensi Keahlian'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.strong', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.strong', _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].current.kk)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', ['Dinyatakan ', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.special', 'LULUS'), ' dari satuan pendidikan SMK Bhakti Anindya Tahun Pelajaran 2018/2019'])]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('br'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Kedua'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=4]', 'Surat Keputusan ini dikeluarkan sebagai pengganti ijazah yang akan diterbitkan kemudian.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Ketiga'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=4]', 'Apabila dalam Surat Keputusan ini terdapat kekeliruan akan dilakukan perbaikan sebagaimana mestinya.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Keempat'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=4]', 'Surat Keputusan ini berlaku terhitung mulai tanggal ditetapkan.')])]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('table.signature', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Ditetapkan di'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Tangerang')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Pada Tanggal'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', '13 Mei 2019')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Kepala Sekolah,')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter__sign', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('img[src=img/letter-sign.png]', {
- style: {
- maxHeight: '80%'
- }
- })))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'Drs. Engkos Kosasih, M.M.'))])])])];
- }
-};
-/* harmony default export */ __webpack_exports__["default"] = (component);
-
-/***/ }),
-
-/***/ "./resources/js/models/AccessLog.js":
-/*!******************************************!*\
- !*** ./resources/js/models/AccessLog.js ***!
- \******************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var mithril__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mithril */ "./node_modules/mithril/mithril.mjs");
-
-var model = {
- current: {},
- error: {},
- fetch: function fetch(src) {
- model.current = {};
- model.error = {};
- return mithril__WEBPACK_IMPORTED_MODULE_0__["default"].request({
- method: 'get',
- url: '/api/access_log',
- data: {
- src: src
- }
- }).then(function (response) {
- model.current = response;
- })["catch"](function (e) {
- if (e.code === 0) {
- model.error = {
- message: e.message,
- errors: {
- accessLog: ['Terjadi kesalahan saat menghubungkan ke server.']
- }
- };
- } else model.error = JSON.parse(e.message);
- });
- },
- create: function create(data) {
- model.error = {};
- return mithril__WEBPACK_IMPORTED_MODULE_0__["default"].request({
- method: 'post',
- url: '/api/access_log',
- data: data
- }).then(function (response) {
- model.current = response;
- });
- }
-};
-/* harmony default export */ __webpack_exports__["default"] = (model);
-
-/***/ }),
-
-/***/ "./resources/js/models/Siswa.js":
-/*!**************************************!*\
- !*** ./resources/js/models/Siswa.js ***!
- \**************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var mithril__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mithril */ "./node_modules/mithril/mithril.mjs");
-/* harmony import */ var _AccessLog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AccessLog */ "./resources/js/models/AccessLog.js");
-
-
-var model = {
- current: {},
- error: {},
- cariData: function cariData(data) {
- model.current = {};
- model.error = {}, mithril__WEBPACK_IMPORTED_MODULE_0__["default"].request({
- method: 'post',
- url: '/api/siswa',
- data: data
- }).then(function (response) {
- model.current = response;
- _AccessLog__WEBPACK_IMPORTED_MODULE_1__["default"].fetch(data.src);
- })["catch"](function (e) {
- if (e.code === 0) {
- model.error = {
- message: e.message,
- errors: {
- siswa: ['Terjadi kesalahan saat menghubungkan ke server.']
- }
- };
- } else model.error = JSON.parse(e.message);
- });
- }
-};
-/* harmony default export */ __webpack_exports__["default"] = (model);
-
-/***/ }),
-
-/***/ "./resources/sass/main.scss":
-/*!**********************************!*\
- !*** ./resources/sass/main.scss ***!
- \**********************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-
-/***/ 0:
-/*!**************************************************************!*\
- !*** multi ./resources/js/app.js ./resources/sass/main.scss ***!
- \**************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__(/*! /home/gregorio/Documents/Codes/smk-kelulusan/resources/js/app.js */"./resources/js/app.js");
-module.exports = __webpack_require__(/*! /home/gregorio/Documents/Codes/smk-kelulusan/resources/sass/main.scss */"./resources/sass/main.scss");
-
-
-/***/ })
-
-/******/ });
\ No newline at end of file
+!function(t){var e={};function n(r){if(e[r])return e[r].exports;var a=e[r]={i:r,l:!1,exports:{}};return t[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var a in t)n.d(r,a,function(e){return t[e]}.bind(null,a));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/",n(n.s=4)}([function(t,e,n){(function(t,n){var r=9007199254740991,a="[object Arguments]",i="[object Function]",o="[object GeneratorFunction]",l="[object Map]",u="[object Set]",s=/^\[object .+?Constructor\]$/,c="object"==typeof t&&t&&t.Object===Object&&t,d="object"==typeof self&&self&&self.Object===Object&&self,f=c||d||Function("return this")(),p=e&&!e.nodeType&&e,h=p&&"object"==typeof n&&n&&!n.nodeType&&n,g=h&&h.exports===p;var m,b,y,v=Function.prototype,k=Object.prototype,w=f["__core-js_shared__"],S=(m=/[^.]+$/.exec(w&&w.keys&&w.keys.IE_PROTO||""))?"Symbol(src)_1."+m:"",j=v.toString,x=k.hasOwnProperty,_=k.toString,A=RegExp("^"+j.call(x).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),N=g?f.Buffer:void 0,P=k.propertyIsEnumerable,K=N?N.isBuffer:void 0,M=(b=Object.keys,y=Object,function(t){return b(y(t))}),T=$(f,"DataView"),L=$(f,"Map"),R=$(f,"Promise"),B=$(f,"Set"),O=$(f,"WeakMap"),I=!P.call({valueOf:1},"valueOf"),E=H(T),U=H(L),C=H(R),D=H(B),F=H(O);function z(t){return!(!X(t)||(e=t,S&&S in e))&&(W(t)||function(t){var e=!1;if(null!=t&&"function"!=typeof t.toString)try{e=!!(t+"")}catch(t){}return e}(t)?A:s).test(H(t));var e}function $(t,e){var n=function(t,e){return null==t?void 0:t[e]}(t,e);return z(n)?n:void 0}var q=function(t){return _.call(t)};function H(t){if(null!=t){try{return j.call(t)}catch(t){}try{return t+""}catch(t){}}return""}function Y(t){return function(t){return function(t){return!!t&&"object"==typeof t}(t)&&V(t)}(t)&&x.call(t,"callee")&&(!P.call(t,"callee")||_.call(t)==a)}(T&&"[object DataView]"!=q(new T(new ArrayBuffer(1)))||L&&q(new L)!=l||R&&"[object Promise]"!=q(R.resolve())||B&&q(new B)!=u||O&&"[object WeakMap]"!=q(new O))&&(q=function(t){var e=_.call(t),n="[object Object]"==e?t.constructor:void 0,r=n?H(n):void 0;if(r)switch(r){case E:return"[object DataView]";case U:return l;case C:return"[object Promise]";case D:return u;case F:return"[object WeakMap]"}return e});var J=Array.isArray;function V(t){return null!=t&&function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=r}(t.length)&&!W(t)}var G=K||function(){return!1};function W(t){var e=X(t)?_.call(t):"";return e==i||e==o}function X(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}n.exports=function(t){if(V(t)&&(J(t)||"string"==typeof t||"function"==typeof t.splice||G(t)||Y(t)))return!t.length;var e=q(t);if(e==l||e==u)return!t.size;if(I||function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||k)}(t))return!M(t).length;for(var n in t)if(x.call(t,n))return!1;return!0}}).call(this,n(2),n(3)(t))},function(t,e,n){(function(t,n){var r=200,a="Expected a function",i="__lodash_hash_undefined__",o=1,l=2,u=1/0,s=9007199254740991,c="[object Arguments]",d="[object Array]",f="[object Boolean]",p="[object Date]",h="[object Error]",g="[object Function]",m="[object GeneratorFunction]",b="[object Map]",y="[object Number]",v="[object Object]",k="[object RegExp]",w="[object Set]",S="[object String]",j="[object Symbol]",x="[object ArrayBuffer]",_="[object DataView]",A=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,N=/^\w*$/,P=/^\./,K=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,M=/\\(\\)?/g,T=/^\[object .+?Constructor\]$/,L=/^(?:0|[1-9]\d*)$/,R={};R["[object Float32Array]"]=R["[object Float64Array]"]=R["[object Int8Array]"]=R["[object Int16Array]"]=R["[object Int32Array]"]=R["[object Uint8Array]"]=R["[object Uint8ClampedArray]"]=R["[object Uint16Array]"]=R["[object Uint32Array]"]=!0,R[c]=R[d]=R[x]=R[f]=R[_]=R[p]=R[h]=R[g]=R[b]=R[y]=R[v]=R[k]=R[w]=R[S]=R["[object WeakMap]"]=!1;var B="object"==typeof t&&t&&t.Object===Object&&t,O="object"==typeof self&&self&&self.Object===Object&&self,I=B||O||Function("return this")(),E=e&&!e.nodeType&&e,U=E&&"object"==typeof n&&n&&!n.nodeType&&n,C=U&&U.exports===E&&B.process,D=function(){try{return C&&C.binding("util")}catch(t){}}(),F=D&&D.isTypedArray;function z(t,e){for(var n=-1,r=t?t.length:0,a=Array(r);++n-1},_t.prototype.set=function(t,e){var n=this.__data__,r=Mt(n,t);return r<0?n.push([t,e]):n[r][1]=e,this},At.prototype.clear=function(){this.__data__={hash:new xt,map:new(dt||_t),string:new xt}},At.prototype.delete=function(t){return qt(this,t).delete(t)},At.prototype.get=function(t){return qt(this,t).get(t)},At.prototype.has=function(t){return qt(this,t).has(t)},At.prototype.set=function(t,e){return qt(this,t).set(t,e),this},Nt.prototype.add=Nt.prototype.push=function(t){return this.__data__.set(t,i),this},Nt.prototype.has=function(t){return this.__data__.has(t)},Pt.prototype.clear=function(){this.__data__=new _t},Pt.prototype.delete=function(t){return this.__data__.delete(t)},Pt.prototype.get=function(t){return this.__data__.get(t)},Pt.prototype.has=function(t){return this.__data__.has(t)},Pt.prototype.set=function(t,e){var n=this.__data__;if(n instanceof _t){var a=n.__data__;if(!dt||a.lengths))return!1;var d=i.get(t);if(d&&i.get(e))return d==e;var f=-1,p=!0,h=a&o?new Nt:void 0;for(i.set(t,e),i.set(e,t);++f-1&&t%1==0&&t-1&&t%1==0&&t<=s}function le(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function ue(t){return!!t&&"object"==typeof t}function se(t){return"symbol"==typeof t||ue(t)&&rt.call(t)==j}var ce=F?function(t){return function(e){return t(e)}}(F):function(t){return ue(t)&&oe(t.length)&&!!R[rt.call(t)]};function de(t){return ae(t)?Kt(t):Dt(t)}function fe(t){return t}n.exports=function(t,e){return(re(t)?z:Ft)(t,Ct(e))}}).call(this,n(2),n(3)(t))},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,n){n(5),t.exports=n(6)},function(t,e,n){"use strict";function r(t,e,n,r,a,i){return{tag:t,key:e,attrs:n,children:r,text:a,dom:i,domSize:void 0,state:void 0,events:void 0,instance:void 0}}n.r(e),r.normalize=function(t){return Array.isArray(t)?r("[",void 0,void 0,r.normalizeChildren(t),void 0,void 0):null!=t&&"object"!=typeof t?r("#",void 0,void 0,!1===t?"":t,void 0,void 0):t},r.normalizeChildren=function(t){for(var e=[],n=0;n0&&(a.className=r.join(" ")),o[t]={tag:n,attrs:a}}(t),e):(e.tag=t,e)}s.trust=function(t){return null==t&&(t=""),r("<",void 0,void 0,t,void 0,void 0)},s.fragment=function(){var t=a.apply(0,arguments);return t.tag="[",t.children=r.normalizeChildren(t.children),t};var c=function(){return s.apply(this,arguments)};if(c.m=s,c.trust=s.trust,c.fragment=s.fragment,(d=function(t){if(!(this instanceof d))throw new Error("Promise must be called with `new`");if("function"!=typeof t)throw new TypeError("executor must be a function");var e=this,n=[],r=[],a=u(n,!0),i=u(r,!1),o=e._instance={resolvers:n,rejectors:r},l="function"==typeof setImmediate?setImmediate:setTimeout;function u(t,a){return function u(c){var d;try{if(!a||null==c||"object"!=typeof c&&"function"!=typeof c||"function"!=typeof(d=c.then))l(function(){a||0!==t.length||console.error("Possible unhandled promise rejection:",c);for(var e=0;e0||t(n)}}var r=n(i);try{t(n(a),r)}catch(t){r(t)}}s(t)}).prototype.then=function(t,e){var n,r,a=this._instance;function i(t,e,i,o){e.push(function(e){if("function"!=typeof t)i(e);else try{n(t(e))}catch(t){r&&r(t)}}),"function"==typeof a.retry&&o===a.state&&a.retry()}var o=new d(function(t,e){n=t,r=e});return i(t,a.resolvers,n,!0),i(e,a.rejectors,r,!1),o},d.prototype.catch=function(t){return this.then(null,t)},d.prototype.finally=function(t){return this.then(function(e){return d.resolve(t()).then(function(){return e})},function(e){return d.resolve(t()).then(function(){return d.reject(e)})})},d.resolve=function(t){return t instanceof d?t:new d(function(e){e(t)})},d.reject=function(t){return new d(function(e,n){n(t)})},d.all=function(t){return new d(function(e,n){var r=t.length,a=0,i=[];if(0===t.length)e([]);else for(var o=0;o=200&&d.status<300||304===d.status||/^file:\/\//i.test(e),i=d.responseText;if("function"==typeof n.extract)i=n.extract(d,n),t=!0;else if("function"==typeof n.deserialize)i=n.deserialize(i);else try{i=i?JSON.parse(i):null}catch(t){throw new Error("Invalid JSON: "+i)}if(t)r(i);else{var o=new Error(d.responseText);o.code=d.status,o.response=i,a(o)}}catch(t){a(t)}},u&&null!=s?d.send(s):d.send()}),jsonp:a(function(e,n,a,i){var l=n.callbackName||"_mithril_"+Math.round(1e16*Math.random())+"_"+r++,u=t.document.createElement("script");t[l]=function(e){u.parentNode.removeChild(u),a(e),delete t[l]},u.onerror=function(){u.parentNode.removeChild(u),i(new Error("JSONP request failed")),delete t[l]},e=o(e,n.data,!0),u.src=e+(e.indexOf("?")<0?"?":"&")+encodeURIComponent(n.callbackKey||"callback")+"="+encodeURIComponent(l),t.document.documentElement.appendChild(u)}),setCompletionCallback:function(t){n=t}}}(window,d),h=function(t){var e,n=t.document,a={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"};function i(t){return t.attrs&&t.attrs.xmlns||a[t.tag]}function o(t,e){if(t.state!==e)throw new Error("`vnode.state` must not be modified")}function l(t){var e=t.state;try{return this.apply(e,arguments)}finally{o(t,e)}}function u(){try{return n.activeElement}catch(t){return null}}function s(t,e,n,r,a,i,o){for(var l=n;l'+e.children+"",o=o.firstChild):o.innerHTML=e.children,e.dom=o.firstChild,e.domSize=o.childNodes.length;for(var l,u=n.createDocumentFragment();l=o.firstChild;)u.appendChild(l);y(t,u,a)}function p(t,e,n,r,a,i){if(e!==n&&(null!=e||null!=n))if(null==e||0===e.length)s(t,n,0,n.length,r,a,i);else if(null==n||0===n.length)k(e,0,e.length);else{for(var o=0,l=0,u=null,d=null;l=l&&_>=o;)if(v=e[x],S=n[_],null==v)x--;else if(null==S)_--;else{if(v.key!==S.key)break;v!==S&&h(t,v,S,r,a,i),null!=S.dom&&(a=S.dom),x--,_--}for(;x>=l&&_>=o;)if(f=e[l],p=n[o],null==f)l++;else if(null==p)o++;else{if(f.key!==p.key)break;l++,o++,f!==p&&h(t,f,p,r,b(e,l,a),i)}for(;x>=l&&_>=o;){if(null==f)l++;else if(null==p)o++;else if(null==v)x--;else if(null==S)_--;else{if(o===_)break;if(f.key!==S.key||v.key!==p.key)break;j=b(e,l,a),y(t,m(v),j),v!==p&&h(t,v,p,r,j,i),++o<=--_&&y(t,m(f),a),f!==S&&h(t,f,S,r,a,i),null!=S.dom&&(a=S.dom),l++,x--}v=e[x],S=n[_],f=e[l],p=n[o]}for(;x>=l&&_>=o;){if(null==v)x--;else if(null==S)_--;else{if(v.key!==S.key)break;v!==S&&h(t,v,S,r,a,i),null!=S.dom&&(a=S.dom),x--,_--}v=e[x],S=n[_]}if(o>_)k(e,l,x+1);else if(l>x)s(t,n,o,_+1,r,a,i);else{var A,N,P=a,K=_-o+1,M=new Array(K),T=0,L=0,R=2147483647,B=0;for(L=0;L=o;L--)if(null==A&&(A=g(e,l,x+1)),null!=(S=n[L])){var O=A[S.key];null!=O&&(R=O0&&(r[i]=a[e-1]),a[e]=i)}}e=a.length,n=a[e-1];for(;e-- >0;)a[e]=n,n=r[n];return a}(M)).length-1,L=_;L>=o;L--)p=n[L],-1===M[L-o]?c(t,p,r,i,a):N[T]===L-o?T--:y(t,m(p),a),null!=p.dom&&(a=n[L].dom);else for(L=_;L>=o;L--)p=n[L],-1===M[L-o]&&c(t,p,r,i,a),null!=p.dom&&(a=n[L].dom)}}else{var I=e.lengthI&&k(e,o,e.length),n.length>I&&s(t,n,o,n.length,r,a,i)}}}function h(t,e,n,a,o,u){var s=e.tag;if(s===n.tag){if(n.state=e.state,n.events=e.events,function(t,e){do{if(null!=t.attrs&&"function"==typeof t.attrs.onbeforeupdate){var n=l.call(t.attrs.onbeforeupdate,t,e);if(void 0!==n&&!n)break}if("string"!=typeof t.tag&&"function"==typeof t.state.onbeforeupdate){var n=l.call(t.state.onbeforeupdate,t,e);if(void 0!==n&&!n)break}return!1}while(0);return t.dom=e.dom,t.domSize=e.domSize,t.instance=e.instance,!0}(n,e))return;if("string"==typeof s)switch(null!=n.attrs&&R(n.attrs,n,a),s){case"#":!function(t,e){t.children.toString()!==e.children.toString()&&(t.dom.nodeValue=e.children);e.dom=t.dom}(e,n);break;case"<":!function(t,e,n,r,a){e.children!==n.children?(m(e),f(t,n,r,a)):(n.dom=e.dom,n.domSize=e.domSize)}(t,e,n,u,o);break;case"[":!function(t,e,n,r,a,i){p(t,e.children,n.children,r,a,i);var o=0,l=n.children;if(n.dom=null,null!=l){for(var u=0;u0){for(var a=t.dom;--e;)r.appendChild(a.nextSibling);r.insertBefore(a,r.firstChild)}return r}return t.dom}function b(t,e,n){for(;e-1||null!=t.attrs&&t.attrs.is||"href"!==e&&"list"!==e&&"form"!==e&&"width"!==e&&"height"!==e)&&e in t.dom}var A=/[A-Z]/g;function N(t){return"-"+t.toLowerCase()}function P(t){return"-"===t[0]&&"-"===t[1]?t:"cssFloat"===t?"float":t.replace(A,N)}function K(t,e,n){if(e===n);else if(null==n)t.style.cssText="";else if("object"!=typeof n)t.style.cssText=n;else if(null==e||"object"!=typeof e)for(var r in t.style.cssText="",n){null!=(a=n[r])&&t.style.setProperty(P(r),String(a))}else{for(var r in n){var a;null!=(a=n[r])&&(a=String(a))!==String(e[r])&&t.style.setProperty(P(r),a)}for(var r in e)null!=e[r]&&null==n[r]&&t.style.removeProperty(P(r))}}function M(){}function T(t,e,n){if(null!=t.events){if(t.events[e]===n)return;null==n||"function"!=typeof n&&"object"!=typeof n?(null!=t.events[e]&&t.dom.removeEventListener(e.slice(2),t.events,!1),t.events[e]=void 0):(null==t.events[e]&&t.dom.addEventListener(e.slice(2),t.events,!1),t.events[e]=n)}else null==n||"function"!=typeof n&&"object"!=typeof n||(t.events=new M,t.dom.addEventListener(e.slice(2),t.events,!1),t.events[e]=n)}function L(t,e,n){"function"==typeof t.oninit&&l.call(t.oninit,e),"function"==typeof t.oncreate&&n.push(l.bind(t.oncreate,e))}function R(t,e,n){"function"==typeof t.onupdate&&n.push(l.bind(t.onupdate,e))}return M.prototype=Object.create(null),M.prototype.handleEvent=function(t){var n,r=this["on"+t.type];"function"==typeof r?n=r.call(t.currentTarget,t):"function"==typeof r.handleEvent&&r.handleEvent(t),!1===t.redraw?t.redraw=void 0:"function"==typeof e&&e(),!1===n&&(t.preventDefault(),t.stopPropagation())},{render:function(t,e){if(!t)throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.");var n=[],a=u(),i=t.namespaceURI;null==t.vnodes&&(t.textContent=""),e=r.normalizeChildren(Array.isArray(e)?e:[e]),p(t,t.vnodes,e,n,null,"http://www.w3.org/1999/xhtml"===i?void 0:i),t.vnodes=e,null!=a&&u()!==a&&"function"==typeof a.focus&&a.focus();for(var o=0;o-1&&r.splice(e,2)}function o(){if(a)throw new Error("Nested m.redraw.sync() call");a=!0;for(var t=1;t-1&&u.pop();for(var c=0;c-1?r:a>-1?a:t.length;if(r>-1){var o=a>-1?a:t.length,l=y(t.slice(r+1,o));for(var u in l)e[u]=l[u]}if(a>-1){var s=y(t.slice(a+1));for(var u in s)n[u]=s[u]}return t.slice(0,i)}var o={prefix:"#!",getPath:function(){switch(o.prefix.charAt(0)){case"#":return a("hash").slice(o.prefix.length);case"?":return a("search").slice(o.prefix.length)+a("hash");default:return a("pathname").slice(o.prefix.length)+a("search")+a("hash")}},setPath:function(e,r,a){var l={},u={};if(e=i(e,l,u),null!=r){for(var s in r)l[s]=r[s];e=e.replace(/:([^\/]+)/g,function(t,e){return delete l[e],r[e]})}var c=f(l);c&&(e+="?"+c);var d=f(u);if(d&&(e+="#"+d),n){var p=a?a.state:null,h=a?a.title:null;t.onpopstate(),a&&a.replace?t.history.replaceState(p,h,o.prefix+e):t.history.pushState(p,h,o.prefix+e)}else t.location.href=o.prefix+e}};return o.defineRoutes=function(a,l,u){function s(){var e=o.getPath(),n={},r=i(e,n,n),s=t.history.state;if(null!=s)for(var c in s)n[c]=s[c];for(var d in a){var f=new RegExp("^"+d.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(f.test(r))return void r.replace(f,function(){for(var t=d.match(/:[^\/]+/g)||[],r=[].slice.call(arguments,1,-2),i=0;i .header, .container > .form, .letter .print-button, .letter .mobile-info {
+ .container > .header, .container > .form, .letter .print-button, .print-info, .letter .mobile-info {
@apply hidden;
}
diff --git a/routes/web.php b/routes/web.php
index 25e8523..9c0c5b7 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -12,11 +12,11 @@
*/
Route::get('/', function () {
- return view('main');
+ return view('k13');
});
-Route::get('/k13', function () {
- return view('k13');
+Route::get('/ktsp', function () {
+ return view('main');
});
Route::get('/pendopo', function () {
|